commit effae64aeeeb37f8ee4ff4f6743a47aaea607752
Author: Yuval Langer <yuvallangerontheroad@gmail.com>
Date: Sun, 22 Oct 2023 11:30:34 +0300
First commit.
Diffstat:
7 files changed, 10433 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
@@ -0,0 +1,2 @@
+all:
+ chicken-spock main.scm -o main.js
diff --git a/index.html b/index.html
@@ -0,0 +1,11 @@
+<!doctype html5>
+<html>
+ <head>
+ <meta charset="utf-8">
+ </head>
+ <body>
+ <canvas id="canvas" width="600" height="450"></canvas>
+ <script type="text/javascript" src="spock-runtime-min.js"></script>
+ <script type="text/javascript" src="main.js"></script>
+ </body>
+</html>
diff --git a/main.scm b/main.scm
@@ -0,0 +1,40 @@
+(define (alert message)
+ (%inline "alert" message))
+
+(define (a) (alert "aaaaa"))
+
+(define (set-fill-style! ctx style)
+ (set! (.fillStyle ctx) style))
+
+(define (fill-rect! ctx a b c d)
+ (%inline ".fillRect" ctx a b c d))
+
+(define canvas (%inline "document.getElementById" "canvas"))
+(define ctx (%inline ".getContext" canvas "2d"))
+
+(define canvas-width (.width canvas))
+(define canvas-height (.height canvas))
+
+(set-fill-style! ctx "rgb(200, 0, 0)")
+(fill-rect! ctx 10 10 50 50)
+
+(define (make-world x y)
+ (list x y))
+
+(define (world-x world)
+ (car world))
+
+(define (world-y world)
+ (car (cdr world)))
+
+(define (draw ctx world)
+ (fill-rect! ctx
+ (world-x world)
+ (world-y world)
+ 50
+ 50))
+
+(define world (make-world (/ canvas-width 2)
+ (/ canvas-height 2)))
+
+(draw ctx world)
diff --git a/spock-runtime-debug-min.js b/spock-runtime-debug-min.js
@@ -0,0 +1,452 @@
+
+var SPOCK={STACKSIZE:100,THREADSLICE:10,TRACELENGTH:32};SPOCK.modules={};SPOCK.symbolTable={};SPOCK.stack=0;SPOCK.limit=SPOCK.STACKSIZE;SPOCK.debug=false;SPOCK.running=false;SPOCK.runHook=[];SPOCK.inBrowser="document"in this;SPOCK.global=this;SPOCK.Continuation=function(func,args){this.k_callee=func;this.k_arguments=args;};SPOCK.Result=function(val){this.value=val;};SPOCK.Symbol=function(name){this.name=name;this.plist={};};SPOCK.Pair=function(car,cdr){this.car=car;this.cdr=cdr;};SPOCK.String=function(chars){if(typeof chars==="string"){this.parts=[chars];this.length=chars.length;}
+else if(typeof chars==="number")this.parts=[chars.toString()];else this.parts=chars;};SPOCK.Char=function(str){this.character=str.charAt(0);};SPOCK.Port=function(direction,methods){var port=this;var read=methods.read||function(){SPOCK.error("reading from non-input port",port);};function doread(n){if(n===0)return"";else if(this.peeked){var p=this.peeked;this.peeked=false;if(n===1)return p;else return p+read(n-1);}
+else return read(n);}
+this.peeked=false;this.direction=direction;this.read=doread;this.write=methods.write||function(){SPOCK.error("writing to non-output port",port)};this.close=methods.close||function(){};this.flush=methods.flush||function(){};this.ready=methods.ready||function(){return true;};this.closed=false;};SPOCK.Promise=function(thunk){this.thunk=thunk;};SPOCK.EndOfFile=function(){};SPOCK.EOF=new SPOCK.EndOfFile();SPOCK.check=function(val,type,loc){if(typeof type==="function"&&val instanceof type)return val;if(typeof val===type)return val;else SPOCK.error((loc?"("+loc+") ":"")+"bad argument type"+
+(typeof type==="string"?" - expected `"+type+"'":""),val);};SPOCK.intern=function(str){var old=SPOCK.symbolTable[str];if(old)return old;else return SPOCK.symbolTable[str]=new SPOCK.Symbol(str);};SPOCK.stringify=function(x,readable){if(readable===undefined)readable=true;if(typeof x==="function")return"#<procedure>";else if(x===undefined)return"#<undefined>";else if(x===null)return"()";else if(x instanceof SPOCK.Continuation)return"#<continuation>";else if(x instanceof SPOCK.Symbol)return x.name;else if(x instanceof SPOCK.Pair){var str="(";var f=false;for(var p=x;p!==null&&p instanceof SPOCK.Pair;p=p.cdr){if(f)str+=" ";str+=SPOCK.stringify(p.car,readable);f=true;}
+if(p!==null)str+=" . "+SPOCK.stringify(p,readable);return str+")";}
+else if(x instanceof Array){var str="#(";var f=false;for(var i in x){if(f)str+=" ";str+=SPOCK.stringify(x[i],readable);f=true;}
+return str+")";}
+else if(x instanceof SPOCK.String){if(readable)
+return"\""+x.normalize()+"\"";else return x.normalize();}
+else if(x instanceof SPOCK.Char){if(readable)return x.character;switch(x.character){case"\n":return"#\\newline";case"\t":return"#\\tab";case"\r":return"#\\return";case" ":return"#\\space";default:return"#\\"+x.character;}}
+else if(x instanceof SPOCK.Port)
+return"#<"+x.direction+" port"+
+(x.name?(" \""+x.name+"\">"):">");else if(x instanceof SPOCK.Promise)return"#<promise>";else if(x instanceof SPOCK.EndOfFile)return"#<eof>";else return x.toString();};SPOCK.error=function(msg){var args=Array.prototype.splice.call(arguments,1);function argstr(x){return SPOCK.stringify(x,true);}
+if(args.length>0)
+msg=msg+":\n "+SPOCK.map(argstr,args).join("\n ");throw new Error(msg);};if(this.quit)SPOCK.exit=quit;else SPOCK.exit=function(code){SPOCK.error("no suitable primitive available for `exit'");};SPOCK.String.prototype.normalize=function(){if(this.parts.length===0)return"";this.parts=[this.parts.join("")];return this.parts[0];};SPOCK.jstring=function(x){if(typeof x==="string")return x;else if(x instanceof SPOCK.String)return x.normalize();else return x;};SPOCK.list=function(){var lst=null;var len=arguments.length;for(var i=len-1;i>=0;--i)
+lst=new SPOCK.Pair(arguments[i],lst);return lst;};SPOCK.length=function(lst){for(var n=0;lst instanceof SPOCK.Pair;++n)
+lst=lst.cdr;return n;};SPOCK.map=function(func,array){var len=array.length;var a2=new Array(len);for(var i in array)
+a2[i]=func(array[i]);return a2;};SPOCK.eqvp=function(x,y){if(x===y)return true;else if(x instanceof SPOCK.Char)
+return y instanceof SPOCK.Char&&x.character===y.character;else return false;};SPOCK.equalp=function(x,y){if(x===y)return true;else if(x instanceof SPOCK.Pair)
+return y instanceof SPOCK.Pair&&SPOCK.equalp(x.car,y.car)&&SPOCK.equalp(x.cdr,y.cdr);else if(x instanceof Array){var len=x.length;if(!(y instanceof Array)||y.length!=len)return false;for(var i=0;i<len;++i){if(!SPOCK.equalp(x[i],y[i]))return false;}
+return true;}
+else if(x instanceof SPOCK.Char)
+return y instanceof SPOCK.Char&&x.characters===y.characters;else if(x instanceof SPOCK.String){var s1=x.normalize();if(y instanceof SPOCK.String)return s1===y.normalize();else if(typeof y==='string')return s1===y;else return false;}
+else if(typeof x==='string'){if(y instanceof SPOCK.String)return x===y.normalize();else if(typeof y==='string')return x===y;else return false;}
+else return false;};SPOCK.count=function(args,loc){if(--SPOCK.stack<=0)
+return new SPOCK.Continuation(args.callee,Array.prototype.slice.call(args));else return false;};SPOCK.rest=function(args,count,loc){var rest=null;SPOCK.count(args,loc);for(var i=args.length-1;i>=count;--i)
+rest=new SPOCK.Pair(args[i],rest);return rest;};SPOCK.statistics=function(){};SPOCK.run=function(func){function terminate(result){return new SPOCK.Result(result);}
+var k=terminate;var args=[k].concat(Array.prototype.slice.call(arguments,1));var oldstack=SPOCK.stack;var oldlimit=SPOCK.limit;var oldrunning=SPOCK.running;SPOCK.limit=Math.max(10,oldlimit-oldstack);SPOCK.stack=SPOCK.limit;SPOCK.running=true;function restore(){SPOCK.stack=oldstack;SPOCK.limit=oldlimit;SPOCK.running=oldrunning;if(!oldrunning){for(var i in SPOCK.runHook)
+(SPOCK.runHook[i])(false);}}
+var result;if(!oldrunning){for(var i in SPOCK.runHook)
+(SPOCK.runHook[i])(true);}
+while(true){result=func.apply(SPOCK.global,args);if(result instanceof SPOCK.Continuation){SPOCK.stack=SPOCK.STACKSIZE;func=result.k_callee;args=result.k_arguments;}
+else if(result instanceof SPOCK.Result){restore();return result.value;}
+else{restore();SPOCK.error("unexpected return of non-continuation",result);}}
+return result;};SPOCK.callback=function(proc){return function(){var args=Array.prototype.slice.call(arguments);args.unshift(proc);return SPOCK.run.apply(this,args);};};SPOCK.callbackMethod=function(proc){var g=this;return function(){var args=Array.prototype.slice.call(arguments);args.unshift(this);args.unshift(proc);return SPOCK.run.apply(g,args);};};SPOCK.go=function(proc){(SPOCK.callback(proc))();};if("java"in this){SPOCK.makeJavaInputPort=function(jp){return new SPOCK.Port("input",{read:function(n){var buffer="";while(n--){var b=jp.read();if(b===-1)break;else buffer+=String.fromCharCode(b);}
+return buffer===""?SPOCK.EOF:buffer;},close:function(){jp.close();}});};SPOCK.makeJavaOutputPort=function(jp){return new SPOCK.Port("output",{write:function(s){var len=s.length;for(var i=0;i<len;++i)
+jp.write(s.charCodeAt(i));},flush:function(){jp.flush();},close:function(){jp.close();}});};SPOCK.log=function(){java.lang.System.err.println(Array.prototype.slice.call(arguments).join(""));};SPOCK.stdin=SPOCK.makeJavaInputPort(java.lang.System["in"]);SPOCK.stdout=SPOCK.makeJavaOutputPort(java.lang.System.out);SPOCK.stderr=SPOCK.makeJavaOutputPort(java.lang.System.err);SPOCK.stderr.name="[stderr]";}
+else{if("console"in this)SPOCK.log=console.log;else if(SPOCK.inBrowser)
+SPOCK.log=function(){var msg=arguments.join(" ");if(msg.charAt(msg.length-1)=="\n")
+msg=msg.substring(0,msg.length-1);this.defaultStatus=msg;};else if("print"in this)SPOCK.log=print;else if(typeof process!==undefined)SPOCK.log=console.log;else SPOCK.error("no suitable output primitive available");(function(){var buffer=[];function flush(){if(buffer.length>0){SPOCK.log(buffer.join(""));buffer=[];}}
+function write(s){var parts=SPOCK.stringify(s,false).split("\n");var len=parts.length-1;if(len>0){buffer.push(parts[0]);flush();if(len>1){for(var i=1;i<len;++i)
+SPOCK.log(parts[i]);}
+buffer.push(parts[len]);}
+else buffer.push(parts[0]);}
+SPOCK.stdout=new SPOCK.Port("output",{write:write,flush:flush});var inp;var ibuffer="";if(this.prompt){inp=function(n){while(true){if(ibuffer.length<=n){var part=ibuffer.slice(0,n);ibuffer=ibuffer.slice(n);return part;}
+var input=prompt("Expecting input for "+this.toString());if(input===null)return SPOCK.EOF;else ibuffer+=input;}};}
+else{inp=function(n){SPOCK.error("no input possible for standard input port");};}
+SPOCK.stdin=new SPOCK.Port("input",{read:inp});SPOCK.stderr=SPOCK.stdout;})();}
+SPOCK.stdin.name="[stdin]";SPOCK.stdout.name="[stdout]";SPOCK.flush=function(){SPOCK.stdout.flush();if(SPOCK.stderr!==SPOCK.stdout)
+SPOCK.stderr.flush();SPOCK.statistics();};if(this.gc)SPOCK.gc=gc;else SPOCK.gc=function(){};SPOCK.openInputUrlHook=function(url){SPOCK.error("can not open",url);};SPOCK.openOutputUrlHook=function(url){SPOCK.error("can not open",url);};if("java"in this){SPOCK.openInputFile=function(filename){var stream;try{stream=new java.io.FileInputStream(filename);}
+catch(e){SPOCK.error(e.message);}
+var port=SPOCK.makeJavaInputPort(stream);port.name=filename;return port;};SPOCK.openOutputFile=function(filename){var stream;try{stream=new java.io.FileOutputStream(filename);}
+catch(e){SPOCK.error(e.message);}
+var port=SPOCK.makeJavaOutputPort(stream);port.name=filename;return port;};SPOCK.fileExists=function(filename){return(new java.io.File(filename)).exists();};}
+else{if(SPOCK.inBrowser){SPOCK.openInputFile=function(filename){if(filename.match(/^[a-z0-9]+:/))
+return SPOCK.openInputUrlHook(filename);var cookies=document.cookie.split("; ");var buffer=null;for(var i=0;i<cookies.length;++i){var c=cookies[i];var p=c.indexOf("=");if(filename===c.substring(0,p)){buffer=c.substring(p+1);break;}}
+if(!buffer)SPOCK.error("can not open file",filename);var pos=0;return new SPOCK.Port("input",{read:function(n){if(pos>=buffer.length)return SPOCK.EOF;else if(pos+len>=buffer.length)
+return buffer.substring(pos);var p1=pos;pos+=n;return buffer.substring(p1,p1+n);},ready:function(){return pos<buffer.length;}});};SPOCK.openOutputFile=function(filename,expiry){if(filename.match(/^[a-z0-9]+:/))
+return SPOCK.openOutputUrlHook(filename);return new SPOCK.Port("output",{write:function(s){buffer+=s;},close:function(){var now=(new Date()).getTime();var exp=now+(expiry||(1000*60*60*24*365));document.cookie=filename+"="+encodeURIComponent(buffer)+"; expires="+(new Date(exp)).toGMTString();}});};}
+else{SPOCK.openInputFile=function(filename){SPOCK.error("file-I/O not available");}
+SPOCK.openOutputFile=function(filename){SPOCK.error("file-I/O not available");}}
+SPOCK.fileExists=function(filename){SPOCK.error("`file-exists?' not available");};}
+if("document"in this){SPOCK.load=function(url,k){var script=document.createElement("script")
+script.type="text/javascript";k=k||function(){};if(script.readyState){script.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete"){script.onreadystatechange=null;k(url);}};}
+else{script.onload=function(){k(url);};}
+script.src=url;document.getElementsByTagName("head")[0].appendChild(script);};}
+else if("load"in this){SPOCK.load=function(filename,k){load(filename);if(k)k(filename);};}
+SPOCK.debug=true;SPOCK.toString=function(){return"#<SPOCK>";};SPOCK.restartCount=0;SPOCK.traceBuffer=[];SPOCK.traceOutput=false;SPOCK.traceHook=[];SPOCK.hasAlert=SPOCK.inBrowser;SPOCK.error=function(msg){var args=Array.prototype.splice.call(arguments,1);var err;var text;if(typeof msg!=="string"){err=msg;msg=err.message;}
+text=msg;if(args.length>1)
+text+=":\n "+SPOCK.map(SPOCK.stringify,args).join("\n ");if(SPOCK.traceBuffer.length>0)
+text+="\n\nCall trace:\n\n"+SPOCK.getTrace();if(SPOCK.hasAlert){alert("Error: "+text);SPOCK.hasAlert=false;}
+else if(err)throw new(err.constructor)(text);else throw new Error(text);};SPOCK.count=function(args,loc){if(--SPOCK.stack<=0){++SPOCK.restartCount;return new SPOCK.Continuation(args.callee,Array.prototype.slice.call(args));}
+if(loc)SPOCK.trace(loc,args);return false;};SPOCK.trace=function(name,args){var tb=SPOCK.traceBuffer;for(var i in SPOCK.traceHook)
+(SPOCK.traceHook[i])(name,args);if(SPOCK.traceOutput)
+SPOCK.log("["+SPOCK.stack+"] "+name);if(tb.length>=SPOCK.TRACELENGTH)tb.shift();tb.push([name,Array.prototype.slice.call(args,1)]);};SPOCK.getTrace=function(){var tb=SPOCK.traceBuffer;var trace=[];for(var i in tb){var e=tb[i];trace.push(" ("+e[0]+" "+
+SPOCK.map(SPOCK.stringify,e[1]).join(" ")+")");}
+SPOCK.traceBuffer=[];return trace.join("\n")+" <---";};SPOCK.statistics=function(){SPOCK.traceBuffer=[];};(function(){var old=SPOCK.callback;SPOCK.callback=function(proc){var cb=old(proc);return function(){var args=Array.prototype.slice.call(arguments);SPOCK.trace("<callback>",args);return cb.apply(this,args);};};})();var t1336=function(k1067){var t1337=function(k1068,t1){var t1=SPOCK.rest(arguments,1,'%list');loop:while(true){return k1068(t1);}};____25list=t1337;var t1339=function(K){SPOCK.count(arguments,'values');return K.apply(SPOCK.global,Array.prototype.slice.call(arguments,1));};___values=t1339;var t1340=function(K){SPOCK.count(arguments,'call-with-values');var thunk=arguments[1];var proc=arguments[2];function k2(){var args=Array.prototype.slice.call(arguments);args.unshift(K);return proc.apply(SPOCK.global,args);}
+return thunk(k2);};___call_2dwith_2dvalues=t1340;var t1341=function(K){SPOCK.count(arguments,'%call-with-saved-values');var t1=arguments[1];var t2=arguments[2];var args;function k2(){return K.apply(SPOCK.global,args);}
+function k1(){args=Array.prototype.slice.call(arguments);return t2(k2);}
+return t1(k1);};____25call_2dwith_2dsaved_2dvalues=t1341;var t1342=function(k1069,t2){var r=SPOCK.count(arguments,"list?");if(r)return r;var t3=undefined;var t1343=function(k1070,t4,t5){var r=SPOCK.count(arguments,"t3");if(r)return r;loop:while(true){var t1345=null;var t1344=(t4)===(t1345);var t6=t1344;var t1346;if(t6!==false){return k1070(t6);}
+else{var t1348=(t4)instanceof SPOCK.Pair;var t945=t1348;var t1349;if(t945!==false){var t1350=t4.cdr;var t11=t1350;var t1352=null;var t1351=(t11)===(t1352);var t13=t1351;var t1353;if(t13!==false){return k1070(t13);}
+else{var t1355=(t11)instanceof SPOCK.Pair;var t946=t1355;var t1356;if(t946!==false){var t1357=t11.cdr;var t18=t1357;var t1358=t5.cdr;var t19=t1358;var t1359=(t18)===(t19);var t22=t1359;var t1360;if(t22!==false){t1360=false;}
+else{t1360=true;}
+var t947=t1360;var t1361;if(t947!==false){var t1362=t18;var t1363=t19;t4=t1362;t5=t1363;continue loop;}
+else{return k1070(false);}
+t1356=t1361;}
+else{return k1070(false);}
+t1353=t1356;}
+t1349=t1353;}
+else{return k1070(false);}
+t1346=t1349;}}};t3=t1343;return t3(k1069,t2,t2);};___list_3f=t1342;var t1368=function(k1071,t25){var r=SPOCK.count(arguments,"caaar");if(r)return r;loop:while(true){var t1369=SPOCK.check(t25,SPOCK.Pair,"caaar");var t29=t1369;var t1370=t29.car;var t27=t1370;var t1371=SPOCK.check(t27,SPOCK.Pair,"caaar");var t30=t1371;var t1372=t30.car;var t26=t1372;var t1373=SPOCK.check(t26,SPOCK.Pair,"caaar");var t31=t1373;var t1374=t31.car;return k1071(t1374);}};___caaar=t1368;var t1376=function(k1072,t32){var r=SPOCK.count(arguments,"caadr");if(r)return r;loop:while(true){var t1377=SPOCK.check(t32,SPOCK.Pair,"caadr");var t36=t1377;var t1378=t36.cdr;var t34=t1378;var t1379=SPOCK.check(t34,SPOCK.Pair,"caadr");var t37=t1379;var t1380=t37.car;var t33=t1380;var t1381=SPOCK.check(t33,SPOCK.Pair,"caadr");var t38=t1381;var t1382=t38.car;return k1072(t1382);}};___caadr=t1376;var t1384=function(k1073,t39){var r=SPOCK.count(arguments,"cadar");if(r)return r;loop:while(true){var t1385=SPOCK.check(t39,SPOCK.Pair,"cadar");var t43=t1385;var t1386=t43.car;var t41=t1386;var t1387=SPOCK.check(t41,SPOCK.Pair,"cadar");var t44=t1387;var t1388=t44.cdr;var t40=t1388;var t1389=SPOCK.check(t40,SPOCK.Pair,"cadar");var t45=t1389;var t1390=t45.car;return k1073(t1390);}};___cadar=t1384;var t1392=function(k1074,t46){var r=SPOCK.count(arguments,"caddr");if(r)return r;loop:while(true){var t1393=SPOCK.check(t46,SPOCK.Pair,"caddr");var t50=t1393;var t1394=t50.cdr;var t48=t1394;var t1395=SPOCK.check(t48,SPOCK.Pair,"caddr");var t51=t1395;var t1396=t51.cdr;var t47=t1396;var t1397=SPOCK.check(t47,SPOCK.Pair,"caddr");var t52=t1397;var t1398=t52.car;return k1074(t1398);}};___caddr=t1392;var t1400=function(k1075,t53){var r=SPOCK.count(arguments,"cdaar");if(r)return r;loop:while(true){var t1401=SPOCK.check(t53,SPOCK.Pair,"cdaar");var t57=t1401;var t1402=t57.car;var t55=t1402;var t1403=SPOCK.check(t55,SPOCK.Pair,"cdaar");var t58=t1403;var t1404=t58.car;var t54=t1404;var t1405=SPOCK.check(t54,SPOCK.Pair,"cdaar");var t59=t1405;var t1406=t59.cdr;return k1075(t1406);}};___cdaar=t1400;var t1408=function(k1076,t60){var r=SPOCK.count(arguments,"cdadr");if(r)return r;loop:while(true){var t1409=SPOCK.check(t60,SPOCK.Pair,"cdadr");var t64=t1409;var t1410=t64.cdr;var t62=t1410;var t1411=SPOCK.check(t62,SPOCK.Pair,"cdadr");var t65=t1411;var t1412=t65.car;var t61=t1412;var t1413=SPOCK.check(t61,SPOCK.Pair,"cdadr");var t66=t1413;var t1414=t66.cdr;return k1076(t1414);}};___cdadr=t1408;var t1416=function(k1077,t67){var r=SPOCK.count(arguments,"cddar");if(r)return r;loop:while(true){var t1417=SPOCK.check(t67,SPOCK.Pair,"cddar");var t71=t1417;var t1418=t71.car;var t69=t1418;var t1419=SPOCK.check(t69,SPOCK.Pair,"cddar");var t72=t1419;var t1420=t72.cdr;var t68=t1420;var t1421=SPOCK.check(t68,SPOCK.Pair,"cddar");var t73=t1421;var t1422=t73.cdr;return k1077(t1422);}};___cddar=t1416;var t1424=function(k1078,t74){var r=SPOCK.count(arguments,"cdddr");if(r)return r;loop:while(true){var t1425=SPOCK.check(t74,SPOCK.Pair,"cdddr");var t78=t1425;var t1426=t78.cdr;var t76=t1426;var t1427=SPOCK.check(t76,SPOCK.Pair,"cdddr");var t79=t1427;var t1428=t79.cdr;var t75=t1428;var t1429=SPOCK.check(t75,SPOCK.Pair,"cdddr");var t80=t1429;var t1430=t80.cdr;return k1078(t1430);}};___cdddr=t1424;var t1432=function(k1079,t81){var r=SPOCK.count(arguments,"caaaar");if(r)return r;loop:while(true){var t1433=SPOCK.check(t81,SPOCK.Pair,"caaaar");var t86=t1433;var t1434=t86.car;var t84=t1434;var t1435=SPOCK.check(t84,SPOCK.Pair,"caaaar");var t87=t1435;var t1436=t87.car;var t83=t1436;var t1437=SPOCK.check(t83,SPOCK.Pair,"caaaar");var t88=t1437;var t1438=t88.car;var t82=t1438;var t1439=SPOCK.check(t82,SPOCK.Pair,"caaaar");var t89=t1439;var t1440=t89.car;return k1079(t1440);}};___caaaar=t1432;var t1442=function(k1080,t90){var r=SPOCK.count(arguments,"caaadr");if(r)return r;loop:while(true){var t1443=SPOCK.check(t90,SPOCK.Pair,"caaadr");var t95=t1443;var t1444=t95.cdr;var t93=t1444;var t1445=SPOCK.check(t93,SPOCK.Pair,"caaadr");var t96=t1445;var t1446=t96.car;var t92=t1446;var t1447=SPOCK.check(t92,SPOCK.Pair,"caaadr");var t97=t1447;var t1448=t97.car;var t91=t1448;var t1449=SPOCK.check(t91,SPOCK.Pair,"caaadr");var t98=t1449;var t1450=t98.car;return k1080(t1450);}};___caaadr=t1442;var t1452=function(k1081,t99){var r=SPOCK.count(arguments,"caadar");if(r)return r;loop:while(true){var t1453=SPOCK.check(t99,SPOCK.Pair,"caadar");var t104=t1453;var t1454=t104.car;var t102=t1454;var t1455=SPOCK.check(t102,SPOCK.Pair,"caadar");var t105=t1455;var t1456=t105.cdr;var t101=t1456;var t1457=SPOCK.check(t101,SPOCK.Pair,"caadar");var t106=t1457;var t1458=t106.car;var t100=t1458;var t1459=SPOCK.check(t100,SPOCK.Pair,"caadar");var t107=t1459;var t1460=t107.car;return k1081(t1460);}};___caadar=t1452;var t1462=function(k1082,t108){var r=SPOCK.count(arguments,"caaddr");if(r)return r;loop:while(true){var t1463=SPOCK.check(t108,SPOCK.Pair,"caaddr");var t113=t1463;var t1464=t113.cdr;var t111=t1464;var t1465=SPOCK.check(t111,SPOCK.Pair,"caaddr");var t114=t1465;var t1466=t114.cdr;var t110=t1466;var t1467=SPOCK.check(t110,SPOCK.Pair,"caaddr");var t115=t1467;var t1468=t115.car;var t109=t1468;var t1469=SPOCK.check(t109,SPOCK.Pair,"caaddr");var t116=t1469;var t1470=t116.car;return k1082(t1470);}};___caaddr=t1462;var t1472=function(k1083,t117){var r=SPOCK.count(arguments,"cadaar");if(r)return r;loop:while(true){var t1473=SPOCK.check(t117,SPOCK.Pair,"cadaar");var t122=t1473;var t1474=t122.car;var t120=t1474;var t1475=SPOCK.check(t120,SPOCK.Pair,"cadaar");var t123=t1475;var t1476=t123.car;var t119=t1476;var t1477=SPOCK.check(t119,SPOCK.Pair,"cadaar");var t124=t1477;var t1478=t124.cdr;var t118=t1478;var t1479=SPOCK.check(t118,SPOCK.Pair,"cadaar");var t125=t1479;var t1480=t125.car;return k1083(t1480);}};___cadaar=t1472;var t1482=function(k1084,t126){var r=SPOCK.count(arguments,"cadadr");if(r)return r;loop:while(true){var t1483=SPOCK.check(t126,SPOCK.Pair,"cadadr");var t131=t1483;var t1484=t131.cdr;var t129=t1484;var t1485=SPOCK.check(t129,SPOCK.Pair,"cadadr");var t132=t1485;var t1486=t132.car;var t128=t1486;var t1487=SPOCK.check(t128,SPOCK.Pair,"cadadr");var t133=t1487;var t1488=t133.cdr;var t127=t1488;var t1489=SPOCK.check(t127,SPOCK.Pair,"cadadr");var t134=t1489;var t1490=t134.car;return k1084(t1490);}};___cadadr=t1482;var t1492=function(k1085,t135){var r=SPOCK.count(arguments,"caddar");if(r)return r;loop:while(true){var t1493=SPOCK.check(t135,SPOCK.Pair,"caddar");var t140=t1493;var t1494=t140.car;var t138=t1494;var t1495=SPOCK.check(t138,SPOCK.Pair,"caddar");var t141=t1495;var t1496=t141.cdr;var t137=t1496;var t1497=SPOCK.check(t137,SPOCK.Pair,"caddar");var t142=t1497;var t1498=t142.cdr;var t136=t1498;var t1499=SPOCK.check(t136,SPOCK.Pair,"caddar");var t143=t1499;var t1500=t143.car;return k1085(t1500);}};___caddar=t1492;var t1502=function(k1086,t144){var r=SPOCK.count(arguments,"cadddr");if(r)return r;loop:while(true){var t1503=SPOCK.check(t144,SPOCK.Pair,"cadddr");var t149=t1503;var t1504=t149.cdr;var t147=t1504;var t1505=SPOCK.check(t147,SPOCK.Pair,"cadddr");var t150=t1505;var t1506=t150.cdr;var t146=t1506;var t1507=SPOCK.check(t146,SPOCK.Pair,"cadddr");var t151=t1507;var t1508=t151.cdr;var t145=t1508;var t1509=SPOCK.check(t145,SPOCK.Pair,"cadddr");var t152=t1509;var t1510=t152.car;return k1086(t1510);}};___cadddr=t1502;var t1512=function(k1087,t153){var r=SPOCK.count(arguments,"cdaaar");if(r)return r;loop:while(true){var t1513=SPOCK.check(t153,SPOCK.Pair,"cdaaar");var t158=t1513;var t1514=t158.car;var t156=t1514;var t1515=SPOCK.check(t156,SPOCK.Pair,"cdaaar");var t159=t1515;var t1516=t159.car;var t155=t1516;var t1517=SPOCK.check(t155,SPOCK.Pair,"cdaaar");var t160=t1517;var t1518=t160.car;var t154=t1518;var t1519=SPOCK.check(t154,SPOCK.Pair,"cdaaar");var t161=t1519;var t1520=t161.cdr;return k1087(t1520);}};___cdaaar=t1512;var t1522=function(k1088,t162){var r=SPOCK.count(arguments,"cdaadr");if(r)return r;loop:while(true){var t1523=SPOCK.check(t162,SPOCK.Pair,"cdaadr");var t167=t1523;var t1524=t167.cdr;var t165=t1524;var t1525=SPOCK.check(t165,SPOCK.Pair,"cdaadr");var t168=t1525;var t1526=t168.car;var t164=t1526;var t1527=SPOCK.check(t164,SPOCK.Pair,"cdaadr");var t169=t1527;var t1528=t169.car;var t163=t1528;var t1529=SPOCK.check(t163,SPOCK.Pair,"cdaadr");var t170=t1529;var t1530=t170.cdr;return k1088(t1530);}};___cdaadr=t1522;var t1532=function(k1089,t171){var r=SPOCK.count(arguments,"cdadar");if(r)return r;loop:while(true){var t1533=SPOCK.check(t171,SPOCK.Pair,"cdadar");var t176=t1533;var t1534=t176.car;var t174=t1534;var t1535=SPOCK.check(t174,SPOCK.Pair,"cdadar");var t177=t1535;var t1536=t177.cdr;var t173=t1536;var t1537=SPOCK.check(t173,SPOCK.Pair,"cdadar");var t178=t1537;var t1538=t178.car;var t172=t1538;var t1539=SPOCK.check(t172,SPOCK.Pair,"cdadar");var t179=t1539;var t1540=t179.cdr;return k1089(t1540);}};___cdadar=t1532;var t1542=function(k1090,t180){var r=SPOCK.count(arguments,"cdaddr");if(r)return r;loop:while(true){var t1543=SPOCK.check(t180,SPOCK.Pair,"cdaddr");var t185=t1543;var t1544=t185.cdr;var t183=t1544;var t1545=SPOCK.check(t183,SPOCK.Pair,"cdaddr");var t186=t1545;var t1546=t186.cdr;var t182=t1546;var t1547=SPOCK.check(t182,SPOCK.Pair,"cdaddr");var t187=t1547;var t1548=t187.car;var t181=t1548;var t1549=SPOCK.check(t181,SPOCK.Pair,"cdaddr");var t188=t1549;var t1550=t188.cdr;return k1090(t1550);}};___cdaddr=t1542;var t1552=function(k1091,t189){var r=SPOCK.count(arguments,"cddaar");if(r)return r;loop:while(true){var t1553=SPOCK.check(t189,SPOCK.Pair,"cddaar");var t194=t1553;var t1554=t194.car;var t192=t1554;var t1555=SPOCK.check(t192,SPOCK.Pair,"cddaar");var t195=t1555;var t1556=t195.car;var t191=t1556;var t1557=SPOCK.check(t191,SPOCK.Pair,"cddaar");var t196=t1557;var t1558=t196.cdr;var t190=t1558;var t1559=SPOCK.check(t190,SPOCK.Pair,"cddaar");var t197=t1559;var t1560=t197.cdr;return k1091(t1560);}};___cddaar=t1552;var t1562=function(k1092,t198){var r=SPOCK.count(arguments,"cddadr");if(r)return r;loop:while(true){var t1563=SPOCK.check(t198,SPOCK.Pair,"cddadr");var t203=t1563;var t1564=t203.cdr;var t201=t1564;var t1565=SPOCK.check(t201,SPOCK.Pair,"cddadr");var t204=t1565;var t1566=t204.car;var t200=t1566;var t1567=SPOCK.check(t200,SPOCK.Pair,"cddadr");var t205=t1567;var t1568=t205.cdr;var t199=t1568;var t1569=SPOCK.check(t199,SPOCK.Pair,"cddadr");var t206=t1569;var t1570=t206.cdr;return k1092(t1570);}};___cddadr=t1562;var t1572=function(k1093,t207){var r=SPOCK.count(arguments,"cdddar");if(r)return r;loop:while(true){var t1573=SPOCK.check(t207,SPOCK.Pair,"cdddar");var t212=t1573;var t1574=t212.car;var t210=t1574;var t1575=SPOCK.check(t210,SPOCK.Pair,"cdddar");var t213=t1575;var t1576=t213.cdr;var t209=t1576;var t1577=SPOCK.check(t209,SPOCK.Pair,"cdddar");var t214=t1577;var t1578=t214.cdr;var t208=t1578;var t1579=SPOCK.check(t208,SPOCK.Pair,"cdddar");var t215=t1579;var t1580=t215.cdr;return k1093(t1580);}};___cdddar=t1572;var t1582=function(k1094,t216){var r=SPOCK.count(arguments,"cddddr");if(r)return r;loop:while(true){var t1583=SPOCK.check(t216,SPOCK.Pair,"cddddr");var t221=t1583;var t1584=t221.cdr;var t219=t1584;var t1585=SPOCK.check(t219,SPOCK.Pair,"cddddr");var t222=t1585;var t1586=t222.cdr;var t218=t1586;var t1587=SPOCK.check(t218,SPOCK.Pair,"cddddr");var t223=t1587;var t1588=t223.cdr;var t217=t1588;var t1589=SPOCK.check(t217,SPOCK.Pair,"cddddr");var t224=t1589;var t1590=t224.cdr;return k1094(t1590);}};___cddddr=t1582;var t1592=function(k1095,t225){var t225=SPOCK.rest(arguments,1,'append');var t1594=null;var t1593=(t225)===(t1594);var t948=t1593;var t1595;if(t948!==false){var t1596=null;return k1095(t1596);}
+else{var t229=undefined;var t1598=function(k1096,t230){var r=SPOCK.count(arguments,"t229");if(r)return r;var t1599=t230.cdr;var t231=t1599;var t1601=null;var t1600=(t231)===(t1601);var t949=t1600;var t1602;if(t949!==false){var t1603=t230.car;return k1096(t1603);}
+else{var t236=undefined;var t1605=function(k1097,t237){var r=SPOCK.count(arguments,"t236");if(r)return r;var t1606=(t237)instanceof SPOCK.Pair;var t950=t1606;var t1607;if(t950!==false){var t1608=t237.car;var t239=t1608;var t1609=function(t1098){var t240=t1098;var t1610=new SPOCK.Pair(t239,t240);return k1097(t1610);};var t1612=t237.cdr;return t236(t1609,t1612);}
+else{var t243=t230;var t1614=t243.cdr;return t229(k1097,t1614);}};t236=t1605;var t1616=t230.car;return t236(k1096,t1616);}};t229=t1598;return t229(k1095,t225);}};___append=t1592;var t1619=function(k1099,t245){var r=SPOCK.count(arguments,"reverse");if(r)return r;var t246=undefined;var t1620=function(k1100,t247,t248){var r=SPOCK.count(arguments,"t246");if(r)return r;loop:while(true){var t1621=(t247)instanceof SPOCK.Pair;var t951=t1621;var t1622;if(t951!==false){var t1625=t247.cdr;var t1623=t1625;var t1626=t247.car;var t251=t1626;var t1627=new SPOCK.Pair(t251,t248);var t1624=t1627;t247=t1623;t248=t1624;continue loop;}
+else{return k1100(t248);}}};t246=t1620;var t1629=null;return t246(k1099,t245,t1629);};___reverse=t1619;var t1631=function(k1101,t254,t255){var r=SPOCK.count(arguments,"list-tail");if(r)return r;var t256=undefined;var t1632=function(k1102,t257,t258){var r=SPOCK.count(arguments,"t256");if(r)return r;loop:while(true){var t1634=(t257)<=0;var t1633;if(t1634!==false){return k1102(t258);}
+else{var t1638=(t257)-1;var t1636=t1638;var t1639=SPOCK.check(t258,SPOCK.Pair,"t256");var t259=t1639;var t1640=t259.cdr;var t1637=t1640;t257=t1636;t258=t1637;continue loop;}}};t256=t1632;var t1641=SPOCK.check(t255,'number',"list-tail");return t256(k1101,t1641,t254);};___list_2dtail=t1631;var t260=___list_2dtail;var t1643=function(k1103,t261,t262){var r=SPOCK.count(arguments,"t260");if(r)return r;var t1644=function(t1105){var t1645=SPOCK.check(t1105,SPOCK.Pair);var t1104=t1645;var t263=t1104;var t1646=t263.car;return k1103(t1646);};return t260(t1644,t261,t262);};___list_2dref=t1643;var t1649=function(K){SPOCK.count(arguments,'memq');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){if(n.car===x)return K(n);}
+return K(false);};___memq=t1649;var t1650=function(K){SPOCK.count(arguments,'memv');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){if(SPOCK.eqvp(n.car,x))return K(n);}
+return K(false);};___memv=t1650;var t1651=function(K){SPOCK.count(arguments,'member');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){if(SPOCK.equalp(n.car,x))return K(n);}
+return K(false);};___member=t1651;var t1652=function(K){SPOCK.count(arguments,'assq');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){var p=n.car;if(p instanceof SPOCK.Pair&&p.car===x)return K(p);}
+return K(false);};___assq=t1652;var t1653=function(K){SPOCK.count(arguments,'assv');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){var p=n.car;if(p instanceof SPOCK.Pair&&SPOCK.eqvp(p.car,x))return K(p);}
+return K(false);};___assv=t1653;var t1654=function(K){SPOCK.count(arguments,'assoc');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){var p=n.car;if(p instanceof SPOCK.Pair&&SPOCK.equalp(p.car,x))return K(p);}
+return K(false);};___assoc=t1654;var t1655=function(K){SPOCK.count(arguments,'%+');var len=arguments.length;switch(len){case 1:return K(0);case 2:return K(SPOCK.check(arguments[1],'number','+'));default:var p=SPOCK.check(arguments[1],'number','+');for(var i=2;i<len;++i){p+=SPOCK.check(arguments[i],'number','+');}
+return K(p);}};____25_2b=t1655;var t1656=function(K){SPOCK.count(arguments,'%-');var len=arguments.length;switch(len){case 1:SPOCK.error('(-) bad argument count',len);case 2:return K(-SPOCK.check(arguments[1],'number','-'));default:var p=SPOCK.check(arguments[1],'number','-');for(var i=2;i<len;++i){p-=SPOCK.check(arguments[i],'number','-');}
+return K(p);}};____25_2d=t1656;var t1657=function(K){SPOCK.count(arguments,'%*');var len=arguments.length;switch(len){case 1:return K(1);case 2:return K(SPOCK.check(arguments[1],'number','*'));default:var p=SPOCK.check(arguments[1],'number','*');for(var i=2;i<len;++i){p*=SPOCK.check(arguments[i],'number','*');}
+return K(p);}};____25_2a=t1657;var t1658=function(K){SPOCK.count(arguments,'%/');var len=arguments.length;switch(len){case 1:SPOCK.error('(/) bad argument count',len);case 2:return K(1/SPOCK.check(arguments[1],'number','/'));default:var p=SPOCK.check(arguments[1],'number','/');for(var i=2;i<len;++i){p/=SPOCK.check(arguments[i],'number','/');}
+return K(p);}};____25_2f=t1658;var t1659=function(K){SPOCK.count(arguments,'%=');var argc=arguments.length;var last=SPOCK.check(arguments[1],'number','=');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','=');if(last!==x)return K(false);else last=x;}
+return K(true);};____25_3d=t1659;var t1660=function(K){SPOCK.count(arguments,'%>');var argc=arguments.length;var last=SPOCK.check(arguments[1],'number','>');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','>');if(last<=x)return K(false);else last=x;}
+return K(true);};____25_3e=t1660;var t1661=function(K){SPOCK.count(arguments,'%<');var argc=arguments.length;var last=SPOCK.check(arguments[1],'number','<');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','<');if(last>=x)return K(false);else last=x;}
+return K(true);};____25_3c=t1661;var t1662=function(K){SPOCK.count(arguments,'%>=');var argc=arguments.length;var last=SPOCK.check(arguments[1],'number','>=');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','>=');if(last<x)return K(false);else last=x;}
+return K(true);};____25_3e_3d=t1662;var t1663=function(K){SPOCK.count(arguments,'%<=');var argc=arguments.length;var last=SPOCK.check(arguments[1],'number','<=');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','<=');if(last>x)return K(false);else last=x;}
+return K(true);};____25_3c_3d=t1663;var t1664=function(K){SPOCK.count(arguments,'%max');var argc=arguments.length;var n=SPOCK.check(arguments[1],'number','max');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','max');if(n<x)n=x;}
+return K(n);};____25max=t1664;var t1665=function(K){SPOCK.count(arguments,'%min');var argc=arguments.length;var n=SPOCK.check(arguments[1],'number','max');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','max');if(n>x)n=x;}
+return K(n);};____25min=t1665;var t1666=function(k1106,t264,t265){var r=SPOCK.count(arguments,"modulo");if(r)return r;loop:while(true){var t1668=SPOCK.check(t264,'number',"modulo");var t1669=SPOCK.check(t265,'number',"modulo");var t1667=(t1668)/(t1669);var t275=t1667;var t1670=SPOCK.check(t275,'number',"modulo");var t1672=(t275)<0;var t1671;if(t1672!==false){var t1673=Math.ceil(t275);t1671=t1673;}
+else{var t1674=Math.floor(t275);t1671=t1674;}
+var t271=t1671;var t1676=SPOCK.check(t271,'number',"modulo");var t1677=SPOCK.check(t265,'number',"modulo");var t1675=(t1676)*(t1677);var t270=t1675;var t1679=SPOCK.check(t264,'number',"modulo");var t1680=SPOCK.check(t270,'number',"modulo");var t1678=(t1679)-(t1680);var t266=t1678;var t1682=SPOCK.check(t265,'number',"modulo");var t1683=SPOCK.check(0,'number',"modulo");var t1681=(t1682)<(t1683);var t952=t1681;var t1684;if(t952!==false){var t1686=SPOCK.check(t266,'number',"modulo");var t1687=SPOCK.check(0,'number',"modulo");var t1685=(t1686)<=(t1687);var t953=t1685;var t1688;if(t953!==false){t1688=t266;}
+else{var t1690=SPOCK.check(t266,'number',"modulo");var t1691=SPOCK.check(t265,'number',"modulo");var t1689=(t1690)+(t1691);t1688=t1689;}
+t1684=t1688;}
+else{var t1693=SPOCK.check(t266,'number',"modulo");var t1694=SPOCK.check(0,'number',"modulo");var t1692=(t1693)>=(t1694);var t954=t1692;var t1695;if(t954!==false){t1695=t266;}
+else{var t1697=SPOCK.check(t266,'number',"modulo");var t1698=SPOCK.check(t265,'number',"modulo");var t1696=(t1697)+(t1698);t1695=t1696;}
+t1684=t1695;}
+return k1106(t1684);}};___modulo=t1666;var t1700=function(k1107,t289,t290){var r=SPOCK.count(arguments,"t288");if(r)return r;loop:while(true){var t1702=SPOCK.check(t289,'number',"t288");var t1703=SPOCK.check(t290,'number',"t288");var t1701=(t1702)/(t1703);var t297=t1701;var t1704=SPOCK.check(t297,'number',"t288");var t1706=(t297)<0;var t1705;if(t1706!==false){var t1707=Math.ceil(t297);t1705=t1707;}
+else{var t1708=Math.floor(t297);t1705=t1708;}
+var t293=t1705;var t1710=SPOCK.check(t293,'number',"t288");var t1711=SPOCK.check(t290,'number',"t288");var t1709=(t1710)*(t1711);var t292=t1709;var t1713=SPOCK.check(t289,'number',"t288");var t1714=SPOCK.check(t292,'number',"t288");var t1712=(t1713)-(t1714);return k1107(t1712);}};var t288=t1700;var t1716=function(k1108,t300,t301){var r=SPOCK.count(arguments,"t288");if(r)return r;var t302=undefined;var t1717=function(k1109,t303,t304){var r=SPOCK.count(arguments,"t302");if(r)return r;var t1718=SPOCK.check(t304,'number',"t302");var t307=t1718;var t1719=(0)===(t307);var t955=t1719;var t1720;if(t955!==false){var t1722=SPOCK.check(t303,'number',"t302");var t1721=Math.abs(t1722);return k1109(t1721);}
+else{var t1724=function(t1110){return t302(k1109,t304,t1110);};return t288(t1724,t303,t304);}};t302=t1717;return t302(k1108,t300,t301);};____25gcd=t1716;var t1728=function(k1111,t309){var t309=SPOCK.rest(arguments,1,'gcd');var t1730=null;var t1729=(t309)===(t1730);var t956=t1729;var t1731;if(t956!==false){return k1111(0);}
+else{var t313=undefined;var t1733=function(k1112,t314,t315){var r=SPOCK.count(arguments,"t313");if(r)return r;var t1734=t314.car;var t316=t1734;var t1735=t314.cdr;var t317=t1735;var t1736;if(t315!==false){var t1737=SPOCK.check(t316,'number',"t313");t1736=t1737;}
+else{}
+var t1739=null;var t1738=(t317)===(t1739);var t957=t1738;var t1740;if(t957!==false){var t1742=SPOCK.check(t316,'number',"t313");var t1741=Math.abs(t1742);return k1112(t1741);}
+else{var t1744=t317.car;var t324=t1744;var t1745=SPOCK.check(t324,'number',"t313");var t1746=function(t1114){var t326=t1114;var t1747=t317.cdr;var t327=t1747;var t1748=new SPOCK.Pair(t326,t327);var t1113=t1748;return t313(k1112,t1113,false);};return ____25gcd(t1746,t316,t324);}};t313=t1733;return t313(k1111,t309,true);}};___gcd=t1728;var t1752=function(k1115,t329,t330){var r=SPOCK.count(arguments,"%lcm");if(r)return r;var t1754=SPOCK.check(t329,'number',"%lcm");var t1755=SPOCK.check(t330,'number',"%lcm");var t1753=(t1754)*(t1755);var t331=t1753;var t1756=function(t1116){var t332=t1116;var t1758=SPOCK.check(t331,'number');var t1759=SPOCK.check(t332,'number');var t1757=(t1758)/(t1759);var t335=t1757;var t1760=SPOCK.check(t335,'number');var t1762=(t335)<0;var t1761;if(t1762!==false){var t1763=Math.ceil(t335);t1761=t1763;}
+else{var t1764=Math.floor(t335);t1761=t1764;}
+return k1115(t1761);};return ____25gcd(t1756,t329,t330);};____25lcm=t1752;var t1767=function(k1117,t338){var t338=SPOCK.rest(arguments,1,'lcm');var t1769=null;var t1768=(t338)===(t1769);var t958=t1768;var t1770;if(t958!==false){return k1117(1);}
+else{var t342=undefined;var t1772=function(k1118,t343,t344){var r=SPOCK.count(arguments,"t342");if(r)return r;var t1773=t343.car;var t345=t1773;var t1774=t343.cdr;var t346=t1774;var t1775;if(t344!==false){var t1776=SPOCK.check(t345,'number',"t342");t1775=t1776;}
+else{}
+var t1778=null;var t1777=(t346)===(t1778);var t959=t1777;var t1779;if(t959!==false){var t1781=SPOCK.check(t345,'number',"t342");var t1780=Math.abs(t1781);return k1118(t1780);}
+else{var t1783=t346.car;var t353=t1783;var t1784=SPOCK.check(t353,'number',"t342");var t1785=function(t1120){var t355=t1120;var t1786=t346.cdr;var t356=t1786;var t1787=new SPOCK.Pair(t355,t356);var t1119=t1787;return t342(k1118,t1119,false);};return ____25lcm(t1785,t345,t353);}};t342=t1772;return t342(k1117,t338,true);}};___lcm=t1767;var t1791=function(K){SPOCK.count(arguments,'string->symbol');var str=SPOCK.jstring(arguments[1]);return K(SPOCK.intern(str));};___string_2d_3esymbol=t1791;var t1792=function(k1121,t358,t359){var r=SPOCK.count(arguments,"get");if(r)return r;loop:while(true){var t1794=SPOCK.check(t358,SPOCK.Symbol,"get");var t1796=SPOCK.check(t359,SPOCK.Symbol,"get");var t1795=t1796.name;var t1793=(t1794).plist[(t1795)];var t360=t1793;var t1797=t360===undefined;var t361=t1797;var t1798;if(t361!==false){t1798=false;}
+else{t1798=true;}
+var t960=t1798;var t1799;if(t960!==false){t1799=t360;}
+else{t1799=false;}
+return k1121(t1799);}};___get=t1792;var t1801=function(k1122,t363,t364,t365){var r=SPOCK.count(arguments,"put!");if(r)return r;loop:while(true){var t1803=SPOCK.check(t363,SPOCK.Symbol,"put!");var t1805=SPOCK.check(t364,SPOCK.Symbol,"put!");var t1804=t1805.name;var t1802=(t1803).plist[(t1804)]=(t365);return k1122(t1802);}};___put_21=t1801;var t1807=function(K){SPOCK.count(arguments,'string-append');var args=Array.prototype.slice.call(arguments,1);var strs=SPOCK.map(function(x){return SPOCK.jstring(x);},args);return K(new SPOCK.String(strs));};___string_2dappend=t1807;var t1808=function(K){SPOCK.count(arguments,'string');var str=[];var len=arguments.length-1;for(var i=1;i<=len;++i){var x=arguments[i];if(x instanceof SPOCK.Char)str.push(x.character);else SPOCK.error('bad argument type - not a character',x);}
+return K(new SPOCK.String(str.join('')));};___string=t1808;var t1809=function(K){SPOCK.count(arguments,'string->list');var str=SPOCK.jstring(arguments[1]);var lst=null;var len=str.length;for(var i=len-1;i>=0;--i)
+lst=new SPOCK.Pair(new SPOCK.Char(str.charAt(i)),lst);return K(lst);};___string_2d_3elist=t1809;var t1810=function(K){SPOCK.count(arguments,'list->string');var lst=arguments[1];var str=[];while(lst instanceof SPOCK.Pair){str.push(SPOCK.check(lst.car,SPOCK.Char).character);lst=lst.cdr;}
+return K(new SPOCK.String(str.join('')));};___list_2d_3estring=t1810;var t1811=function(K){SPOCK.count(arguments,'make-string');var n=SPOCK.check(arguments[1],'number','make-string');var c=arguments[2];var a=new Array(n);if(c!==undefined)
+c=SPOCK.check(c,SPOCK.Char,'make-string').character;else c=' ';for(var i=0;i<n;++i)a[i]=c;return K(new SPOCK.String(a.join('')));};___make_2dstring=t1811;var t1812=function(K){SPOCK.count(arguments,'string-ref');var str=arguments[1];var i=SPOCK.check(arguments[2],'number','string-ref');if(typeof str==='string')
+return K(new SPOCK.Char(str.charAt(i)));else if(str instanceof SPOCK.String){var parts=str.parts;for(var p in parts){var l=parts[p].length;if(i<=l)return K(new SPOCK.Char(parts[p].charAt(i)));else i-=l;}
+SPOCK.error('`string-ref\' out of range',str,i);}};___string_2dref=t1812;var t1813=function(K){SPOCK.count(arguments,'string-set!');var str=arguments[1];var i=SPOCK.check(arguments[2],'number','string-set!');var c=SPOCK.check(arguments[3],SPOCK.Char,'string-set!');if(typeof str==='string')
+SPOCK.error('argument to `string-set!\' is not a mutable string',str);else if(str instanceof SPOCK.String){var parts=str.parts;for(var p in parts){var part=parts[p];var l=part.length;if(i<=l){parts[p]=part.substring(0,i)+c.character+part.substring(i+1);return K(undefined);}else i-=l;}
+SPOCK.error('`string-set!\' out of range',str,i);}};___string_2dset_21=t1813;var t1814=function(k1123,t366,t367,t368){var r=SPOCK.count(arguments,"string-copy");if(r)return r;loop:while(true){var t1815=SPOCK.jstring(t366);var t369=t1815;var t1816=t367===undefined;var t961=t1816;var t1817;if(t961!==false){t1817=0;}
+else{var t1818=SPOCK.check(t367,'number',"string-copy");t1817=t1818;}
+var t371=t1817;var t1819=t368===undefined;var t962=t1819;var t1820;if(t962!==false){var t1821=t369.length;t1820=t1821;}
+else{var t1822=SPOCK.check(t368,'number',"string-copy");t1820=t1822;}
+var t373=t1820;var t1823=t369.slice(t371,t373);var t375=t1823;var t1824=new SPOCK.String(t375);return k1123(t1824);}};___string_2dcopy=t1814;var t1826=function(k1124,t376,t377,t378,t379){var r=SPOCK.count(arguments,"string-fill!");if(r)return r;var t1827=(t376)instanceof SPOCK.String;var t380=t1827;var t1828;if(t380!==false){t1828=false;}
+else{t1828=true;}
+var t963=t1828;var t1829=function(t1125){var t1830=t376.normalize();var t381=t1830;var t1831=SPOCK.check(t377,SPOCK.Char,"t1126");var t382=t1831;var t1832=t378===undefined;var t964=t1832;var t1833;if(t964!==false){t1833=0;}
+else{var t1834=SPOCK.check(t378,'number',"t1126");t1833=t1834;}
+var t383=t1833;var t1835=t379===undefined;var t965=t1835;var t1836;if(t965!==false){var t1837=t381.length;t1836=t1837;}
+else{var t1838=SPOCK.check(t379,'number',"t1126");t1836=t1838;}
+var t385=t1836;var t1839=function(K){SPOCK.count(arguments);var str=arguments[1];var from=arguments[2];var to=arguments[3];var c=arguments[4];var snew=new Array(to-from);for(var i in snew)snew[i]=c;str.parts=[str.parts[0].substring(0,from),snew.join(''),str.parts[0].substring(to)];return K(str);};return t1839(k1124,t376,t383,t385,t382);};var t1126=t1829;var t1841;if(t963!==false){return ____25error(t1126,"bad argument type - not a mutable string",t376);}
+else{return t1126(undefined);}};___string_2dfill_21=t1826;var t1844=function(K){SPOCK.count(arguments,'vector');return K(Array.prototype.slice.call(arguments,1));};___vector=t1844;var t1845=function(K){SPOCK.count(arguments,'make-vector');var n=SPOCK.check(arguments[1],'number','make-vector');var x=arguments[2];var a=new Array(n);if(x!==undefined){for(var i=0;i<n;++i)a[i]=x;}
+return K(a);};___make_2dvector=t1845;var t1846=function(K){SPOCK.count(arguments,'vector->list');var vec=SPOCK.check(arguments[1],Array,'vector->list');var lst=null;var len=vec.length;for(var i=len-1;i>=0;--i)
+lst=new SPOCK.Pair(vec[i],lst);return K(lst);};___vector_2d_3elist=t1846;var t1847=function(K){SPOCK.count(arguments,'list->vector');var lst=arguments[1];var vec=[];while(lst instanceof SPOCK.Pair){vec.push(lst.car);lst=lst.cdr;}
+return K(vec);};___list_2d_3evector=t1847;var t1848=function(K){SPOCK.count(arguments,'vector-fill!');var vec=SPOCK.check(arguments[1],Array,'vector-fill!');var x=arguments[2];var from=arguments[3];var to=arguments[4];if(from===undefined)from=0;if(to===undefined)to=vec.length;for(var i=from;i<to;++i)
+vec[i]=x;return K(undefined);};___vector_2dfill_21=t1848;var t1849=function(K){SPOCK.count(arguments,'string->number');var str=SPOCK.jstring(arguments[1]);var base=arguments[2];if(!base)base=10;else base=SPOCK.check(base,'number','string->number');var m=true,neg=1;while(m){m=str.match(/^#[eboxid]/);if(m){switch(str[1]){case'e':case'i':break;case'd':base=10;break;case'o':base=8;break;case'x':base=16;break;case'b':base=2;break;default:return K(false);}
+str=str.substring(2);}}
+switch(str[0]){case'-':neg=-1;str=str.substring(1);break;case'+':str=str.substring(1);}
+var num,den=false;if((m=str.match(/^([^\/]+)\/(.+)$/))){str=m[1];den=m[2];}
+function num3(s){var tr=null;switch(base){case 2:tr=/^[0-1]+$/;break;case 8:tr=/^[0-7]+$/;break;case 10:tr=/^[#0-9]*\.?[#0-9]+([esdfl][-+]?[0-9]+)?$/;break;case 16:tr=/^[0-9a-fA-F]+$/;}
+if(tr&&!s.match(tr))return false;var s2=s.replace(/#/g,'0');if(base===10)s2=parseFloat(s2.replace(/[esdfl]/g,'e'));else if(s2!==s)return false;else s2=parseInt(s2,base);return isNaN(s2)?false:s2;}
+if((num=num3(str))===false)return K(false);if(den&&!(den=num3(den)))return K(false);return K(neg*num/(den||1));};___string_2d_3enumber=t1849;var t1850=function(K){SPOCK.count(arguments,'%show');arguments[2].write(arguments[1]);return K(undefined);};____25show=t1850;var t1851=function(K){SPOCK.count(arguments,'%fetch');return K(arguments[2].read(arguments[1]));};____25fetch=t1851;var t1852=function(K){SPOCK.count(arguments,'%check-port');var port=arguments[1];var dir=arguments[2];if(port instanceof SPOCK.Port){if(port.closed)
+SPOCK.error('port is already closed',port);else if(port.direction!==dir)
+SPOCK.error('bad argument type - not an '+dir+' port',port,arguments[3]);}
+else SPOCK.error('bad argument type - not a port',port,arguments[3]);return K(port);};____25check_2dport=t1852;var t1853=function(k1127,t387){var r=SPOCK.count(arguments,"newline");if(r)return r;var t1854=t387===undefined;var t966=t1854;var t1855=function(t1128){return ____25show(k1127,"\n",t1128);};var t1129=t1855;var t1857;if(t966!==false){return t1129(SPOCK.stdout);}
+else{return ____25check_2dport(t1129,t387,"output","newline");}};___newline=t1853;var t1860=function(k1130,t389){var r=SPOCK.count(arguments,"read-char");if(r)return r;var t1861=t389===undefined;var t967=t1861;var t1862=function(t1132){var t1863=function(t1131){var t390=t1131;var t394=SPOCK.EOF;var t1864=(t390)===(t394);var t968=t1864;var t1865;if(t968!==false){t1865=t390;}
+else{var t1866=new SPOCK.Char(t390);t1865=t1866;}
+return k1130(t1865);};return ____25fetch(t1863,1,t1132);};var t1133=t1862;var t1869;if(t967!==false){return t1133(SPOCK.stdin);}
+else{return ____25check_2dport(t1133,t389,"input","read-char");}};___read_2dchar=t1860;var t1872=function(k1134,t395,t396){var r=SPOCK.count(arguments,"write-char");if(r)return r;var t1873=t396===undefined;var t969=t1873;var t1874=function(t1135){var t1876=SPOCK.check(t395,SPOCK.Char,"t1136");var t1875=t1876.character;return ____25show(k1134,t1875,t1135);};var t1136=t1874;var t1878;if(t969!==false){return t1136(SPOCK.stdout);}
+else{return ____25check_2dport(t1136,t396,"output","write-char");}};___write_2dchar=t1872;var t398=___read_2dchar;var t1881=function(k1137,t399){var r=SPOCK.count(arguments,"t398");if(r)return r;var t1882=function(t1138){var t400=t1138;var t404=SPOCK.EOF;var t1883=(t400)===(t404);var t401=t1883;var t1884;if(t401!==false){t1884=false;}
+else{t1884=true;}
+var t970=t1884;var t1885;if(t970!==false){var t1887=t400.character;var t1886=(t399).peeked=(t1887);t1885=t1886;}
+else{}
+return k1137(t400);};return t398(t1882,t399);};___peek_2dchar=t1881;var t1890=function(k1139,t405){var r=SPOCK.count(arguments,"char-ready?");if(r)return r;var t1891=function(t1140){var t1892=t405.ready();return k1139(t1892);};return ____25check_2dport(t1891,t405,"input","char-ready?");};___char_2dready_3f=t1890;var t1895=function(k1141,t406,t407,t408){var r=SPOCK.count(arguments,"%print-hook");if(r)return r;return ____25show(k1141,"#<unknown object>",t407);};____25print_2dhook=t1895;var t1897=function(k1142,t409,t410){var r=SPOCK.count(arguments,"display");if(r)return r;var t1898=t410===undefined;var t971=t1898;var t1899=function(t1143){var t411=t1143;var t413=undefined;var t1900=function(k1144,t414){var r=SPOCK.count(arguments,"t413");if(r)return r;var t1902=null;var t1901=(t414)===(t1902);var t972=t1901;var t1903;if(t972!==false){return ____25show(k1144,"()",t411);}
+else{var t1905=typeof(t414);var t419=t1905;var t1906=(t419)===("number");var t973=t1906;var t1907;if(t973!==false){var t1910=SPOCK.check(t414,'number',"t413");var t1911=undefined===undefined;var t974=t1911;var t1912;if(t974!==false){t1912=10;}
+else{var t1913=SPOCK.check(undefined,'number',"t413");t1912=t1913;}
+var t1909=t1910.toString(t1912);var t1908=new SPOCK.String(t1909);var t421=t1908;var t1914=SPOCK.jstring(t421);return ____25show(k1144,t1914,t411);}
+else{var t1916=typeof(t414);var t427=t1916;var t1917=(t427)===("string");var t426=t1917;var t1918;if(t426!==false){t1918=t426;}
+else{var t1919=(t414)instanceof SPOCK.String;t1918=t1919;}
+var t975=t1918;var t1920;if(t975!==false){var t1921=SPOCK.jstring(t414);return ____25show(k1144,t1921,t411);}
+else{var t1923=(t414)instanceof SPOCK.Symbol;var t976=t1923;var t1924;if(t976!==false){var t1925=t414.name;return ____25show(k1144,t1925,t411);}
+else{var t1927=(t414)instanceof SPOCK.Char;var t977=t1927;var t1928;if(t977!==false){var t1929=t414.character;return ____25show(k1144,t1929,t411);}
+else{var t433=SPOCK.EOF;var t1931=(t414)===(t433);var t978=t1931;var t1932;if(t978!==false){return ____25show(k1144,"#<eof>",t411);}
+else{var t1934=typeof(t414);var t435=t1934;var t1935=(t435)===("function");var t979=t1935;var t1936;if(t979!==false){return ____25show(k1144,"#<procedure>",t411);}
+else{var t1938=(t414)===(true);var t438=t1938;var t1939;if(t438!==false){t1939=t438;}
+else{var t1940=(t414)===(false);t1939=t1940;}
+var t980=t1939;var t1941;if(t980!==false){var t1942;if(t414!==false){t1942="#t";}
+else{t1942="#f";}
+return ____25show(k1144,t1942,t411);}
+else{var t1944=(t414)instanceof SPOCK.Pair;var t981=t1944;var t1945;if(t981!==false){var t1946=function(t1145){var t444=undefined;var t1947=function(k1146,t445){var r=SPOCK.count(arguments,"t444");if(r)return r;var t1949=null;var t1948=(t445)===(t1949);var t982=t1948;var t1950;if(t982!==false){return ____25show(k1146,")",t411);}
+else{var t1952=(t445)instanceof SPOCK.Pair;var t449=t1952;var t1953;if(t449!==false){t1953=false;}
+else{t1953=true;}
+var t983=t1953;var t1954;if(t983!==false){var t1955=function(t1147){var t1956=function(t1148){return ____25show(k1146,")",t411);};return t413(t1956,t445);};return ____25show(t1955," . ",t411);}
+else{var t452=t414;var t1960=(t452)===(t445);var t451=t1960;var t1961;if(t451!==false){t1961=false;}
+else{t1961=true;}
+var t984=t1961;var t1962=function(t1149){var t1963=function(t1150){var t1964=SPOCK.check(t445,SPOCK.Pair);var t456=t1964;var t1965=t456.cdr;return t444(k1146,t1965);};var t1967=t445.car;return t413(t1963,t1967);};var t1151=t1962;var t1969;if(t984!==false){return ____25show(t1151," ",t411);}
+else{return t1151(undefined);}
+t1954=t1969;}
+t1950=t1954;}};t444=t1947;return t444(k1144,t414);};return ____25show(t1946,"(",t411);}
+else{var t1974=t414===undefined;var t985=t1974;var t1975;if(t985!==false){return ____25show(k1144,"#<undefined>",t411);}
+else{var t1977=(t414)instanceof Array;var t986=t1977;var t1978;if(t986!==false){var t1979=t414.length;var t459=t1979;var t1980=function(t1152){var t460=undefined;var t1981=function(k1153,t461){var r=SPOCK.count(arguments,"t460");if(r)return r;var t1983=(t461)>=(t459);var t1982;if(t1983!==false){return ____25show(k1153,")",t411);}
+else{var t1985=(t461)===(0);var t462=t1985;var t1986;if(t462!==false){t1986=false;}
+else{t1986=true;}
+var t987=t1986;var t1987=function(t1154){var t1988=function(t1155){var t1989=1+(t461);return t460(k1153,t1989);};var t1991=(t414)[(t461)];return t413(t1988,t1991);};var t1156=t1987;var t1993;if(t987!==false){return ____25show(t1156," ",t411);}
+else{return t1156(undefined);}
+t1982=t1993;}};t460=t1981;return t460(k1144,0);};return ____25show(t1980,"#(",t411);}
+else{var t1999=(t414)instanceof SPOCK.Port;var t1998;if(t1999!==false){var t2000=SPOCK.stringify(t414);return ____25show(k1144,t2000,t411);}
+else{var t2003=(t414)instanceof SPOCK.Promise;var t2002;if(t2003!==false){return ____25show(k1144,"#<promise>",t411);}
+else{var t2005=typeof(t414);var t466=t2005;var t2006=("object")===(t466);var t988=t2006;var t2007;if(t988!==false){return ____25print_2dhook(k1144,t414,t411,false);}
+else{return ____25show(k1144,"#<unknown object>",t411);}
+t2002=t2007;}
+t1998=t2002;}
+t1978=t1998;}
+t1975=t1978;}
+t1945=t1975;}
+t1941=t1945;}
+t1936=t1941;}
+t1932=t1936;}
+t1928=t1932;}
+t1924=t1928;}
+t1920=t1924;}
+t1907=t1920;}
+t1903=t1907;}};t413=t1900;return t413(k1142,t409);};var t1157=t1899;var t2011;if(t971!==false){return t1157(SPOCK.stdout);}
+else{return ____25check_2dport(t1157,t410,"output","display");}};___display=t1897;var t467=___display;var t468=undefined;var t2014=function(K){SPOCK.count(arguments,'t468');var str=arguments[1];var a=[];var len=str.length;for(var i=0;i<len;++i){var c=str.charAt(i);switch(c){case'\n':a.push('\n');break;case'\t':a.push('\t');break;case'\r':a.push('\r');break;case'\"':a.push('\\"');break;case'\\':a.push('\\');break;default:a.push(c);}}
+return K(a.join(''));};t468=t2014;var t2015=function(k1158,t469,t470){var r=SPOCK.count(arguments);if(r)return r;var t2016=t470===undefined;var t989=t2016;var t2017=function(t1159){var t471=t1159;var t473=undefined;var t2018=function(k1160,t474){var r=SPOCK.count(arguments,"t473");if(r)return r;var t2019=typeof(t474);var t477=t2019;var t2020=(t477)===("string");var t476=t2020;var t2021;if(t476!==false){t2021=t476;}
+else{var t2022=(t474)instanceof SPOCK.String;t2021=t2022;}
+var t990=t2021;var t2023;if(t990!==false){var t2024=function(t1161){var t2025=function(t1163){var t2026=function(t1162){return ____25show(k1160,"\"",t471);};return ____25show(t2026,t1163,t471);};var t2029=SPOCK.jstring(t474);return t468(t2025,t2029);};return ____25show(t2024,"\"",t471);}
+else{var t2032=(t474)instanceof SPOCK.Char;var t991=t2032;var t2033;if(t991!==false){var t2034=function(t1164){var t2035=t474.character;var t480=t2035;var t2037=SPOCK.eqvp(t480,"\n");var t992=t2037;var t2038;if(t992!==false){t2038=true;}
+else{t2038=false;}
+var t2036;if(t2038!==false){t2036="newline";}
+else{var t2040=SPOCK.eqvp(t480,"\r");var t993=t2040;var t2041;if(t993!==false){t2041=true;}
+else{t2041=false;}
+var t2039;if(t2041!==false){t2039="return";}
+else{var t2043=SPOCK.eqvp(t480,"\t");var t994=t2043;var t2044;if(t994!==false){t2044=true;}
+else{t2044=false;}
+var t2042;if(t2044!==false){t2042="tab";}
+else{var t2046=SPOCK.eqvp(t480," ");var t995=t2046;var t2047;if(t995!==false){t2047=true;}
+else{t2047=false;}
+var t2045;if(t2047!==false){t2045="space";}
+else{t2045=t480;}
+t2042=t2045;}
+t2039=t2042;}
+t2036=t2039;}
+return ____25show(k1160,t2036,t471);};return ____25show(t2034,"#\\",t471);}
+else{var t2050=(t474)instanceof SPOCK.Pair;var t996=t2050;var t2051;if(t996!==false){var t2052=function(t1165){var t491=undefined;var t2053=function(k1166,t492){var r=SPOCK.count(arguments,"t491");if(r)return r;var t2055=null;var t2054=(t492)===(t2055);var t997=t2054;var t2056;if(t997!==false){return ____25show(k1166,")",t471);}
+else{var t2058=(t492)instanceof SPOCK.Pair;var t496=t2058;var t2059;if(t496!==false){t2059=false;}
+else{t2059=true;}
+var t998=t2059;var t2060;if(t998!==false){var t2061=function(t1167){var t2062=function(t1168){return ____25show(k1166,")",t471);};return t473(t2062,t492);};return ____25show(t2061," . ",t471);}
+else{var t499=t474;var t2066=(t499)===(t492);var t498=t2066;var t2067;if(t498!==false){t2067=false;}
+else{t2067=true;}
+var t999=t2067;var t2068=function(t1169){var t2069=function(t1170){var t2070=SPOCK.check(t492,SPOCK.Pair);var t503=t2070;var t2071=t503.cdr;return t491(k1166,t2071);};var t2073=t492.car;return t473(t2069,t2073);};var t1171=t2068;var t2075;if(t999!==false){return ____25show(t1171," ",t471);}
+else{return t1171(undefined);}
+t2060=t2075;}
+t2056=t2060;}};t491=t2053;return t491(k1160,t474);};return ____25show(t2052,"(",t471);}
+else{var t2080=(t474)instanceof Array;var t1000=t2080;var t2081;if(t1000!==false){var t2082=t474.length;var t505=t2082;var t2083=function(t1172){var t506=undefined;var t2084=function(k1173,t507){var r=SPOCK.count(arguments,"t506");if(r)return r;var t2086=(t507)>=(t505);var t2085;if(t2086!==false){return ____25show(k1173,")",t471);}
+else{var t2088=(t507)===(0);var t508=t2088;var t2089;if(t508!==false){t2089=false;}
+else{t2089=true;}
+var t1001=t2089;var t2090=function(t1174){var t2091=function(t1175){var t2092=1+(t507);return t506(k1173,t2092);};var t2094=(t474)[(t507)];return t473(t2091,t2094);};var t1176=t2090;var t2096;if(t1001!==false){return ____25show(t1176," ",t471);}
+else{return t1176(undefined);}
+t2085=t2096;}};t506=t2084;return t506(k1160,0);};return ____25show(t2083,"#(",t471);}
+else{return t467(k1160,t474,t471);}
+t2051=t2081;}
+t2033=t2051;}
+t2023=t2033;}};t473=t2018;return t473(k1158,t469);};var t1177=t2017;var t2103;if(t989!==false){return t1177(SPOCK.stdout);}
+else{return ____25check_2dport(t1177,t470,"output","write");}};___write=t2015;var t2106=function(K){SPOCK.count(arguments,'apply');var proc=arguments[1];var argc=arguments.length;var lst=arguments[argc-1];var vec=[K].concat(Array.prototype.slice.call(arguments,2,argc-1));if(lst instanceof Array)vec=vec.concat(lst);else{var len=SPOCK.length(lst);var vec2=new Array(len);for(var i=0;lst instanceof SPOCK.Pair;lst=lst.cdr)
+vec2[i++]=lst.car;vec=vec.concat(vec2);}
+return proc.apply(SPOCK.global,vec);};___apply=t2106;var t2107=function(k1178,t511,t512,t513){var r=SPOCK.count(arguments,"for-each");if(r)return r;var t513=SPOCK.rest(arguments,3,'for-each');var t2109=null;var t2108=(t513)===(t2109);var t1002=t2108;var t2110;if(t1002!==false){var t2111=(t512)instanceof Array;var t1003=t2111;var t2112;if(t1003!==false){var t2114=SPOCK.check(t512,Array,"for-each");var t2113=t2114.length;var t518=t2113;var t520=undefined;var t2115=function(k1179,t521){var r=SPOCK.count(arguments,"t520");if(r)return r;var t523=t518;var t2117=SPOCK.check(t521,'number',"t520");var t2118=SPOCK.check(t523,'number',"t520");var t2116=(t2117)>=(t2118);var t1004=t2116;var t2119;if(t1004!==false){return k1179(false);}
+else{var t2121=function(t1180){var t2123=SPOCK.check(t521,'number');var t2124=SPOCK.check(1,'number');var t2122=(t2123)+(t2124);return t520(k1179,t2122);};var t524=t512;var t2127=SPOCK.check(t524,Array,"t520");var t2128=SPOCK.check(t521,'number',"t520");var t2126=(t2127)[(t2128)];return t511(t2121,t2126);}};t520=t2115;return t520(k1178,0);}
+else{var t528=undefined;var t2131=function(k1181,t529){var r=SPOCK.count(arguments,"t528");if(r)return r;var t2132=(t529)instanceof SPOCK.Pair;var t1005=t2132;var t2133;if(t1005!==false){var t2134=function(t1182){var t2135=t529.cdr;return t528(k1181,t2135);};var t2137=t529.car;return t511(t2134,t2137);}
+else{return k1181(undefined);}};t528=t2131;return t528(k1178,t512);}
+t2110=t2112;}
+else{var t533=undefined;var t2141=function(k1183,t534){var r=SPOCK.count(arguments,"t533");if(r)return r;var t536=undefined;var t2142=function(k1189,t537){var r=SPOCK.count(arguments,"t536");if(r)return r;var t2144=null;var t2143=(t537)===(t2144);var t1006=t2143;var t2145;if(t1006!==false){var t2146=null;return k1189(t2146);}
+else{var t2148=t537.car;var t541=t2148;var t2149=(t541)instanceof SPOCK.Pair;var t1007=t2149;var t2150;if(t1007!==false){var t2151=t541.car;var t544=t2151;var t2152=function(t1190){var t545=t1190;var t2153=new SPOCK.Pair(t544,t545);return k1189(t2153);};var t2155=t537.cdr;return t536(t2152,t2155);}
+else{return k1189(false);}
+t2145=t2150;}};t536=t2142;var t2158=function(t1184){var t535=t1184;var t2159;if(t535!==false){var t2160=function(t1185){var t548=undefined;var t2161=function(k1187,t549){var r=SPOCK.count(arguments,"t548");if(r)return r;var t2163=null;var t2162=(t549)===(t2163);var t1008=t2162;var t2164;if(t1008!==false){var t2165=null;return k1187(t2165);}
+else{var t2167=t549.car;var t555=t2167;var t2168=t555.cdr;var t553=t2168;var t2169=function(t1188){var t554=t1188;var t2170=new SPOCK.Pair(t553,t554);return k1187(t2170);};var t2172=t549.cdr;return t548(t2169,t2172);}};t548=t2161;var t2174=function(t1186){return t533(k1183,t1186);};return t548(t2174,t534);};return ___apply(t2160,t511,t535);}
+else{return k1183(undefined);}};return t536(t2158,t534);};t533=t2141;var t2180=new SPOCK.Pair(t512,t513);return t533(k1178,t2180);}};___for_2deach=t2107;var t2182=function(k1191,t560,t561,t562){var r=SPOCK.count(arguments,"map");if(r)return r;var t562=SPOCK.rest(arguments,3,'map');var t2184=null;var t2183=(t562)===(t2184);var t1009=t2183;var t2185;if(t1009!==false){var t2186=(t561)instanceof Array;var t1010=t2186;var t2187;if(t1010!==false){var t2189=SPOCK.check(t561,Array,"map");var t2188=t2189.length;var t567=t2188;var t2190=function(t1192){var t569=t1192;var t570=undefined;var t2191=function(k1193,t571){var r=SPOCK.count(arguments,"t570");if(r)return r;var t573=t567;var t2193=SPOCK.check(t571,'number',"t570");var t2194=SPOCK.check(t573,'number',"t570");var t2192=(t2193)>=(t2194);var t1011=t2192;var t2195;if(t1011!==false){return k1193(t569);}
+else{var t574=t569;var t575=t571;var t2197=function(t1195){var t576=t1195;var t2199=SPOCK.check(t574,Array);var t2200=SPOCK.check(t575,'number');var t2198=(t2199)[(t2200)]=(t576);var t1194=t2198;var t2202=SPOCK.check(t571,'number');var t2203=SPOCK.check(1,'number');var t2201=(t2202)+(t2203);return t570(k1193,t2201);};var t577=t561;var t2206=SPOCK.check(t577,Array,"t570");var t2207=SPOCK.check(t571,'number',"t570");var t2205=(t2206)[(t2207)];return t560(t2197,t2205);}};t570=t2191;return t570(k1191,0);};return ___make_2dvector(t2190,t567);}
+else{var t581=undefined;var t2211=function(k1196,t582){var r=SPOCK.count(arguments,"t581");if(r)return r;var t2212=(t582)instanceof SPOCK.Pair;var t1012=t2212;var t2213;if(t1012!==false){var t2214=function(t1197){var t584=t1197;var t2215=function(t1198){var t585=t1198;var t2216=new SPOCK.Pair(t584,t585);return k1196(t2216);};var t2218=t582.cdr;return t581(t2215,t2218);};var t2220=t582.car;return t560(t2214,t2220);}
+else{var t2222=null;return k1196(t2222);}};t581=t2211;return t581(k1191,t561);}
+t2185=t2187;}
+else{var t588=undefined;var t2225=function(k1199,t589){var r=SPOCK.count(arguments,"t588");if(r)return r;var t591=undefined;var t2226=function(k1206,t592){var r=SPOCK.count(arguments,"t591");if(r)return r;var t2228=null;var t2227=(t592)===(t2228);var t1013=t2227;var t2229;if(t1013!==false){var t2230=null;return k1206(t2230);}
+else{var t2232=t592.car;var t596=t2232;var t2233=(t596)instanceof SPOCK.Pair;var t1014=t2233;var t2234;if(t1014!==false){var t2235=t596.car;var t599=t2235;var t2236=function(t1207){var t600=t1207;var t2237=new SPOCK.Pair(t599,t600);return k1206(t2237);};var t2239=t592.cdr;return t591(t2236,t2239);}
+else{return k1206(false);}
+t2229=t2234;}};t591=t2226;var t2242=function(t1200){var t590=t1200;var t2243;if(t590!==false){var t2244=function(t1201){var t603=t1201;var t605=undefined;var t2245=function(k1204,t606){var r=SPOCK.count(arguments,"t605");if(r)return r;var t2247=null;var t2246=(t606)===(t2247);var t1015=t2246;var t2248;if(t1015!==false){var t2249=null;return k1204(t2249);}
+else{var t2251=t606.car;var t612=t2251;var t2252=t612.cdr;var t610=t2252;var t2253=function(t1205){var t611=t1205;var t2254=new SPOCK.Pair(t610,t611);return k1204(t2254);};var t2256=t606.cdr;return t605(t2253,t2256);}};t605=t2245;var t2258=function(t1203){var t2259=function(t1202){var t604=t1202;var t2260=new SPOCK.Pair(t603,t604);return k1199(t2260);};return t588(t2259,t1203);};return t605(t2258,t589);};return ___apply(t2244,t560,t590);}
+else{var t2265=null;return k1199(t2265);}};return t591(t2242,t589);};t588=t2225;var t2268=new SPOCK.Pair(t561,t562);return t588(k1191,t2268);}};___map=t2182;var t2270=function(k1208,t619,t620,t621){var r=SPOCK.count(arguments);if(r)return r;var t2271=function(t1209){var t2272=new SPOCK.Pair(t619,t621);var t622=t2272;var t623=SPOCK.dynwinds;var t2273=new SPOCK.Pair(t622,t623);SPOCK.dynwinds=t2273
+var t2274=function(k1210){var t626=SPOCK.dynwinds;var t2275=t626.cdr;SPOCK.dynwinds=t2275
+return t621(k1210);};return ____25call_2dwith_2dsaved_2dvalues(k1208,t620,t2274);};return t619(t2271);};___dynamic_2dwind=t2270;var t2279=function(K){SPOCK.count(arguments,'%call-with-current-continuation');var proc=arguments[1];function cont(){return K.apply(SPOCK.global,Array.prototype.slice.call(arguments,1));}
+return proc(K,cont);};____25call_2dwith_2dcurrent_2dcontinuation=t2279;var t627=undefined;var t2280=function(k1211,t628,t629){var r=SPOCK.count(arguments,"t627");if(r)return r;var t631=SPOCK.dynwinds;var t2281=(t631)===(t628);var t630=t2281;var t2282;if(t630!==false){return k1211(t630);}
+else{var t2285=SPOCK.check(t629,'number',"t627");var t2286=SPOCK.check(0,'number',"t627");var t2284=(t2285)<(t2286);var t1016=t2284;var t2287;if(t1016!==false){var t2288=function(t1212){var t2289=t628.car;var t636=t2289;var t2290=t636.car;var t2291=function(t1213){SPOCK.dynwinds=t628
+return k1211(undefined);};return t2290(t2291);};var t2294=t628.cdr;var t2295=(t629)+1;return t627(t2288,t2294,t2295);}
+else{var t640=SPOCK.dynwinds;var t2297=t640.car;var t639=t2297;var t2298=t639.cdr;var t638=t2298;var t641=SPOCK.dynwinds;var t2299=t641.cdr;SPOCK.dynwinds=t2299
+var t2300=function(t1214){var t2301=(t629)-1;return t627(k1211,t628,t2301);};return t638(t2300);}
+t2282=t2287;}};t627=t2280;var t2304=function(k1215,t642){var r=SPOCK.count(arguments);if(r)return r;var t643=SPOCK.dynwinds;var t2305=function(k1216,t644){var r=SPOCK.count(arguments);if(r)return r;var t2306=function(k1217,t645){var t645=SPOCK.rest(arguments,1);var t646=SPOCK.dynwinds;var t649=t643;var t2307=(t646)===(t649);var t647=t2307;var t2308;if(t647!==false){t2308=false;}
+else{t2308=true;}
+var t1017=t2308;var t2309=function(t1218){return ___apply(k1217,t644,t645);};var t1219=t2309;var t2311;if(t1017!==false){var t2312=SPOCK.length(t646);var t650=t2312;var t653=t643;var t2313=SPOCK.length(t653);var t651=t2313;var t2315=SPOCK.check(t650,'number');var t2316=SPOCK.check(t651,'number');var t2314=(t2315)-(t2316);return t627(t1219,t643,t2314);}
+else{return t1219(undefined);}};return t642(k1216,t2306);};return ____25call_2dwith_2dcurrent_2dcontinuation(k1215,t2305);};___call_2dwith_2dcurrent_2dcontinuation=t2304;var t2321=function(k1220,t654){var r=SPOCK.count(arguments,"%get-context");if(r)return r;return ___vector(k1220,t654,SPOCK.dynwinds,SPOCK.stdin,SPOCK.stdout,SPOCK.stderr);};____25get_2dcontext=t2321;var t2323=function(K){SPOCK.count(arguments,'%restore-context');var state=arguments[1];SPOCK.dynwinds=state[1];SPOCK.stdin=state[2];SPOCK.stdout=state[3];SPOCK.stderr=state[4];return(state[0])(undefined);};____25restore_2dcontext=t2323;var t2324=function(k1221,t655){var r=SPOCK.count(arguments,"suspend");if(r)return r;var t2325=function(k1222,t656){var r=SPOCK.count(arguments);if(r)return r;var t2326=function(t1224){var t2327=function(t1223){var t2328=function(K){SPOCK.count(arguments);return new SPOCK.Result(undefined);};return t2328(k1222);};return t655(t2327,t1224);};return ____25get_2dcontext(t2326,t656);};return ____25call_2dwith_2dcurrent_2dcontinuation(k1221,t2325);};___suspend=t2324;var t2333=function(k1225,t657){var r=SPOCK.count(arguments,"%make-promise");if(r)return r;var t658=false;var t659=false;var t2335=function(k1226){var t2336;if(t658!==false){return ___apply(k1226,___values,t659);}
+else{var t2338=function(k1227,t660){var t660=SPOCK.rest(arguments,1);var t2339;if(t658!==false){return ___apply(k1227,___values,t659);}
+else{t658=true;t659=t660;return ___apply(k1227,___values,t659);}};return ___call_2dwith_2dvalues(k1226,t657,t2338);}};var t2334=new SPOCK.Promise(t2335);return k1225(t2334);};____25make_2dpromise=t2333;var t2344=function(k1228,t661){var r=SPOCK.count(arguments,"force");if(r)return r;var t2346=(t661)instanceof SPOCK.Promise;var t2345;if(t2346!==false){var t2347=t661.thunk;return t2347(k1228);}
+else{return k1228(t661);}};___force=t2344;var t662=___dynamic_2dwind;var t2350=function(k1229,t663,t664){var r=SPOCK.count(arguments,"t662");if(r)return r;var t2351=function(t1230){var t665=false;var t2352=function(k1231){loop:while(true){t665=SPOCK.stdin;SPOCK.stdin=t663
+return k1231(undefined);}};var t2354=function(k1232){loop:while(true){SPOCK.stdin=t665
+return k1232(undefined);}};return t662(k1229,t2352,t664,t2354);};return ____25check_2dport(t2351,t663,"input","with-input-from-port");};___with_2dinput_2dfrom_2dport=t2350;var t666=___dynamic_2dwind;var t2358=function(k1233,t667,t668){var r=SPOCK.count(arguments,"t666");if(r)return r;var t2359=function(t1234){var t669=false;var t2360=function(k1235){loop:while(true){t669=SPOCK.stdout;SPOCK.stdout=t667
+return k1235(undefined);}};var t2362=function(k1236){loop:while(true){SPOCK.stdout=t669
+return k1236(undefined);}};return t666(k1233,t2360,t668,t2362);};return ____25check_2dport(t2359,t667,"output","with-output-to-port");};___with_2doutput_2dto_2dport=t2358;var t2366=function(K){SPOCK.count(arguments,'%close-port');var port=arguments[1];port.close();port.closed=true;return K(port);};____25close_2dport=t2366;var t2367=function(K){SPOCK.count(arguments,'open-input-file');var fn=SPOCK.check(arguments[1],'string','open-input-file');return K(SPOCK.openInputFile(fn));};___open_2dinput_2dfile=t2367;var t2368=function(K){SPOCK.count(arguments,'open-output-file');var fn=SPOCK.check(arguments[1],'string','open-input-file');var exp=null;if(arguments.length===3)
+exp=SPOCK.check(arguments[2],'number','open-input-file');return K(SPOCK.openOutputFile(fn,exp));};___open_2doutput_2dfile=t2368;var t2369=function(k1237,t670){var r=SPOCK.count(arguments,"close-input-port");if(r)return r;var t2370=function(t1238){var t671=t1238;return ____25close_2dport(k1237,t671);};return ____25check_2dport(t2370,t670,"input","close-input-port");};___close_2dinput_2dport=t2369;var t2373=function(k1239,t672){var r=SPOCK.count(arguments,"close-output-port");if(r)return r;var t2374=function(t1240){var t673=t1240;return ____25close_2dport(k1239,t673);};return ____25check_2dport(t2374,t672,"output","close-output-port");};___close_2doutput_2dport=t2373;var t675=___open_2dinput_2dfile;var t2377=function(k1241,t678,t679){var r=SPOCK.count(arguments);if(r)return r;var t2378=function(t1242){var t680=t1242;var t2379=function(k1243){return t679(k1243,t680);};var t2381=function(k1244){return ___close_2dinput_2dport(k1244,t680);};return ____25call_2dwith_2dsaved_2dvalues(k1241,t2379,t2381);};return t675(t2378,t678);};___call_2dwith_2dinput_2dfile=t2377;var t682=___open_2doutput_2dfile;var t2385=function(k1245,t685,t686){var r=SPOCK.count(arguments);if(r)return r;var t2386=function(t1246){var t687=t1246;var t2387=function(k1247){return t686(k1247,t687);};var t2389=function(k1248){return ___close_2doutput_2dport(k1248,t687);};return ____25call_2dwith_2dsaved_2dvalues(k1245,t2387,t2389);};return t682(t2386,t685);};___call_2dwith_2doutput_2dfile=t2385;var t688=___with_2dinput_2dfrom_2dport;var t689=___open_2dinput_2dfile;var t693=___close_2dinput_2dport;var t2393=function(k1249,t694,t695){var r=SPOCK.count(arguments,"t693");if(r)return r;var t2394=function(t1250){var t696=t1250;var t2395=function(k1251){var t2396=function(k1252){return t693(k1252,t696);};return ____25call_2dwith_2dsaved_2dvalues(k1251,t695,t2396);};return t688(k1249,t696,t2395);};return t689(t2394,t694);};___with_2dinput_2dfrom_2dfile=t2393;var t697=___with_2doutput_2dto_2dport;var t698=___open_2doutput_2dfile;var t702=___close_2doutput_2dport;var t2401=function(k1253,t703,t704){var r=SPOCK.count(arguments,"t702");if(r)return r;var t2402=function(t1254){var t705=t1254;var t2403=function(k1255){var t2404=function(k1256){return t702(k1256,t705);};return ____25call_2dwith_2dsaved_2dvalues(k1255,t704,t2404);};return t697(k1253,t705,t2403);};return t698(t2402,t703);};___with_2doutput_2dto_2dfile=t2401;var t2409=function(k1257,t706){var r=SPOCK.count(arguments,"open-input-string");if(r)return r;var t707=undefined;var t2410=function(K){SPOCK.count(arguments,'t707');var buffer=arguments[1];var pos=0;var len=buffer.length;function read(n){if(pos>=len)return SPOCK.EOF;var str=buffer.substring(pos,pos+n);pos+=n;return str;}
+return K(new SPOCK.Port('input',{read:read}));};t707=t2410;var t2411=SPOCK.jstring(t706);return t707(k1257,t2411);};___open_2dinput_2dstring=t2409;var t2413=function(K){SPOCK.count(arguments,'open-output-string');var buffer=[];function write(s){buffer.push(s);}
+var port=new SPOCK.Port('output',{write:write});port.buffer=buffer;port.isStringPort=true;return K(port);};___open_2doutput_2dstring=t2413;var t2414=function(k1258,t709){var r=SPOCK.count(arguments,"get-output-string");if(r)return r;loop:while(true){var t2415=SPOCK.check(t709,SPOCK.Port,"get-output-string");var t710=t2415;var t2416=t710.isStringPort;var t712=t2416;var t2417=t712===undefined;var t711=t2417;var t2418;if(t711!==false){t2418=false;}
+else{t2418=true;}
+var t1018=t2418;var t2419;if(t1018!==false){var t2421=t710.buffer;var t2420=t2421.join("");var t714=t2420;var t2422=new SPOCK.String(t714);var t713=t2422;var t2423=(t710).buffer=[];t2419=t713;}
+else{var t2424=SPOCK.error("bad argument type - not a string port",t710);t2419=t2424;}
+return k1258(t2419);}};___get_2doutput_2dstring=t2414;var t2426=function(k1259,t715,t716){var r=SPOCK.count(arguments,"with-input-from-string");if(r)return r;var t2427=function(t1260){var t717=t1260;return ___with_2dinput_2dfrom_2dport(k1259,t717,t716);};return ___open_2dinput_2dstring(t2427,t715);};___with_2dinput_2dfrom_2dstring=t2426;var t2430=function(k1261,t718){var r=SPOCK.count(arguments,"with-output-to-string");if(r)return r;var t2431=function(t1262){var t719=t1262;var t2432=function(t1263){return ___get_2doutput_2dstring(k1261,t719);};return ___with_2doutput_2dto_2dport(t2432,t719,t718);};return ___open_2doutput_2dstring(t2431);};___with_2doutput_2dto_2dstring=t2430;var t720=___read_2dchar;var t721=___reverse;var t722=___peek_2dchar;var t723=___list_2d_3evector;var t724=___list_2d_3estring;var t2436=function(k1264){loop:while(true){return k1264(SPOCK.stdin);}};var t725=t2436;var t726=___string_2d_3enumber;var t2438=function(k1265,t727){var r=SPOCK.count(arguments,"t726");if(r)return r;var t2439=t727===undefined;var t1019=t2439;var t2440=function(t1266){var t728=t1266;var t730=undefined;var t731=undefined;var t732=undefined;var t733=undefined;var t734=undefined;var t735=undefined;var t736=undefined;var t737=undefined;var t2441=function(k1267,t738){var r=SPOCK.count(arguments,"t730");if(r)return r;var t2442=function(t1268){var t739=t1268;var t2443;if(t739!==false){return k1267(t739);}
+else{return ___string_2d_3esymbol(k1267,t738);}};return t726(t2442,t738);};t730=t2441;var t2447=function(k1269){var t2448=function(t1270){var t740=t1270;var t743=SPOCK.EOF;var t2449=(t740)===(t743);var t1020=t2449;var t2450;if(t1020!==false){return k1269(t740);}
+else{var t744=t740;var t2454=new SPOCK.Char("#");var t2453=SPOCK.eqvp(t740,t2454);var t1021=t2453;var t2455;if(t1021!==false){t2455=true;}
+else{t2455=false;}
+var t2452;if(t2455!==false){return t734(k1269);}
+else{var t2459=new SPOCK.Char("(");var t2458=SPOCK.eqvp(t744,t2459);var t1022=t2458;var t2460;if(t1022!==false){t2460=true;}
+else{t2460=false;}
+var t2457;if(t2460!==false){var t2461=new SPOCK.Char(")");return t735(k1269,t2461);}
+else{var t2465=new SPOCK.Char("[");var t2464=SPOCK.eqvp(t744,t2465);var t1023=t2464;var t2466;if(t1023!==false){t2466=true;}
+else{t2466=false;}
+var t2463;if(t2466!==false){var t2467=new SPOCK.Char("]");return t735(k1269,t2467);}
+else{var t2471=new SPOCK.Char("{");var t2470=SPOCK.eqvp(t744,t2471);var t1024=t2470;var t2472;if(t1024!==false){t2472=true;}
+else{t2472=false;}
+var t2469;if(t2472!==false){var t2473=new SPOCK.Char("}");return t735(k1269,t2473);}
+else{var t2477=new SPOCK.Char(",");var t2476=SPOCK.eqvp(t744,t2477);var t1025=t2476;var t2478;if(t1025!==false){t2478=true;}
+else{t2478=false;}
+var t2475;if(t2478!==false){var t2479=function(t1271){var t755=t1271;var t2481=new SPOCK.Char("@");var t2480=SPOCK.eqvp(t755,t2481);var t1026=t2480;var t2482;if(t1026!==false){var t2483=function(t1273){var t2484=function(t1272){var t757=t1272;return k1269(t757);};var t2486=SPOCK.intern("unquote-splicing");return ____25list(t2484,t2486,t1273);};return t731(t2483);}
+else{var t2489=function(t1275){var t2490=function(t1274){var t758=t1274;return k1269(t758);};var t2492=SPOCK.intern("unquote");return ____25list(t2490,t2492,t1275);};return t731(t2489);}};return t722(t2479,t728);}
+else{var t2498=new SPOCK.Char("`");var t2497=SPOCK.eqvp(t744,t2498);var t1027=t2497;var t2499;if(t1027!==false){t2499=true;}
+else{t2499=false;}
+var t2496;if(t2499!==false){var t2500=function(t1277){var t2501=function(t1276){var t761=t1276;return k1269(t761);};var t2503=SPOCK.intern("quasiquote");return ____25list(t2501,t2503,t1277);};return t731(t2500);}
+else{var t2508=new SPOCK.Char("'");var t2507=SPOCK.eqvp(t744,t2508);var t1028=t2507;var t2509;if(t1028!==false){t2509=true;}
+else{t2509=false;}
+var t2506;if(t2509!==false){var t2510=function(t1279){var t2511=function(t1278){var t764=t1278;return k1269(t764);};var t2513=SPOCK.intern("quote");return ____25list(t2511,t2513,t1279);};return t731(t2510);}
+else{var t2518=new SPOCK.Char(";");var t2517=SPOCK.eqvp(t744,t2518);var t1029=t2517;var t2519;if(t1029!==false){t2519=true;}
+else{t2519=false;}
+var t2516;if(t2519!==false){var t2520=function(t1280){return t731(k1269);};return t732(t2520);}
+else{var t2525=new SPOCK.Char("\"");var t2524=SPOCK.eqvp(t744,t2525);var t1030=t2524;var t2526;if(t1030!==false){t2526=true;}
+else{t2526=false;}
+var t2523;if(t2526!==false){return t736(k1269);}
+else{var t2530=new SPOCK.Char(")");var t2529=SPOCK.eqvp(t744,t2530);var t1031=t2529;var t2531;if(t1031!==false){t2531=true;}
+else{var t2533=new SPOCK.Char("]");var t2532=SPOCK.eqvp(t744,t2533);var t1032=t2532;var t2534;if(t1032!==false){t2534=true;}
+else{var t2536=new SPOCK.Char("}");var t2535=SPOCK.eqvp(t744,t2536);var t1033=t2535;var t2537;if(t1033!==false){t2537=true;}
+else{t2537=false;}
+t2534=t2537;}
+t2531=t2534;}
+var t2528;if(t2531!==false){return ____25error(k1269,"unexpected delimiter",t740);}
+else{var t2540=SPOCK.check(t740,SPOCK.Char);var t2539=(t2540).character.match(/^\s$/);var t777=t2539;var t2542=null;var t2541=(t777)===(t2542);var t776=t2541;var t2543;if(t776!==false){t2543=false;}
+else{t2543=true;}
+var t1034=t2543;var t2544;if(t1034!==false){return t731(k1269);}
+else{var t2546=function(t1283){var t780=t1283;var t1282=t780;var t2547=function(t1281){return t730(k1269,t1281);};return t737(t2547,t1282);};return ____25list(t2546,t740);}
+t2528=t2544;}
+t2523=t2528;}
+t2516=t2523;}
+t2506=t2516;}
+t2496=t2506;}
+t2475=t2496;}
+t2469=t2475;}
+t2463=t2469;}
+t2457=t2463;}
+t2452=t2457;}
+t2450=t2452;}};return t720(t2448,t728);};t731=t2447;var t2552=function(k1284){var t2553=function(t1285){var t781=t1285;var t786=SPOCK.EOF;var t2554=(t781)===(t786);var t783=t2554;var t2555;if(t783!==false){t2555=t783;}
+else{var t2558=new SPOCK.Char("\n");var t2557=SPOCK.check(t2558,SPOCK.Char);var t2556=t2557.character;var t789=t2556;var t2560=SPOCK.check(t781,SPOCK.Char);var t2559=t2560.character;var t790=t2559;var t2561=(t789)===(t790);t2555=t2561;}
+var t782=t2555;var t2562;if(t782!==false){t2562=false;}
+else{t2562=true;}
+var t1035=t2562;var t2563;if(t1035!==false){return t732(k1284);}
+else{return k1284(undefined);}};return t720(t2553,t728);};t732=t2552;var t2567=function(k1286){var t2568=function(t1287){var t791=t1287;var t2570=SPOCK.check(t791,SPOCK.Char);var t2569=(t2570).character.match(/^\s$/);var t794=t2569;var t2572=null;var t2571=(t794)===(t2572);var t793=t2571;var t2573;if(t793!==false){t2573=false;}
+else{t2573=true;}
+var t1036=t2573;var t2574;if(t1036!==false){var t2575=function(t1288){return t733(k1286);};return t720(t2575,t728);}
+else{return k1286(t791);}};return t722(t2568,t728);};t733=t2567;var t2580=function(k1289){var t2581=function(t1290){var t797=t1290;var t800=SPOCK.EOF;var t2582=(t797)===(t800);var t1037=t2582;var t2583;if(t1037!==false){return ____25error(k1289,"unexpected EOF after `#'");}
+else{var t801=t797;var t2587=new SPOCK.Char("t");var t2586=SPOCK.eqvp(t797,t2587);var t1038=t2586;var t2588;if(t1038!==false){t2588=true;}
+else{var t2590=new SPOCK.Char("T");var t2589=SPOCK.eqvp(t797,t2590);var t1039=t2589;var t2591;if(t1039!==false){t2591=true;}
+else{t2591=false;}
+t2588=t2591;}
+var t2585;if(t2588!==false){return k1289(true);}
+else{var t2595=new SPOCK.Char("f");var t2594=SPOCK.eqvp(t797,t2595);var t1040=t2594;var t2596;if(t1040!==false){t2596=true;}
+else{var t2598=new SPOCK.Char("F");var t2597=SPOCK.eqvp(t797,t2598);var t1041=t2597;var t2599;if(t1041!==false){t2599=true;}
+else{t2599=false;}
+t2596=t2599;}
+var t2593;if(t2596!==false){return k1289(false);}
+else{var t2603=new SPOCK.Char("(");var t2602=SPOCK.eqvp(t797,t2603);var t1042=t2602;var t2604;if(t1042!==false){t2604=true;}
+else{t2604=false;}
+var t2601;if(t2604!==false){var t2605=function(t1291){return t723(k1289,t1291);};var t2607=new SPOCK.Char(")");return t735(t2605,t2607);}
+else{var t2611=new SPOCK.Char("%");var t2610=SPOCK.eqvp(t801,t2611);var t1043=t2610;var t2612;if(t1043!==false){t2612=true;}
+else{var t2614=new SPOCK.Char("!");var t2613=SPOCK.eqvp(t801,t2614);var t1044=t2613;var t2615;if(t1044!==false){t2615=true;}
+else{t2615=false;}
+t2612=t2615;}
+var t2609;if(t2612!==false){var t2616=function(t1294){var t816=t1294;var t1293=t816;var t2617=function(t1292){return ___string_2d_3esymbol(k1289,t1292);};return t737(t2617,t1293);};var t2620=new SPOCK.Char("#");return ____25list(t2616,t797,t2620);}
+else{var t2624=new SPOCK.Char("\\");var t2623=SPOCK.eqvp(t801,t2624);var t1045=t2623;var t2625;if(t1045!==false){t2625=true;}
+else{t2625=false;}
+var t2622;if(t2625!==false){var t2626=function(t1295){var t819=t1295;var t2628=SPOCK.jstring("newline");var t2627=t2628.toLowerCase();var t822=t2627;var t2630=SPOCK.jstring(t819);var t2629=t2630.toLowerCase();var t823=t2629;var t2631=(t822)===(t823);var t1046=t2631;var t2632;if(t1046!==false){var t2633=new SPOCK.Char("\n");return k1289(t2633);}
+else{var t2636=SPOCK.jstring("tab");var t2635=t2636.toLowerCase();var t828=t2635;var t2638=SPOCK.jstring(t819);var t2637=t2638.toLowerCase();var t829=t2637;var t2639=(t828)===(t829);var t1047=t2639;var t2640;if(t1047!==false){var t2641=new SPOCK.Char("\t");return k1289(t2641);}
+else{var t2644=SPOCK.jstring("space");var t2643=t2644.toLowerCase();var t834=t2643;var t2646=SPOCK.jstring(t819);var t2645=t2646.toLowerCase();var t835=t2645;var t2647=(t834)===(t835);var t1048=t2647;var t2648;if(t1048!==false){var t2649=new SPOCK.Char(" ");return k1289(t2649);}
+else{var t2652=SPOCK.jstring(t819);var t2651=t2652.length;var t838=t2651;var t2653=SPOCK.check(t838,'number');var t842=t2653;var t2654=(0)===(t842);var t1049=t2654;var t2655;if(t1049!==false){return ____25error(k1289,"invalid character syntax");}
+else{return ___string_2dref(k1289,t819,0);}
+t2648=t2655;}
+t2640=t2648;}
+t2632=t2640;}};var t2658=null;return t737(t2626,t2658);}
+else{return ____25error(k1289,"invalid `#' syntax",t797);}
+t2609=t2622;}
+t2601=t2609;}
+t2593=t2601;}
+t2585=t2593;}
+t2583=t2585;}};return t720(t2581,t728);};t734=t2580;var t2662=function(k1296,t843){var r=SPOCK.count(arguments,"t735");if(r)return r;var t844=undefined;var t2663=function(k1297,t845){var r=SPOCK.count(arguments,"t844");if(r)return r;var t2664=function(t1298){var t846=t1298;var t849=SPOCK.EOF;var t2665=(t846)===(t849);var t1050=t2665;var t2666;if(t1050!==false){return ____25error(k1297,"unexpected EOF while reading list");}
+else{var t851=t843;var t2669=SPOCK.check(t846,SPOCK.Char);var t2668=t2669.character;var t852=t2668;var t2671=SPOCK.check(t851,SPOCK.Char);var t2670=t2671.character;var t853=t2670;var t2672=(t852)===(t853);var t1051=t2672;var t2673;if(t1051!==false){var t2674=function(t1299){return t721(k1297,t845);};return t720(t2674,t728);}
+else{var t2678=new SPOCK.Char(".");var t2677=SPOCK.eqvp(t2678,t846);var t1052=t2677;var t2679;if(t1052!==false){var t2680=function(t1300){var t856=t1300;var t2681=SPOCK.jstring(".");var t859=t2681;var t2682=SPOCK.jstring(t856);var t860=t2682;var t2683=(t859)===(t860);var t1053=t2683;var t2684;if(t1053!==false){var t2685=function(t1301){var t863=t1301;var t2686=function(t1302){var t2687=function(t1303){var t864=t1303;var t865=t843;var t2688=SPOCK.eqvp(t864,t865);var t1054=t2688;var t2689;if(t1054!==false){var t2690=function(t1304){return ___append(k1297,t1304,t863);};return t721(t2690,t845);}
+else{return ____25error(k1297,"missing closing delimiter",t843);}};return t720(t2687,t728);};return t733(t2686);};return t731(t2685);}
+else{var t2697=function(t1306){var t866=t1306;var t2698=new SPOCK.Pair(t866,undefined);var t1305=t2698;return t844(k1297,t1305,t845);};return t730(t2697,t856);}};var t2701=null;return t737(t2680,t2701);}
+else{var t2703=function(t1308){var t868=t1308;var t2704=new SPOCK.Pair(t868,t845);var t1307=t2704;return t844(k1297,t1307);};return t731(t2703);}
+t2673=t2679;}
+t2666=t2673;}};return t733(t2664);};t844=t2663;var t2708=null;return t844(k1296,t2708);};t735=t2662;var t2710=function(k1309){var t870=undefined;var t2711=function(k1310,t871){var r=SPOCK.count(arguments,"t870");if(r)return r;var t2712=function(t1311){var t872=t1311;var t875=SPOCK.EOF;var t2713=(t872)===(t875);var t1055=t2713;var t2714;if(t1055!==false){return ____25error(k1310,"unexpected EOF while reading string");}
+else{var t2718=new SPOCK.Char("\"");var t2717=SPOCK.check(t2718,SPOCK.Char);var t2716=t2717.character;var t878=t2716;var t2720=SPOCK.check(t872,SPOCK.Char);var t2719=t2720.character;var t879=t2719;var t2721=(t878)===(t879);var t1056=t2721;var t2722;if(t1056!==false){var t2723=function(t1312){return t724(k1310,t1312);};return t721(t2723,t871);}
+else{var t2728=new SPOCK.Char("\\");var t2727=SPOCK.check(t2728,SPOCK.Char);var t2726=t2727.character;var t882=t2726;var t2730=SPOCK.check(t872,SPOCK.Char);var t2729=t2730.character;var t883=t2729;var t2731=(t882)===(t883);var t1057=t2731;var t2732;if(t1057!==false){var t2733=function(t1313){var t884=t1313;var t887=SPOCK.EOF;var t2734=(t884)===(t887);var t1058=t2734;var t2735;if(t1058!==false){return ____25error(k1310,"unexpected EOF while reading string");}
+else{var t2739=new SPOCK.Char("n");var t2738=SPOCK.eqvp(t884,t2739);var t1059=t2738;var t2740;if(t1059!==false){t2740=true;}
+else{t2740=false;}
+var t2737;if(t2740!==false){var t2742=new SPOCK.Char("\n");var t2741=new SPOCK.Pair(t2742,t871);return t870(k1310,t2741);}
+else{var t2746=new SPOCK.Char("t");var t2745=SPOCK.eqvp(t884,t2746);var t1060=t2745;var t2747;if(t1060!==false){t2747=true;}
+else{t2747=false;}
+var t2744;if(t2747!==false){var t2749=new SPOCK.Char("\t");var t2748=new SPOCK.Pair(t2749,t871);return t870(k1310,t2748);}
+else{var t2751=new SPOCK.Pair(t884,t871);return t870(k1310,t2751);}
+t2737=t2744;}
+t2735=t2737;}};return t720(t2733,t728);}
+else{var t2754=new SPOCK.Pair(t872,t871);return t870(k1310,t2754);}
+t2722=t2732;}
+t2714=t2722;}};return t720(t2712,t728);};t870=t2711;var t2757=null;return t870(k1309,t2757);};t736=t2710;var t2759=function(k1314,t901){var r=SPOCK.count(arguments,"t737");if(r)return r;var t902=undefined;var t2760=function(k1315,t903){var r=SPOCK.count(arguments,"t902");if(r)return r;var t2761=function(t1316){var t904=t1316;var t908=SPOCK.EOF;var t2762=(t904)===(t908);var t905=t2762;var t2763=function(t1317){var t1061=t1317;var t2764;if(t1061!==false){var t2765=function(t1318){return t724(k1315,t1318);};return t721(t2765,t903);}
+else{var t2768=function(t1320){var t915=t1320;var t2769=new SPOCK.Pair(t915,t903);var t1319=t2769;return t902(k1315,t1319);};return t720(t2768,t728);}};var t1321=t2763;var t2772;if(t905!==false){return t1321(t905);}
+else{var t2774=function(t1322){var t909=t1322;var t2775;if(t909!==false){t2775=t909;}
+else{var t2777=SPOCK.check(t904,SPOCK.Char);var t2776=(t2777).character.match(/^\s$/);var t912=t2776;var t2779=null;var t2778=(t912)===(t2779);var t911=t2778;var t2780;if(t911!==false){t2780=false;}
+else{t2780=true;}
+t2775=t2780;}
+return t1321(t2775);};var t2782=new SPOCK.Pair(new SPOCK.Char("{"),new SPOCK.Pair(new SPOCK.Char("}"),new SPOCK.Pair(new SPOCK.Char("("),new SPOCK.Pair(new SPOCK.Char(")"),new SPOCK.Pair(new SPOCK.Char("["),new SPOCK.Pair(new SPOCK.Char("]"),new SPOCK.Pair(new SPOCK.Char(";"),new SPOCK.Pair(new SPOCK.Char("\""),null))))))));return ___memv(t2774,t904,t2782);}};return t722(t2761,t728);};t902=t2760;return t902(k1314,t901);};t737=t2759;return t731(k1265);};var t1323=t2440;var t2787;if(t1019!==false){return t725(t1323);}
+else{return t1323(t727);}};___read=t2438;var t2790=function(k1324,t917,t918){var r=SPOCK.count(arguments,"load");if(r)return r;loop:while(true){var t2792=SPOCK.jstring(t917);var t2793=t918===undefined;var t920=t2793;var t2794;if(t920!==false){t2794=false;}
+else{t2794=true;}
+var t1062=t2794;var t2795;if(t1062!==false){var t2796=SPOCK.callback(t918);t2795=t2796;}
+else{t2795=false;}
+var t2791=SPOCK.load(t2792,t2795);return k1324(t2791);}};___load=t2790;var t2798=function(K){SPOCK.count(arguments,'%error');SPOCK.error.apply(SPOCK.global,Array.prototype.slice.call(arguments,1));};____25error=t2798;___error=____25error;var t2799=function(k1325,t922){var r=SPOCK.count(arguments,"exit");if(r)return r;loop:while(true){var t2801=t922===undefined;var t1063=t2801;var t2802;if(t1063!==false){t2802=0;}
+else{var t2803=SPOCK.check(t922,'number',"exit");t2802=t2803;}
+var t2800=SPOCK.exit(t2802);return k1325(t2800);}};___exit=t2799;var t2805=function(k1326,t924){var r=SPOCK.count(arguments,"milliseconds");if(r)return r;var t2806=(new Date()).getTime();var t925=t2806;var t2807=t924===undefined;var t1064=t2807;var t2808;if(t1064!==false){return k1326(t925);}
+else{var t2810=function(t1327){var t2811=(new Date()).getTime();var t928=t2811;var t2812=(t928)-(t925);return k1326(t2812);};return t924(t2810);}};___milliseconds=t2805;var t2815=function(k1328,t929){var t929=SPOCK.rest(arguments,1,'print');var t2816=function(t1329){return ___newline(k1328);};return ___for_2deach(t2816,___display,t929);};___print=t2815;var t2819=function(k1330,t930){var t930=SPOCK.rest(arguments,1,'o');var t2821=null;var t2820=(t930)===(t2821);var t1065=t2820;var t2822;if(t1065!==false){var t2823=function(k1331,t934){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){return k1331(t934);}};return k1330(t2823);}
+else{var t935=undefined;var t2826=function(k1332,t936){var r=SPOCK.count(arguments,"t935");if(r)return r;var t2827=t936.car;var t937=t2827;var t2828=t936.cdr;var t938=t2828;var t2830=null;var t2829=(t938)===(t2830);var t1066=t2829;var t2831;if(t1066!==false){t2831=t937;}
+else{var t2832=function(k1333,t944){var r=SPOCK.count(arguments);if(r)return r;var t2833=function(t1335){var t2834=function(t1334){return t937(k1333,t1334);};return t1335(t2834,t944);};return t935(t2833,t938);};t2831=t2832;}
+return k1332(t2831);};t935=t2826;return t935(k1330,t930);}};___o=t2819;var t2840=function(K){SPOCK.count(arguments,'%');var o={};for(var i=1;i<arguments.length;i+=2){var x=arguments[i];if(typeof x==='string')o[x]=arguments[i+1];else if(x instanceof SPOCK.String)
+o[x.name]=arguments[i+1];else SPOCK.error('(%) object key not a string or symbol',x);}
+return K(o);};____25=t2840;var t2841=function(K){SPOCK.count(arguments,'native');var func=arguments[1];return K(function(k){var args=Array.prototype.splice.call(arguments,1);return k(func.apply(SPOCK.global,args));});};___native=t2841;var t2842=function(K){SPOCK.count(arguments,'native-method');var func=arguments[1];return K(function(k){var args=Array.prototype.splice.call(arguments,2);return k(func.apply(arguments[1],args));});};___native_2dmethod=t2842;var t2843=function(K){SPOCK.count(arguments,'bind-method');var func=arguments[1];var that=arguments[2];return K(function(){return func.apply(that,arguments);});};___bind_2dmethod=t2843;var t2844=function(K){SPOCK.count(arguments,'jstring');var x=arguments[1];if(typeof x==='string')return K(x);else if(x instanceof SPOCK.String)return K(x.normalize());else if(x instanceof SPOCK.Char)return K(x.character);else return K(x);};___jstring=t2844;return k1067(undefined);};SPOCK.run(t1336);SPOCK.flush();
+\ No newline at end of file
diff --git a/spock-runtime-debug.js b/spock-runtime-debug.js
@@ -0,0 +1,4963 @@
+/* config.js - runtime-configuration for SPOCK */
+
+
+var SPOCK = {
+ STACKSIZE: 100,
+ THREADSLICE: 10,
+ TRACELENGTH: 32
+};
+/* runtime.js - SPOCK runtime (javascript part) */
+
+
+SPOCK.modules = {};
+SPOCK.symbolTable = {};
+SPOCK.stack = 0;
+SPOCK.limit = SPOCK.STACKSIZE;
+SPOCK.debug = false;
+SPOCK.running = false;
+SPOCK.runHook = [];
+SPOCK.inBrowser = "document" in this;
+SPOCK.global = this;
+
+SPOCK.Continuation = function(func, args) {
+ this.k_callee = func;
+ this.k_arguments = args;
+};
+
+SPOCK.Result = function(val) {
+ this.value = val;
+};
+
+SPOCK.Symbol = function(name) {
+ this.name = name;
+ this.plist = {};
+};
+
+SPOCK.Pair = function(car, cdr) {
+ this.car = car;
+ this.cdr = cdr;
+};
+
+SPOCK.String = function(chars) {
+ if(typeof chars === "string") {
+ this.parts = [chars];
+ this.length = chars.length;
+ }
+ else if(typeof chars === "number") this.parts = [chars.toString()];
+ else this.parts = chars; // assumes chars is array
+};
+
+SPOCK.Char = function(str) {
+ this.character = str.charAt(0);
+};
+
+SPOCK.Port = function(direction, methods) {
+ var port = this;
+ var read = methods.read || function() {
+ SPOCK.error("reading from non-input port", port);
+ };
+
+ function doread(n) {
+ if(n === 0) return "";
+ else if(this.peeked) {
+ var p = this.peeked;
+ this.peeked = false;
+
+ if(n === 1) return p;
+ else return p + read(n - 1);
+ }
+ else return read(n);
+ }
+
+ this.peeked = false;
+ this.direction = direction;
+ this.read = doread;
+ this.write = methods.write || function() {
+ SPOCK.error("writing to non-output port", port)
+ };
+ this.close = methods.close || function() {};
+ this.flush = methods.flush || function() {};
+ this.ready = methods.ready || function() { return true; };
+ this.closed = false;
+};
+
+SPOCK.Promise = function(thunk) {
+ this.thunk = thunk;
+};
+
+SPOCK.EndOfFile = function() {};
+SPOCK.EOF = new SPOCK.EndOfFile();
+
+SPOCK.check = function(val, type, loc) {
+ if(typeof type === "function" && val instanceof type) return val;
+ if(typeof val === type) return val;
+ else SPOCK.error((loc ? "(" + loc + ") " : "") +
+ "bad argument type" +
+ (typeof type === "string" ? " - expected `" + type + "'" : ""),
+ val);
+};
+
+SPOCK.intern = function(str) {
+ var old = SPOCK.symbolTable[ str ];
+
+ if(old) return old;
+ else return SPOCK.symbolTable[ str ] = new SPOCK.Symbol(str);
+};
+
+SPOCK.stringify = function(x, readable) {
+ if(readable === undefined) readable = true;
+
+ if(typeof x === "function") return "#<procedure>";
+ else if(x === undefined) return "#<undefined>";
+ else if(x === null) return "()";
+ else if(x instanceof SPOCK.Continuation) return "#<continuation>";
+ else if(x instanceof SPOCK.Symbol) return x.name;
+ else if(x instanceof SPOCK.Pair) {
+ var str = "(";
+ var f = false;
+
+ for(var p = x; p !== null && p instanceof SPOCK.Pair; p = p.cdr) {
+ if(f) str += " ";
+
+ str += SPOCK.stringify(p.car, readable);
+ f = true;
+ }
+
+ if(p !== null) str += " . " + SPOCK.stringify(p, readable);
+
+ return str + ")";
+ }
+ else if(x instanceof Array) {
+ var str = "#(";
+ var f = false;
+
+ for(var i in x) {
+ if(f) str += " ";
+
+ str += SPOCK.stringify(x[ i ], readable);
+ f = true;
+ }
+
+ return str + ")";
+ }
+ else if(x instanceof SPOCK.String) {
+ if(readable)
+ return "\"" + x.normalize() + "\""; // XXX does not escape embedded characters
+ else return x.normalize();
+ }
+ else if(x instanceof SPOCK.Char) {
+ if(readable) return x.character;
+
+ switch(x.character) {
+ case "\n": return "#\\newline";
+ case "\t": return "#\\tab";
+ case "\r": return "#\\return";
+ case " ": return "#\\space";
+ default: return "#\\" + x.character;
+ }
+ }
+ else if(x instanceof SPOCK.Port)
+ return "#<" + x.direction + " port" +
+ (x.name ? (" \"" + x.name + "\">") : ">");
+ else if(x instanceof SPOCK.Promise) return "#<promise>";
+ else if(x instanceof SPOCK.EndOfFile) return "#<eof>";
+ else return x.toString();
+};
+
+SPOCK.error = function(msg) {
+ var args = Array.prototype.splice.call(arguments, 1);
+
+ function argstr(x) {
+ return SPOCK.stringify(x, true);
+ }
+
+ if(args.length > 0)
+ msg = msg + ":\n " + SPOCK.map(argstr, args).join("\n ");
+
+ throw new Error(msg);
+};
+
+if(this.quit) SPOCK.exit = quit;
+else SPOCK.exit = function(code) {
+ SPOCK.error("no suitable primitive available for `exit'");
+ };
+
+SPOCK.String.prototype.normalize = function() {
+ if(this.parts.length === 0) return "";
+
+ this.parts = [this.parts.join("")];
+ return this.parts[ 0 ];
+};
+
+SPOCK.jstring = function(x) {
+ if(typeof x === "string") return x;
+ else if(x instanceof SPOCK.String) return x.normalize();
+ else return x;
+};
+
+SPOCK.list = function() {
+ var lst = null;
+ var len = arguments.length;
+
+ for(var i = len - 1; i >= 0; --i)
+ lst = new SPOCK.Pair(arguments[ i ], lst);
+
+ return lst;
+};
+
+SPOCK.length = function(lst) {
+ for(var n = 0; lst instanceof SPOCK.Pair; ++n)
+ lst = lst.cdr;
+
+ return n;
+};
+
+SPOCK.map = function(func, array) {
+ var len = array.length;
+ var a2 = new Array(len);
+
+ for(var i in array)
+ a2[ i ] = func(array[ i ]);
+
+ return a2;
+};
+
+SPOCK.eqvp = function(x, y) {
+ if(x === y) return true;
+ else if(x instanceof SPOCK.Char)
+ return y instanceof SPOCK.Char && x.character === y.character;
+ else return false;
+};
+
+SPOCK.equalp = function(x, y) {
+ if(x === y) return true;
+ else if(x instanceof SPOCK.Pair)
+ return y instanceof SPOCK.Pair &&
+ SPOCK.equalp(x.car, y.car) &&
+ SPOCK.equalp(x.cdr, y.cdr);
+ else if(x instanceof Array) {
+ var len = x.length;
+ if(!(y instanceof Array) || y.length != len) return false;
+ for(var i = 0; i < len; ++i) {
+ if(!SPOCK.equalp(x[ i ], y[ i ])) return false;
+ }
+ return true;
+ }
+ else if(x instanceof SPOCK.Char)
+ return y instanceof SPOCK.Char && x.characters === y.characters;
+ else if(x instanceof SPOCK.String) {
+ var s1 = x.normalize();
+
+ if(y instanceof SPOCK.String) return s1 === y.normalize();
+ else if(typeof y === 'string') return s1 === y;
+ else return false;
+ }
+ else if(typeof x === 'string') {
+ if(y instanceof SPOCK.String) return x === y.normalize();
+ else if(typeof y === 'string') return x === y;
+ else return false;
+ }
+ else return false;
+};
+
+SPOCK.count = function(args, loc) {
+ if(--SPOCK.stack <= 0)
+ return new SPOCK.Continuation(args.callee, Array.prototype.slice.call(args));
+ else return false;
+};
+
+SPOCK.rest = function(args, count, loc) {
+ var rest = null;
+
+ // this will not unwind, but decrease the counter
+ SPOCK.count(args, loc);
+
+ for(var i = args.length - 1; i >= count; --i)
+ rest = new SPOCK.Pair(args[ i ], rest);
+
+ return rest;
+};
+
+SPOCK.statistics = function() {};
+
+SPOCK.run = function(func) { // optional arguments
+ function terminate(result) {
+ return new SPOCK.Result(result);
+ }
+
+ var k = terminate;
+ var args = [k].concat(Array.prototype.slice.call(arguments, 1));
+ var oldstack = SPOCK.stack;
+ var oldlimit = SPOCK.limit;
+ var oldrunning = SPOCK.running;
+ SPOCK.limit = Math.max(10, oldlimit - oldstack);
+ SPOCK.stack = SPOCK.limit;
+ SPOCK.running = true;
+
+ function restore() {
+ SPOCK.stack = oldstack;
+ SPOCK.limit = oldlimit;
+ SPOCK.running = oldrunning;
+
+ if(!oldrunning) {
+ for(var i in SPOCK.runHook)
+ (SPOCK.runHook[ i ])(false);
+ }
+ }
+
+ var result;
+
+ if(!oldrunning) {
+ for(var i in SPOCK.runHook)
+ (SPOCK.runHook[ i ])(true);
+ }
+
+ while(true) {
+ result = func.apply(SPOCK.global, args);
+
+ if(result instanceof SPOCK.Continuation) {
+ SPOCK.stack = SPOCK.STACKSIZE;
+ func = result.k_callee;
+ args = result.k_arguments;
+ }
+ else if(result instanceof SPOCK.Result) {
+ restore();
+ return result.value;
+ }
+ else {
+ restore();
+ SPOCK.error("unexpected return of non-continuation", result);
+ }
+ }
+
+ return result;
+};
+
+SPOCK.callback = function(proc) {
+ return function() {
+ var args = Array.prototype.slice.call(arguments);
+ args.unshift(proc);
+ return SPOCK.run.apply(this, args);
+ };
+};
+
+SPOCK.callbackMethod = function(proc) {
+ var g = this;
+ return function() {
+ var args = Array.prototype.slice.call(arguments);
+ args.unshift(this);
+ args.unshift(proc);
+ return SPOCK.run.apply(g, args);
+ };
+};
+
+SPOCK.go = function(proc) {
+ (SPOCK.callback(proc))();
+};
+
+if("java" in this) { // rhino
+ SPOCK.makeJavaInputPort = function(jp) {
+ return new SPOCK.Port("input", {
+ read: function(n) {
+ var buffer = "";
+
+ while(n--) {
+ var b = jp.read();
+
+ if(b === -1) break;
+ else buffer += String.fromCharCode(b);
+ }
+
+ return buffer === "" ? SPOCK.EOF : buffer;
+ },
+
+ close: function() { jp.close(); }
+ });
+ };
+
+ SPOCK.makeJavaOutputPort = function(jp) {
+ return new SPOCK.Port("output", {
+ write: function(s) {
+ var len = s.length;
+
+ for(var i = 0; i < len; ++i)
+ jp.write(s.charCodeAt(i));
+ },
+
+ flush: function() { jp.flush(); },
+ close: function() { jp.close(); }
+ });
+ };
+
+ SPOCK.log = function() {
+ java.lang.System.err.println(Array.prototype.slice.call(arguments).join(""));
+ };
+
+ SPOCK.stdin = SPOCK.makeJavaInputPort(java.lang.System[ "in" ]);
+ SPOCK.stdout = SPOCK.makeJavaOutputPort(java.lang.System.out);
+ SPOCK.stderr = SPOCK.makeJavaOutputPort(java.lang.System.err);
+ SPOCK.stderr.name = "[stderr]";
+}
+else {
+ if("console" in this) SPOCK.log = console.log; // firebug
+ else if(SPOCK.inBrowser) // inside browser
+ SPOCK.log = function() {
+ var msg = arguments.join(" ");
+
+ if(msg.charAt(msg.length - 1) == "\n")
+ msg = msg.substring(0, msg.length - 1);
+
+ this.defaultStatus = msg;
+ };
+ else if("print" in this) SPOCK.log = print; // spidermonkey/v8
+ else if(typeof process !== undefined) SPOCK.log = console.log; // Node.JS
+ else SPOCK.error("no suitable output primitive available");
+
+ (function() {
+ var buffer = [];
+
+ function flush() {
+ if(buffer.length > 0) {
+ SPOCK.log(buffer.join(""));
+ buffer = [];
+ }
+ }
+
+ function write(s) {
+ var parts = SPOCK.stringify(s, false).split("\n");
+ var len = parts.length - 1;
+
+ if(len > 0) { // contains newline?
+ buffer.push(parts[ 0 ]);
+ flush();
+
+ if(len > 1) {
+ for(var i = 1; i < len; ++i)
+ SPOCK.log(parts[ i ]);
+ }
+
+ buffer.push(parts[ len ]);
+ }
+ else buffer.push(parts[ 0 ]);
+ }
+
+ SPOCK.stdout = new SPOCK.Port("output", { write: write, flush: flush });
+ var inp;
+ var ibuffer = "";
+
+ if(this.prompt) {
+ inp = function(n) {
+ while(true) {
+ if(ibuffer.length <= n) {
+ var part = ibuffer.slice(0, n);
+ ibuffer = ibuffer.slice(n);
+ return part;
+ }
+
+ var input = prompt("Expecting input for " + this.toString());
+
+ if(input === null) return SPOCK.EOF;
+ else ibuffer += input;
+ }
+ };
+ }
+ else {
+ inp = function(n) {
+ SPOCK.error("no input possible for standard input port");
+ };
+ }
+
+ SPOCK.stdin = new SPOCK.Port("input", { read: inp });
+ SPOCK.stderr = SPOCK.stdout;
+ })();
+}
+
+SPOCK.stdin.name = "[stdin]";
+SPOCK.stdout.name = "[stdout]";
+
+SPOCK.flush = function() {
+ // note that this always prints a newline when console.log or print is used
+ SPOCK.stdout.flush();
+
+ if(SPOCK.stderr !== SPOCK.stdout)
+ SPOCK.stderr.flush();
+
+ SPOCK.statistics();
+};
+
+if(this.gc) SPOCK.gc = gc;
+else SPOCK.gc = function() {};
+
+SPOCK.openInputUrlHook = function(url) {
+ SPOCK.error("can not open", url);
+};
+
+SPOCK.openOutputUrlHook = function(url) {
+ SPOCK.error("can not open", url);
+};
+
+if("java" in this) {
+ SPOCK.openInputFile = function(filename) {
+ var stream;
+
+ try {
+ stream = new java.io.FileInputStream(filename);
+ }
+ catch(e) {
+ SPOCK.error(e.message);
+ }
+
+ var port = SPOCK.makeJavaInputPort(stream);
+ port.name = filename;
+ return port;
+ };
+
+ SPOCK.openOutputFile = function(filename) {
+ var stream;
+
+ try {
+ stream = new java.io.FileOutputStream(filename);
+ }
+ catch(e) {
+ SPOCK.error(e.message);
+ }
+
+ var port = SPOCK.makeJavaOutputPort(stream);
+ port.name = filename;
+ return port;
+ };
+
+ SPOCK.fileExists = function(filename) {
+ return (new java.io.File(filename)).exists();
+ };
+}
+else {
+ if(SPOCK.inBrowser) {
+ SPOCK.openInputFile = function(filename) {
+ if(filename.match(/^[a-z0-9]+:/))
+ return SPOCK.openInputUrlHook(filename);
+
+ var cookies = document.cookie.split("; ");
+ var buffer = null;
+
+ for(var i = 0; i < cookies.length; ++i) {
+ var c = cookies[ i ];
+ var p = c.indexOf("=");
+
+ if(filename === c.substring(0, p)) {
+ buffer = c.substring(p + 1);
+ break;
+ }
+ }
+
+ if(!buffer) SPOCK.error("can not open file", filename);
+
+ var pos = 0;
+
+ return new SPOCK.Port("input", {
+ read: function(n) {
+ if(pos >= buffer.length) return SPOCK.EOF;
+ else if(pos + len >= buffer.length)
+ return buffer.substring(pos);
+
+ var p1 = pos;
+ pos += n;
+ return buffer.substring(p1, p1 + n);
+ },
+
+ ready: function() { return pos < buffer.length; }
+ });
+ };
+
+ SPOCK.openOutputFile = function(filename, expiry) {
+ if(filename.match(/^[a-z0-9]+:/))
+ return SPOCK.openOutputUrlHook(filename);
+
+ return new SPOCK.Port("output", {
+ write: function(s) { buffer += s; },
+ close: function() {
+ var now = (new Date()).getTime();
+ var exp = now + (expiry || (1000 * 60 * 60 * 24 * 365));
+ document.cookie = filename + "=" + encodeURIComponent(buffer) +
+ "; expires=" + (new Date(exp)).toGMTString();
+ }
+ });
+ };
+ }
+ else {
+ SPOCK.openInputFile = function(filename) {
+ SPOCK.error("file-I/O not available");
+ }
+
+ SPOCK.openOutputFile = function(filename) {
+ SPOCK.error("file-I/O not available");
+ }
+ }
+
+ SPOCK.fileExists = function(filename) {
+ SPOCK.error("`file-exists?' not available");
+ };
+}
+
+if("document" in this) { // browser?
+ SPOCK.load = function(url, k) {
+ // http://www.nczonline.net/blog/2009/07/28/the-best-way-to-load-external-javascript/
+ var script = document.createElement("script")
+
+ script.type = "text/javascript";
+ k = k || function() {};
+
+ if (script.readyState){ //IE
+ script.onreadystatechange = function(){
+ if (script.readyState == "loaded" || script.readyState == "complete"){
+ script.onreadystatechange = null;
+ k(url);
+ }
+ };
+ }
+ else { //Others
+ script.onload = function(){
+ k(url);
+ };
+ }
+
+ script.src = url;
+ document.getElementsByTagName("head")[0].appendChild(script);
+ };
+}
+else if("load" in this) { // rhino/SM
+ SPOCK.load = function(filename, k) {
+ load(filename);
+
+ if(k) k(filename);
+ };
+}
+/* debug.js - debugging-support for SPOCK runtime */
+
+
+SPOCK.debug = true;
+SPOCK.toString = function() { return "#<SPOCK>"; };
+SPOCK.restartCount = 0;
+SPOCK.traceBuffer = [];
+SPOCK.traceOutput = false;
+SPOCK.traceHook = [];
+SPOCK.hasAlert = SPOCK.inBrowser;
+
+// Overrides SPOCK.error
+SPOCK.error = function(msg) { // "msg" may be a string or an error object
+ var args = Array.prototype.splice.call(arguments, 1);
+ var err;
+ var text;
+
+ if(typeof msg !== "string") { // an object?
+ err = msg;
+ msg = err.message;
+ }
+
+ text = msg;
+
+ if(args.length > 1)
+ text += ":\n " + SPOCK.map(SPOCK.stringify, args).join("\n ");
+
+ if(SPOCK.traceBuffer.length > 0)
+ text += "\n\nCall trace:\n\n" + SPOCK.getTrace();
+
+ if(SPOCK.hasAlert) {
+ alert("Error: " + text);
+ SPOCK.hasAlert = false; // disable to avoid endless repetition of alerts
+ }
+ else if(err) throw new (err.constructor)(text);
+ else throw new Error(text);
+};
+
+// Overrides SPOCK.count
+SPOCK.count = function(args, loc) {
+ if(--SPOCK.stack <= 0) {
+ ++SPOCK.restartCount;
+ return new SPOCK.Continuation(args.callee, Array.prototype.slice.call(args));
+ }
+
+ if(loc) SPOCK.trace(loc, args);
+
+ return false;
+};
+
+SPOCK.trace = function(name, args) {
+ var tb = SPOCK.traceBuffer;
+
+ for(var i in SPOCK.traceHook)
+ (SPOCK.traceHook[ i ])(name, args);
+
+ if(SPOCK.traceOutput)
+ SPOCK.log("[" + SPOCK.stack + "] " + name);
+
+ if(tb.length >= SPOCK.TRACELENGTH) tb.shift();
+
+ tb.push([name, Array.prototype.slice.call(args, 1)]); // skip continuation argument
+};
+
+SPOCK.getTrace = function() {
+ var tb = SPOCK.traceBuffer;
+ var trace = [];
+
+ for(var i in tb) {
+ var e = tb[ i ];
+ trace.push(" (" + e[ 0 ] + " " +
+ SPOCK.map(SPOCK.stringify, e[ 1 ]).join(" ") + ")");
+ }
+
+ SPOCK.traceBuffer = [];
+ return trace.join("\n") + " <---";
+};
+
+// Overrides empty SPOCK.statistics
+SPOCK.statistics = function() {
+ //if(SPOCK.restartCount > 0)
+ // SPOCK.log("restarts: ", SPOCK.restartCount);
+
+ SPOCK.traceBuffer = [];
+};
+
+// Overrides SPOCK.callback
+(function() {
+ var old = SPOCK.callback;
+
+ SPOCK.callback = function(proc) {
+ var cb = old(proc);
+ return function() {
+ var args = Array.prototype.slice.call(arguments);
+ SPOCK.trace("<callback>", args);
+ return cb.apply(this, args);
+ };
+ };
+})();
+/* CODE GENERATED BY SPOCK 0 */
+var t1336 = function (k1067) {
+ var t1337 = function (k1068, t1) { // %list
+ var t1 = SPOCK.rest(arguments, 1, '%list');
+ loop: while(true) {
+ return k1068(t1);
+ }
+ };
+ ____25list = t1337; // set! %list
+ var t1339 = function(K) {
+ SPOCK.count(arguments, 'values');
+ return K.apply(SPOCK.global, Array.prototype.slice.call(arguments, 1));
+ };
+ ___values = t1339; // set! values
+ var t1340 = function(K) {
+ SPOCK.count(arguments, 'call-with-values');
+ var thunk = arguments[ 1 ];
+ var proc = arguments[ 2 ];
+ function k2() {
+ var args = Array.prototype.slice.call(arguments);
+ args.unshift(K);
+ return proc.apply(SPOCK.global, args);}
+ return thunk(k2);
+ };
+ ___call_2dwith_2dvalues = t1340; // set! call-with-values
+ var t1341 = function(K) {
+ SPOCK.count(arguments, '%call-with-saved-values');
+ var t1 = arguments[ 1 ];
+ var t2 = arguments[ 2 ];
+ var args;
+ function k2() { return K.apply(SPOCK.global, args); }
+ function k1() {
+ args = Array.prototype.slice.call(arguments);
+ return t2(k2);}
+ return t1(k1);
+ };
+ ____25call_2dwith_2dsaved_2dvalues = t1341; // set! %call-with-saved-values
+ var t1342 = function (k1069, t2) { // list?
+ var r = SPOCK.count(arguments, "list?");
+ if(r) return r;
+ var t3 = undefined;
+ var t1343 = function (k1070, t4, t5) { // t3
+ var r = SPOCK.count(arguments, "t3");
+ if(r) return r;
+ loop: while(true) {
+ var t1345 = null;
+ var t1344 = (t4) === (t1345);
+ var t6 = t1344;
+ var t1346;
+ if(t6 !== false) {
+ return k1070(t6);
+ }
+ else {
+ var t1348 = (t4) instanceof SPOCK.Pair ;
+ var t945 = t1348;
+ var t1349;
+ if(t945 !== false) {
+ var t1350 = t4.cdr;
+ var t11 = t1350;
+ var t1352 = null;
+ var t1351 = (t11) === (t1352);
+ var t13 = t1351;
+ var t1353;
+ if(t13 !== false) {
+ return k1070(t13);
+ }
+ else {
+ var t1355 = (t11) instanceof SPOCK.Pair ;
+ var t946 = t1355;
+ var t1356;
+ if(t946 !== false) {
+ var t1357 = t11.cdr;
+ var t18 = t1357;
+ var t1358 = t5.cdr;
+ var t19 = t1358;
+ var t1359 = (t18) === (t19);
+ var t22 = t1359;
+ var t1360;
+ if(t22 !== false) {
+ t1360 = false;
+ }
+ else {
+ t1360 = true;
+ }
+ var t947 = t1360;
+ var t1361;
+ if(t947 !== false) {
+ var t1362 = t18;
+ var t1363 = t19;
+ t4 = t1362;
+ t5 = t1363;
+ continue loop;
+ }
+ else {
+ return k1070(false);
+ }
+ t1356 = t1361;
+ }
+ else {
+ return k1070(false);
+ }
+ t1353 = t1356;
+ }
+ t1349 = t1353;
+ }
+ else {
+ return k1070(false);
+ }
+ t1346 = t1349;
+ }
+ }
+ };
+ t3 = t1343; // set! t3
+ return t3(k1069, t2, t2);
+ };
+ ___list_3f = t1342; // set! list?
+ var t1368 = function (k1071, t25) { // caaar
+ var r = SPOCK.count(arguments, "caaar");
+ if(r) return r;
+ loop: while(true) {
+ var t1369 = SPOCK.check(t25, SPOCK.Pair, "caaar");
+ var t29 = t1369;
+ var t1370 = t29.car;
+ var t27 = t1370;
+ var t1371 = SPOCK.check(t27, SPOCK.Pair, "caaar");
+ var t30 = t1371;
+ var t1372 = t30.car;
+ var t26 = t1372;
+ var t1373 = SPOCK.check(t26, SPOCK.Pair, "caaar");
+ var t31 = t1373;
+ var t1374 = t31.car;
+ return k1071(t1374);
+ }
+ };
+ ___caaar = t1368; // set! caaar
+ var t1376 = function (k1072, t32) { // caadr
+ var r = SPOCK.count(arguments, "caadr");
+ if(r) return r;
+ loop: while(true) {
+ var t1377 = SPOCK.check(t32, SPOCK.Pair, "caadr");
+ var t36 = t1377;
+ var t1378 = t36.cdr;
+ var t34 = t1378;
+ var t1379 = SPOCK.check(t34, SPOCK.Pair, "caadr");
+ var t37 = t1379;
+ var t1380 = t37.car;
+ var t33 = t1380;
+ var t1381 = SPOCK.check(t33, SPOCK.Pair, "caadr");
+ var t38 = t1381;
+ var t1382 = t38.car;
+ return k1072(t1382);
+ }
+ };
+ ___caadr = t1376; // set! caadr
+ var t1384 = function (k1073, t39) { // cadar
+ var r = SPOCK.count(arguments, "cadar");
+ if(r) return r;
+ loop: while(true) {
+ var t1385 = SPOCK.check(t39, SPOCK.Pair, "cadar");
+ var t43 = t1385;
+ var t1386 = t43.car;
+ var t41 = t1386;
+ var t1387 = SPOCK.check(t41, SPOCK.Pair, "cadar");
+ var t44 = t1387;
+ var t1388 = t44.cdr;
+ var t40 = t1388;
+ var t1389 = SPOCK.check(t40, SPOCK.Pair, "cadar");
+ var t45 = t1389;
+ var t1390 = t45.car;
+ return k1073(t1390);
+ }
+ };
+ ___cadar = t1384; // set! cadar
+ var t1392 = function (k1074, t46) { // caddr
+ var r = SPOCK.count(arguments, "caddr");
+ if(r) return r;
+ loop: while(true) {
+ var t1393 = SPOCK.check(t46, SPOCK.Pair, "caddr");
+ var t50 = t1393;
+ var t1394 = t50.cdr;
+ var t48 = t1394;
+ var t1395 = SPOCK.check(t48, SPOCK.Pair, "caddr");
+ var t51 = t1395;
+ var t1396 = t51.cdr;
+ var t47 = t1396;
+ var t1397 = SPOCK.check(t47, SPOCK.Pair, "caddr");
+ var t52 = t1397;
+ var t1398 = t52.car;
+ return k1074(t1398);
+ }
+ };
+ ___caddr = t1392; // set! caddr
+ var t1400 = function (k1075, t53) { // cdaar
+ var r = SPOCK.count(arguments, "cdaar");
+ if(r) return r;
+ loop: while(true) {
+ var t1401 = SPOCK.check(t53, SPOCK.Pair, "cdaar");
+ var t57 = t1401;
+ var t1402 = t57.car;
+ var t55 = t1402;
+ var t1403 = SPOCK.check(t55, SPOCK.Pair, "cdaar");
+ var t58 = t1403;
+ var t1404 = t58.car;
+ var t54 = t1404;
+ var t1405 = SPOCK.check(t54, SPOCK.Pair, "cdaar");
+ var t59 = t1405;
+ var t1406 = t59.cdr;
+ return k1075(t1406);
+ }
+ };
+ ___cdaar = t1400; // set! cdaar
+ var t1408 = function (k1076, t60) { // cdadr
+ var r = SPOCK.count(arguments, "cdadr");
+ if(r) return r;
+ loop: while(true) {
+ var t1409 = SPOCK.check(t60, SPOCK.Pair, "cdadr");
+ var t64 = t1409;
+ var t1410 = t64.cdr;
+ var t62 = t1410;
+ var t1411 = SPOCK.check(t62, SPOCK.Pair, "cdadr");
+ var t65 = t1411;
+ var t1412 = t65.car;
+ var t61 = t1412;
+ var t1413 = SPOCK.check(t61, SPOCK.Pair, "cdadr");
+ var t66 = t1413;
+ var t1414 = t66.cdr;
+ return k1076(t1414);
+ }
+ };
+ ___cdadr = t1408; // set! cdadr
+ var t1416 = function (k1077, t67) { // cddar
+ var r = SPOCK.count(arguments, "cddar");
+ if(r) return r;
+ loop: while(true) {
+ var t1417 = SPOCK.check(t67, SPOCK.Pair, "cddar");
+ var t71 = t1417;
+ var t1418 = t71.car;
+ var t69 = t1418;
+ var t1419 = SPOCK.check(t69, SPOCK.Pair, "cddar");
+ var t72 = t1419;
+ var t1420 = t72.cdr;
+ var t68 = t1420;
+ var t1421 = SPOCK.check(t68, SPOCK.Pair, "cddar");
+ var t73 = t1421;
+ var t1422 = t73.cdr;
+ return k1077(t1422);
+ }
+ };
+ ___cddar = t1416; // set! cddar
+ var t1424 = function (k1078, t74) { // cdddr
+ var r = SPOCK.count(arguments, "cdddr");
+ if(r) return r;
+ loop: while(true) {
+ var t1425 = SPOCK.check(t74, SPOCK.Pair, "cdddr");
+ var t78 = t1425;
+ var t1426 = t78.cdr;
+ var t76 = t1426;
+ var t1427 = SPOCK.check(t76, SPOCK.Pair, "cdddr");
+ var t79 = t1427;
+ var t1428 = t79.cdr;
+ var t75 = t1428;
+ var t1429 = SPOCK.check(t75, SPOCK.Pair, "cdddr");
+ var t80 = t1429;
+ var t1430 = t80.cdr;
+ return k1078(t1430);
+ }
+ };
+ ___cdddr = t1424; // set! cdddr
+ var t1432 = function (k1079, t81) { // caaaar
+ var r = SPOCK.count(arguments, "caaaar");
+ if(r) return r;
+ loop: while(true) {
+ var t1433 = SPOCK.check(t81, SPOCK.Pair, "caaaar");
+ var t86 = t1433;
+ var t1434 = t86.car;
+ var t84 = t1434;
+ var t1435 = SPOCK.check(t84, SPOCK.Pair, "caaaar");
+ var t87 = t1435;
+ var t1436 = t87.car;
+ var t83 = t1436;
+ var t1437 = SPOCK.check(t83, SPOCK.Pair, "caaaar");
+ var t88 = t1437;
+ var t1438 = t88.car;
+ var t82 = t1438;
+ var t1439 = SPOCK.check(t82, SPOCK.Pair, "caaaar");
+ var t89 = t1439;
+ var t1440 = t89.car;
+ return k1079(t1440);
+ }
+ };
+ ___caaaar = t1432; // set! caaaar
+ var t1442 = function (k1080, t90) { // caaadr
+ var r = SPOCK.count(arguments, "caaadr");
+ if(r) return r;
+ loop: while(true) {
+ var t1443 = SPOCK.check(t90, SPOCK.Pair, "caaadr");
+ var t95 = t1443;
+ var t1444 = t95.cdr;
+ var t93 = t1444;
+ var t1445 = SPOCK.check(t93, SPOCK.Pair, "caaadr");
+ var t96 = t1445;
+ var t1446 = t96.car;
+ var t92 = t1446;
+ var t1447 = SPOCK.check(t92, SPOCK.Pair, "caaadr");
+ var t97 = t1447;
+ var t1448 = t97.car;
+ var t91 = t1448;
+ var t1449 = SPOCK.check(t91, SPOCK.Pair, "caaadr");
+ var t98 = t1449;
+ var t1450 = t98.car;
+ return k1080(t1450);
+ }
+ };
+ ___caaadr = t1442; // set! caaadr
+ var t1452 = function (k1081, t99) { // caadar
+ var r = SPOCK.count(arguments, "caadar");
+ if(r) return r;
+ loop: while(true) {
+ var t1453 = SPOCK.check(t99, SPOCK.Pair, "caadar");
+ var t104 = t1453;
+ var t1454 = t104.car;
+ var t102 = t1454;
+ var t1455 = SPOCK.check(t102, SPOCK.Pair, "caadar");
+ var t105 = t1455;
+ var t1456 = t105.cdr;
+ var t101 = t1456;
+ var t1457 = SPOCK.check(t101, SPOCK.Pair, "caadar");
+ var t106 = t1457;
+ var t1458 = t106.car;
+ var t100 = t1458;
+ var t1459 = SPOCK.check(t100, SPOCK.Pair, "caadar");
+ var t107 = t1459;
+ var t1460 = t107.car;
+ return k1081(t1460);
+ }
+ };
+ ___caadar = t1452; // set! caadar
+ var t1462 = function (k1082, t108) { // caaddr
+ var r = SPOCK.count(arguments, "caaddr");
+ if(r) return r;
+ loop: while(true) {
+ var t1463 = SPOCK.check(t108, SPOCK.Pair, "caaddr");
+ var t113 = t1463;
+ var t1464 = t113.cdr;
+ var t111 = t1464;
+ var t1465 = SPOCK.check(t111, SPOCK.Pair, "caaddr");
+ var t114 = t1465;
+ var t1466 = t114.cdr;
+ var t110 = t1466;
+ var t1467 = SPOCK.check(t110, SPOCK.Pair, "caaddr");
+ var t115 = t1467;
+ var t1468 = t115.car;
+ var t109 = t1468;
+ var t1469 = SPOCK.check(t109, SPOCK.Pair, "caaddr");
+ var t116 = t1469;
+ var t1470 = t116.car;
+ return k1082(t1470);
+ }
+ };
+ ___caaddr = t1462; // set! caaddr
+ var t1472 = function (k1083, t117) { // cadaar
+ var r = SPOCK.count(arguments, "cadaar");
+ if(r) return r;
+ loop: while(true) {
+ var t1473 = SPOCK.check(t117, SPOCK.Pair, "cadaar");
+ var t122 = t1473;
+ var t1474 = t122.car;
+ var t120 = t1474;
+ var t1475 = SPOCK.check(t120, SPOCK.Pair, "cadaar");
+ var t123 = t1475;
+ var t1476 = t123.car;
+ var t119 = t1476;
+ var t1477 = SPOCK.check(t119, SPOCK.Pair, "cadaar");
+ var t124 = t1477;
+ var t1478 = t124.cdr;
+ var t118 = t1478;
+ var t1479 = SPOCK.check(t118, SPOCK.Pair, "cadaar");
+ var t125 = t1479;
+ var t1480 = t125.car;
+ return k1083(t1480);
+ }
+ };
+ ___cadaar = t1472; // set! cadaar
+ var t1482 = function (k1084, t126) { // cadadr
+ var r = SPOCK.count(arguments, "cadadr");
+ if(r) return r;
+ loop: while(true) {
+ var t1483 = SPOCK.check(t126, SPOCK.Pair, "cadadr");
+ var t131 = t1483;
+ var t1484 = t131.cdr;
+ var t129 = t1484;
+ var t1485 = SPOCK.check(t129, SPOCK.Pair, "cadadr");
+ var t132 = t1485;
+ var t1486 = t132.car;
+ var t128 = t1486;
+ var t1487 = SPOCK.check(t128, SPOCK.Pair, "cadadr");
+ var t133 = t1487;
+ var t1488 = t133.cdr;
+ var t127 = t1488;
+ var t1489 = SPOCK.check(t127, SPOCK.Pair, "cadadr");
+ var t134 = t1489;
+ var t1490 = t134.car;
+ return k1084(t1490);
+ }
+ };
+ ___cadadr = t1482; // set! cadadr
+ var t1492 = function (k1085, t135) { // caddar
+ var r = SPOCK.count(arguments, "caddar");
+ if(r) return r;
+ loop: while(true) {
+ var t1493 = SPOCK.check(t135, SPOCK.Pair, "caddar");
+ var t140 = t1493;
+ var t1494 = t140.car;
+ var t138 = t1494;
+ var t1495 = SPOCK.check(t138, SPOCK.Pair, "caddar");
+ var t141 = t1495;
+ var t1496 = t141.cdr;
+ var t137 = t1496;
+ var t1497 = SPOCK.check(t137, SPOCK.Pair, "caddar");
+ var t142 = t1497;
+ var t1498 = t142.cdr;
+ var t136 = t1498;
+ var t1499 = SPOCK.check(t136, SPOCK.Pair, "caddar");
+ var t143 = t1499;
+ var t1500 = t143.car;
+ return k1085(t1500);
+ }
+ };
+ ___caddar = t1492; // set! caddar
+ var t1502 = function (k1086, t144) { // cadddr
+ var r = SPOCK.count(arguments, "cadddr");
+ if(r) return r;
+ loop: while(true) {
+ var t1503 = SPOCK.check(t144, SPOCK.Pair, "cadddr");
+ var t149 = t1503;
+ var t1504 = t149.cdr;
+ var t147 = t1504;
+ var t1505 = SPOCK.check(t147, SPOCK.Pair, "cadddr");
+ var t150 = t1505;
+ var t1506 = t150.cdr;
+ var t146 = t1506;
+ var t1507 = SPOCK.check(t146, SPOCK.Pair, "cadddr");
+ var t151 = t1507;
+ var t1508 = t151.cdr;
+ var t145 = t1508;
+ var t1509 = SPOCK.check(t145, SPOCK.Pair, "cadddr");
+ var t152 = t1509;
+ var t1510 = t152.car;
+ return k1086(t1510);
+ }
+ };
+ ___cadddr = t1502; // set! cadddr
+ var t1512 = function (k1087, t153) { // cdaaar
+ var r = SPOCK.count(arguments, "cdaaar");
+ if(r) return r;
+ loop: while(true) {
+ var t1513 = SPOCK.check(t153, SPOCK.Pair, "cdaaar");
+ var t158 = t1513;
+ var t1514 = t158.car;
+ var t156 = t1514;
+ var t1515 = SPOCK.check(t156, SPOCK.Pair, "cdaaar");
+ var t159 = t1515;
+ var t1516 = t159.car;
+ var t155 = t1516;
+ var t1517 = SPOCK.check(t155, SPOCK.Pair, "cdaaar");
+ var t160 = t1517;
+ var t1518 = t160.car;
+ var t154 = t1518;
+ var t1519 = SPOCK.check(t154, SPOCK.Pair, "cdaaar");
+ var t161 = t1519;
+ var t1520 = t161.cdr;
+ return k1087(t1520);
+ }
+ };
+ ___cdaaar = t1512; // set! cdaaar
+ var t1522 = function (k1088, t162) { // cdaadr
+ var r = SPOCK.count(arguments, "cdaadr");
+ if(r) return r;
+ loop: while(true) {
+ var t1523 = SPOCK.check(t162, SPOCK.Pair, "cdaadr");
+ var t167 = t1523;
+ var t1524 = t167.cdr;
+ var t165 = t1524;
+ var t1525 = SPOCK.check(t165, SPOCK.Pair, "cdaadr");
+ var t168 = t1525;
+ var t1526 = t168.car;
+ var t164 = t1526;
+ var t1527 = SPOCK.check(t164, SPOCK.Pair, "cdaadr");
+ var t169 = t1527;
+ var t1528 = t169.car;
+ var t163 = t1528;
+ var t1529 = SPOCK.check(t163, SPOCK.Pair, "cdaadr");
+ var t170 = t1529;
+ var t1530 = t170.cdr;
+ return k1088(t1530);
+ }
+ };
+ ___cdaadr = t1522; // set! cdaadr
+ var t1532 = function (k1089, t171) { // cdadar
+ var r = SPOCK.count(arguments, "cdadar");
+ if(r) return r;
+ loop: while(true) {
+ var t1533 = SPOCK.check(t171, SPOCK.Pair, "cdadar");
+ var t176 = t1533;
+ var t1534 = t176.car;
+ var t174 = t1534;
+ var t1535 = SPOCK.check(t174, SPOCK.Pair, "cdadar");
+ var t177 = t1535;
+ var t1536 = t177.cdr;
+ var t173 = t1536;
+ var t1537 = SPOCK.check(t173, SPOCK.Pair, "cdadar");
+ var t178 = t1537;
+ var t1538 = t178.car;
+ var t172 = t1538;
+ var t1539 = SPOCK.check(t172, SPOCK.Pair, "cdadar");
+ var t179 = t1539;
+ var t1540 = t179.cdr;
+ return k1089(t1540);
+ }
+ };
+ ___cdadar = t1532; // set! cdadar
+ var t1542 = function (k1090, t180) { // cdaddr
+ var r = SPOCK.count(arguments, "cdaddr");
+ if(r) return r;
+ loop: while(true) {
+ var t1543 = SPOCK.check(t180, SPOCK.Pair, "cdaddr");
+ var t185 = t1543;
+ var t1544 = t185.cdr;
+ var t183 = t1544;
+ var t1545 = SPOCK.check(t183, SPOCK.Pair, "cdaddr");
+ var t186 = t1545;
+ var t1546 = t186.cdr;
+ var t182 = t1546;
+ var t1547 = SPOCK.check(t182, SPOCK.Pair, "cdaddr");
+ var t187 = t1547;
+ var t1548 = t187.car;
+ var t181 = t1548;
+ var t1549 = SPOCK.check(t181, SPOCK.Pair, "cdaddr");
+ var t188 = t1549;
+ var t1550 = t188.cdr;
+ return k1090(t1550);
+ }
+ };
+ ___cdaddr = t1542; // set! cdaddr
+ var t1552 = function (k1091, t189) { // cddaar
+ var r = SPOCK.count(arguments, "cddaar");
+ if(r) return r;
+ loop: while(true) {
+ var t1553 = SPOCK.check(t189, SPOCK.Pair, "cddaar");
+ var t194 = t1553;
+ var t1554 = t194.car;
+ var t192 = t1554;
+ var t1555 = SPOCK.check(t192, SPOCK.Pair, "cddaar");
+ var t195 = t1555;
+ var t1556 = t195.car;
+ var t191 = t1556;
+ var t1557 = SPOCK.check(t191, SPOCK.Pair, "cddaar");
+ var t196 = t1557;
+ var t1558 = t196.cdr;
+ var t190 = t1558;
+ var t1559 = SPOCK.check(t190, SPOCK.Pair, "cddaar");
+ var t197 = t1559;
+ var t1560 = t197.cdr;
+ return k1091(t1560);
+ }
+ };
+ ___cddaar = t1552; // set! cddaar
+ var t1562 = function (k1092, t198) { // cddadr
+ var r = SPOCK.count(arguments, "cddadr");
+ if(r) return r;
+ loop: while(true) {
+ var t1563 = SPOCK.check(t198, SPOCK.Pair, "cddadr");
+ var t203 = t1563;
+ var t1564 = t203.cdr;
+ var t201 = t1564;
+ var t1565 = SPOCK.check(t201, SPOCK.Pair, "cddadr");
+ var t204 = t1565;
+ var t1566 = t204.car;
+ var t200 = t1566;
+ var t1567 = SPOCK.check(t200, SPOCK.Pair, "cddadr");
+ var t205 = t1567;
+ var t1568 = t205.cdr;
+ var t199 = t1568;
+ var t1569 = SPOCK.check(t199, SPOCK.Pair, "cddadr");
+ var t206 = t1569;
+ var t1570 = t206.cdr;
+ return k1092(t1570);
+ }
+ };
+ ___cddadr = t1562; // set! cddadr
+ var t1572 = function (k1093, t207) { // cdddar
+ var r = SPOCK.count(arguments, "cdddar");
+ if(r) return r;
+ loop: while(true) {
+ var t1573 = SPOCK.check(t207, SPOCK.Pair, "cdddar");
+ var t212 = t1573;
+ var t1574 = t212.car;
+ var t210 = t1574;
+ var t1575 = SPOCK.check(t210, SPOCK.Pair, "cdddar");
+ var t213 = t1575;
+ var t1576 = t213.cdr;
+ var t209 = t1576;
+ var t1577 = SPOCK.check(t209, SPOCK.Pair, "cdddar");
+ var t214 = t1577;
+ var t1578 = t214.cdr;
+ var t208 = t1578;
+ var t1579 = SPOCK.check(t208, SPOCK.Pair, "cdddar");
+ var t215 = t1579;
+ var t1580 = t215.cdr;
+ return k1093(t1580);
+ }
+ };
+ ___cdddar = t1572; // set! cdddar
+ var t1582 = function (k1094, t216) { // cddddr
+ var r = SPOCK.count(arguments, "cddddr");
+ if(r) return r;
+ loop: while(true) {
+ var t1583 = SPOCK.check(t216, SPOCK.Pair, "cddddr");
+ var t221 = t1583;
+ var t1584 = t221.cdr;
+ var t219 = t1584;
+ var t1585 = SPOCK.check(t219, SPOCK.Pair, "cddddr");
+ var t222 = t1585;
+ var t1586 = t222.cdr;
+ var t218 = t1586;
+ var t1587 = SPOCK.check(t218, SPOCK.Pair, "cddddr");
+ var t223 = t1587;
+ var t1588 = t223.cdr;
+ var t217 = t1588;
+ var t1589 = SPOCK.check(t217, SPOCK.Pair, "cddddr");
+ var t224 = t1589;
+ var t1590 = t224.cdr;
+ return k1094(t1590);
+ }
+ };
+ ___cddddr = t1582; // set! cddddr
+ var t1592 = function (k1095, t225) { // append
+ var t225 = SPOCK.rest(arguments, 1, 'append');
+ var t1594 = null;
+ var t1593 = (t225) === (t1594);
+ var t948 = t1593;
+ var t1595;
+ if(t948 !== false) {
+ var t1596 = null;
+ return k1095(t1596);
+ }
+ else {
+ var t229 = undefined;
+ var t1598 = function (k1096, t230) { // t229
+ var r = SPOCK.count(arguments, "t229");
+ if(r) return r;
+ var t1599 = t230.cdr;
+ var t231 = t1599;
+ var t1601 = null;
+ var t1600 = (t231) === (t1601);
+ var t949 = t1600;
+ var t1602;
+ if(t949 !== false) {
+ var t1603 = t230.car;
+ return k1096(t1603);
+ }
+ else {
+ var t236 = undefined;
+ var t1605 = function (k1097, t237) { // t236
+ var r = SPOCK.count(arguments, "t236");
+ if(r) return r;
+ var t1606 = (t237) instanceof SPOCK.Pair ;
+ var t950 = t1606;
+ var t1607;
+ if(t950 !== false) {
+ var t1608 = t237.car;
+ var t239 = t1608;
+ var t1609 = function (t1098) {
+ var t240 = t1098;
+ var t1610 = new SPOCK.Pair(t239, t240);
+ return k1097(t1610);
+ };
+ var t1612 = t237.cdr;
+ return t236(t1609, t1612);
+ }
+ else {
+ var t243 = t230;
+ var t1614 = t243.cdr;
+ return t229(k1097, t1614);
+ }
+ };
+ t236 = t1605; // set! t236
+ var t1616 = t230.car;
+ return t236(k1096, t1616);
+ }
+ };
+ t229 = t1598; // set! t229
+ return t229(k1095, t225);
+ }
+ };
+ ___append = t1592; // set! append
+ var t1619 = function (k1099, t245) { // reverse
+ var r = SPOCK.count(arguments, "reverse");
+ if(r) return r;
+ var t246 = undefined;
+ var t1620 = function (k1100, t247, t248) { // t246
+ var r = SPOCK.count(arguments, "t246");
+ if(r) return r;
+ loop: while(true) {
+ var t1621 = (t247) instanceof SPOCK.Pair ;
+ var t951 = t1621;
+ var t1622;
+ if(t951 !== false) {
+ var t1625 = t247.cdr;
+ var t1623 = t1625;
+ var t1626 = t247.car;
+ var t251 = t1626;
+ var t1627 = new SPOCK.Pair(t251, t248);
+ var t1624 = t1627;
+ t247 = t1623;
+ t248 = t1624;
+ continue loop;
+ }
+ else {
+ return k1100(t248);
+ }
+ }
+ };
+ t246 = t1620; // set! t246
+ var t1629 = null;
+ return t246(k1099, t245, t1629);
+ };
+ ___reverse = t1619; // set! reverse
+ var t1631 = function (k1101, t254, t255) { // list-tail
+ var r = SPOCK.count(arguments, "list-tail");
+ if(r) return r;
+ var t256 = undefined;
+ var t1632 = function (k1102, t257, t258) { // t256
+ var r = SPOCK.count(arguments, "t256");
+ if(r) return r;
+ loop: while(true) {
+ var t1634 = (t257) <= 0 ;
+ var t1633;
+ if(t1634 !== false) {
+ return k1102(t258);
+ }
+ else {
+ var t1638 = (t257) - 1 ;
+ var t1636 = t1638;
+ var t1639 = SPOCK.check(t258, SPOCK.Pair, "t256");
+ var t259 = t1639;
+ var t1640 = t259.cdr;
+ var t1637 = t1640;
+ t257 = t1636;
+ t258 = t1637;
+ continue loop;
+ }
+ }
+ };
+ t256 = t1632; // set! t256
+ var t1641 = SPOCK.check(t255, 'number', "list-tail");
+ return t256(k1101, t1641, t254);
+ };
+ ___list_2dtail = t1631; // set! list-tail
+ var t260 = ___list_2dtail;
+ var t1643 = function (k1103, t261, t262) { // t260
+ var r = SPOCK.count(arguments, "t260");
+ if(r) return r;
+ var t1644 = function (t1105) {
+ var t1645 = SPOCK.check(t1105, SPOCK.Pair);
+ var t1104 = t1645;
+ var t263 = t1104;
+ var t1646 = t263.car;
+ return k1103(t1646);
+ };
+ return t260(t1644, t261, t262);
+ };
+ ___list_2dref = t1643; // set! list-ref
+ var t1649 = function(K) {
+ SPOCK.count(arguments, 'memq');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ if(n.car === x) return K(n);
+ }
+ return K(false);
+ };
+ ___memq = t1649; // set! memq
+ var t1650 = function(K) {
+ SPOCK.count(arguments, 'memv');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ if(SPOCK.eqvp(n.car, x)) return K(n);
+ }
+ return K(false);
+ };
+ ___memv = t1650; // set! memv
+ var t1651 = function(K) {
+ SPOCK.count(arguments, 'member');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ if(SPOCK.equalp(n.car, x)) return K(n);
+ }
+ return K(false);
+ };
+ ___member = t1651; // set! member
+ var t1652 = function(K) {
+ SPOCK.count(arguments, 'assq');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ var p = n.car;
+ if(p instanceof SPOCK.Pair && p.car === x) return K(p);
+ }
+ return K(false);
+ };
+ ___assq = t1652; // set! assq
+ var t1653 = function(K) {
+ SPOCK.count(arguments, 'assv');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ var p = n.car;
+ if(p instanceof SPOCK.Pair && SPOCK.eqvp(p.car, x)) return K(p);
+ }
+ return K(false);
+ };
+ ___assv = t1653; // set! assv
+ var t1654 = function(K) {
+ SPOCK.count(arguments, 'assoc');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ var p = n.car;
+ if(p instanceof SPOCK.Pair && SPOCK.equalp(p.car, x)) return K(p);
+ }
+ return K(false);
+ };
+ ___assoc = t1654; // set! assoc
+ var t1655 = function(K) {
+ SPOCK.count(arguments, '%+');
+ var len = arguments.length;
+ switch(len) {
+ case 1: return K(0);
+ case 2: return K(SPOCK.check(arguments[ 1 ], 'number', '+'));
+ default:
+ var p = SPOCK.check(arguments[ 1 ], 'number', '+');
+ for(var i = 2; i < len; ++i) {
+ p += SPOCK.check(arguments[ i ], 'number', '+');
+ }
+ return K(p);}
+ };
+ ____25_2b = t1655; // set! %+
+ var t1656 = function(K) {
+ SPOCK.count(arguments, '%-');
+ var len = arguments.length;
+ switch(len) {
+ case 1: SPOCK.error('(-) bad argument count', len);
+ case 2: return K(-SPOCK.check(arguments[ 1 ], 'number', '-'));
+ default:
+ var p = SPOCK.check(arguments[ 1 ], 'number', '-');
+ for(var i = 2; i < len; ++i) {
+ p -= SPOCK.check(arguments[ i ], 'number', '-');
+ }
+ return K(p);}
+ };
+ ____25_2d = t1656; // set! %-
+ var t1657 = function(K) {
+ SPOCK.count(arguments, '%*');
+ var len = arguments.length;
+ switch(len) {
+ case 1: return K(1);
+ case 2: return K(SPOCK.check(arguments[ 1 ], 'number', '*'));
+ default:
+ var p = SPOCK.check(arguments[ 1 ], 'number', '*');
+ for(var i = 2; i < len; ++i) {
+ p *= SPOCK.check(arguments[ i ], 'number', '*');
+ }
+ return K(p);}
+ };
+ ____25_2a = t1657; // set! %*
+ var t1658 = function(K) {
+ SPOCK.count(arguments, '%/');
+ var len = arguments.length;
+ switch(len) {
+ case 1: SPOCK.error('(/) bad argument count', len);
+ case 2: return K(1/SPOCK.check(arguments[ 1 ], 'number', '/'));
+ default:
+ var p = SPOCK.check(arguments[ 1 ], 'number', '/');
+ for(var i = 2; i < len; ++i) {
+ p /= SPOCK.check(arguments[ i ], 'number', '/');
+ }
+ return K(p);}
+ };
+ ____25_2f = t1658; // set! %/
+ var t1659 = function(K) {
+ SPOCK.count(arguments, '%=');
+ var argc = arguments.length;
+ var last = SPOCK.check(arguments[ 1 ], 'number', '=');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', '=');
+ if(last !== x) return K(false);
+ else last = x;}
+ return K(true);
+ };
+ ____25_3d = t1659; // set! %=
+ var t1660 = function(K) {
+ SPOCK.count(arguments, '%>');
+ var argc = arguments.length;
+ var last = SPOCK.check(arguments[ 1 ], 'number', '>');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', '>');
+ if(last <= x) return K(false);
+ else last = x;}
+ return K(true);
+ };
+ ____25_3e = t1660; // set! %>
+ var t1661 = function(K) {
+ SPOCK.count(arguments, '%<');
+ var argc = arguments.length;
+ var last = SPOCK.check(arguments[ 1 ], 'number', '<');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', '<');
+ if(last >= x) return K(false);
+ else last = x;}
+ return K(true);
+ };
+ ____25_3c = t1661; // set! %<
+ var t1662 = function(K) {
+ SPOCK.count(arguments, '%>=');
+ var argc = arguments.length;
+ var last = SPOCK.check(arguments[ 1 ], 'number', '>=');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', '>=');
+ if(last < x) return K(false);
+ else last = x;}
+ return K(true);
+ };
+ ____25_3e_3d = t1662; // set! %>=
+ var t1663 = function(K) {
+ SPOCK.count(arguments, '%<=');
+ var argc = arguments.length;
+ var last = SPOCK.check(arguments[ 1 ], 'number', '<=');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', '<=');
+ if(last > x) return K(false);
+ else last = x;}
+ return K(true);
+ };
+ ____25_3c_3d = t1663; // set! %<=
+ var t1664 = function(K) {
+ SPOCK.count(arguments, '%max');
+ var argc = arguments.length;
+ var n = SPOCK.check(arguments[ 1 ], 'number', 'max');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', 'max');
+ if(n < x) n = x;}
+ return K(n);
+ };
+ ____25max = t1664; // set! %max
+ var t1665 = function(K) {
+ SPOCK.count(arguments, '%min');
+ var argc = arguments.length;
+ var n = SPOCK.check(arguments[ 1 ], 'number', 'max');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', 'max');
+ if(n > x) n = x;}
+ return K(n);
+ };
+ ____25min = t1665; // set! %min
+ var t1666 = function (k1106, t264, t265) { // modulo
+ var r = SPOCK.count(arguments, "modulo");
+ if(r) return r;
+ loop: while(true) {
+ var t1668 = SPOCK.check(t264, 'number', "modulo");
+ var t1669 = SPOCK.check(t265, 'number', "modulo");
+ var t1667 = (t1668) / (t1669);
+ var t275 = t1667;
+ var t1670 = SPOCK.check(t275, 'number', "modulo");
+ var t1672 = (t275) < 0 ;
+ var t1671;
+ if(t1672 !== false) {
+ var t1673 = Math.ceil(t275);
+ t1671 = t1673;
+ }
+ else {
+ var t1674 = Math.floor(t275);
+ t1671 = t1674;
+ }
+ var t271 = t1671;
+ var t1676 = SPOCK.check(t271, 'number', "modulo");
+ var t1677 = SPOCK.check(t265, 'number', "modulo");
+ var t1675 = (t1676) * (t1677);
+ var t270 = t1675;
+ var t1679 = SPOCK.check(t264, 'number', "modulo");
+ var t1680 = SPOCK.check(t270, 'number', "modulo");
+ var t1678 = (t1679) - (t1680);
+ var t266 = t1678;
+ var t1682 = SPOCK.check(t265, 'number', "modulo");
+ var t1683 = SPOCK.check(0, 'number', "modulo");
+ var t1681 = (t1682) < (t1683);
+ var t952 = t1681;
+ var t1684;
+ if(t952 !== false) {
+ var t1686 = SPOCK.check(t266, 'number', "modulo");
+ var t1687 = SPOCK.check(0, 'number', "modulo");
+ var t1685 = (t1686) <= (t1687);
+ var t953 = t1685;
+ var t1688;
+ if(t953 !== false) {
+ t1688 = t266;
+ }
+ else {
+ var t1690 = SPOCK.check(t266, 'number', "modulo");
+ var t1691 = SPOCK.check(t265, 'number', "modulo");
+ var t1689 = (t1690) + (t1691);
+ t1688 = t1689;
+ }
+ t1684 = t1688;
+ }
+ else {
+ var t1693 = SPOCK.check(t266, 'number', "modulo");
+ var t1694 = SPOCK.check(0, 'number', "modulo");
+ var t1692 = (t1693) >= (t1694);
+ var t954 = t1692;
+ var t1695;
+ if(t954 !== false) {
+ t1695 = t266;
+ }
+ else {
+ var t1697 = SPOCK.check(t266, 'number', "modulo");
+ var t1698 = SPOCK.check(t265, 'number', "modulo");
+ var t1696 = (t1697) + (t1698);
+ t1695 = t1696;
+ }
+ t1684 = t1695;
+ }
+ return k1106(t1684);
+ }
+ };
+ ___modulo = t1666; // set! modulo
+ var t1700 = function (k1107, t289, t290) { // t288
+ var r = SPOCK.count(arguments, "t288");
+ if(r) return r;
+ loop: while(true) {
+ var t1702 = SPOCK.check(t289, 'number', "t288");
+ var t1703 = SPOCK.check(t290, 'number', "t288");
+ var t1701 = (t1702) / (t1703);
+ var t297 = t1701;
+ var t1704 = SPOCK.check(t297, 'number', "t288");
+ var t1706 = (t297) < 0 ;
+ var t1705;
+ if(t1706 !== false) {
+ var t1707 = Math.ceil(t297);
+ t1705 = t1707;
+ }
+ else {
+ var t1708 = Math.floor(t297);
+ t1705 = t1708;
+ }
+ var t293 = t1705;
+ var t1710 = SPOCK.check(t293, 'number', "t288");
+ var t1711 = SPOCK.check(t290, 'number', "t288");
+ var t1709 = (t1710) * (t1711);
+ var t292 = t1709;
+ var t1713 = SPOCK.check(t289, 'number', "t288");
+ var t1714 = SPOCK.check(t292, 'number', "t288");
+ var t1712 = (t1713) - (t1714);
+ return k1107(t1712);
+ }
+ };
+ var t288 = t1700;
+ var t1716 = function (k1108, t300, t301) { // t288
+ var r = SPOCK.count(arguments, "t288");
+ if(r) return r;
+ var t302 = undefined;
+ var t1717 = function (k1109, t303, t304) { // t302
+ var r = SPOCK.count(arguments, "t302");
+ if(r) return r;
+ var t1718 = SPOCK.check(t304, 'number', "t302");
+ var t307 = t1718;
+ var t1719 = (0) === (t307);
+ var t955 = t1719;
+ var t1720;
+ if(t955 !== false) {
+ var t1722 = SPOCK.check(t303, 'number', "t302");
+ var t1721 = Math.abs(t1722);
+ return k1109(t1721);
+ }
+ else {
+ var t1724 = function (t1110) {
+ return t302(k1109, t304, t1110);
+ };
+ return t288(t1724, t303, t304);
+ }
+ };
+ t302 = t1717; // set! t302
+ return t302(k1108, t300, t301);
+ };
+ ____25gcd = t1716; // set! %gcd
+ var t1728 = function (k1111, t309) { // gcd
+ var t309 = SPOCK.rest(arguments, 1, 'gcd');
+ var t1730 = null;
+ var t1729 = (t309) === (t1730);
+ var t956 = t1729;
+ var t1731;
+ if(t956 !== false) {
+ return k1111(0);
+ }
+ else {
+ var t313 = undefined;
+ var t1733 = function (k1112, t314, t315) { // t313
+ var r = SPOCK.count(arguments, "t313");
+ if(r) return r;
+ var t1734 = t314.car;
+ var t316 = t1734;
+ var t1735 = t314.cdr;
+ var t317 = t1735;
+ var t1736;
+ if(t315 !== false) {
+ var t1737 = SPOCK.check(t316, 'number', "t313");
+ t1736 = t1737;
+ }
+ else {
+ }
+ var t1739 = null;
+ var t1738 = (t317) === (t1739);
+ var t957 = t1738;
+ var t1740;
+ if(t957 !== false) {
+ var t1742 = SPOCK.check(t316, 'number', "t313");
+ var t1741 = Math.abs(t1742);
+ return k1112(t1741);
+ }
+ else {
+ var t1744 = t317.car;
+ var t324 = t1744;
+ var t1745 = SPOCK.check(t324, 'number', "t313");
+ var t1746 = function (t1114) {
+ var t326 = t1114;
+ var t1747 = t317.cdr;
+ var t327 = t1747;
+ var t1748 = new SPOCK.Pair(t326, t327);
+ var t1113 = t1748;
+ return t313(k1112, t1113, false);
+ };
+ return ____25gcd(t1746, t316, t324);
+ }
+ };
+ t313 = t1733; // set! t313
+ return t313(k1111, t309, true);
+ }
+ };
+ ___gcd = t1728; // set! gcd
+ var t1752 = function (k1115, t329, t330) { // %lcm
+ var r = SPOCK.count(arguments, "%lcm");
+ if(r) return r;
+ var t1754 = SPOCK.check(t329, 'number', "%lcm");
+ var t1755 = SPOCK.check(t330, 'number', "%lcm");
+ var t1753 = (t1754) * (t1755);
+ var t331 = t1753;
+ var t1756 = function (t1116) {
+ var t332 = t1116;
+ var t1758 = SPOCK.check(t331, 'number');
+ var t1759 = SPOCK.check(t332, 'number');
+ var t1757 = (t1758) / (t1759);
+ var t335 = t1757;
+ var t1760 = SPOCK.check(t335, 'number');
+ var t1762 = (t335) < 0 ;
+ var t1761;
+ if(t1762 !== false) {
+ var t1763 = Math.ceil(t335);
+ t1761 = t1763;
+ }
+ else {
+ var t1764 = Math.floor(t335);
+ t1761 = t1764;
+ }
+ return k1115(t1761);
+ };
+ return ____25gcd(t1756, t329, t330);
+ };
+ ____25lcm = t1752; // set! %lcm
+ var t1767 = function (k1117, t338) { // lcm
+ var t338 = SPOCK.rest(arguments, 1, 'lcm');
+ var t1769 = null;
+ var t1768 = (t338) === (t1769);
+ var t958 = t1768;
+ var t1770;
+ if(t958 !== false) {
+ return k1117(1);
+ }
+ else {
+ var t342 = undefined;
+ var t1772 = function (k1118, t343, t344) { // t342
+ var r = SPOCK.count(arguments, "t342");
+ if(r) return r;
+ var t1773 = t343.car;
+ var t345 = t1773;
+ var t1774 = t343.cdr;
+ var t346 = t1774;
+ var t1775;
+ if(t344 !== false) {
+ var t1776 = SPOCK.check(t345, 'number', "t342");
+ t1775 = t1776;
+ }
+ else {
+ }
+ var t1778 = null;
+ var t1777 = (t346) === (t1778);
+ var t959 = t1777;
+ var t1779;
+ if(t959 !== false) {
+ var t1781 = SPOCK.check(t345, 'number', "t342");
+ var t1780 = Math.abs(t1781);
+ return k1118(t1780);
+ }
+ else {
+ var t1783 = t346.car;
+ var t353 = t1783;
+ var t1784 = SPOCK.check(t353, 'number', "t342");
+ var t1785 = function (t1120) {
+ var t355 = t1120;
+ var t1786 = t346.cdr;
+ var t356 = t1786;
+ var t1787 = new SPOCK.Pair(t355, t356);
+ var t1119 = t1787;
+ return t342(k1118, t1119, false);
+ };
+ return ____25lcm(t1785, t345, t353);
+ }
+ };
+ t342 = t1772; // set! t342
+ return t342(k1117, t338, true);
+ }
+ };
+ ___lcm = t1767; // set! lcm
+ var t1791 = function(K) {
+ SPOCK.count(arguments, 'string->symbol');
+ var str = SPOCK.jstring(arguments[ 1 ]);
+ return K(SPOCK.intern(str));
+ };
+ ___string_2d_3esymbol = t1791; // set! string->symbol
+ var t1792 = function (k1121, t358, t359) { // get
+ var r = SPOCK.count(arguments, "get");
+ if(r) return r;
+ loop: while(true) {
+ var t1794 = SPOCK.check(t358, SPOCK.Symbol, "get");
+ var t1796 = SPOCK.check(t359, SPOCK.Symbol, "get");
+ var t1795 = t1796.name;
+ var t1793 = (t1794) .plist[ (t1795) ] ;
+ var t360 = t1793;
+ var t1797 = t360 === undefined;
+ var t361 = t1797;
+ var t1798;
+ if(t361 !== false) {
+ t1798 = false;
+ }
+ else {
+ t1798 = true;
+ }
+ var t960 = t1798;
+ var t1799;
+ if(t960 !== false) {
+ t1799 = t360;
+ }
+ else {
+ t1799 = false;
+ }
+ return k1121(t1799);
+ }
+ };
+ ___get = t1792; // set! get
+ var t1801 = function (k1122, t363, t364, t365) { // put!
+ var r = SPOCK.count(arguments, "put!");
+ if(r) return r;
+ loop: while(true) {
+ var t1803 = SPOCK.check(t363, SPOCK.Symbol, "put!");
+ var t1805 = SPOCK.check(t364, SPOCK.Symbol, "put!");
+ var t1804 = t1805.name;
+ var t1802 = (t1803) .plist[ (t1804) ] = (t365);
+ return k1122(t1802);
+ }
+ };
+ ___put_21 = t1801; // set! put!
+ var t1807 = function(K) {
+ SPOCK.count(arguments, 'string-append');
+ var args = Array.prototype.slice.call(arguments, 1);
+ var strs = SPOCK.map(function(x) { return SPOCK.jstring(x); }, args);
+ return K(new SPOCK.String(strs));
+ };
+ ___string_2dappend = t1807; // set! string-append
+ var t1808 = function(K) {
+ SPOCK.count(arguments, 'string');
+ var str = [];
+ var len = arguments.length - 1;
+ for(var i = 1; i <= len; ++i) {
+ var x = arguments[ i ];
+ if(x instanceof SPOCK.Char) str.push(x.character);
+ else SPOCK.error('bad argument type - not a character', x);}
+ return K(new SPOCK.String(str.join('')));
+ };
+ ___string = t1808; // set! string
+ var t1809 = function(K) {
+ SPOCK.count(arguments, 'string->list');
+ var str = SPOCK.jstring(arguments[ 1 ]);
+ var lst = null;
+ var len = str.length;
+ for(var i = len - 1; i >= 0; --i)
+ lst = new SPOCK.Pair(new SPOCK.Char(str.charAt(i)), lst);
+ return K(lst);
+ };
+ ___string_2d_3elist = t1809; // set! string->list
+ var t1810 = function(K) {
+ SPOCK.count(arguments, 'list->string');
+ var lst = arguments[ 1 ];
+ var str = [];
+ while(lst instanceof SPOCK.Pair) {
+ str.push(SPOCK.check(lst.car, SPOCK.Char).character);
+ lst = lst.cdr;}
+ return K(new SPOCK.String(str.join('')));
+ };
+ ___list_2d_3estring = t1810; // set! list->string
+ var t1811 = function(K) {
+ SPOCK.count(arguments, 'make-string');
+ var n = SPOCK.check(arguments[ 1 ], 'number', 'make-string');
+ var c = arguments[ 2 ];
+ var a = new Array(n);
+ if(c !== undefined)
+ c = SPOCK.check(c, SPOCK.Char, 'make-string').character;
+ else c = ' ';
+ for(var i = 0; i < n; ++i) a[ i ] = c;
+ return K(new SPOCK.String(a.join('')));
+ };
+ ___make_2dstring = t1811; // set! make-string
+ var t1812 = function(K) {
+ SPOCK.count(arguments, 'string-ref');
+ var str = arguments[ 1 ];
+ var i = SPOCK.check(arguments[ 2 ], 'number', 'string-ref');
+ if(typeof str === 'string')
+ return K(new SPOCK.Char(str.charAt(i)));
+ else if(str instanceof SPOCK.String) {
+ var parts = str.parts;
+ for(var p in parts) {
+ var l = parts[ p ].length;
+ if(i <= l) return K(new SPOCK.Char(parts[ p ].charAt(i)));
+ else i -= l;}
+ SPOCK.error('`string-ref\' out of range', str, i);}
+ };
+ ___string_2dref = t1812; // set! string-ref
+ var t1813 = function(K) {
+ SPOCK.count(arguments, 'string-set!');
+ var str = arguments[ 1 ];
+ var i = SPOCK.check(arguments[ 2 ], 'number', 'string-set!');
+ var c = SPOCK.check(arguments[ 3 ], SPOCK.Char, 'string-set!');
+ if(typeof str === 'string')
+ SPOCK.error('argument to `string-set!\' is not a mutable string', str);
+ else if(str instanceof SPOCK.String) {
+ var parts = str.parts;
+ for(var p in parts) {
+ var part = parts[ p ];
+ var l = part.length;
+ if(i <= l) {
+ parts[ p ] = part.substring(0, i) + c.character + part.substring(i + 1);
+ return K(undefined);
+ } else i -= l;}
+ SPOCK.error('`string-set!\' out of range', str, i);}
+ };
+ ___string_2dset_21 = t1813; // set! string-set!
+ var t1814 = function (k1123, t366, t367, t368) { // string-copy
+ var r = SPOCK.count(arguments, "string-copy");
+ if(r) return r;
+ loop: while(true) {
+ var t1815 = SPOCK.jstring(t366);
+ var t369 = t1815;
+ var t1816 = t367 === undefined;
+ var t961 = t1816;
+ var t1817;
+ if(t961 !== false) {
+ t1817 = 0;
+ }
+ else {
+ var t1818 = SPOCK.check(t367, 'number', "string-copy");
+ t1817 = t1818;
+ }
+ var t371 = t1817;
+ var t1819 = t368 === undefined;
+ var t962 = t1819;
+ var t1820;
+ if(t962 !== false) {
+ var t1821 = t369.length;
+ t1820 = t1821;
+ }
+ else {
+ var t1822 = SPOCK.check(t368, 'number', "string-copy");
+ t1820 = t1822;
+ }
+ var t373 = t1820;
+ var t1823 = t369.slice(t371, t373);
+ var t375 = t1823;
+ var t1824 = new SPOCK.String(t375);
+ return k1123(t1824);
+ }
+ };
+ ___string_2dcopy = t1814; // set! string-copy
+ var t1826 = function (k1124, t376, t377, t378, t379) { // string-fill!
+ var r = SPOCK.count(arguments, "string-fill!");
+ if(r) return r;
+ var t1827 = (t376) instanceof SPOCK.String ;
+ var t380 = t1827;
+ var t1828;
+ if(t380 !== false) {
+ t1828 = false;
+ }
+ else {
+ t1828 = true;
+ }
+ var t963 = t1828;
+ var t1829 = function (t1125) { // t1126
+ var t1830 = t376.normalize();
+ var t381 = t1830;
+ var t1831 = SPOCK.check(t377, SPOCK.Char, "t1126");
+ var t382 = t1831;
+ var t1832 = t378 === undefined;
+ var t964 = t1832;
+ var t1833;
+ if(t964 !== false) {
+ t1833 = 0;
+ }
+ else {
+ var t1834 = SPOCK.check(t378, 'number', "t1126");
+ t1833 = t1834;
+ }
+ var t383 = t1833;
+ var t1835 = t379 === undefined;
+ var t965 = t1835;
+ var t1836;
+ if(t965 !== false) {
+ var t1837 = t381.length;
+ t1836 = t1837;
+ }
+ else {
+ var t1838 = SPOCK.check(t379, 'number', "t1126");
+ t1836 = t1838;
+ }
+ var t385 = t1836;
+ var t1839 = function(K) {
+ SPOCK.count(arguments);
+ var str = arguments[ 1 ];
+ var from = arguments[ 2 ];
+ var to = arguments[ 3 ];
+ var c = arguments[ 4 ];
+ var snew = new Array(to - from);
+ for(var i in snew) snew[ i ] = c;
+ str.parts = [str.parts[ 0 ].substring(0, from), snew.join(''),
+ str.parts[ 0 ].substring(to)];
+ return K(str);
+ };
+ return t1839(k1124, t376, t383, t385, t382);
+ };
+ var t1126 = t1829;
+ var t1841;
+ if(t963 !== false) {
+ return ____25error(t1126, "bad argument type - not a mutable string", t376);
+ }
+ else {
+ return t1126(undefined);
+ }
+ };
+ ___string_2dfill_21 = t1826; // set! string-fill!
+ var t1844 = function(K) {
+ SPOCK.count(arguments, 'vector');
+ return K(Array.prototype.slice.call(arguments, 1));
+ };
+ ___vector = t1844; // set! vector
+ var t1845 = function(K) {
+ SPOCK.count(arguments, 'make-vector');
+ var n = SPOCK.check(arguments[ 1 ], 'number', 'make-vector');
+ var x = arguments[ 2 ];
+ var a = new Array(n);
+ if(x !== undefined) {
+ for(var i = 0; i < n; ++i) a[ i ] = x;}
+ return K(a);
+ };
+ ___make_2dvector = t1845; // set! make-vector
+ var t1846 = function(K) {
+ SPOCK.count(arguments, 'vector->list');
+ var vec = SPOCK.check(arguments[ 1 ], Array, 'vector->list');
+ var lst = null;
+ var len = vec.length;
+ for(var i = len - 1; i >= 0; --i)
+ lst = new SPOCK.Pair(vec[ i ], lst);
+ return K(lst);
+ };
+ ___vector_2d_3elist = t1846; // set! vector->list
+ var t1847 = function(K) {
+ SPOCK.count(arguments, 'list->vector');
+ var lst = arguments[ 1 ];
+ var vec = [];
+ while(lst instanceof SPOCK.Pair) {
+ vec.push(lst.car);
+ lst = lst.cdr;}
+ return K(vec);
+ };
+ ___list_2d_3evector = t1847; // set! list->vector
+ var t1848 = function(K) {
+ SPOCK.count(arguments, 'vector-fill!');
+ var vec = SPOCK.check(arguments[ 1 ], Array, 'vector-fill!');
+ var x = arguments[ 2 ];
+ var from = arguments[ 3 ];
+ var to = arguments[ 4 ];
+ if(from === undefined) from = 0;
+ if(to === undefined) to = vec.length;
+ for(var i = from; i < to; ++i)
+ vec[ i ] = x;
+ return K(undefined);
+ };
+ ___vector_2dfill_21 = t1848; // set! vector-fill!
+ var t1849 = function(K) {
+ SPOCK.count(arguments, 'string->number');
+ var str = SPOCK.jstring(arguments[ 1 ]);
+ var base = arguments[ 2 ];
+ if(!base) base = 10;
+ else base = SPOCK.check(base, 'number', 'string->number');
+ var m = true, neg = 1;
+ while(m) {
+ m = str.match(/^#[eboxid]/);
+ if(m) {
+ switch(str[ 1 ]) {
+ case 'e':
+ case 'i': break;
+ case 'd': base = 10; break;
+ case 'o': base = 8; break;
+ case 'x': base = 16; break;
+ case 'b': base = 2; break;
+ default: return K(false);}
+ str = str.substring(2);}}
+ switch(str[ 0 ]) {
+ case '-': neg = -1; str = str.substring(1); break;
+ case '+': str = str.substring(1);}
+ var num, den = false;
+ if((m = str.match(/^([^\/]+)\/(.+)$/))) {
+ str = m[ 1 ];
+ den = m[ 2 ];}
+ function num3(s) {
+ var tr = null;
+ switch(base) {
+ case 2: tr = /^[0-1]+$/; break;
+ case 8: tr = /^[0-7]+$/; break;
+ case 10: tr = /^[#0-9]*\.?[#0-9]+([esdfl][-+]?[0-9]+)?$/; break;
+ case 16: tr = /^[0-9a-fA-F]+$/;}
+ if(tr && !s.match(tr)) return false;
+ var s2 = s.replace(/#/g, '0');
+ if(base === 10) s2 = parseFloat(s2.replace(/[esdfl]/g, 'e'));
+ else if(s2 !== s) return false;
+ else s2 = parseInt(s2, base);
+ return isNaN(s2) ? false : s2;}
+ if((num = num3(str)) === false) return K(false);
+ if(den && !(den = num3(den))) return K(false);
+ return K(neg * num / (den || 1));
+ };
+ ___string_2d_3enumber = t1849; // set! string->number
+ var t1850 = function(K) {
+ SPOCK.count(arguments, '%show');
+ arguments[ 2 ].write(arguments[ 1 ]);
+ return K(undefined);
+ };
+ ____25show = t1850; // set! %show
+ var t1851 = function(K) {
+ SPOCK.count(arguments, '%fetch');
+ return K(arguments[ 2 ].read(arguments[ 1 ]));
+ };
+ ____25fetch = t1851; // set! %fetch
+ var t1852 = function(K) {
+ SPOCK.count(arguments, '%check-port');
+ var port = arguments[ 1 ];
+ var dir = arguments[ 2 ];
+ if(port instanceof SPOCK.Port) {
+ if(port.closed)
+ SPOCK.error('port is already closed', port);
+ else if(port.direction !== dir)
+ SPOCK.error('bad argument type - not an ' + dir + ' port', port, arguments[ 3 ]);
+ }
+ else SPOCK.error('bad argument type - not a port', port, arguments[ 3 ]);
+ return K(port);
+ };
+ ____25check_2dport = t1852; // set! %check-port
+ var t1853 = function (k1127, t387) { // newline
+ var r = SPOCK.count(arguments, "newline");
+ if(r) return r;
+ var t1854 = t387 === undefined;
+ var t966 = t1854;
+ var t1855 = function (t1128) { // t1129
+ return ____25show(k1127, "\n", t1128);
+ };
+ var t1129 = t1855;
+ var t1857;
+ if(t966 !== false) {
+ return t1129(SPOCK.stdout);
+ }
+ else {
+ return ____25check_2dport(t1129, t387, "output", "newline");
+ }
+ };
+ ___newline = t1853; // set! newline
+ var t1860 = function (k1130, t389) { // read-char
+ var r = SPOCK.count(arguments, "read-char");
+ if(r) return r;
+ var t1861 = t389 === undefined;
+ var t967 = t1861;
+ var t1862 = function (t1132) { // t1133
+ var t1863 = function (t1131) {
+ var t390 = t1131;
+ var t394 = SPOCK.EOF;
+ var t1864 = (t390) === (t394);
+ var t968 = t1864;
+ var t1865;
+ if(t968 !== false) {
+ t1865 = t390;
+ }
+ else {
+ var t1866 = new SPOCK.Char(t390);
+ t1865 = t1866;
+ }
+ return k1130(t1865);
+ };
+ return ____25fetch(t1863, 1, t1132);
+ };
+ var t1133 = t1862;
+ var t1869;
+ if(t967 !== false) {
+ return t1133(SPOCK.stdin);
+ }
+ else {
+ return ____25check_2dport(t1133, t389, "input", "read-char");
+ }
+ };
+ ___read_2dchar = t1860; // set! read-char
+ var t1872 = function (k1134, t395, t396) { // write-char
+ var r = SPOCK.count(arguments, "write-char");
+ if(r) return r;
+ var t1873 = t396 === undefined;
+ var t969 = t1873;
+ var t1874 = function (t1135) { // t1136
+ var t1876 = SPOCK.check(t395, SPOCK.Char, "t1136");
+ var t1875 = t1876.character;
+ return ____25show(k1134, t1875, t1135);
+ };
+ var t1136 = t1874;
+ var t1878;
+ if(t969 !== false) {
+ return t1136(SPOCK.stdout);
+ }
+ else {
+ return ____25check_2dport(t1136, t396, "output", "write-char");
+ }
+ };
+ ___write_2dchar = t1872; // set! write-char
+ var t398 = ___read_2dchar;
+ var t1881 = function (k1137, t399) { // t398
+ var r = SPOCK.count(arguments, "t398");
+ if(r) return r;
+ var t1882 = function (t1138) {
+ var t400 = t1138;
+ var t404 = SPOCK.EOF;
+ var t1883 = (t400) === (t404);
+ var t401 = t1883;
+ var t1884;
+ if(t401 !== false) {
+ t1884 = false;
+ }
+ else {
+ t1884 = true;
+ }
+ var t970 = t1884;
+ var t1885;
+ if(t970 !== false) {
+ var t1887 = t400.character;
+ var t1886 = (t399) .peeked = (t1887);
+ t1885 = t1886;
+ }
+ else {
+ }
+ return k1137(t400);
+ };
+ return t398(t1882, t399);
+ };
+ ___peek_2dchar = t1881; // set! peek-char
+ var t1890 = function (k1139, t405) { // char-ready?
+ var r = SPOCK.count(arguments, "char-ready?");
+ if(r) return r;
+ var t1891 = function (t1140) {
+ var t1892 = t405.ready();
+ return k1139(t1892);
+ };
+ return ____25check_2dport(t1891, t405, "input", "char-ready?");
+ };
+ ___char_2dready_3f = t1890; // set! char-ready?
+ var t1895 = function (k1141, t406, t407, t408) { // %print-hook
+ var r = SPOCK.count(arguments, "%print-hook");
+ if(r) return r;
+ return ____25show(k1141, "#<unknown object>", t407);
+ };
+ ____25print_2dhook = t1895; // set! %print-hook
+ var t1897 = function (k1142, t409, t410) { // display
+ var r = SPOCK.count(arguments, "display");
+ if(r) return r;
+ var t1898 = t410 === undefined;
+ var t971 = t1898;
+ var t1899 = function (t1143) { // t1157
+ var t411 = t1143;
+ var t413 = undefined;
+ var t1900 = function (k1144, t414) { // t413
+ var r = SPOCK.count(arguments, "t413");
+ if(r) return r;
+ var t1902 = null;
+ var t1901 = (t414) === (t1902);
+ var t972 = t1901;
+ var t1903;
+ if(t972 !== false) {
+ return ____25show(k1144, "()", t411);
+ }
+ else {
+ var t1905 = typeof(t414);
+ var t419 = t1905;
+ var t1906 = (t419) === ("number");
+ var t973 = t1906;
+ var t1907;
+ if(t973 !== false) {
+ var t1910 = SPOCK.check(t414, 'number', "t413");
+ var t1911 = undefined === undefined;
+ var t974 = t1911;
+ var t1912;
+ if(t974 !== false) {
+ t1912 = 10;
+ }
+ else {
+ var t1913 = SPOCK.check(undefined, 'number', "t413");
+ t1912 = t1913;
+ }
+ var t1909 = t1910.toString(t1912);
+ var t1908 = new SPOCK.String(t1909);
+ var t421 = t1908;
+ var t1914 = SPOCK.jstring(t421);
+ return ____25show(k1144, t1914, t411);
+ }
+ else {
+ var t1916 = typeof(t414);
+ var t427 = t1916;
+ var t1917 = (t427) === ("string");
+ var t426 = t1917;
+ var t1918;
+ if(t426 !== false) {
+ t1918 = t426;
+ }
+ else {
+ var t1919 = (t414) instanceof SPOCK.String ;
+ t1918 = t1919;
+ }
+ var t975 = t1918;
+ var t1920;
+ if(t975 !== false) {
+ var t1921 = SPOCK.jstring(t414);
+ return ____25show(k1144, t1921, t411);
+ }
+ else {
+ var t1923 = (t414) instanceof SPOCK.Symbol ;
+ var t976 = t1923;
+ var t1924;
+ if(t976 !== false) {
+ var t1925 = t414.name;
+ return ____25show(k1144, t1925, t411);
+ }
+ else {
+ var t1927 = (t414) instanceof SPOCK.Char ;
+ var t977 = t1927;
+ var t1928;
+ if(t977 !== false) {
+ var t1929 = t414.character;
+ return ____25show(k1144, t1929, t411);
+ }
+ else {
+ var t433 = SPOCK.EOF;
+ var t1931 = (t414) === (t433);
+ var t978 = t1931;
+ var t1932;
+ if(t978 !== false) {
+ return ____25show(k1144, "#<eof>", t411);
+ }
+ else {
+ var t1934 = typeof(t414);
+ var t435 = t1934;
+ var t1935 = (t435) === ("function");
+ var t979 = t1935;
+ var t1936;
+ if(t979 !== false) {
+ return ____25show(k1144, "#<procedure>", t411);
+ }
+ else {
+ var t1938 = (t414) === (true);
+ var t438 = t1938;
+ var t1939;
+ if(t438 !== false) {
+ t1939 = t438;
+ }
+ else {
+ var t1940 = (t414) === (false);
+ t1939 = t1940;
+ }
+ var t980 = t1939;
+ var t1941;
+ if(t980 !== false) {
+ var t1942;
+ if(t414 !== false) {
+ t1942 = "#t";
+ }
+ else {
+ t1942 = "#f";
+ }
+ return ____25show(k1144, t1942, t411);
+ }
+ else {
+ var t1944 = (t414) instanceof SPOCK.Pair ;
+ var t981 = t1944;
+ var t1945;
+ if(t981 !== false) {
+ var t1946 = function (t1145) {
+ var t444 = undefined;
+ var t1947 = function (k1146, t445) { // t444
+ var r = SPOCK.count(arguments, "t444");
+ if(r) return r;
+ var t1949 = null;
+ var t1948 = (t445) === (t1949);
+ var t982 = t1948;
+ var t1950;
+ if(t982 !== false) {
+ return ____25show(k1146, ")", t411);
+ }
+ else {
+ var t1952 = (t445) instanceof SPOCK.Pair ;
+ var t449 = t1952;
+ var t1953;
+ if(t449 !== false) {
+ t1953 = false;
+ }
+ else {
+ t1953 = true;
+ }
+ var t983 = t1953;
+ var t1954;
+ if(t983 !== false) {
+ var t1955 = function (t1147) {
+ var t1956 = function (t1148) {
+ return ____25show(k1146, ")", t411);
+ };
+ return t413(t1956, t445);
+ };
+ return ____25show(t1955, " . ", t411);
+ }
+ else {
+ var t452 = t414;
+ var t1960 = (t452) === (t445);
+ var t451 = t1960;
+ var t1961;
+ if(t451 !== false) {
+ t1961 = false;
+ }
+ else {
+ t1961 = true;
+ }
+ var t984 = t1961;
+ var t1962 = function (t1149) { // t1151
+ var t1963 = function (t1150) {
+ var t1964 = SPOCK.check(t445, SPOCK.Pair);
+ var t456 = t1964;
+ var t1965 = t456.cdr;
+ return t444(k1146, t1965);
+ };
+ var t1967 = t445.car;
+ return t413(t1963, t1967);
+ };
+ var t1151 = t1962;
+ var t1969;
+ if(t984 !== false) {
+ return ____25show(t1151, " ", t411);
+ }
+ else {
+ return t1151(undefined);
+ }
+ t1954 = t1969;
+ }
+ t1950 = t1954;
+ }
+ };
+ t444 = t1947; // set! t444
+ return t444(k1144, t414);
+ };
+ return ____25show(t1946, "(", t411);
+ }
+ else {
+ var t1974 = t414 === undefined;
+ var t985 = t1974;
+ var t1975;
+ if(t985 !== false) {
+ return ____25show(k1144, "#<undefined>", t411);
+ }
+ else {
+ var t1977 = (t414) instanceof Array ;
+ var t986 = t1977;
+ var t1978;
+ if(t986 !== false) {
+ var t1979 = t414.length;
+ var t459 = t1979;
+ var t1980 = function (t1152) {
+ var t460 = undefined;
+ var t1981 = function (k1153, t461) { // t460
+ var r = SPOCK.count(arguments, "t460");
+ if(r) return r;
+ var t1983 = (t461) >= (t459);
+ var t1982;
+ if(t1983 !== false) {
+ return ____25show(k1153, ")", t411);
+ }
+ else {
+ var t1985 = (t461) === (0);
+ var t462 = t1985;
+ var t1986;
+ if(t462 !== false) {
+ t1986 = false;
+ }
+ else {
+ t1986 = true;
+ }
+ var t987 = t1986;
+ var t1987 = function (t1154) { // t1156
+ var t1988 = function (t1155) {
+ var t1989 = 1+ (t461);
+ return t460(k1153, t1989);
+ };
+ var t1991 = (t414) [ (t461) ] ;
+ return t413(t1988, t1991);
+ };
+ var t1156 = t1987;
+ var t1993;
+ if(t987 !== false) {
+ return ____25show(t1156, " ", t411);
+ }
+ else {
+ return t1156(undefined);
+ }
+ t1982 = t1993;
+ }
+ };
+ t460 = t1981; // set! t460
+ return t460(k1144, 0);
+ };
+ return ____25show(t1980, "#(", t411);
+ }
+ else {
+ var t1999 = (t414) instanceof SPOCK.Port ;
+ var t1998;
+ if(t1999 !== false) {
+ var t2000 = SPOCK.stringify(t414);
+ return ____25show(k1144, t2000, t411);
+ }
+ else {
+ var t2003 = (t414) instanceof SPOCK.Promise ;
+ var t2002;
+ if(t2003 !== false) {
+ return ____25show(k1144, "#<promise>", t411);
+ }
+ else {
+ var t2005 = typeof(t414);
+ var t466 = t2005;
+ var t2006 = ("object") === (t466);
+ var t988 = t2006;
+ var t2007;
+ if(t988 !== false) {
+ return ____25print_2dhook(k1144, t414, t411, false);
+ }
+ else {
+ return ____25show(k1144, "#<unknown object>", t411);
+ }
+ t2002 = t2007;
+ }
+ t1998 = t2002;
+ }
+ t1978 = t1998;
+ }
+ t1975 = t1978;
+ }
+ t1945 = t1975;
+ }
+ t1941 = t1945;
+ }
+ t1936 = t1941;
+ }
+ t1932 = t1936;
+ }
+ t1928 = t1932;
+ }
+ t1924 = t1928;
+ }
+ t1920 = t1924;
+ }
+ t1907 = t1920;
+ }
+ t1903 = t1907;
+ }
+ };
+ t413 = t1900; // set! t413
+ return t413(k1142, t409);
+ };
+ var t1157 = t1899;
+ var t2011;
+ if(t971 !== false) {
+ return t1157(SPOCK.stdout);
+ }
+ else {
+ return ____25check_2dport(t1157, t410, "output", "display");
+ }
+ };
+ ___display = t1897; // set! display
+ var t467 = ___display;
+ var t468 = undefined;
+ var t2014 = function(K) {
+ SPOCK.count(arguments, 't468');
+ var str = arguments[ 1 ];
+ var a = [];
+ var len = str.length;
+ for(var i = 0; i < len; ++i) {
+ var c = str.charAt(i);
+ switch(c) {
+ case '\n': a.push('\n'); break;
+ case '\t': a.push('\t'); break;
+ case '\r': a.push('\r'); break;
+ case '\"': a.push('\\"'); break;
+ case '\\': a.push('\\'); break;
+ default: a.push(c);}}
+ return K(a.join(''));
+ };
+ t468 = t2014; // set! t468
+ var t2015 = function (k1158, t469, t470) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2016 = t470 === undefined;
+ var t989 = t2016;
+ var t2017 = function (t1159) { // t1177
+ var t471 = t1159;
+ var t473 = undefined;
+ var t2018 = function (k1160, t474) { // t473
+ var r = SPOCK.count(arguments, "t473");
+ if(r) return r;
+ var t2019 = typeof(t474);
+ var t477 = t2019;
+ var t2020 = (t477) === ("string");
+ var t476 = t2020;
+ var t2021;
+ if(t476 !== false) {
+ t2021 = t476;
+ }
+ else {
+ var t2022 = (t474) instanceof SPOCK.String ;
+ t2021 = t2022;
+ }
+ var t990 = t2021;
+ var t2023;
+ if(t990 !== false) {
+ var t2024 = function (t1161) {
+ var t2025 = function (t1163) {
+ var t2026 = function (t1162) {
+ return ____25show(k1160, "\"", t471);
+ };
+ return ____25show(t2026, t1163, t471);
+ };
+ var t2029 = SPOCK.jstring(t474);
+ return t468(t2025, t2029);
+ };
+ return ____25show(t2024, "\"", t471);
+ }
+ else {
+ var t2032 = (t474) instanceof SPOCK.Char ;
+ var t991 = t2032;
+ var t2033;
+ if(t991 !== false) {
+ var t2034 = function (t1164) {
+ var t2035 = t474.character;
+ var t480 = t2035;
+ var t2037 = SPOCK.eqvp(t480, "\n");
+ var t992 = t2037;
+ var t2038;
+ if(t992 !== false) {
+ t2038 = true;
+ }
+ else {
+ t2038 = false;
+ }
+ var t2036;
+ if(t2038 !== false) {
+ t2036 = "newline";
+ }
+ else {
+ var t2040 = SPOCK.eqvp(t480, "\r");
+ var t993 = t2040;
+ var t2041;
+ if(t993 !== false) {
+ t2041 = true;
+ }
+ else {
+ t2041 = false;
+ }
+ var t2039;
+ if(t2041 !== false) {
+ t2039 = "return";
+ }
+ else {
+ var t2043 = SPOCK.eqvp(t480, "\t");
+ var t994 = t2043;
+ var t2044;
+ if(t994 !== false) {
+ t2044 = true;
+ }
+ else {
+ t2044 = false;
+ }
+ var t2042;
+ if(t2044 !== false) {
+ t2042 = "tab";
+ }
+ else {
+ var t2046 = SPOCK.eqvp(t480, " ");
+ var t995 = t2046;
+ var t2047;
+ if(t995 !== false) {
+ t2047 = true;
+ }
+ else {
+ t2047 = false;
+ }
+ var t2045;
+ if(t2047 !== false) {
+ t2045 = "space";
+ }
+ else {
+ t2045 = t480;
+ }
+ t2042 = t2045;
+ }
+ t2039 = t2042;
+ }
+ t2036 = t2039;
+ }
+ return ____25show(k1160, t2036, t471);
+ };
+ return ____25show(t2034, "#\\", t471);
+ }
+ else {
+ var t2050 = (t474) instanceof SPOCK.Pair ;
+ var t996 = t2050;
+ var t2051;
+ if(t996 !== false) {
+ var t2052 = function (t1165) {
+ var t491 = undefined;
+ var t2053 = function (k1166, t492) { // t491
+ var r = SPOCK.count(arguments, "t491");
+ if(r) return r;
+ var t2055 = null;
+ var t2054 = (t492) === (t2055);
+ var t997 = t2054;
+ var t2056;
+ if(t997 !== false) {
+ return ____25show(k1166, ")", t471);
+ }
+ else {
+ var t2058 = (t492) instanceof SPOCK.Pair ;
+ var t496 = t2058;
+ var t2059;
+ if(t496 !== false) {
+ t2059 = false;
+ }
+ else {
+ t2059 = true;
+ }
+ var t998 = t2059;
+ var t2060;
+ if(t998 !== false) {
+ var t2061 = function (t1167) {
+ var t2062 = function (t1168) {
+ return ____25show(k1166, ")", t471);
+ };
+ return t473(t2062, t492);
+ };
+ return ____25show(t2061, " . ", t471);
+ }
+ else {
+ var t499 = t474;
+ var t2066 = (t499) === (t492);
+ var t498 = t2066;
+ var t2067;
+ if(t498 !== false) {
+ t2067 = false;
+ }
+ else {
+ t2067 = true;
+ }
+ var t999 = t2067;
+ var t2068 = function (t1169) { // t1171
+ var t2069 = function (t1170) {
+ var t2070 = SPOCK.check(t492, SPOCK.Pair);
+ var t503 = t2070;
+ var t2071 = t503.cdr;
+ return t491(k1166, t2071);
+ };
+ var t2073 = t492.car;
+ return t473(t2069, t2073);
+ };
+ var t1171 = t2068;
+ var t2075;
+ if(t999 !== false) {
+ return ____25show(t1171, " ", t471);
+ }
+ else {
+ return t1171(undefined);
+ }
+ t2060 = t2075;
+ }
+ t2056 = t2060;
+ }
+ };
+ t491 = t2053; // set! t491
+ return t491(k1160, t474);
+ };
+ return ____25show(t2052, "(", t471);
+ }
+ else {
+ var t2080 = (t474) instanceof Array ;
+ var t1000 = t2080;
+ var t2081;
+ if(t1000 !== false) {
+ var t2082 = t474.length;
+ var t505 = t2082;
+ var t2083 = function (t1172) {
+ var t506 = undefined;
+ var t2084 = function (k1173, t507) { // t506
+ var r = SPOCK.count(arguments, "t506");
+ if(r) return r;
+ var t2086 = (t507) >= (t505);
+ var t2085;
+ if(t2086 !== false) {
+ return ____25show(k1173, ")", t471);
+ }
+ else {
+ var t2088 = (t507) === (0);
+ var t508 = t2088;
+ var t2089;
+ if(t508 !== false) {
+ t2089 = false;
+ }
+ else {
+ t2089 = true;
+ }
+ var t1001 = t2089;
+ var t2090 = function (t1174) { // t1176
+ var t2091 = function (t1175) {
+ var t2092 = 1+ (t507);
+ return t506(k1173, t2092);
+ };
+ var t2094 = (t474) [ (t507) ] ;
+ return t473(t2091, t2094);
+ };
+ var t1176 = t2090;
+ var t2096;
+ if(t1001 !== false) {
+ return ____25show(t1176, " ", t471);
+ }
+ else {
+ return t1176(undefined);
+ }
+ t2085 = t2096;
+ }
+ };
+ t506 = t2084; // set! t506
+ return t506(k1160, 0);
+ };
+ return ____25show(t2083, "#(", t471);
+ }
+ else {
+ return t467(k1160, t474, t471);
+ }
+ t2051 = t2081;
+ }
+ t2033 = t2051;
+ }
+ t2023 = t2033;
+ }
+ };
+ t473 = t2018; // set! t473
+ return t473(k1158, t469);
+ };
+ var t1177 = t2017;
+ var t2103;
+ if(t989 !== false) {
+ return t1177(SPOCK.stdout);
+ }
+ else {
+ return ____25check_2dport(t1177, t470, "output", "write");
+ }
+ };
+ ___write = t2015; // set! write
+ var t2106 = function(K) {
+ SPOCK.count(arguments, 'apply');
+ var proc = arguments[ 1 ];
+ var argc = arguments.length;
+ var lst = arguments[ argc - 1 ];
+ var vec = [K].concat(Array.prototype.slice.call(arguments, 2, argc - 1));
+ if(lst instanceof Array) vec = vec.concat(lst);
+ else{
+ var len = SPOCK.length(lst);
+ var vec2 = new Array(len);
+ for(var i = 0; lst instanceof SPOCK.Pair; lst = lst.cdr)
+ vec2[ i++ ] = lst.car;
+ vec = vec.concat(vec2);}
+ return proc.apply(SPOCK.global, vec);
+ };
+ ___apply = t2106; // set! apply
+ var t2107 = function (k1178, t511, t512, t513) { // for-each
+ var r = SPOCK.count(arguments, "for-each");
+ if(r) return r;
+ var t513 = SPOCK.rest(arguments, 3, 'for-each');
+ var t2109 = null;
+ var t2108 = (t513) === (t2109);
+ var t1002 = t2108;
+ var t2110;
+ if(t1002 !== false) {
+ var t2111 = (t512) instanceof Array ;
+ var t1003 = t2111;
+ var t2112;
+ if(t1003 !== false) {
+ var t2114 = SPOCK.check(t512, Array, "for-each");
+ var t2113 = t2114.length;
+ var t518 = t2113;
+ var t520 = undefined;
+ var t2115 = function (k1179, t521) { // t520
+ var r = SPOCK.count(arguments, "t520");
+ if(r) return r;
+ var t523 = t518;
+ var t2117 = SPOCK.check(t521, 'number', "t520");
+ var t2118 = SPOCK.check(t523, 'number', "t520");
+ var t2116 = (t2117) >= (t2118);
+ var t1004 = t2116;
+ var t2119;
+ if(t1004 !== false) {
+ return k1179(false);
+ }
+ else {
+ var t2121 = function (t1180) {
+ var t2123 = SPOCK.check(t521, 'number');
+ var t2124 = SPOCK.check(1, 'number');
+ var t2122 = (t2123) + (t2124);
+ return t520(k1179, t2122);
+ };
+ var t524 = t512;
+ var t2127 = SPOCK.check(t524, Array, "t520");
+ var t2128 = SPOCK.check(t521, 'number', "t520");
+ var t2126 = (t2127) [ (t2128) ] ;
+ return t511(t2121, t2126);
+ }
+ };
+ t520 = t2115; // set! t520
+ return t520(k1178, 0);
+ }
+ else {
+ var t528 = undefined;
+ var t2131 = function (k1181, t529) { // t528
+ var r = SPOCK.count(arguments, "t528");
+ if(r) return r;
+ var t2132 = (t529) instanceof SPOCK.Pair ;
+ var t1005 = t2132;
+ var t2133;
+ if(t1005 !== false) {
+ var t2134 = function (t1182) {
+ var t2135 = t529.cdr;
+ return t528(k1181, t2135);
+ };
+ var t2137 = t529.car;
+ return t511(t2134, t2137);
+ }
+ else {
+ return k1181(undefined);
+ }
+ };
+ t528 = t2131; // set! t528
+ return t528(k1178, t512);
+ }
+ t2110 = t2112;
+ }
+ else {
+ var t533 = undefined;
+ var t2141 = function (k1183, t534) { // t533
+ var r = SPOCK.count(arguments, "t533");
+ if(r) return r;
+ var t536 = undefined;
+ var t2142 = function (k1189, t537) { // t536
+ var r = SPOCK.count(arguments, "t536");
+ if(r) return r;
+ var t2144 = null;
+ var t2143 = (t537) === (t2144);
+ var t1006 = t2143;
+ var t2145;
+ if(t1006 !== false) {
+ var t2146 = null;
+ return k1189(t2146);
+ }
+ else {
+ var t2148 = t537.car;
+ var t541 = t2148;
+ var t2149 = (t541) instanceof SPOCK.Pair ;
+ var t1007 = t2149;
+ var t2150;
+ if(t1007 !== false) {
+ var t2151 = t541.car;
+ var t544 = t2151;
+ var t2152 = function (t1190) {
+ var t545 = t1190;
+ var t2153 = new SPOCK.Pair(t544, t545);
+ return k1189(t2153);
+ };
+ var t2155 = t537.cdr;
+ return t536(t2152, t2155);
+ }
+ else {
+ return k1189(false);
+ }
+ t2145 = t2150;
+ }
+ };
+ t536 = t2142; // set! t536
+ var t2158 = function (t1184) {
+ var t535 = t1184;
+ var t2159;
+ if(t535 !== false) {
+ var t2160 = function (t1185) {
+ var t548 = undefined;
+ var t2161 = function (k1187, t549) { // t548
+ var r = SPOCK.count(arguments, "t548");
+ if(r) return r;
+ var t2163 = null;
+ var t2162 = (t549) === (t2163);
+ var t1008 = t2162;
+ var t2164;
+ if(t1008 !== false) {
+ var t2165 = null;
+ return k1187(t2165);
+ }
+ else {
+ var t2167 = t549.car;
+ var t555 = t2167;
+ var t2168 = t555.cdr;
+ var t553 = t2168;
+ var t2169 = function (t1188) {
+ var t554 = t1188;
+ var t2170 = new SPOCK.Pair(t553, t554);
+ return k1187(t2170);
+ };
+ var t2172 = t549.cdr;
+ return t548(t2169, t2172);
+ }
+ };
+ t548 = t2161; // set! t548
+ var t2174 = function (t1186) {
+ return t533(k1183, t1186);
+ };
+ return t548(t2174, t534);
+ };
+ return ___apply(t2160, t511, t535);
+ }
+ else {
+ return k1183(undefined);
+ }
+ };
+ return t536(t2158, t534);
+ };
+ t533 = t2141; // set! t533
+ var t2180 = new SPOCK.Pair(t512, t513);
+ return t533(k1178, t2180);
+ }
+ };
+ ___for_2deach = t2107; // set! for-each
+ var t2182 = function (k1191, t560, t561, t562) { // map
+ var r = SPOCK.count(arguments, "map");
+ if(r) return r;
+ var t562 = SPOCK.rest(arguments, 3, 'map');
+ var t2184 = null;
+ var t2183 = (t562) === (t2184);
+ var t1009 = t2183;
+ var t2185;
+ if(t1009 !== false) {
+ var t2186 = (t561) instanceof Array ;
+ var t1010 = t2186;
+ var t2187;
+ if(t1010 !== false) {
+ var t2189 = SPOCK.check(t561, Array, "map");
+ var t2188 = t2189.length;
+ var t567 = t2188;
+ var t2190 = function (t1192) {
+ var t569 = t1192;
+ var t570 = undefined;
+ var t2191 = function (k1193, t571) { // t570
+ var r = SPOCK.count(arguments, "t570");
+ if(r) return r;
+ var t573 = t567;
+ var t2193 = SPOCK.check(t571, 'number', "t570");
+ var t2194 = SPOCK.check(t573, 'number', "t570");
+ var t2192 = (t2193) >= (t2194);
+ var t1011 = t2192;
+ var t2195;
+ if(t1011 !== false) {
+ return k1193(t569);
+ }
+ else {
+ var t574 = t569;
+ var t575 = t571;
+ var t2197 = function (t1195) {
+ var t576 = t1195;
+ var t2199 = SPOCK.check(t574, Array);
+ var t2200 = SPOCK.check(t575, 'number');
+ var t2198 = (t2199) [ (t2200) ] = (t576);
+ var t1194 = t2198;
+ var t2202 = SPOCK.check(t571, 'number');
+ var t2203 = SPOCK.check(1, 'number');
+ var t2201 = (t2202) + (t2203);
+ return t570(k1193, t2201);
+ };
+ var t577 = t561;
+ var t2206 = SPOCK.check(t577, Array, "t570");
+ var t2207 = SPOCK.check(t571, 'number', "t570");
+ var t2205 = (t2206) [ (t2207) ] ;
+ return t560(t2197, t2205);
+ }
+ };
+ t570 = t2191; // set! t570
+ return t570(k1191, 0);
+ };
+ return ___make_2dvector(t2190, t567);
+ }
+ else {
+ var t581 = undefined;
+ var t2211 = function (k1196, t582) { // t581
+ var r = SPOCK.count(arguments, "t581");
+ if(r) return r;
+ var t2212 = (t582) instanceof SPOCK.Pair ;
+ var t1012 = t2212;
+ var t2213;
+ if(t1012 !== false) {
+ var t2214 = function (t1197) {
+ var t584 = t1197;
+ var t2215 = function (t1198) {
+ var t585 = t1198;
+ var t2216 = new SPOCK.Pair(t584, t585);
+ return k1196(t2216);
+ };
+ var t2218 = t582.cdr;
+ return t581(t2215, t2218);
+ };
+ var t2220 = t582.car;
+ return t560(t2214, t2220);
+ }
+ else {
+ var t2222 = null;
+ return k1196(t2222);
+ }
+ };
+ t581 = t2211; // set! t581
+ return t581(k1191, t561);
+ }
+ t2185 = t2187;
+ }
+ else {
+ var t588 = undefined;
+ var t2225 = function (k1199, t589) { // t588
+ var r = SPOCK.count(arguments, "t588");
+ if(r) return r;
+ var t591 = undefined;
+ var t2226 = function (k1206, t592) { // t591
+ var r = SPOCK.count(arguments, "t591");
+ if(r) return r;
+ var t2228 = null;
+ var t2227 = (t592) === (t2228);
+ var t1013 = t2227;
+ var t2229;
+ if(t1013 !== false) {
+ var t2230 = null;
+ return k1206(t2230);
+ }
+ else {
+ var t2232 = t592.car;
+ var t596 = t2232;
+ var t2233 = (t596) instanceof SPOCK.Pair ;
+ var t1014 = t2233;
+ var t2234;
+ if(t1014 !== false) {
+ var t2235 = t596.car;
+ var t599 = t2235;
+ var t2236 = function (t1207) {
+ var t600 = t1207;
+ var t2237 = new SPOCK.Pair(t599, t600);
+ return k1206(t2237);
+ };
+ var t2239 = t592.cdr;
+ return t591(t2236, t2239);
+ }
+ else {
+ return k1206(false);
+ }
+ t2229 = t2234;
+ }
+ };
+ t591 = t2226; // set! t591
+ var t2242 = function (t1200) {
+ var t590 = t1200;
+ var t2243;
+ if(t590 !== false) {
+ var t2244 = function (t1201) {
+ var t603 = t1201;
+ var t605 = undefined;
+ var t2245 = function (k1204, t606) { // t605
+ var r = SPOCK.count(arguments, "t605");
+ if(r) return r;
+ var t2247 = null;
+ var t2246 = (t606) === (t2247);
+ var t1015 = t2246;
+ var t2248;
+ if(t1015 !== false) {
+ var t2249 = null;
+ return k1204(t2249);
+ }
+ else {
+ var t2251 = t606.car;
+ var t612 = t2251;
+ var t2252 = t612.cdr;
+ var t610 = t2252;
+ var t2253 = function (t1205) {
+ var t611 = t1205;
+ var t2254 = new SPOCK.Pair(t610, t611);
+ return k1204(t2254);
+ };
+ var t2256 = t606.cdr;
+ return t605(t2253, t2256);
+ }
+ };
+ t605 = t2245; // set! t605
+ var t2258 = function (t1203) {
+ var t2259 = function (t1202) {
+ var t604 = t1202;
+ var t2260 = new SPOCK.Pair(t603, t604);
+ return k1199(t2260);
+ };
+ return t588(t2259, t1203);
+ };
+ return t605(t2258, t589);
+ };
+ return ___apply(t2244, t560, t590);
+ }
+ else {
+ var t2265 = null;
+ return k1199(t2265);
+ }
+ };
+ return t591(t2242, t589);
+ };
+ t588 = t2225; // set! t588
+ var t2268 = new SPOCK.Pair(t561, t562);
+ return t588(k1191, t2268);
+ }
+ };
+ ___map = t2182; // set! map
+ var t2270 = function (k1208, t619, t620, t621) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2271 = function (t1209) {
+ var t2272 = new SPOCK.Pair(t619, t621);
+ var t622 = t2272;
+ var t623 = SPOCK.dynwinds;
+ var t2273 = new SPOCK.Pair(t622, t623);
+ SPOCK.dynwinds = t2273
+ var t2274 = function (k1210) {
+ var t626 = SPOCK.dynwinds;
+ var t2275 = t626.cdr;
+ SPOCK.dynwinds = t2275
+ return t621(k1210);
+ };
+ return ____25call_2dwith_2dsaved_2dvalues(k1208, t620, t2274);
+ };
+ return t619(t2271);
+ };
+ ___dynamic_2dwind = t2270; // set! dynamic-wind
+ var t2279 = function(K) {
+ SPOCK.count(arguments, '%call-with-current-continuation');
+ var proc = arguments[ 1 ];
+ function cont() {
+ return K.apply(SPOCK.global, Array.prototype.slice.call(arguments, 1));}
+ return proc(K, cont);
+ };
+ ____25call_2dwith_2dcurrent_2dcontinuation = t2279; // set! %call-with-current-continuation
+ var t627 = undefined;
+ var t2280 = function (k1211, t628, t629) { // t627
+ var r = SPOCK.count(arguments, "t627");
+ if(r) return r;
+ var t631 = SPOCK.dynwinds;
+ var t2281 = (t631) === (t628);
+ var t630 = t2281;
+ var t2282;
+ if(t630 !== false) {
+ return k1211(t630);
+ }
+ else {
+ var t2285 = SPOCK.check(t629, 'number', "t627");
+ var t2286 = SPOCK.check(0, 'number', "t627");
+ var t2284 = (t2285) < (t2286);
+ var t1016 = t2284;
+ var t2287;
+ if(t1016 !== false) {
+ var t2288 = function (t1212) {
+ var t2289 = t628.car;
+ var t636 = t2289;
+ var t2290 = t636.car;
+ var t2291 = function (t1213) {
+ SPOCK.dynwinds = t628
+ return k1211(undefined);
+ };
+ return t2290(t2291);
+ };
+ var t2294 = t628.cdr;
+ var t2295 = (t629) + 1 ;
+ return t627(t2288, t2294, t2295);
+ }
+ else {
+ var t640 = SPOCK.dynwinds;
+ var t2297 = t640.car;
+ var t639 = t2297;
+ var t2298 = t639.cdr;
+ var t638 = t2298;
+ var t641 = SPOCK.dynwinds;
+ var t2299 = t641.cdr;
+ SPOCK.dynwinds = t2299
+ var t2300 = function (t1214) {
+ var t2301 = (t629) - 1 ;
+ return t627(k1211, t628, t2301);
+ };
+ return t638(t2300);
+ }
+ t2282 = t2287;
+ }
+ };
+ t627 = t2280; // set! t627
+ var t2304 = function (k1215, t642) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t643 = SPOCK.dynwinds;
+ var t2305 = function (k1216, t644) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2306 = function (k1217, t645) {
+ var t645 = SPOCK.rest(arguments, 1);
+ var t646 = SPOCK.dynwinds;
+ var t649 = t643;
+ var t2307 = (t646) === (t649);
+ var t647 = t2307;
+ var t2308;
+ if(t647 !== false) {
+ t2308 = false;
+ }
+ else {
+ t2308 = true;
+ }
+ var t1017 = t2308;
+ var t2309 = function (t1218) { // t1219
+ return ___apply(k1217, t644, t645);
+ };
+ var t1219 = t2309;
+ var t2311;
+ if(t1017 !== false) {
+ var t2312 = SPOCK.length(t646);
+ var t650 = t2312;
+ var t653 = t643;
+ var t2313 = SPOCK.length(t653);
+ var t651 = t2313;
+ var t2315 = SPOCK.check(t650, 'number');
+ var t2316 = SPOCK.check(t651, 'number');
+ var t2314 = (t2315) - (t2316);
+ return t627(t1219, t643, t2314);
+ }
+ else {
+ return t1219(undefined);
+ }
+ };
+ return t642(k1216, t2306);
+ };
+ return ____25call_2dwith_2dcurrent_2dcontinuation(k1215, t2305);
+ };
+ ___call_2dwith_2dcurrent_2dcontinuation = t2304; // set! call-with-current-continuation
+ var t2321 = function (k1220, t654) { // %get-context
+ var r = SPOCK.count(arguments, "%get-context");
+ if(r) return r;
+ return ___vector(k1220, t654, SPOCK.dynwinds, SPOCK.stdin, SPOCK.stdout, SPOCK.stderr);
+ };
+ ____25get_2dcontext = t2321; // set! %get-context
+ var t2323 = function(K) {
+ SPOCK.count(arguments, '%restore-context');
+ var state = arguments[ 1 ];
+ SPOCK.dynwinds = state[ 1 ];
+ SPOCK.stdin = state[ 2 ];
+ SPOCK.stdout = state[ 3 ];
+ SPOCK.stderr = state[ 4 ];
+ return (state[ 0 ])(undefined);
+ };
+ ____25restore_2dcontext = t2323; // set! %restore-context
+ var t2324 = function (k1221, t655) { // suspend
+ var r = SPOCK.count(arguments, "suspend");
+ if(r) return r;
+ var t2325 = function (k1222, t656) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2326 = function (t1224) {
+ var t2327 = function (t1223) {
+ var t2328 = function(K) {
+ SPOCK.count(arguments);
+ return new SPOCK.Result(undefined);
+ };
+ return t2328(k1222);
+ };
+ return t655(t2327, t1224);
+ };
+ return ____25get_2dcontext(t2326, t656);
+ };
+ return ____25call_2dwith_2dcurrent_2dcontinuation(k1221, t2325);
+ };
+ ___suspend = t2324; // set! suspend
+ var t2333 = function (k1225, t657) { // %make-promise
+ var r = SPOCK.count(arguments, "%make-promise");
+ if(r) return r;
+ var t658 = false;
+ var t659 = false;
+ var t2335 = function (k1226) { // t659
+ var t2336;
+ if(t658 !== false) {
+ return ___apply(k1226, ___values, t659);
+ }
+ else {
+ var t2338 = function (k1227, t660) {
+ var t660 = SPOCK.rest(arguments, 1);
+ var t2339;
+ if(t658 !== false) {
+ return ___apply(k1227, ___values, t659);
+ }
+ else {
+ t658 = true; // set! t658
+ t659 = t660; // set! t659
+ return ___apply(k1227, ___values, t659);
+ }
+ };
+ return ___call_2dwith_2dvalues(k1226, t657, t2338);
+ }
+ };
+ var t2334 = new SPOCK.Promise(t2335);
+ return k1225(t2334);
+ };
+ ____25make_2dpromise = t2333; // set! %make-promise
+ var t2344 = function (k1228, t661) { // force
+ var r = SPOCK.count(arguments, "force");
+ if(r) return r;
+ var t2346 = (t661) instanceof SPOCK.Promise ;
+ var t2345;
+ if(t2346 !== false) {
+ var t2347 = t661.thunk;
+ return t2347(k1228);
+ }
+ else {
+ return k1228(t661);
+ }
+ };
+ ___force = t2344; // set! force
+ var t662 = ___dynamic_2dwind;
+ var t2350 = function (k1229, t663, t664) { // t662
+ var r = SPOCK.count(arguments, "t662");
+ if(r) return r;
+ var t2351 = function (t1230) {
+ var t665 = false;
+ var t2352 = function (k1231) {
+ loop: while(true) {
+ t665 = SPOCK.stdin; // set! t665
+ SPOCK.stdin = t663
+ return k1231(undefined);
+ }
+ };
+ var t2354 = function (k1232) {
+ loop: while(true) {
+ SPOCK.stdin = t665
+ return k1232(undefined);
+ }
+ };
+ return t662(k1229, t2352, t664, t2354);
+ };
+ return ____25check_2dport(t2351, t663, "input", "with-input-from-port");
+ };
+ ___with_2dinput_2dfrom_2dport = t2350; // set! with-input-from-port
+ var t666 = ___dynamic_2dwind;
+ var t2358 = function (k1233, t667, t668) { // t666
+ var r = SPOCK.count(arguments, "t666");
+ if(r) return r;
+ var t2359 = function (t1234) {
+ var t669 = false;
+ var t2360 = function (k1235) {
+ loop: while(true) {
+ t669 = SPOCK.stdout; // set! t669
+ SPOCK.stdout = t667
+ return k1235(undefined);
+ }
+ };
+ var t2362 = function (k1236) {
+ loop: while(true) {
+ SPOCK.stdout = t669
+ return k1236(undefined);
+ }
+ };
+ return t666(k1233, t2360, t668, t2362);
+ };
+ return ____25check_2dport(t2359, t667, "output", "with-output-to-port");
+ };
+ ___with_2doutput_2dto_2dport = t2358; // set! with-output-to-port
+ var t2366 = function(K) {
+ SPOCK.count(arguments, '%close-port');
+ var port = arguments[ 1 ];
+ port.close();
+ port.closed = true;
+ return K(port);
+ };
+ ____25close_2dport = t2366; // set! %close-port
+ var t2367 = function(K) {
+ SPOCK.count(arguments, 'open-input-file');
+ var fn = SPOCK.check(arguments[ 1 ], 'string', 'open-input-file');
+ return K(SPOCK.openInputFile(fn));
+ };
+ ___open_2dinput_2dfile = t2367; // set! open-input-file
+ var t2368 = function(K) {
+ SPOCK.count(arguments, 'open-output-file');
+ var fn = SPOCK.check(arguments[ 1 ], 'string', 'open-input-file');
+ var exp = null;
+ if(arguments.length === 3)
+ exp = SPOCK.check(arguments[ 2 ], 'number', 'open-input-file');
+ return K(SPOCK.openOutputFile(fn, exp));
+ };
+ ___open_2doutput_2dfile = t2368; // set! open-output-file
+ var t2369 = function (k1237, t670) { // close-input-port
+ var r = SPOCK.count(arguments, "close-input-port");
+ if(r) return r;
+ var t2370 = function (t1238) {
+ var t671 = t1238;
+ return ____25close_2dport(k1237, t671);
+ };
+ return ____25check_2dport(t2370, t670, "input", "close-input-port");
+ };
+ ___close_2dinput_2dport = t2369; // set! close-input-port
+ var t2373 = function (k1239, t672) { // close-output-port
+ var r = SPOCK.count(arguments, "close-output-port");
+ if(r) return r;
+ var t2374 = function (t1240) {
+ var t673 = t1240;
+ return ____25close_2dport(k1239, t673);
+ };
+ return ____25check_2dport(t2374, t672, "output", "close-output-port");
+ };
+ ___close_2doutput_2dport = t2373; // set! close-output-port
+ var t675 = ___open_2dinput_2dfile;
+ var t2377 = function (k1241, t678, t679) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2378 = function (t1242) {
+ var t680 = t1242;
+ var t2379 = function (k1243) {
+ return t679(k1243, t680);
+ };
+ var t2381 = function (k1244) {
+ return ___close_2dinput_2dport(k1244, t680);
+ };
+ return ____25call_2dwith_2dsaved_2dvalues(k1241, t2379, t2381);
+ };
+ return t675(t2378, t678);
+ };
+ ___call_2dwith_2dinput_2dfile = t2377; // set! call-with-input-file
+ var t682 = ___open_2doutput_2dfile;
+ var t2385 = function (k1245, t685, t686) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2386 = function (t1246) {
+ var t687 = t1246;
+ var t2387 = function (k1247) {
+ return t686(k1247, t687);
+ };
+ var t2389 = function (k1248) {
+ return ___close_2doutput_2dport(k1248, t687);
+ };
+ return ____25call_2dwith_2dsaved_2dvalues(k1245, t2387, t2389);
+ };
+ return t682(t2386, t685);
+ };
+ ___call_2dwith_2doutput_2dfile = t2385; // set! call-with-output-file
+ var t688 = ___with_2dinput_2dfrom_2dport;
+ var t689 = ___open_2dinput_2dfile;
+ var t693 = ___close_2dinput_2dport;
+ var t2393 = function (k1249, t694, t695) { // t693
+ var r = SPOCK.count(arguments, "t693");
+ if(r) return r;
+ var t2394 = function (t1250) {
+ var t696 = t1250;
+ var t2395 = function (k1251) {
+ var t2396 = function (k1252) {
+ return t693(k1252, t696);
+ };
+ return ____25call_2dwith_2dsaved_2dvalues(k1251, t695, t2396);
+ };
+ return t688(k1249, t696, t2395);
+ };
+ return t689(t2394, t694);
+ };
+ ___with_2dinput_2dfrom_2dfile = t2393; // set! with-input-from-file
+ var t697 = ___with_2doutput_2dto_2dport;
+ var t698 = ___open_2doutput_2dfile;
+ var t702 = ___close_2doutput_2dport;
+ var t2401 = function (k1253, t703, t704) { // t702
+ var r = SPOCK.count(arguments, "t702");
+ if(r) return r;
+ var t2402 = function (t1254) {
+ var t705 = t1254;
+ var t2403 = function (k1255) {
+ var t2404 = function (k1256) {
+ return t702(k1256, t705);
+ };
+ return ____25call_2dwith_2dsaved_2dvalues(k1255, t704, t2404);
+ };
+ return t697(k1253, t705, t2403);
+ };
+ return t698(t2402, t703);
+ };
+ ___with_2doutput_2dto_2dfile = t2401; // set! with-output-to-file
+ var t2409 = function (k1257, t706) { // open-input-string
+ var r = SPOCK.count(arguments, "open-input-string");
+ if(r) return r;
+ var t707 = undefined;
+ var t2410 = function(K) {
+ SPOCK.count(arguments, 't707');
+ var buffer = arguments[ 1 ];
+ var pos = 0;
+ var len = buffer.length;
+ function read(n) {
+ if(pos >= len) return SPOCK.EOF;
+ var str = buffer.substring(pos, pos + n);
+ pos += n;
+ return str;}
+ return K(new SPOCK.Port('input', { read: read }));
+ };
+ t707 = t2410; // set! t707
+ var t2411 = SPOCK.jstring(t706);
+ return t707(k1257, t2411);
+ };
+ ___open_2dinput_2dstring = t2409; // set! open-input-string
+ var t2413 = function(K) {
+ SPOCK.count(arguments, 'open-output-string');
+ var buffer = [];
+ function write(s) { buffer.push(s); }
+ var port = new SPOCK.Port('output', { write: write });
+ port.buffer = buffer;
+ port.isStringPort = true;
+ return K(port);
+ };
+ ___open_2doutput_2dstring = t2413; // set! open-output-string
+ var t2414 = function (k1258, t709) { // get-output-string
+ var r = SPOCK.count(arguments, "get-output-string");
+ if(r) return r;
+ loop: while(true) {
+ var t2415 = SPOCK.check(t709, SPOCK.Port, "get-output-string");
+ var t710 = t2415;
+ var t2416 = t710.isStringPort;
+ var t712 = t2416;
+ var t2417 = t712 === undefined;
+ var t711 = t2417;
+ var t2418;
+ if(t711 !== false) {
+ t2418 = false;
+ }
+ else {
+ t2418 = true;
+ }
+ var t1018 = t2418;
+ var t2419;
+ if(t1018 !== false) {
+ var t2421 = t710.buffer;
+ var t2420 = t2421.join("");
+ var t714 = t2420;
+ var t2422 = new SPOCK.String(t714);
+ var t713 = t2422;
+ var t2423 = (t710) .buffer = [] ;
+ t2419 = t713;
+ }
+ else {
+ var t2424 = SPOCK.error("bad argument type - not a string port", t710);
+ t2419 = t2424;
+ }
+ return k1258(t2419);
+ }
+ };
+ ___get_2doutput_2dstring = t2414; // set! get-output-string
+ var t2426 = function (k1259, t715, t716) { // with-input-from-string
+ var r = SPOCK.count(arguments, "with-input-from-string");
+ if(r) return r;
+ var t2427 = function (t1260) {
+ var t717 = t1260;
+ return ___with_2dinput_2dfrom_2dport(k1259, t717, t716);
+ };
+ return ___open_2dinput_2dstring(t2427, t715);
+ };
+ ___with_2dinput_2dfrom_2dstring = t2426; // set! with-input-from-string
+ var t2430 = function (k1261, t718) { // with-output-to-string
+ var r = SPOCK.count(arguments, "with-output-to-string");
+ if(r) return r;
+ var t2431 = function (t1262) {
+ var t719 = t1262;
+ var t2432 = function (t1263) {
+ return ___get_2doutput_2dstring(k1261, t719);
+ };
+ return ___with_2doutput_2dto_2dport(t2432, t719, t718);
+ };
+ return ___open_2doutput_2dstring(t2431);
+ };
+ ___with_2doutput_2dto_2dstring = t2430; // set! with-output-to-string
+ var t720 = ___read_2dchar;
+ var t721 = ___reverse;
+ var t722 = ___peek_2dchar;
+ var t723 = ___list_2d_3evector;
+ var t724 = ___list_2d_3estring;
+ var t2436 = function (k1264) { // t725
+ loop: while(true) {
+ return k1264(SPOCK.stdin);
+ }
+ };
+ var t725 = t2436;
+ var t726 = ___string_2d_3enumber;
+ var t2438 = function (k1265, t727) { // t726
+ var r = SPOCK.count(arguments, "t726");
+ if(r) return r;
+ var t2439 = t727 === undefined;
+ var t1019 = t2439;
+ var t2440 = function (t1266) { // t1323
+ var t728 = t1266;
+ var t730 = undefined;
+ var t731 = undefined;
+ var t732 = undefined;
+ var t733 = undefined;
+ var t734 = undefined;
+ var t735 = undefined;
+ var t736 = undefined;
+ var t737 = undefined;
+ var t2441 = function (k1267, t738) { // t730
+ var r = SPOCK.count(arguments, "t730");
+ if(r) return r;
+ var t2442 = function (t1268) {
+ var t739 = t1268;
+ var t2443;
+ if(t739 !== false) {
+ return k1267(t739);
+ }
+ else {
+ return ___string_2d_3esymbol(k1267, t738);
+ }
+ };
+ return t726(t2442, t738);
+ };
+ t730 = t2441; // set! t730
+ var t2447 = function (k1269) { // t731
+ var t2448 = function (t1270) {
+ var t740 = t1270;
+ var t743 = SPOCK.EOF;
+ var t2449 = (t740) === (t743);
+ var t1020 = t2449;
+ var t2450;
+ if(t1020 !== false) {
+ return k1269(t740);
+ }
+ else {
+ var t744 = t740;
+ var t2454 = new SPOCK.Char("#");
+ var t2453 = SPOCK.eqvp(t740, t2454);
+ var t1021 = t2453;
+ var t2455;
+ if(t1021 !== false) {
+ t2455 = true;
+ }
+ else {
+ t2455 = false;
+ }
+ var t2452;
+ if(t2455 !== false) {
+ return t734(k1269);
+ }
+ else {
+ var t2459 = new SPOCK.Char("(");
+ var t2458 = SPOCK.eqvp(t744, t2459);
+ var t1022 = t2458;
+ var t2460;
+ if(t1022 !== false) {
+ t2460 = true;
+ }
+ else {
+ t2460 = false;
+ }
+ var t2457;
+ if(t2460 !== false) {
+ var t2461 = new SPOCK.Char(")");
+ return t735(k1269, t2461);
+ }
+ else {
+ var t2465 = new SPOCK.Char("[");
+ var t2464 = SPOCK.eqvp(t744, t2465);
+ var t1023 = t2464;
+ var t2466;
+ if(t1023 !== false) {
+ t2466 = true;
+ }
+ else {
+ t2466 = false;
+ }
+ var t2463;
+ if(t2466 !== false) {
+ var t2467 = new SPOCK.Char("]");
+ return t735(k1269, t2467);
+ }
+ else {
+ var t2471 = new SPOCK.Char("{");
+ var t2470 = SPOCK.eqvp(t744, t2471);
+ var t1024 = t2470;
+ var t2472;
+ if(t1024 !== false) {
+ t2472 = true;
+ }
+ else {
+ t2472 = false;
+ }
+ var t2469;
+ if(t2472 !== false) {
+ var t2473 = new SPOCK.Char("}");
+ return t735(k1269, t2473);
+ }
+ else {
+ var t2477 = new SPOCK.Char(",");
+ var t2476 = SPOCK.eqvp(t744, t2477);
+ var t1025 = t2476;
+ var t2478;
+ if(t1025 !== false) {
+ t2478 = true;
+ }
+ else {
+ t2478 = false;
+ }
+ var t2475;
+ if(t2478 !== false) {
+ var t2479 = function (t1271) {
+ var t755 = t1271;
+ var t2481 = new SPOCK.Char("@");
+ var t2480 = SPOCK.eqvp(t755, t2481);
+ var t1026 = t2480;
+ var t2482;
+ if(t1026 !== false) {
+ var t2483 = function (t1273) {
+ var t2484 = function (t1272) {
+ var t757 = t1272;
+ return k1269(t757);
+ };
+ var t2486 = SPOCK.intern("unquote-splicing");
+ return ____25list(t2484, t2486, t1273);
+ };
+ return t731(t2483);
+ }
+ else {
+ var t2489 = function (t1275) {
+ var t2490 = function (t1274) {
+ var t758 = t1274;
+ return k1269(t758);
+ };
+ var t2492 = SPOCK.intern("unquote");
+ return ____25list(t2490, t2492, t1275);
+ };
+ return t731(t2489);
+ }
+ };
+ return t722(t2479, t728);
+ }
+ else {
+ var t2498 = new SPOCK.Char("`");
+ var t2497 = SPOCK.eqvp(t744, t2498);
+ var t1027 = t2497;
+ var t2499;
+ if(t1027 !== false) {
+ t2499 = true;
+ }
+ else {
+ t2499 = false;
+ }
+ var t2496;
+ if(t2499 !== false) {
+ var t2500 = function (t1277) {
+ var t2501 = function (t1276) {
+ var t761 = t1276;
+ return k1269(t761);
+ };
+ var t2503 = SPOCK.intern("quasiquote");
+ return ____25list(t2501, t2503, t1277);
+ };
+ return t731(t2500);
+ }
+ else {
+ var t2508 = new SPOCK.Char("'");
+ var t2507 = SPOCK.eqvp(t744, t2508);
+ var t1028 = t2507;
+ var t2509;
+ if(t1028 !== false) {
+ t2509 = true;
+ }
+ else {
+ t2509 = false;
+ }
+ var t2506;
+ if(t2509 !== false) {
+ var t2510 = function (t1279) {
+ var t2511 = function (t1278) {
+ var t764 = t1278;
+ return k1269(t764);
+ };
+ var t2513 = SPOCK.intern("quote");
+ return ____25list(t2511, t2513, t1279);
+ };
+ return t731(t2510);
+ }
+ else {
+ var t2518 = new SPOCK.Char(";");
+ var t2517 = SPOCK.eqvp(t744, t2518);
+ var t1029 = t2517;
+ var t2519;
+ if(t1029 !== false) {
+ t2519 = true;
+ }
+ else {
+ t2519 = false;
+ }
+ var t2516;
+ if(t2519 !== false) {
+ var t2520 = function (t1280) {
+ return t731(k1269);
+ };
+ return t732(t2520);
+ }
+ else {
+ var t2525 = new SPOCK.Char("\"");
+ var t2524 = SPOCK.eqvp(t744, t2525);
+ var t1030 = t2524;
+ var t2526;
+ if(t1030 !== false) {
+ t2526 = true;
+ }
+ else {
+ t2526 = false;
+ }
+ var t2523;
+ if(t2526 !== false) {
+ return t736(k1269);
+ }
+ else {
+ var t2530 = new SPOCK.Char(")");
+ var t2529 = SPOCK.eqvp(t744, t2530);
+ var t1031 = t2529;
+ var t2531;
+ if(t1031 !== false) {
+ t2531 = true;
+ }
+ else {
+ var t2533 = new SPOCK.Char("]");
+ var t2532 = SPOCK.eqvp(t744, t2533);
+ var t1032 = t2532;
+ var t2534;
+ if(t1032 !== false) {
+ t2534 = true;
+ }
+ else {
+ var t2536 = new SPOCK.Char("}");
+ var t2535 = SPOCK.eqvp(t744, t2536);
+ var t1033 = t2535;
+ var t2537;
+ if(t1033 !== false) {
+ t2537 = true;
+ }
+ else {
+ t2537 = false;
+ }
+ t2534 = t2537;
+ }
+ t2531 = t2534;
+ }
+ var t2528;
+ if(t2531 !== false) {
+ return ____25error(k1269, "unexpected delimiter", t740);
+ }
+ else {
+ var t2540 = SPOCK.check(t740, SPOCK.Char);
+ var t2539 = (t2540) .character.match(/^\s$/) ;
+ var t777 = t2539;
+ var t2542 = null;
+ var t2541 = (t777) === (t2542);
+ var t776 = t2541;
+ var t2543;
+ if(t776 !== false) {
+ t2543 = false;
+ }
+ else {
+ t2543 = true;
+ }
+ var t1034 = t2543;
+ var t2544;
+ if(t1034 !== false) {
+ return t731(k1269);
+ }
+ else {
+ var t2546 = function (t1283) {
+ var t780 = t1283;
+ var t1282 = t780;
+ var t2547 = function (t1281) {
+ return t730(k1269, t1281);
+ };
+ return t737(t2547, t1282);
+ };
+ return ____25list(t2546, t740);
+ }
+ t2528 = t2544;
+ }
+ t2523 = t2528;
+ }
+ t2516 = t2523;
+ }
+ t2506 = t2516;
+ }
+ t2496 = t2506;
+ }
+ t2475 = t2496;
+ }
+ t2469 = t2475;
+ }
+ t2463 = t2469;
+ }
+ t2457 = t2463;
+ }
+ t2452 = t2457;
+ }
+ t2450 = t2452;
+ }
+ };
+ return t720(t2448, t728);
+ };
+ t731 = t2447; // set! t731
+ var t2552 = function (k1284) { // t732
+ var t2553 = function (t1285) {
+ var t781 = t1285;
+ var t786 = SPOCK.EOF;
+ var t2554 = (t781) === (t786);
+ var t783 = t2554;
+ var t2555;
+ if(t783 !== false) {
+ t2555 = t783;
+ }
+ else {
+ var t2558 = new SPOCK.Char("\n");
+ var t2557 = SPOCK.check(t2558, SPOCK.Char);
+ var t2556 = t2557.character;
+ var t789 = t2556;
+ var t2560 = SPOCK.check(t781, SPOCK.Char);
+ var t2559 = t2560.character;
+ var t790 = t2559;
+ var t2561 = (t789) === (t790);
+ t2555 = t2561;
+ }
+ var t782 = t2555;
+ var t2562;
+ if(t782 !== false) {
+ t2562 = false;
+ }
+ else {
+ t2562 = true;
+ }
+ var t1035 = t2562;
+ var t2563;
+ if(t1035 !== false) {
+ return t732(k1284);
+ }
+ else {
+ return k1284(undefined);
+ }
+ };
+ return t720(t2553, t728);
+ };
+ t732 = t2552; // set! t732
+ var t2567 = function (k1286) { // t733
+ var t2568 = function (t1287) {
+ var t791 = t1287;
+ var t2570 = SPOCK.check(t791, SPOCK.Char);
+ var t2569 = (t2570) .character.match(/^\s$/) ;
+ var t794 = t2569;
+ var t2572 = null;
+ var t2571 = (t794) === (t2572);
+ var t793 = t2571;
+ var t2573;
+ if(t793 !== false) {
+ t2573 = false;
+ }
+ else {
+ t2573 = true;
+ }
+ var t1036 = t2573;
+ var t2574;
+ if(t1036 !== false) {
+ var t2575 = function (t1288) {
+ return t733(k1286);
+ };
+ return t720(t2575, t728);
+ }
+ else {
+ return k1286(t791);
+ }
+ };
+ return t722(t2568, t728);
+ };
+ t733 = t2567; // set! t733
+ var t2580 = function (k1289) { // t734
+ var t2581 = function (t1290) {
+ var t797 = t1290;
+ var t800 = SPOCK.EOF;
+ var t2582 = (t797) === (t800);
+ var t1037 = t2582;
+ var t2583;
+ if(t1037 !== false) {
+ return ____25error(k1289, "unexpected EOF after `#'");
+ }
+ else {
+ var t801 = t797;
+ var t2587 = new SPOCK.Char("t");
+ var t2586 = SPOCK.eqvp(t797, t2587);
+ var t1038 = t2586;
+ var t2588;
+ if(t1038 !== false) {
+ t2588 = true;
+ }
+ else {
+ var t2590 = new SPOCK.Char("T");
+ var t2589 = SPOCK.eqvp(t797, t2590);
+ var t1039 = t2589;
+ var t2591;
+ if(t1039 !== false) {
+ t2591 = true;
+ }
+ else {
+ t2591 = false;
+ }
+ t2588 = t2591;
+ }
+ var t2585;
+ if(t2588 !== false) {
+ return k1289(true);
+ }
+ else {
+ var t2595 = new SPOCK.Char("f");
+ var t2594 = SPOCK.eqvp(t797, t2595);
+ var t1040 = t2594;
+ var t2596;
+ if(t1040 !== false) {
+ t2596 = true;
+ }
+ else {
+ var t2598 = new SPOCK.Char("F");
+ var t2597 = SPOCK.eqvp(t797, t2598);
+ var t1041 = t2597;
+ var t2599;
+ if(t1041 !== false) {
+ t2599 = true;
+ }
+ else {
+ t2599 = false;
+ }
+ t2596 = t2599;
+ }
+ var t2593;
+ if(t2596 !== false) {
+ return k1289(false);
+ }
+ else {
+ var t2603 = new SPOCK.Char("(");
+ var t2602 = SPOCK.eqvp(t797, t2603);
+ var t1042 = t2602;
+ var t2604;
+ if(t1042 !== false) {
+ t2604 = true;
+ }
+ else {
+ t2604 = false;
+ }
+ var t2601;
+ if(t2604 !== false) {
+ var t2605 = function (t1291) {
+ return t723(k1289, t1291);
+ };
+ var t2607 = new SPOCK.Char(")");
+ return t735(t2605, t2607);
+ }
+ else {
+ var t2611 = new SPOCK.Char("%");
+ var t2610 = SPOCK.eqvp(t801, t2611);
+ var t1043 = t2610;
+ var t2612;
+ if(t1043 !== false) {
+ t2612 = true;
+ }
+ else {
+ var t2614 = new SPOCK.Char("!");
+ var t2613 = SPOCK.eqvp(t801, t2614);
+ var t1044 = t2613;
+ var t2615;
+ if(t1044 !== false) {
+ t2615 = true;
+ }
+ else {
+ t2615 = false;
+ }
+ t2612 = t2615;
+ }
+ var t2609;
+ if(t2612 !== false) {
+ var t2616 = function (t1294) {
+ var t816 = t1294;
+ var t1293 = t816;
+ var t2617 = function (t1292) {
+ return ___string_2d_3esymbol(k1289, t1292);
+ };
+ return t737(t2617, t1293);
+ };
+ var t2620 = new SPOCK.Char("#");
+ return ____25list(t2616, t797, t2620);
+ }
+ else {
+ var t2624 = new SPOCK.Char("\\");
+ var t2623 = SPOCK.eqvp(t801, t2624);
+ var t1045 = t2623;
+ var t2625;
+ if(t1045 !== false) {
+ t2625 = true;
+ }
+ else {
+ t2625 = false;
+ }
+ var t2622;
+ if(t2625 !== false) {
+ var t2626 = function (t1295) {
+ var t819 = t1295;
+ var t2628 = SPOCK.jstring("newline");
+ var t2627 = t2628.toLowerCase();
+ var t822 = t2627;
+ var t2630 = SPOCK.jstring(t819);
+ var t2629 = t2630.toLowerCase();
+ var t823 = t2629;
+ var t2631 = (t822) === (t823);
+ var t1046 = t2631;
+ var t2632;
+ if(t1046 !== false) {
+ var t2633 = new SPOCK.Char("\n");
+ return k1289(t2633);
+ }
+ else {
+ var t2636 = SPOCK.jstring("tab");
+ var t2635 = t2636.toLowerCase();
+ var t828 = t2635;
+ var t2638 = SPOCK.jstring(t819);
+ var t2637 = t2638.toLowerCase();
+ var t829 = t2637;
+ var t2639 = (t828) === (t829);
+ var t1047 = t2639;
+ var t2640;
+ if(t1047 !== false) {
+ var t2641 = new SPOCK.Char("\t");
+ return k1289(t2641);
+ }
+ else {
+ var t2644 = SPOCK.jstring("space");
+ var t2643 = t2644.toLowerCase();
+ var t834 = t2643;
+ var t2646 = SPOCK.jstring(t819);
+ var t2645 = t2646.toLowerCase();
+ var t835 = t2645;
+ var t2647 = (t834) === (t835);
+ var t1048 = t2647;
+ var t2648;
+ if(t1048 !== false) {
+ var t2649 = new SPOCK.Char(" ");
+ return k1289(t2649);
+ }
+ else {
+ var t2652 = SPOCK.jstring(t819);
+ var t2651 = t2652.length;
+ var t838 = t2651;
+ var t2653 = SPOCK.check(t838, 'number');
+ var t842 = t2653;
+ var t2654 = (0) === (t842);
+ var t1049 = t2654;
+ var t2655;
+ if(t1049 !== false) {
+ return ____25error(k1289, "invalid character syntax");
+ }
+ else {
+ return ___string_2dref(k1289, t819, 0);
+ }
+ t2648 = t2655;
+ }
+ t2640 = t2648;
+ }
+ t2632 = t2640;
+ }
+ };
+ var t2658 = null;
+ return t737(t2626, t2658);
+ }
+ else {
+ return ____25error(k1289, "invalid `#' syntax", t797);
+ }
+ t2609 = t2622;
+ }
+ t2601 = t2609;
+ }
+ t2593 = t2601;
+ }
+ t2585 = t2593;
+ }
+ t2583 = t2585;
+ }
+ };
+ return t720(t2581, t728);
+ };
+ t734 = t2580; // set! t734
+ var t2662 = function (k1296, t843) { // t735
+ var r = SPOCK.count(arguments, "t735");
+ if(r) return r;
+ var t844 = undefined;
+ var t2663 = function (k1297, t845) { // t844
+ var r = SPOCK.count(arguments, "t844");
+ if(r) return r;
+ var t2664 = function (t1298) {
+ var t846 = t1298;
+ var t849 = SPOCK.EOF;
+ var t2665 = (t846) === (t849);
+ var t1050 = t2665;
+ var t2666;
+ if(t1050 !== false) {
+ return ____25error(k1297, "unexpected EOF while reading list");
+ }
+ else {
+ var t851 = t843;
+ var t2669 = SPOCK.check(t846, SPOCK.Char);
+ var t2668 = t2669.character;
+ var t852 = t2668;
+ var t2671 = SPOCK.check(t851, SPOCK.Char);
+ var t2670 = t2671.character;
+ var t853 = t2670;
+ var t2672 = (t852) === (t853);
+ var t1051 = t2672;
+ var t2673;
+ if(t1051 !== false) {
+ var t2674 = function (t1299) {
+ return t721(k1297, t845);
+ };
+ return t720(t2674, t728);
+ }
+ else {
+ var t2678 = new SPOCK.Char(".");
+ var t2677 = SPOCK.eqvp(t2678, t846);
+ var t1052 = t2677;
+ var t2679;
+ if(t1052 !== false) {
+ var t2680 = function (t1300) {
+ var t856 = t1300;
+ var t2681 = SPOCK.jstring(".");
+ var t859 = t2681;
+ var t2682 = SPOCK.jstring(t856);
+ var t860 = t2682;
+ var t2683 = (t859) === (t860);
+ var t1053 = t2683;
+ var t2684;
+ if(t1053 !== false) {
+ var t2685 = function (t1301) {
+ var t863 = t1301;
+ var t2686 = function (t1302) {
+ var t2687 = function (t1303) {
+ var t864 = t1303;
+ var t865 = t843;
+ var t2688 = SPOCK.eqvp(t864, t865);
+ var t1054 = t2688;
+ var t2689;
+ if(t1054 !== false) {
+ var t2690 = function (t1304) {
+ return ___append(k1297, t1304, t863);
+ };
+ return t721(t2690, t845);
+ }
+ else {
+ return ____25error(k1297, "missing closing delimiter", t843);
+ }
+ };
+ return t720(t2687, t728);
+ };
+ return t733(t2686);
+ };
+ return t731(t2685);
+ }
+ else {
+ var t2697 = function (t1306) {
+ var t866 = t1306;
+ var t2698 = new SPOCK.Pair(t866, undefined);
+ var t1305 = t2698;
+ return t844(k1297, t1305, t845);
+ };
+ return t730(t2697, t856);
+ }
+ };
+ var t2701 = null;
+ return t737(t2680, t2701);
+ }
+ else {
+ var t2703 = function (t1308) {
+ var t868 = t1308;
+ var t2704 = new SPOCK.Pair(t868, t845);
+ var t1307 = t2704;
+ return t844(k1297, t1307);
+ };
+ return t731(t2703);
+ }
+ t2673 = t2679;
+ }
+ t2666 = t2673;
+ }
+ };
+ return t733(t2664);
+ };
+ t844 = t2663; // set! t844
+ var t2708 = null;
+ return t844(k1296, t2708);
+ };
+ t735 = t2662; // set! t735
+ var t2710 = function (k1309) { // t736
+ var t870 = undefined;
+ var t2711 = function (k1310, t871) { // t870
+ var r = SPOCK.count(arguments, "t870");
+ if(r) return r;
+ var t2712 = function (t1311) {
+ var t872 = t1311;
+ var t875 = SPOCK.EOF;
+ var t2713 = (t872) === (t875);
+ var t1055 = t2713;
+ var t2714;
+ if(t1055 !== false) {
+ return ____25error(k1310, "unexpected EOF while reading string");
+ }
+ else {
+ var t2718 = new SPOCK.Char("\"");
+ var t2717 = SPOCK.check(t2718, SPOCK.Char);
+ var t2716 = t2717.character;
+ var t878 = t2716;
+ var t2720 = SPOCK.check(t872, SPOCK.Char);
+ var t2719 = t2720.character;
+ var t879 = t2719;
+ var t2721 = (t878) === (t879);
+ var t1056 = t2721;
+ var t2722;
+ if(t1056 !== false) {
+ var t2723 = function (t1312) {
+ return t724(k1310, t1312);
+ };
+ return t721(t2723, t871);
+ }
+ else {
+ var t2728 = new SPOCK.Char("\\");
+ var t2727 = SPOCK.check(t2728, SPOCK.Char);
+ var t2726 = t2727.character;
+ var t882 = t2726;
+ var t2730 = SPOCK.check(t872, SPOCK.Char);
+ var t2729 = t2730.character;
+ var t883 = t2729;
+ var t2731 = (t882) === (t883);
+ var t1057 = t2731;
+ var t2732;
+ if(t1057 !== false) {
+ var t2733 = function (t1313) {
+ var t884 = t1313;
+ var t887 = SPOCK.EOF;
+ var t2734 = (t884) === (t887);
+ var t1058 = t2734;
+ var t2735;
+ if(t1058 !== false) {
+ return ____25error(k1310, "unexpected EOF while reading string");
+ }
+ else {
+ var t2739 = new SPOCK.Char("n");
+ var t2738 = SPOCK.eqvp(t884, t2739);
+ var t1059 = t2738;
+ var t2740;
+ if(t1059 !== false) {
+ t2740 = true;
+ }
+ else {
+ t2740 = false;
+ }
+ var t2737;
+ if(t2740 !== false) {
+ var t2742 = new SPOCK.Char("\n");
+ var t2741 = new SPOCK.Pair(t2742, t871);
+ return t870(k1310, t2741);
+ }
+ else {
+ var t2746 = new SPOCK.Char("t");
+ var t2745 = SPOCK.eqvp(t884, t2746);
+ var t1060 = t2745;
+ var t2747;
+ if(t1060 !== false) {
+ t2747 = true;
+ }
+ else {
+ t2747 = false;
+ }
+ var t2744;
+ if(t2747 !== false) {
+ var t2749 = new SPOCK.Char("\t");
+ var t2748 = new SPOCK.Pair(t2749, t871);
+ return t870(k1310, t2748);
+ }
+ else {
+ var t2751 = new SPOCK.Pair(t884, t871);
+ return t870(k1310, t2751);
+ }
+ t2737 = t2744;
+ }
+ t2735 = t2737;
+ }
+ };
+ return t720(t2733, t728);
+ }
+ else {
+ var t2754 = new SPOCK.Pair(t872, t871);
+ return t870(k1310, t2754);
+ }
+ t2722 = t2732;
+ }
+ t2714 = t2722;
+ }
+ };
+ return t720(t2712, t728);
+ };
+ t870 = t2711; // set! t870
+ var t2757 = null;
+ return t870(k1309, t2757);
+ };
+ t736 = t2710; // set! t736
+ var t2759 = function (k1314, t901) { // t737
+ var r = SPOCK.count(arguments, "t737");
+ if(r) return r;
+ var t902 = undefined;
+ var t2760 = function (k1315, t903) { // t902
+ var r = SPOCK.count(arguments, "t902");
+ if(r) return r;
+ var t2761 = function (t1316) {
+ var t904 = t1316;
+ var t908 = SPOCK.EOF;
+ var t2762 = (t904) === (t908);
+ var t905 = t2762;
+ var t2763 = function (t1317) { // t1321
+ var t1061 = t1317;
+ var t2764;
+ if(t1061 !== false) {
+ var t2765 = function (t1318) {
+ return t724(k1315, t1318);
+ };
+ return t721(t2765, t903);
+ }
+ else {
+ var t2768 = function (t1320) {
+ var t915 = t1320;
+ var t2769 = new SPOCK.Pair(t915, t903);
+ var t1319 = t2769;
+ return t902(k1315, t1319);
+ };
+ return t720(t2768, t728);
+ }
+ };
+ var t1321 = t2763;
+ var t2772;
+ if(t905 !== false) {
+ return t1321(t905);
+ }
+ else {
+ var t2774 = function (t1322) {
+ var t909 = t1322;
+ var t2775;
+ if(t909 !== false) {
+ t2775 = t909;
+ }
+ else {
+ var t2777 = SPOCK.check(t904, SPOCK.Char);
+ var t2776 = (t2777) .character.match(/^\s$/) ;
+ var t912 = t2776;
+ var t2779 = null;
+ var t2778 = (t912) === (t2779);
+ var t911 = t2778;
+ var t2780;
+ if(t911 !== false) {
+ t2780 = false;
+ }
+ else {
+ t2780 = true;
+ }
+ t2775 = t2780;
+ }
+ return t1321(t2775);
+ };
+ var t2782 = new SPOCK.Pair(new SPOCK.Char("{"), new SPOCK.Pair(new SPOCK.Char("}"), new SPOCK.Pair(new SPOCK.Char("("), new SPOCK.Pair(new SPOCK.Char(")"), new SPOCK.Pair(new SPOCK.Char("["), new SPOCK.Pair(new SPOCK.Char("]"), new SPOCK.Pair(new SPOCK.Char(";"), new SPOCK.Pair(new SPOCK.Char("\""), null))))))));
+ return ___memv(t2774, t904, t2782);
+ }
+ };
+ return t722(t2761, t728);
+ };
+ t902 = t2760; // set! t902
+ return t902(k1314, t901);
+ };
+ t737 = t2759; // set! t737
+ return t731(k1265);
+ };
+ var t1323 = t2440;
+ var t2787;
+ if(t1019 !== false) {
+ return t725(t1323);
+ }
+ else {
+ return t1323(t727);
+ }
+ };
+ ___read = t2438; // set! read
+ var t2790 = function (k1324, t917, t918) { // load
+ var r = SPOCK.count(arguments, "load");
+ if(r) return r;
+ loop: while(true) {
+ var t2792 = SPOCK.jstring(t917);
+ var t2793 = t918 === undefined;
+ var t920 = t2793;
+ var t2794;
+ if(t920 !== false) {
+ t2794 = false;
+ }
+ else {
+ t2794 = true;
+ }
+ var t1062 = t2794;
+ var t2795;
+ if(t1062 !== false) {
+ var t2796 = SPOCK.callback(t918);
+ t2795 = t2796;
+ }
+ else {
+ t2795 = false;
+ }
+ var t2791 = SPOCK.load(t2792, t2795);
+ return k1324(t2791);
+ }
+ };
+ ___load = t2790; // set! load
+ var t2798 = function(K) {
+ SPOCK.count(arguments, '%error');
+ SPOCK.error.apply(SPOCK.global, Array.prototype.slice.call(arguments, 1));
+ };
+ ____25error = t2798; // set! %error
+ ___error = ____25error; // set! error
+ var t2799 = function (k1325, t922) { // exit
+ var r = SPOCK.count(arguments, "exit");
+ if(r) return r;
+ loop: while(true) {
+ var t2801 = t922 === undefined;
+ var t1063 = t2801;
+ var t2802;
+ if(t1063 !== false) {
+ t2802 = 0;
+ }
+ else {
+ var t2803 = SPOCK.check(t922, 'number', "exit");
+ t2802 = t2803;
+ }
+ var t2800 = SPOCK.exit(t2802);
+ return k1325(t2800);
+ }
+ };
+ ___exit = t2799; // set! exit
+ var t2805 = function (k1326, t924) { // milliseconds
+ var r = SPOCK.count(arguments, "milliseconds");
+ if(r) return r;
+ var t2806 = (new Date()).getTime();
+ var t925 = t2806;
+ var t2807 = t924 === undefined;
+ var t1064 = t2807;
+ var t2808;
+ if(t1064 !== false) {
+ return k1326(t925);
+ }
+ else {
+ var t2810 = function (t1327) {
+ var t2811 = (new Date()).getTime();
+ var t928 = t2811;
+ var t2812 = (t928) - (t925);
+ return k1326(t2812);
+ };
+ return t924(t2810);
+ }
+ };
+ ___milliseconds = t2805; // set! milliseconds
+ var t2815 = function (k1328, t929) { // print
+ var t929 = SPOCK.rest(arguments, 1, 'print');
+ var t2816 = function (t1329) {
+ return ___newline(k1328);
+ };
+ return ___for_2deach(t2816, ___display, t929);
+ };
+ ___print = t2815; // set! print
+ var t2819 = function (k1330, t930) { // o
+ var t930 = SPOCK.rest(arguments, 1, 'o');
+ var t2821 = null;
+ var t2820 = (t930) === (t2821);
+ var t1065 = t2820;
+ var t2822;
+ if(t1065 !== false) {
+ var t2823 = function (k1331, t934) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ return k1331(t934);
+ }
+ };
+ return k1330(t2823);
+ }
+ else {
+ var t935 = undefined;
+ var t2826 = function (k1332, t936) { // t935
+ var r = SPOCK.count(arguments, "t935");
+ if(r) return r;
+ var t2827 = t936.car;
+ var t937 = t2827;
+ var t2828 = t936.cdr;
+ var t938 = t2828;
+ var t2830 = null;
+ var t2829 = (t938) === (t2830);
+ var t1066 = t2829;
+ var t2831;
+ if(t1066 !== false) {
+ t2831 = t937;
+ }
+ else {
+ var t2832 = function (k1333, t944) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2833 = function (t1335) {
+ var t2834 = function (t1334) {
+ return t937(k1333, t1334);
+ };
+ return t1335(t2834, t944);
+ };
+ return t935(t2833, t938);
+ };
+ t2831 = t2832;
+ }
+ return k1332(t2831);
+ };
+ t935 = t2826; // set! t935
+ return t935(k1330, t930);
+ }
+ };
+ ___o = t2819; // set! o
+ var t2840 = function(K) {
+ SPOCK.count(arguments, '%');
+ var o = {};
+ for(var i = 1; i < arguments.length; i += 2) {
+ var x = arguments[ i ];
+ if(typeof x === 'string') o[ x ] = arguments[ i + 1 ];
+ else if(x instanceof SPOCK.String)
+ o[ x.name ] = arguments[ i + 1 ];
+ else SPOCK.error('(%) object key not a string or symbol', x);}
+ return K(o);
+ };
+ ____25 = t2840; // set! %
+ var t2841 = function(K) {
+ SPOCK.count(arguments, 'native');
+ var func = arguments[ 1 ];
+ return K(function(k) {
+ var args = Array.prototype.splice.call(arguments, 1);
+ return k(func.apply(SPOCK.global, args));});
+ };
+ ___native = t2841; // set! native
+ var t2842 = function(K) {
+ SPOCK.count(arguments, 'native-method');
+ var func = arguments[ 1 ];
+ return K(function(k) {
+ var args = Array.prototype.splice.call(arguments, 2);
+ return k(func.apply(arguments[ 1 ], args));});
+ };
+ ___native_2dmethod = t2842; // set! native-method
+ var t2843 = function(K) {
+ SPOCK.count(arguments, 'bind-method');
+ var func = arguments[ 1 ];
+ var that = arguments[ 2 ];
+ return K(function() { return func.apply(that, arguments); });
+ };
+ ___bind_2dmethod = t2843; // set! bind-method
+ var t2844 = function(K) {
+ SPOCK.count(arguments, 'jstring');
+ var x = arguments[ 1 ];
+ if(typeof x === 'string') return K(x);
+ else if(x instanceof SPOCK.String) return K(x.normalize());
+ else if(x instanceof SPOCK.Char) return K(x.character);
+ else return K(x);
+ };
+ ___jstring = t2844; // set! jstring
+ return k1067(undefined);
+};
+SPOCK.run(t1336);
+SPOCK.flush();
+/* END OF GENERATED CODE */
diff --git a/spock-runtime-min.js b/spock-runtime-min.js
@@ -0,0 +1,439 @@
+
+var SPOCK={STACKSIZE:100,THREADSLICE:10,TRACELENGTH:32};SPOCK.modules={};SPOCK.symbolTable={};SPOCK.stack=0;SPOCK.limit=SPOCK.STACKSIZE;SPOCK.debug=false;SPOCK.running=false;SPOCK.runHook=[];SPOCK.inBrowser="document"in this;SPOCK.global=this;SPOCK.Continuation=function(func,args){this.k_callee=func;this.k_arguments=args;};SPOCK.Result=function(val){this.value=val;};SPOCK.Symbol=function(name){this.name=name;this.plist={};};SPOCK.Pair=function(car,cdr){this.car=car;this.cdr=cdr;};SPOCK.String=function(chars){if(typeof chars==="string"){this.parts=[chars];this.length=chars.length;}
+else if(typeof chars==="number")this.parts=[chars.toString()];else this.parts=chars;};SPOCK.Char=function(str){this.character=str.charAt(0);};SPOCK.Port=function(direction,methods){var port=this;var read=methods.read||function(){SPOCK.error("reading from non-input port",port);};function doread(n){if(n===0)return"";else if(this.peeked){var p=this.peeked;this.peeked=false;if(n===1)return p;else return p+read(n-1);}
+else return read(n);}
+this.peeked=false;this.direction=direction;this.read=doread;this.write=methods.write||function(){SPOCK.error("writing to non-output port",port)};this.close=methods.close||function(){};this.flush=methods.flush||function(){};this.ready=methods.ready||function(){return true;};this.closed=false;};SPOCK.Promise=function(thunk){this.thunk=thunk;};SPOCK.EndOfFile=function(){};SPOCK.EOF=new SPOCK.EndOfFile();SPOCK.check=function(val,type,loc){if(typeof type==="function"&&val instanceof type)return val;if(typeof val===type)return val;else SPOCK.error((loc?"("+loc+") ":"")+"bad argument type"+
+(typeof type==="string"?" - expected `"+type+"'":""),val);};SPOCK.intern=function(str){var old=SPOCK.symbolTable[str];if(old)return old;else return SPOCK.symbolTable[str]=new SPOCK.Symbol(str);};SPOCK.stringify=function(x,readable){if(readable===undefined)readable=true;if(typeof x==="function")return"#<procedure>";else if(x===undefined)return"#<undefined>";else if(x===null)return"()";else if(x instanceof SPOCK.Continuation)return"#<continuation>";else if(x instanceof SPOCK.Symbol)return x.name;else if(x instanceof SPOCK.Pair){var str="(";var f=false;for(var p=x;p!==null&&p instanceof SPOCK.Pair;p=p.cdr){if(f)str+=" ";str+=SPOCK.stringify(p.car,readable);f=true;}
+if(p!==null)str+=" . "+SPOCK.stringify(p,readable);return str+")";}
+else if(x instanceof Array){var str="#(";var f=false;for(var i in x){if(f)str+=" ";str+=SPOCK.stringify(x[i],readable);f=true;}
+return str+")";}
+else if(x instanceof SPOCK.String){if(readable)
+return"\""+x.normalize()+"\"";else return x.normalize();}
+else if(x instanceof SPOCK.Char){if(readable)return x.character;switch(x.character){case"\n":return"#\\newline";case"\t":return"#\\tab";case"\r":return"#\\return";case" ":return"#\\space";default:return"#\\"+x.character;}}
+else if(x instanceof SPOCK.Port)
+return"#<"+x.direction+" port"+
+(x.name?(" \""+x.name+"\">"):">");else if(x instanceof SPOCK.Promise)return"#<promise>";else if(x instanceof SPOCK.EndOfFile)return"#<eof>";else return x.toString();};SPOCK.error=function(msg){var args=Array.prototype.splice.call(arguments,1);function argstr(x){return SPOCK.stringify(x,true);}
+if(args.length>0)
+msg=msg+":\n "+SPOCK.map(argstr,args).join("\n ");throw new Error(msg);};if(this.quit)SPOCK.exit=quit;else SPOCK.exit=function(code){SPOCK.error("no suitable primitive available for `exit'");};SPOCK.String.prototype.normalize=function(){if(this.parts.length===0)return"";this.parts=[this.parts.join("")];return this.parts[0];};SPOCK.jstring=function(x){if(typeof x==="string")return x;else if(x instanceof SPOCK.String)return x.normalize();else return x;};SPOCK.list=function(){var lst=null;var len=arguments.length;for(var i=len-1;i>=0;--i)
+lst=new SPOCK.Pair(arguments[i],lst);return lst;};SPOCK.length=function(lst){for(var n=0;lst instanceof SPOCK.Pair;++n)
+lst=lst.cdr;return n;};SPOCK.map=function(func,array){var len=array.length;var a2=new Array(len);for(var i in array)
+a2[i]=func(array[i]);return a2;};SPOCK.eqvp=function(x,y){if(x===y)return true;else if(x instanceof SPOCK.Char)
+return y instanceof SPOCK.Char&&x.character===y.character;else return false;};SPOCK.equalp=function(x,y){if(x===y)return true;else if(x instanceof SPOCK.Pair)
+return y instanceof SPOCK.Pair&&SPOCK.equalp(x.car,y.car)&&SPOCK.equalp(x.cdr,y.cdr);else if(x instanceof Array){var len=x.length;if(!(y instanceof Array)||y.length!=len)return false;for(var i=0;i<len;++i){if(!SPOCK.equalp(x[i],y[i]))return false;}
+return true;}
+else if(x instanceof SPOCK.Char)
+return y instanceof SPOCK.Char&&x.characters===y.characters;else if(x instanceof SPOCK.String){var s1=x.normalize();if(y instanceof SPOCK.String)return s1===y.normalize();else if(typeof y==='string')return s1===y;else return false;}
+else if(typeof x==='string'){if(y instanceof SPOCK.String)return x===y.normalize();else if(typeof y==='string')return x===y;else return false;}
+else return false;};SPOCK.count=function(args,loc){if(--SPOCK.stack<=0)
+return new SPOCK.Continuation(args.callee,Array.prototype.slice.call(args));else return false;};SPOCK.rest=function(args,count,loc){var rest=null;SPOCK.count(args,loc);for(var i=args.length-1;i>=count;--i)
+rest=new SPOCK.Pair(args[i],rest);return rest;};SPOCK.statistics=function(){};SPOCK.run=function(func){function terminate(result){return new SPOCK.Result(result);}
+var k=terminate;var args=[k].concat(Array.prototype.slice.call(arguments,1));var oldstack=SPOCK.stack;var oldlimit=SPOCK.limit;var oldrunning=SPOCK.running;SPOCK.limit=Math.max(10,oldlimit-oldstack);SPOCK.stack=SPOCK.limit;SPOCK.running=true;function restore(){SPOCK.stack=oldstack;SPOCK.limit=oldlimit;SPOCK.running=oldrunning;if(!oldrunning){for(var i in SPOCK.runHook)
+(SPOCK.runHook[i])(false);}}
+var result;if(!oldrunning){for(var i in SPOCK.runHook)
+(SPOCK.runHook[i])(true);}
+while(true){result=func.apply(SPOCK.global,args);if(result instanceof SPOCK.Continuation){SPOCK.stack=SPOCK.STACKSIZE;func=result.k_callee;args=result.k_arguments;}
+else if(result instanceof SPOCK.Result){restore();return result.value;}
+else{restore();SPOCK.error("unexpected return of non-continuation",result);}}
+return result;};SPOCK.callback=function(proc){return function(){var args=Array.prototype.slice.call(arguments);args.unshift(proc);return SPOCK.run.apply(this,args);};};SPOCK.callbackMethod=function(proc){var g=this;return function(){var args=Array.prototype.slice.call(arguments);args.unshift(this);args.unshift(proc);return SPOCK.run.apply(g,args);};};SPOCK.go=function(proc){(SPOCK.callback(proc))();};if("java"in this){SPOCK.makeJavaInputPort=function(jp){return new SPOCK.Port("input",{read:function(n){var buffer="";while(n--){var b=jp.read();if(b===-1)break;else buffer+=String.fromCharCode(b);}
+return buffer===""?SPOCK.EOF:buffer;},close:function(){jp.close();}});};SPOCK.makeJavaOutputPort=function(jp){return new SPOCK.Port("output",{write:function(s){var len=s.length;for(var i=0;i<len;++i)
+jp.write(s.charCodeAt(i));},flush:function(){jp.flush();},close:function(){jp.close();}});};SPOCK.log=function(){java.lang.System.err.println(Array.prototype.slice.call(arguments).join(""));};SPOCK.stdin=SPOCK.makeJavaInputPort(java.lang.System["in"]);SPOCK.stdout=SPOCK.makeJavaOutputPort(java.lang.System.out);SPOCK.stderr=SPOCK.makeJavaOutputPort(java.lang.System.err);SPOCK.stderr.name="[stderr]";}
+else{if("console"in this)SPOCK.log=console.log;else if(SPOCK.inBrowser)
+SPOCK.log=function(){var msg=arguments.join(" ");if(msg.charAt(msg.length-1)=="\n")
+msg=msg.substring(0,msg.length-1);this.defaultStatus=msg;};else if("print"in this)SPOCK.log=print;else if(typeof process!==undefined)SPOCK.log=console.log;else SPOCK.error("no suitable output primitive available");(function(){var buffer=[];function flush(){if(buffer.length>0){SPOCK.log(buffer.join(""));buffer=[];}}
+function write(s){var parts=SPOCK.stringify(s,false).split("\n");var len=parts.length-1;if(len>0){buffer.push(parts[0]);flush();if(len>1){for(var i=1;i<len;++i)
+SPOCK.log(parts[i]);}
+buffer.push(parts[len]);}
+else buffer.push(parts[0]);}
+SPOCK.stdout=new SPOCK.Port("output",{write:write,flush:flush});var inp;var ibuffer="";if(this.prompt){inp=function(n){while(true){if(ibuffer.length<=n){var part=ibuffer.slice(0,n);ibuffer=ibuffer.slice(n);return part;}
+var input=prompt("Expecting input for "+this.toString());if(input===null)return SPOCK.EOF;else ibuffer+=input;}};}
+else{inp=function(n){SPOCK.error("no input possible for standard input port");};}
+SPOCK.stdin=new SPOCK.Port("input",{read:inp});SPOCK.stderr=SPOCK.stdout;})();}
+SPOCK.stdin.name="[stdin]";SPOCK.stdout.name="[stdout]";SPOCK.flush=function(){SPOCK.stdout.flush();if(SPOCK.stderr!==SPOCK.stdout)
+SPOCK.stderr.flush();SPOCK.statistics();};if(this.gc)SPOCK.gc=gc;else SPOCK.gc=function(){};SPOCK.openInputUrlHook=function(url){SPOCK.error("can not open",url);};SPOCK.openOutputUrlHook=function(url){SPOCK.error("can not open",url);};if("java"in this){SPOCK.openInputFile=function(filename){var stream;try{stream=new java.io.FileInputStream(filename);}
+catch(e){SPOCK.error(e.message);}
+var port=SPOCK.makeJavaInputPort(stream);port.name=filename;return port;};SPOCK.openOutputFile=function(filename){var stream;try{stream=new java.io.FileOutputStream(filename);}
+catch(e){SPOCK.error(e.message);}
+var port=SPOCK.makeJavaOutputPort(stream);port.name=filename;return port;};SPOCK.fileExists=function(filename){return(new java.io.File(filename)).exists();};}
+else{if(SPOCK.inBrowser){SPOCK.openInputFile=function(filename){if(filename.match(/^[a-z0-9]+:/))
+return SPOCK.openInputUrlHook(filename);var cookies=document.cookie.split("; ");var buffer=null;for(var i=0;i<cookies.length;++i){var c=cookies[i];var p=c.indexOf("=");if(filename===c.substring(0,p)){buffer=c.substring(p+1);break;}}
+if(!buffer)SPOCK.error("can not open file",filename);var pos=0;return new SPOCK.Port("input",{read:function(n){if(pos>=buffer.length)return SPOCK.EOF;else if(pos+len>=buffer.length)
+return buffer.substring(pos);var p1=pos;pos+=n;return buffer.substring(p1,p1+n);},ready:function(){return pos<buffer.length;}});};SPOCK.openOutputFile=function(filename,expiry){if(filename.match(/^[a-z0-9]+:/))
+return SPOCK.openOutputUrlHook(filename);return new SPOCK.Port("output",{write:function(s){buffer+=s;},close:function(){var now=(new Date()).getTime();var exp=now+(expiry||(1000*60*60*24*365));document.cookie=filename+"="+encodeURIComponent(buffer)+"; expires="+(new Date(exp)).toGMTString();}});};}
+else{SPOCK.openInputFile=function(filename){SPOCK.error("file-I/O not available");}
+SPOCK.openOutputFile=function(filename){SPOCK.error("file-I/O not available");}}
+SPOCK.fileExists=function(filename){SPOCK.error("`file-exists?' not available");};}
+if("document"in this){SPOCK.load=function(url,k){var script=document.createElement("script")
+script.type="text/javascript";k=k||function(){};if(script.readyState){script.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete"){script.onreadystatechange=null;k(url);}};}
+else{script.onload=function(){k(url);};}
+script.src=url;document.getElementsByTagName("head")[0].appendChild(script);};}
+else if("load"in this){SPOCK.load=function(filename,k){load(filename);if(k)k(filename);};}
+var t1350=function(k1097){var t1351=function(k1098,t1){var t1=SPOCK.rest(arguments,1);loop:while(true){return k1098(t1);}};____25list=t1351;var t1353=function(K){SPOCK.count(arguments,'values');return K.apply(SPOCK.global,Array.prototype.slice.call(arguments,1));};___values=t1353;var t1354=function(K){SPOCK.count(arguments,'call-with-values');var thunk=arguments[1];var proc=arguments[2];function k2(){var args=Array.prototype.slice.call(arguments);args.unshift(K);return proc.apply(SPOCK.global,args);}
+return thunk(k2);};___call_2dwith_2dvalues=t1354;var t1355=function(K){SPOCK.count(arguments,'%call-with-saved-values');var t1=arguments[1];var t2=arguments[2];var args;function k2(){return K.apply(SPOCK.global,args);}
+function k1(){args=Array.prototype.slice.call(arguments);return t2(k2);}
+return t1(k1);};____25call_2dwith_2dsaved_2dvalues=t1355;var t1356=function(k1099,t2){var r=SPOCK.count(arguments);if(r)return r;var t3=undefined;var t1357=function(k1100,t4,t5){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1359=null;var t1358=(t4)===(t1359);var t6=t1358;var t1360;if(t6!==false){return k1100(t6);}
+else{var t1362=(t4)instanceof SPOCK.Pair;var t975=t1362;var t1363;if(t975!==false){var t1364=t4.cdr;var t11=t1364;var t1366=null;var t1365=(t11)===(t1366);var t13=t1365;var t1367;if(t13!==false){return k1100(t13);}
+else{var t1369=(t11)instanceof SPOCK.Pair;var t976=t1369;var t1370;if(t976!==false){var t1371=t11.cdr;var t18=t1371;var t1372=t5.cdr;var t19=t1372;var t1373=(t18)===(t19);var t22=t1373;var t1374;if(t22!==false){t1374=false;}
+else{t1374=true;}
+var t977=t1374;var t1375;if(t977!==false){var t1376=t18;var t1377=t19;t4=t1376;t5=t1377;continue loop;}
+else{return k1100(false);}
+t1370=t1375;}
+else{return k1100(false);}
+t1367=t1370;}
+t1363=t1367;}
+else{return k1100(false);}
+t1360=t1363;}}};t3=t1357;return t3(k1099,t2,t2);};___list_3f=t1356;var t1382=function(k1101,t25){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1383=t25.car;var t27=t1383;var t1384=t27.car;var t26=t1384;var t1385=t26.car;return k1101(t1385);}};___caaar=t1382;var t1387=function(k1102,t32){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1388=t32.cdr;var t34=t1388;var t1389=t34.car;var t33=t1389;var t1390=t33.car;return k1102(t1390);}};___caadr=t1387;var t1392=function(k1103,t39){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1393=t39.car;var t41=t1393;var t1394=t41.cdr;var t40=t1394;var t1395=t40.car;return k1103(t1395);}};___cadar=t1392;var t1397=function(k1104,t46){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1398=t46.cdr;var t48=t1398;var t1399=t48.cdr;var t47=t1399;var t1400=t47.car;return k1104(t1400);}};___caddr=t1397;var t1402=function(k1105,t53){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1403=t53.car;var t55=t1403;var t1404=t55.car;var t54=t1404;var t1405=t54.cdr;return k1105(t1405);}};___cdaar=t1402;var t1407=function(k1106,t60){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1408=t60.cdr;var t62=t1408;var t1409=t62.car;var t61=t1409;var t1410=t61.cdr;return k1106(t1410);}};___cdadr=t1407;var t1412=function(k1107,t67){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1413=t67.car;var t69=t1413;var t1414=t69.cdr;var t68=t1414;var t1415=t68.cdr;return k1107(t1415);}};___cddar=t1412;var t1417=function(k1108,t74){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1418=t74.cdr;var t76=t1418;var t1419=t76.cdr;var t75=t1419;var t1420=t75.cdr;return k1108(t1420);}};___cdddr=t1417;var t1422=function(k1109,t81){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1423=t81.car;var t84=t1423;var t1424=t84.car;var t83=t1424;var t1425=t83.car;var t82=t1425;var t1426=t82.car;return k1109(t1426);}};___caaaar=t1422;var t1428=function(k1110,t90){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1429=t90.cdr;var t93=t1429;var t1430=t93.car;var t92=t1430;var t1431=t92.car;var t91=t1431;var t1432=t91.car;return k1110(t1432);}};___caaadr=t1428;var t1434=function(k1111,t99){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1435=t99.car;var t102=t1435;var t1436=t102.cdr;var t101=t1436;var t1437=t101.car;var t100=t1437;var t1438=t100.car;return k1111(t1438);}};___caadar=t1434;var t1440=function(k1112,t108){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1441=t108.cdr;var t111=t1441;var t1442=t111.cdr;var t110=t1442;var t1443=t110.car;var t109=t1443;var t1444=t109.car;return k1112(t1444);}};___caaddr=t1440;var t1446=function(k1113,t117){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1447=t117.car;var t120=t1447;var t1448=t120.car;var t119=t1448;var t1449=t119.cdr;var t118=t1449;var t1450=t118.car;return k1113(t1450);}};___cadaar=t1446;var t1452=function(k1114,t126){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1453=t126.cdr;var t129=t1453;var t1454=t129.car;var t128=t1454;var t1455=t128.cdr;var t127=t1455;var t1456=t127.car;return k1114(t1456);}};___cadadr=t1452;var t1458=function(k1115,t135){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1459=t135.car;var t138=t1459;var t1460=t138.cdr;var t137=t1460;var t1461=t137.cdr;var t136=t1461;var t1462=t136.car;return k1115(t1462);}};___caddar=t1458;var t1464=function(k1116,t144){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1465=t144.cdr;var t147=t1465;var t1466=t147.cdr;var t146=t1466;var t1467=t146.cdr;var t145=t1467;var t1468=t145.car;return k1116(t1468);}};___cadddr=t1464;var t1470=function(k1117,t153){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1471=t153.car;var t156=t1471;var t1472=t156.car;var t155=t1472;var t1473=t155.car;var t154=t1473;var t1474=t154.cdr;return k1117(t1474);}};___cdaaar=t1470;var t1476=function(k1118,t162){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1477=t162.cdr;var t165=t1477;var t1478=t165.car;var t164=t1478;var t1479=t164.car;var t163=t1479;var t1480=t163.cdr;return k1118(t1480);}};___cdaadr=t1476;var t1482=function(k1119,t171){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1483=t171.car;var t174=t1483;var t1484=t174.cdr;var t173=t1484;var t1485=t173.car;var t172=t1485;var t1486=t172.cdr;return k1119(t1486);}};___cdadar=t1482;var t1488=function(k1120,t180){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1489=t180.cdr;var t183=t1489;var t1490=t183.cdr;var t182=t1490;var t1491=t182.car;var t181=t1491;var t1492=t181.cdr;return k1120(t1492);}};___cdaddr=t1488;var t1494=function(k1121,t189){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1495=t189.car;var t192=t1495;var t1496=t192.car;var t191=t1496;var t1497=t191.cdr;var t190=t1497;var t1498=t190.cdr;return k1121(t1498);}};___cddaar=t1494;var t1500=function(k1122,t198){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1501=t198.cdr;var t201=t1501;var t1502=t201.car;var t200=t1502;var t1503=t200.cdr;var t199=t1503;var t1504=t199.cdr;return k1122(t1504);}};___cddadr=t1500;var t1506=function(k1123,t207){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1507=t207.car;var t210=t1507;var t1508=t210.cdr;var t209=t1508;var t1509=t209.cdr;var t208=t1509;var t1510=t208.cdr;return k1123(t1510);}};___cdddar=t1506;var t1512=function(k1124,t216){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1513=t216.cdr;var t219=t1513;var t1514=t219.cdr;var t218=t1514;var t1515=t218.cdr;var t217=t1515;var t1516=t217.cdr;return k1124(t1516);}};___cddddr=t1512;var t1518=function(k1125,t225){var t225=SPOCK.rest(arguments,1);var t1520=null;var t1519=(t225)===(t1520);var t978=t1519;var t1521;if(t978!==false){var t1522=null;return k1125(t1522);}
+else{var t229=undefined;var t1524=function(k1126,t230){var r=SPOCK.count(arguments);if(r)return r;var t1525=t230.cdr;var t231=t1525;var t1527=null;var t1526=(t231)===(t1527);var t979=t1526;var t1528;if(t979!==false){var t1529=t230.car;return k1126(t1529);}
+else{var t236=undefined;var t1531=function(k1127,t237){var r=SPOCK.count(arguments);if(r)return r;var t1532=(t237)instanceof SPOCK.Pair;var t980=t1532;var t1533;if(t980!==false){var t1534=t237.car;var t239=t1534;var t1535=function(t1128){var t240=t1128;var t1536=new SPOCK.Pair(t239,t240);return k1127(t1536);};var t1538=t237.cdr;return t236(t1535,t1538);}
+else{var t243=t230;var t1540=t243.cdr;return t229(k1127,t1540);}};t236=t1531;var t1542=t230.car;return t236(k1126,t1542);}};t229=t1524;return t229(k1125,t225);}};___append=t1518;var t1545=function(k1129,t245){var r=SPOCK.count(arguments);if(r)return r;var t246=undefined;var t1546=function(k1130,t247,t248){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1547=(t247)instanceof SPOCK.Pair;var t981=t1547;var t1548;if(t981!==false){var t1551=t247.cdr;var t1549=t1551;var t1552=t247.car;var t251=t1552;var t1553=new SPOCK.Pair(t251,t248);var t1550=t1553;t247=t1549;t248=t1550;continue loop;}
+else{return k1130(t248);}}};t246=t1546;var t1555=null;return t246(k1129,t245,t1555);};___reverse=t1545;var t1557=function(k1131,t254,t255){var r=SPOCK.count(arguments);if(r)return r;var t256=undefined;var t1558=function(k1132,t257,t258){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1560=(t257)<=0;var t1559;if(t1560!==false){return k1132(t258);}
+else{var t1564=(t257)-1;var t1562=t1564;var t1565=t258.cdr;var t1563=t1565;t257=t1562;t258=t1563;continue loop;}}};t256=t1558;return t256(k1131,t255,t254);};___list_2dtail=t1557;var t260=___list_2dtail;var t1567=function(k1133,t261,t262){var r=SPOCK.count(arguments);if(r)return r;var t1568=function(t1134){var t263=t1134;var t1569=t263.car;return k1133(t1569);};return t260(t1568,t261,t262);};___list_2dref=t1567;var t1572=function(K){SPOCK.count(arguments,'memq');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){if(n.car===x)return K(n);}
+return K(false);};___memq=t1572;var t1573=function(K){SPOCK.count(arguments,'memv');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){if(SPOCK.eqvp(n.car,x))return K(n);}
+return K(false);};___memv=t1573;var t1574=function(K){SPOCK.count(arguments,'member');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){if(SPOCK.equalp(n.car,x))return K(n);}
+return K(false);};___member=t1574;var t1575=function(K){SPOCK.count(arguments,'assq');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){var p=n.car;if(p instanceof SPOCK.Pair&&p.car===x)return K(p);}
+return K(false);};___assq=t1575;var t1576=function(K){SPOCK.count(arguments,'assv');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){var p=n.car;if(p instanceof SPOCK.Pair&&SPOCK.eqvp(p.car,x))return K(p);}
+return K(false);};___assv=t1576;var t1577=function(K){SPOCK.count(arguments,'assoc');var x=arguments[1];for(var n=arguments[2];n instanceof SPOCK.Pair;n=n.cdr){var p=n.car;if(p instanceof SPOCK.Pair&&SPOCK.equalp(p.car,x))return K(p);}
+return K(false);};___assoc=t1577;var t1578=function(K){SPOCK.count(arguments,'%+');var len=arguments.length;switch(len){case 1:return K(0);case 2:return K(arguments[1]);default:var p=arguments[1];for(var i=2;i<len;++i){p+=arguments[i];}
+return K(p);}};____25_2b=t1578;var t1579=function(K){SPOCK.count(arguments,'%-');var len=arguments.length;switch(len){case 2:return K(-arguments[1]);default:var p=arguments[1];for(var i=2;i<len;++i){p-=arguments[i];}
+return K(p);}};____25_2d=t1579;var t1580=function(K){SPOCK.count(arguments,'%*');var len=arguments.length;switch(len){case 1:return K(1);case 2:return K(arguments[1]);default:var p=arguments[1];for(var i=2;i<len;++i){p*=arguments[i];}
+return K(p);}};____25_2a=t1580;var t1581=function(K){SPOCK.count(arguments,'%/');var len=arguments.length;switch(len){case 2:return K(1/arguments[1]);default:var p=arguments[1];for(var i=2;i<len;++i){p/=arguments[i];}
+return K(p);}};____25_2f=t1581;var t1582=function(K){SPOCK.count(arguments,'%=');var argc=arguments.length;var last=SPOCK.check(arguments[1],'number','=');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','=');if(last!==x)return K(false);else last=x;}
+return K(true);};____25_3d=t1582;var t1583=function(K){SPOCK.count(arguments,'%>');var argc=arguments.length;var last=SPOCK.check(arguments[1],'number','>');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','>');if(last<=x)return K(false);else last=x;}
+return K(true);};____25_3e=t1583;var t1584=function(K){SPOCK.count(arguments,'%<');var argc=arguments.length;var last=SPOCK.check(arguments[1],'number','<');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','<');if(last>=x)return K(false);else last=x;}
+return K(true);};____25_3c=t1584;var t1585=function(K){SPOCK.count(arguments,'%>=');var argc=arguments.length;var last=SPOCK.check(arguments[1],'number','>=');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','>=');if(last<x)return K(false);else last=x;}
+return K(true);};____25_3e_3d=t1585;var t1586=function(K){SPOCK.count(arguments,'%<=');var argc=arguments.length;var last=SPOCK.check(arguments[1],'number','<=');for(var i=2;i<argc;++i){var x=SPOCK.check(arguments[i],'number','<=');if(last>x)return K(false);else last=x;}
+return K(true);};____25_3c_3d=t1586;var t1587=function(K){SPOCK.count(arguments,'%max');return K(Math.max.apply(SPOCK.global,arguments));};____25max=t1587;var t1588=function(K){SPOCK.count(arguments,'%max');return K(Math.min.apply(SPOCK.global,arguments));};____25max=t1588;var t1589=function(k1135,t264,t265){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1590=(t264)/(t265);var t275=t1590;var t1592=(t275)<0;var t1591;if(t1592!==false){var t1593=Math.ceil(t275);t1591=t1593;}
+else{var t1594=Math.floor(t275);t1591=t1594;}
+var t271=t1591;var t1595=(t271)*(t265);var t270=t1595;var t1596=(t264)-(t270);var t266=t1596;var t1597=(t265)<(0);var t982=t1597;var t1598;if(t982!==false){var t1599=(t266)<=(0);var t983=t1599;var t1600;if(t983!==false){t1600=t266;}
+else{var t1601=(t266)+(t265);t1600=t1601;}
+t1598=t1600;}
+else{var t1602=(t266)>=(0);var t984=t1602;var t1603;if(t984!==false){t1603=t266;}
+else{var t1604=(t266)+(t265);t1603=t1604;}
+t1598=t1603;}
+return k1135(t1598);}};___modulo=t1589;var t1606=function(k1136,t289,t290){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1607=(t289)/(t290);var t297=t1607;var t1609=(t297)<0;var t1608;if(t1609!==false){var t1610=Math.ceil(t297);t1608=t1610;}
+else{var t1611=Math.floor(t297);t1608=t1611;}
+var t293=t1608;var t1612=(t293)*(t290);var t292=t1612;var t1613=(t289)-(t292);return k1136(t1613);}};var t288=t1606;var t1615=function(k1137,t300,t301){var r=SPOCK.count(arguments);if(r)return r;var t302=undefined;var t1616=function(k1138,t303,t304){var r=SPOCK.count(arguments);if(r)return r;var t1617=(0)===(t304);var t985=t1617;var t1618;if(t985!==false){var t1619=Math.abs(t303);return k1138(t1619);}
+else{var t1621=function(t1139){return t302(k1138,t304,t1139);};return t288(t1621,t303,t304);}};t302=t1616;return t302(k1137,t300,t301);};____25gcd=t1615;var t1625=function(k1140,t309){var t309=SPOCK.rest(arguments,1);var t1627=null;var t1626=(t309)===(t1627);var t986=t1626;var t1628;if(t986!==false){return k1140(0);}
+else{var t313=undefined;var t1630=function(k1141,t314,t315){var r=SPOCK.count(arguments);if(r)return r;var t1631=t314.car;var t316=t1631;var t1632=t314.cdr;var t317=t1632;var t1634=null;var t1633=(t317)===(t1634);var t987=t1633;var t1635;if(t987!==false){var t1636=Math.abs(t316);return k1141(t1636);}
+else{var t1638=t317.car;var t324=t1638;var t1639=function(t1143){var t326=t1143;var t1640=t317.cdr;var t327=t1640;var t1641=new SPOCK.Pair(t326,t327);var t1142=t1641;return t313(k1141,t1142,false);};return ____25gcd(t1639,t316,t324);}};t313=t1630;return t313(k1140,t309,true);}};___gcd=t1625;var t1645=function(k1144,t329,t330){var r=SPOCK.count(arguments);if(r)return r;var t1646=(t329)*(t330);var t331=t1646;var t1647=function(t1145){var t332=t1145;var t1648=(t331)/(t332);var t335=t1648;var t1650=(t335)<0;var t1649;if(t1650!==false){var t1651=Math.ceil(t335);t1649=t1651;}
+else{var t1652=Math.floor(t335);t1649=t1652;}
+return k1144(t1649);};return ____25gcd(t1647,t329,t330);};____25lcm=t1645;var t1655=function(k1146,t338){var t338=SPOCK.rest(arguments,1);var t1657=null;var t1656=(t338)===(t1657);var t988=t1656;var t1658;if(t988!==false){return k1146(1);}
+else{var t342=undefined;var t1660=function(k1147,t343,t344){var r=SPOCK.count(arguments);if(r)return r;var t1661=t343.car;var t345=t1661;var t1662=t343.cdr;var t346=t1662;var t1664=null;var t1663=(t346)===(t1664);var t989=t1663;var t1665;if(t989!==false){var t1666=Math.abs(t345);return k1147(t1666);}
+else{var t1668=t346.car;var t353=t1668;var t1669=function(t1149){var t355=t1149;var t1670=t346.cdr;var t356=t1670;var t1671=new SPOCK.Pair(t355,t356);var t1148=t1671;return t342(k1147,t1148,false);};return ____25lcm(t1669,t345,t353);}};t342=t1660;return t342(k1146,t338,true);}};___lcm=t1655;var t1675=function(K){SPOCK.count(arguments,'string->symbol');var str=SPOCK.jstring(arguments[1]);return K(SPOCK.intern(str));};___string_2d_3esymbol=t1675;var t1676=function(k1150,t358,t359){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1678=t359.name;var t1677=(t358).plist[(t1678)];var t360=t1677;var t1679=t360===undefined;var t361=t1679;var t1680;if(t361!==false){t1680=false;}
+else{t1680=true;}
+var t990=t1680;var t1681;if(t990!==false){t1681=t360;}
+else{t1681=false;}
+return k1150(t1681);}};___get=t1676;var t1683=function(k1151,t363,t364,t365){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1685=t364.name;var t1684=(t363).plist[(t1685)]=(t365);return k1151(t1684);}};___put_21=t1683;var t1687=function(K){SPOCK.count(arguments,'string-append');var args=Array.prototype.slice.call(arguments,1);var strs=SPOCK.map(function(x){return SPOCK.jstring(x);},args);return K(new SPOCK.String(strs));};___string_2dappend=t1687;var t1688=function(K){SPOCK.count(arguments,'string');var str=[];var len=arguments.length-1;for(var i=1;i<=len;++i){var x=arguments[i];if(x instanceof SPOCK.Char)str.push(x.character);else SPOCK.error('bad argument type - not a character',x);}
+return K(new SPOCK.String(str.join('')));};___string=t1688;var t1689=function(K){SPOCK.count(arguments,'string->list');var str=SPOCK.jstring(arguments[1]);var lst=null;var len=str.length;for(var i=len-1;i>=0;--i)
+lst=new SPOCK.Pair(new SPOCK.Char(str.charAt(i)),lst);return K(lst);};___string_2d_3elist=t1689;var t1690=function(K){SPOCK.count(arguments,'list->string');var lst=arguments[1];var str=[];while(lst instanceof SPOCK.Pair){str.push(SPOCK.check(lst.car,SPOCK.Char).character);lst=lst.cdr;}
+return K(new SPOCK.String(str.join('')));};___list_2d_3estring=t1690;var t1691=function(K){SPOCK.count(arguments,'make-string');var n=SPOCK.check(arguments[1],'number','make-string');var c=arguments[2];var a=new Array(n);if(c!==undefined)
+c=SPOCK.check(c,SPOCK.Char,'make-string').character;else c=' ';for(var i=0;i<n;++i)a[i]=c;return K(new SPOCK.String(a.join('')));};___make_2dstring=t1691;var t1692=function(K){SPOCK.count(arguments,'string-ref');var str=arguments[1];var i=SPOCK.check(arguments[2],'number','string-ref');if(typeof str==='string')
+return K(new SPOCK.Char(str.charAt(i)));else if(str instanceof SPOCK.String){var parts=str.parts;for(var p in parts){var l=parts[p].length;if(i<=l)return K(new SPOCK.Char(parts[p].charAt(i)));else i-=l;}
+SPOCK.error('`string-ref\' out of range',str,i);}};___string_2dref=t1692;var t1693=function(K){SPOCK.count(arguments,'string-set!');var str=arguments[1];var i=SPOCK.check(arguments[2],'number','string-set!');var c=SPOCK.check(arguments[3],SPOCK.Char,'string-set!');if(typeof str==='string')
+SPOCK.error('argument to `string-set!\' is not a mutable string',str);else if(str instanceof SPOCK.String){var parts=str.parts;for(var p in parts){var part=parts[p];var l=part.length;if(i<=l){parts[p]=part.substring(0,i)+c.character+part.substring(i+1);return K(undefined);}else i-=l;}
+SPOCK.error('`string-set!\' out of range',str,i);}};___string_2dset_21=t1693;var t1694=function(k1152,t366,t367,t368){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1695=SPOCK.jstring(t366);var t369=t1695;var t1696=t367===undefined;var t991=t1696;var t1697;if(t991!==false){t1697=0;}
+else{t1697=t367;}
+var t371=t1697;var t1698=t368===undefined;var t992=t1698;var t1699;if(t992!==false){var t1700=t369.length;t1699=t1700;}
+else{t1699=t368;}
+var t373=t1699;var t1701=t369.slice(t371,t373);var t375=t1701;var t1702=new SPOCK.String(t375);return k1152(t1702);}};___string_2dcopy=t1694;var t1704=function(k1153,t376,t377,t378,t379){var r=SPOCK.count(arguments);if(r)return r;var t1705;if(true!==false){t1705=false;}
+else{t1705=true;}
+var t993=t1705;var t1706=function(t1154){var t1707=t376.normalize();var t381=t1707;var t382=t377;var t1708=t378===undefined;var t994=t1708;var t1709;if(t994!==false){t1709=0;}
+else{t1709=t378;}
+var t383=t1709;var t1710=t379===undefined;var t995=t1710;var t1711;if(t995!==false){var t1712=t381.length;t1711=t1712;}
+else{t1711=t379;}
+var t385=t1711;var t1713=function(K){SPOCK.count(arguments);var str=arguments[1];var from=arguments[2];var to=arguments[3];var c=arguments[4];var snew=new Array(to-from);for(var i in snew)snew[i]=c;str.parts=[str.parts[0].substring(0,from),snew.join(''),str.parts[0].substring(to)];return K(str);};return t1713(k1153,t376,t383,t385,t382);};var t1155=t1706;var t1715;if(t993!==false){return ____25error(t1155,"bad argument type - not a mutable string",t376);}
+else{return t1155(undefined);}};___string_2dfill_21=t1704;var t1718=function(K){SPOCK.count(arguments,'vector');return K(Array.prototype.slice.call(arguments,1));};___vector=t1718;var t1719=function(K){SPOCK.count(arguments,'make-vector');var n=SPOCK.check(arguments[1],'number','make-vector');var x=arguments[2];var a=new Array(n);if(x!==undefined){for(var i=0;i<n;++i)a[i]=x;}
+return K(a);};___make_2dvector=t1719;var t1720=function(K){SPOCK.count(arguments,'vector->list');var vec=SPOCK.check(arguments[1],Array,'vector->list');var lst=null;var len=vec.length;for(var i=len-1;i>=0;--i)
+lst=new SPOCK.Pair(vec[i],lst);return K(lst);};___vector_2d_3elist=t1720;var t1721=function(K){SPOCK.count(arguments,'list->vector');var lst=arguments[1];var vec=[];while(lst instanceof SPOCK.Pair){vec.push(lst.car);lst=lst.cdr;}
+return K(vec);};___list_2d_3evector=t1721;var t1722=function(K){SPOCK.count(arguments,'vector-fill!');var vec=SPOCK.check(arguments[1],Array,'vector-fill!');var x=arguments[2];var from=arguments[3];var to=arguments[4];if(from===undefined)from=0;if(to===undefined)to=vec.length;for(var i=from;i<to;++i)
+vec[i]=x;return K(undefined);};___vector_2dfill_21=t1722;var t1723=function(K){SPOCK.count(arguments,'string->number');var str=SPOCK.jstring(arguments[1]);var base=arguments[2];if(!base)base=10;else base=SPOCK.check(base,'number','string->number');var m=true,neg=1;while(m){m=str.match(/^#[eboxid]/);if(m){switch(str[1]){case'e':case'i':break;case'd':base=10;break;case'o':base=8;break;case'x':base=16;break;case'b':base=2;break;default:return K(false);}
+str=str.substring(2);}}
+switch(str[0]){case'-':neg=-1;str=str.substring(1);break;case'+':str=str.substring(1);}
+var num,den=false;if((m=str.match(/^([^\/]+)\/(.+)$/))){str=m[1];den=m[2];}
+function num3(s){var tr=null;switch(base){case 2:tr=/^[0-1]+$/;break;case 8:tr=/^[0-7]+$/;break;case 10:tr=/^[#0-9]*\.?[#0-9]+([esdfl][-+]?[0-9]+)?$/;break;case 16:tr=/^[0-9a-fA-F]+$/;}
+if(tr&&!s.match(tr))return false;var s2=s.replace(/#/g,'0');if(base===10)s2=parseFloat(s2.replace(/[esdfl]/g,'e'));else if(s2!==s)return false;else s2=parseInt(s2,base);return isNaN(s2)?false:s2;}
+if((num=num3(str))===false)return K(false);if(den&&!(den=num3(den)))return K(false);return K(neg*num/(den||1));};___string_2d_3enumber=t1723;var t1724=function(K){SPOCK.count(arguments,'%show');arguments[2].write(arguments[1]);return K(undefined);};____25show=t1724;var t1725=function(K){SPOCK.count(arguments,'%fetch');return K(arguments[2].read(arguments[1]));};____25fetch=t1725;var t1726=function(k1156,t387){var r=SPOCK.count(arguments);if(r)return r;var t1727=t387===undefined;var t996=t1727;var t1728;if(t996!==false){t1728=SPOCK.stdout;}
+else{t1728=t387;}
+return ____25show(k1156,"\n",t1728);};___newline=t1726;var t1730=function(k1157,t392){var r=SPOCK.count(arguments);if(r)return r;var t1731=function(t1158){var t393=t1158;var t400=SPOCK.EOF;var t1732=(t393)===(t400);var t998=t1732;var t1733;if(t998!==false){t1733=t393;}
+else{var t1734=new SPOCK.Char(t393);t1733=t1734;}
+return k1157(t1733);};var t1736=t392===undefined;var t997=t1736;var t1737;if(t997!==false){t1737=SPOCK.stdin;}
+else{t1737=t392;}
+return ____25fetch(t1731,1,t1737);};___read_2dchar=t1730;var t1739=function(k1159,t401,t402){var r=SPOCK.count(arguments);if(r)return r;var t1740=t401.character;var t1741=t402===undefined;var t999=t1741;var t1742;if(t999!==false){t1742=SPOCK.stdout;}
+else{t1742=t402;}
+return ____25show(k1159,t1740,t1742);};___write_2dchar=t1739;var t407=___read_2dchar;var t1744=function(k1160,t408){var r=SPOCK.count(arguments);if(r)return r;var t1745=function(t1161){var t409=t1161;var t413=SPOCK.EOF;var t1746=(t409)===(t413);var t410=t1746;var t1747;if(t410!==false){t1747=false;}
+else{t1747=true;}
+var t1000=t1747;var t1748;if(t1000!==false){var t1750=t409.character;var t1749=(t408).peeked=(t1750);t1748=t1749;}
+else{}
+return k1160(t409);};return t407(t1745,t408);};___peek_2dchar=t1744;var t1753=function(k1162,t414){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t1754=t414.ready();return k1162(t1754);}};___char_2dready_3f=t1753;var t1756=function(k1163,t418,t419,t420){var r=SPOCK.count(arguments);if(r)return r;return ____25show(k1163,"#<unknown object>",t419);};____25print_2dhook=t1756;var t1758=function(k1164,t421,t422){var r=SPOCK.count(arguments);if(r)return r;var t1759=t422===undefined;var t1001=t1759;var t1760;if(t1001!==false){t1760=SPOCK.stdout;}
+else{t1760=t422;}
+var t423=t1760;var t428=undefined;var t1761=function(k1165,t429){var r=SPOCK.count(arguments);if(r)return r;var t1763=null;var t1762=(t429)===(t1763);var t1002=t1762;var t1764;if(t1002!==false){return ____25show(k1165,"()",t423);}
+else{var t1766=typeof(t429);var t434=t1766;var t1767=(t434)===("number");var t1003=t1767;var t1768;if(t1003!==false){var t1771=undefined===undefined;var t1004=t1771;var t1772;if(t1004!==false){t1772=10;}
+else{}
+var t1770=t429.toString(t1772);var t1769=new SPOCK.String(t1770);var t436=t1769;var t1773=SPOCK.jstring(t436);return ____25show(k1165,t1773,t423);}
+else{var t1775=typeof(t429);var t442=t1775;var t1776=(t442)===("string");var t441=t1776;var t1777;if(t441!==false){t1777=t441;}
+else{var t1778=(t429)instanceof SPOCK.String;t1777=t1778;}
+var t1005=t1777;var t1779;if(t1005!==false){var t1780=SPOCK.jstring(t429);return ____25show(k1165,t1780,t423);}
+else{var t1782=(t429)instanceof SPOCK.Symbol;var t1006=t1782;var t1783;if(t1006!==false){var t1784=t429.name;return ____25show(k1165,t1784,t423);}
+else{var t1786=(t429)instanceof SPOCK.Char;var t1007=t1786;var t1787;if(t1007!==false){var t1788=t429.character;return ____25show(k1165,t1788,t423);}
+else{var t448=SPOCK.EOF;var t1790=(t429)===(t448);var t1008=t1790;var t1791;if(t1008!==false){return ____25show(k1165,"#<eof>",t423);}
+else{var t1793=typeof(t429);var t450=t1793;var t1794=(t450)===("function");var t1009=t1794;var t1795;if(t1009!==false){return ____25show(k1165,"#<procedure>",t423);}
+else{var t1797=(t429)===(true);var t453=t1797;var t1798;if(t453!==false){t1798=t453;}
+else{var t1799=(t429)===(false);t1798=t1799;}
+var t1010=t1798;var t1800;if(t1010!==false){var t1801;if(t429!==false){t1801="#t";}
+else{t1801="#f";}
+return ____25show(k1165,t1801,t423);}
+else{var t1803=(t429)instanceof SPOCK.Pair;var t1011=t1803;var t1804;if(t1011!==false){var t1805=function(t1166){var t459=undefined;var t1806=function(k1167,t460){var r=SPOCK.count(arguments);if(r)return r;var t1808=null;var t1807=(t460)===(t1808);var t1012=t1807;var t1809;if(t1012!==false){return ____25show(k1167,")",t423);}
+else{var t1811=(t460)instanceof SPOCK.Pair;var t464=t1811;var t1812;if(t464!==false){t1812=false;}
+else{t1812=true;}
+var t1013=t1812;var t1813;if(t1013!==false){var t1814=function(t1168){var t1815=function(t1169){return ____25show(k1167,")",t423);};return t428(t1815,t460);};return ____25show(t1814," . ",t423);}
+else{var t467=t429;var t1819=(t467)===(t460);var t466=t1819;var t1820;if(t466!==false){t1820=false;}
+else{t1820=true;}
+var t1014=t1820;var t1821=function(t1170){var t1822=function(t1171){var t1823=t460.cdr;return t459(k1167,t1823);};var t1825=t460.car;return t428(t1822,t1825);};var t1172=t1821;var t1827;if(t1014!==false){return ____25show(t1172," ",t423);}
+else{return t1172(undefined);}
+t1813=t1827;}
+t1809=t1813;}};t459=t1806;return t459(k1165,t429);};return ____25show(t1805,"(",t423);}
+else{var t1832=t429===undefined;var t1015=t1832;var t1833;if(t1015!==false){return ____25show(k1165,"#<undefined>",t423);}
+else{var t1835=(t429)instanceof Array;var t1016=t1835;var t1836;if(t1016!==false){var t1837=t429.length;var t474=t1837;var t1838=function(t1173){var t475=undefined;var t1839=function(k1174,t476){var r=SPOCK.count(arguments);if(r)return r;var t1841=(t476)>=(t474);var t1840;if(t1841!==false){return ____25show(k1174,")",t423);}
+else{var t1843=(t476)===(0);var t477=t1843;var t1844;if(t477!==false){t1844=false;}
+else{t1844=true;}
+var t1017=t1844;var t1845=function(t1175){var t1846=function(t1176){var t1847=1+(t476);return t475(k1174,t1847);};var t1849=(t429)[(t476)];return t428(t1846,t1849);};var t1177=t1845;var t1851;if(t1017!==false){return ____25show(t1177," ",t423);}
+else{return t1177(undefined);}
+t1840=t1851;}};t475=t1839;return t475(k1165,0);};return ____25show(t1838,"#(",t423);}
+else{var t1857=(t429)instanceof SPOCK.Port;var t1856;if(t1857!==false){var t1858=SPOCK.stringify(t429);return ____25show(k1165,t1858,t423);}
+else{var t1861=(t429)instanceof SPOCK.Promise;var t1860;if(t1861!==false){return ____25show(k1165,"#<promise>",t423);}
+else{var t1863=typeof(t429);var t481=t1863;var t1864=("object")===(t481);var t1018=t1864;var t1865;if(t1018!==false){return ____25print_2dhook(k1165,t429,t423,false);}
+else{return ____25show(k1165,"#<unknown object>",t423);}
+t1860=t1865;}
+t1856=t1860;}
+t1836=t1856;}
+t1833=t1836;}
+t1804=t1833;}
+t1800=t1804;}
+t1795=t1800;}
+t1791=t1795;}
+t1787=t1791;}
+t1783=t1787;}
+t1779=t1783;}
+t1768=t1779;}
+t1764=t1768;}};t428=t1761;return t428(k1164,t421);};___display=t1758;var t482=___display;var t483=undefined;var t1869=function(K){SPOCK.count(arguments,'t483');var str=arguments[1];var a=[];var len=str.length;for(var i=0;i<len;++i){var c=str.charAt(i);switch(c){case'\n':a.push('\n');break;case'\t':a.push('\t');break;case'\r':a.push('\r');break;case'\"':a.push('\\"');break;case'\\':a.push('\\');break;default:a.push(c);}}
+return K(a.join(''));};t483=t1869;var t1870=function(k1178,t484,t485){var r=SPOCK.count(arguments);if(r)return r;var t1871=t485===undefined;var t1019=t1871;var t1872;if(t1019!==false){t1872=SPOCK.stdout;}
+else{t1872=t485;}
+var t486=t1872;var t491=undefined;var t1873=function(k1179,t492){var r=SPOCK.count(arguments);if(r)return r;var t1874=typeof(t492);var t495=t1874;var t1875=(t495)===("string");var t494=t1875;var t1876;if(t494!==false){t1876=t494;}
+else{var t1877=(t492)instanceof SPOCK.String;t1876=t1877;}
+var t1020=t1876;var t1878;if(t1020!==false){var t1879=function(t1180){var t1880=function(t1182){var t1881=function(t1181){return ____25show(k1179,"\"",t486);};return ____25show(t1881,t1182,t486);};var t1884=SPOCK.jstring(t492);return t483(t1880,t1884);};return ____25show(t1879,"\"",t486);}
+else{var t1887=(t492)instanceof SPOCK.Char;var t1021=t1887;var t1888;if(t1021!==false){var t1889=function(t1183){var t1890=t492.character;var t498=t1890;var t1892=SPOCK.eqvp(t498,"\n");var t1022=t1892;var t1893;if(t1022!==false){t1893=true;}
+else{t1893=false;}
+var t1891;if(t1893!==false){t1891="newline";}
+else{var t1895=SPOCK.eqvp(t498,"\r");var t1023=t1895;var t1896;if(t1023!==false){t1896=true;}
+else{t1896=false;}
+var t1894;if(t1896!==false){t1894="return";}
+else{var t1898=SPOCK.eqvp(t498,"\t");var t1024=t1898;var t1899;if(t1024!==false){t1899=true;}
+else{t1899=false;}
+var t1897;if(t1899!==false){t1897="tab";}
+else{var t1901=SPOCK.eqvp(t498," ");var t1025=t1901;var t1902;if(t1025!==false){t1902=true;}
+else{t1902=false;}
+var t1900;if(t1902!==false){t1900="space";}
+else{t1900=t498;}
+t1897=t1900;}
+t1894=t1897;}
+t1891=t1894;}
+return ____25show(k1179,t1891,t486);};return ____25show(t1889,"#\\",t486);}
+else{var t1905=(t492)instanceof SPOCK.Pair;var t1026=t1905;var t1906;if(t1026!==false){var t1907=function(t1184){var t509=undefined;var t1908=function(k1185,t510){var r=SPOCK.count(arguments);if(r)return r;var t1910=null;var t1909=(t510)===(t1910);var t1027=t1909;var t1911;if(t1027!==false){return ____25show(k1185,")",t486);}
+else{var t1913=(t510)instanceof SPOCK.Pair;var t514=t1913;var t1914;if(t514!==false){t1914=false;}
+else{t1914=true;}
+var t1028=t1914;var t1915;if(t1028!==false){var t1916=function(t1186){var t1917=function(t1187){return ____25show(k1185,")",t486);};return t491(t1917,t510);};return ____25show(t1916," . ",t486);}
+else{var t517=t492;var t1921=(t517)===(t510);var t516=t1921;var t1922;if(t516!==false){t1922=false;}
+else{t1922=true;}
+var t1029=t1922;var t1923=function(t1188){var t1924=function(t1189){var t1925=t510.cdr;return t509(k1185,t1925);};var t1927=t510.car;return t491(t1924,t1927);};var t1190=t1923;var t1929;if(t1029!==false){return ____25show(t1190," ",t486);}
+else{return t1190(undefined);}
+t1915=t1929;}
+t1911=t1915;}};t509=t1908;return t509(k1179,t492);};return ____25show(t1907,"(",t486);}
+else{var t1934=(t492)instanceof Array;var t1030=t1934;var t1935;if(t1030!==false){var t1936=t492.length;var t523=t1936;var t1937=function(t1191){var t524=undefined;var t1938=function(k1192,t525){var r=SPOCK.count(arguments);if(r)return r;var t1940=(t525)>=(t523);var t1939;if(t1940!==false){return ____25show(k1192,")",t486);}
+else{var t1942=(t525)===(0);var t526=t1942;var t1943;if(t526!==false){t1943=false;}
+else{t1943=true;}
+var t1031=t1943;var t1944=function(t1193){var t1945=function(t1194){var t1946=1+(t525);return t524(k1192,t1946);};var t1948=(t492)[(t525)];return t491(t1945,t1948);};var t1195=t1944;var t1950;if(t1031!==false){return ____25show(t1195," ",t486);}
+else{return t1195(undefined);}
+t1939=t1950;}};t524=t1938;return t524(k1179,0);};return ____25show(t1937,"#(",t486);}
+else{return t482(k1179,t492,t486);}
+t1906=t1935;}
+t1888=t1906;}
+t1878=t1888;}};t491=t1873;return t491(k1178,t484);};___write=t1870;var t1957=function(K){SPOCK.count(arguments,'apply');var proc=arguments[1];var argc=arguments.length;var lst=arguments[argc-1];var vec=[K].concat(Array.prototype.slice.call(arguments,2,argc-1));if(lst instanceof Array)vec=vec.concat(lst);else{var len=SPOCK.length(lst);var vec2=new Array(len);for(var i=0;lst instanceof SPOCK.Pair;lst=lst.cdr)
+vec2[i++]=lst.car;vec=vec.concat(vec2);}
+return proc.apply(SPOCK.global,vec);};___apply=t1957;var t1958=function(k1196,t529,t530,t531){var r=SPOCK.count(arguments);if(r)return r;var t531=SPOCK.rest(arguments,3);var t1960=null;var t1959=(t531)===(t1960);var t1032=t1959;var t1961;if(t1032!==false){var t1962=(t530)instanceof Array;var t1033=t1962;var t1963;if(t1033!==false){var t1964=t530.length;var t536=t1964;var t538=undefined;var t1965=function(k1197,t539){var r=SPOCK.count(arguments);if(r)return r;var t541=t536;var t1966=(t539)>=(t541);var t1034=t1966;var t1967;if(t1034!==false){return k1197(false);}
+else{var t1969=function(t1198){var t1970=(t539)+(1);return t538(k1197,t1970);};var t542=t530;var t1972=(t542)[(t539)];return t529(t1969,t1972);}};t538=t1965;return t538(k1196,0);}
+else{var t546=undefined;var t1975=function(k1199,t547){var r=SPOCK.count(arguments);if(r)return r;var t1976=(t547)instanceof SPOCK.Pair;var t1035=t1976;var t1977;if(t1035!==false){var t1978=function(t1200){var t1979=t547.cdr;return t546(k1199,t1979);};var t1981=t547.car;return t529(t1978,t1981);}
+else{return k1199(undefined);}};t546=t1975;return t546(k1196,t530);}
+t1961=t1963;}
+else{var t551=undefined;var t1985=function(k1201,t552){var r=SPOCK.count(arguments);if(r)return r;var t554=undefined;var t1986=function(k1207,t555){var r=SPOCK.count(arguments);if(r)return r;var t1988=null;var t1987=(t555)===(t1988);var t1036=t1987;var t1989;if(t1036!==false){var t1990=null;return k1207(t1990);}
+else{var t1992=t555.car;var t559=t1992;var t1993=(t559)instanceof SPOCK.Pair;var t1037=t1993;var t1994;if(t1037!==false){var t1995=t559.car;var t562=t1995;var t1996=function(t1208){var t563=t1208;var t1997=new SPOCK.Pair(t562,t563);return k1207(t1997);};var t1999=t555.cdr;return t554(t1996,t1999);}
+else{return k1207(false);}
+t1989=t1994;}};t554=t1986;var t2002=function(t1202){var t553=t1202;var t2003;if(t553!==false){var t2004=function(t1203){var t566=undefined;var t2005=function(k1205,t567){var r=SPOCK.count(arguments);if(r)return r;var t2007=null;var t2006=(t567)===(t2007);var t1038=t2006;var t2008;if(t1038!==false){var t2009=null;return k1205(t2009);}
+else{var t2011=t567.car;var t573=t2011;var t2012=t573.cdr;var t571=t2012;var t2013=function(t1206){var t572=t1206;var t2014=new SPOCK.Pair(t571,t572);return k1205(t2014);};var t2016=t567.cdr;return t566(t2013,t2016);}};t566=t2005;var t2018=function(t1204){return t551(k1201,t1204);};return t566(t2018,t552);};return ___apply(t2004,t529,t553);}
+else{return k1201(undefined);}};return t554(t2002,t552);};t551=t1985;var t2024=new SPOCK.Pair(t530,t531);return t551(k1196,t2024);}};___for_2deach=t1958;var t2026=function(k1209,t578,t579,t580){var r=SPOCK.count(arguments);if(r)return r;var t580=SPOCK.rest(arguments,3);var t2028=null;var t2027=(t580)===(t2028);var t1039=t2027;var t2029;if(t1039!==false){var t2030=(t579)instanceof Array;var t1040=t2030;var t2031;if(t1040!==false){var t2032=t579.length;var t585=t2032;var t2033=function(t1210){var t587=t1210;var t588=undefined;var t2034=function(k1211,t589){var r=SPOCK.count(arguments);if(r)return r;var t591=t585;var t2035=(t589)>=(t591);var t1041=t2035;var t2036;if(t1041!==false){return k1211(t587);}
+else{var t592=t587;var t593=t589;var t2038=function(t1213){var t594=t1213;var t2039=(t592)[(t593)]=(t594);var t1212=t2039;var t2040=(t589)+(1);return t588(k1211,t2040);};var t595=t579;var t2042=(t595)[(t589)];return t578(t2038,t2042);}};t588=t2034;return t588(k1209,0);};return ___make_2dvector(t2033,t585);}
+else{var t599=undefined;var t2046=function(k1214,t600){var r=SPOCK.count(arguments);if(r)return r;var t2047=(t600)instanceof SPOCK.Pair;var t1042=t2047;var t2048;if(t1042!==false){var t2049=function(t1215){var t602=t1215;var t2050=function(t1216){var t603=t1216;var t2051=new SPOCK.Pair(t602,t603);return k1214(t2051);};var t2053=t600.cdr;return t599(t2050,t2053);};var t2055=t600.car;return t578(t2049,t2055);}
+else{var t2057=null;return k1214(t2057);}};t599=t2046;return t599(k1209,t579);}
+t2029=t2031;}
+else{var t606=undefined;var t2060=function(k1217,t607){var r=SPOCK.count(arguments);if(r)return r;var t609=undefined;var t2061=function(k1224,t610){var r=SPOCK.count(arguments);if(r)return r;var t2063=null;var t2062=(t610)===(t2063);var t1043=t2062;var t2064;if(t1043!==false){var t2065=null;return k1224(t2065);}
+else{var t2067=t610.car;var t614=t2067;var t2068=(t614)instanceof SPOCK.Pair;var t1044=t2068;var t2069;if(t1044!==false){var t2070=t614.car;var t617=t2070;var t2071=function(t1225){var t618=t1225;var t2072=new SPOCK.Pair(t617,t618);return k1224(t2072);};var t2074=t610.cdr;return t609(t2071,t2074);}
+else{return k1224(false);}
+t2064=t2069;}};t609=t2061;var t2077=function(t1218){var t608=t1218;var t2078;if(t608!==false){var t2079=function(t1219){var t621=t1219;var t623=undefined;var t2080=function(k1222,t624){var r=SPOCK.count(arguments);if(r)return r;var t2082=null;var t2081=(t624)===(t2082);var t1045=t2081;var t2083;if(t1045!==false){var t2084=null;return k1222(t2084);}
+else{var t2086=t624.car;var t630=t2086;var t2087=t630.cdr;var t628=t2087;var t2088=function(t1223){var t629=t1223;var t2089=new SPOCK.Pair(t628,t629);return k1222(t2089);};var t2091=t624.cdr;return t623(t2088,t2091);}};t623=t2080;var t2093=function(t1221){var t2094=function(t1220){var t622=t1220;var t2095=new SPOCK.Pair(t621,t622);return k1217(t2095);};return t606(t2094,t1221);};return t623(t2093,t607);};return ___apply(t2079,t578,t608);}
+else{var t2100=null;return k1217(t2100);}};return t609(t2077,t607);};t606=t2060;var t2103=new SPOCK.Pair(t579,t580);return t606(k1209,t2103);}};___map=t2026;var t2105=function(k1226,t637,t638,t639){var r=SPOCK.count(arguments);if(r)return r;var t2106=function(t1227){var t2107=new SPOCK.Pair(t637,t639);var t640=t2107;var t641=SPOCK.dynwinds;var t2108=new SPOCK.Pair(t640,t641);SPOCK.dynwinds=t2108
+var t2109=function(k1228){var t644=SPOCK.dynwinds;var t2110=t644.cdr;SPOCK.dynwinds=t2110
+return t639(k1228);};return ____25call_2dwith_2dsaved_2dvalues(k1226,t638,t2109);};return t637(t2106);};___dynamic_2dwind=t2105;var t2114=function(K){SPOCK.count(arguments,'%call-with-current-continuation');var proc=arguments[1];function cont(){return K.apply(SPOCK.global,Array.prototype.slice.call(arguments,1));}
+return proc(K,cont);};____25call_2dwith_2dcurrent_2dcontinuation=t2114;var t645=undefined;var t2115=function(k1229,t646,t647){var r=SPOCK.count(arguments);if(r)return r;var t649=SPOCK.dynwinds;var t2116=(t649)===(t646);var t648=t2116;var t2117;if(t648!==false){return k1229(t648);}
+else{var t2119=(t647)<(0);var t1046=t2119;var t2120;if(t1046!==false){var t2121=function(t1230){var t2122=t646.car;var t654=t2122;var t2123=t654.car;var t2124=function(t1231){SPOCK.dynwinds=t646
+return k1229(undefined);};return t2123(t2124);};var t2127=t646.cdr;var t2128=(t647)+1;return t645(t2121,t2127,t2128);}
+else{var t658=SPOCK.dynwinds;var t2130=t658.car;var t657=t2130;var t2131=t657.cdr;var t656=t2131;var t659=SPOCK.dynwinds;var t2132=t659.cdr;SPOCK.dynwinds=t2132
+var t2133=function(t1232){var t2134=(t647)-1;return t645(k1229,t646,t2134);};return t656(t2133);}
+t2117=t2120;}};t645=t2115;var t2137=function(k1233,t660){var r=SPOCK.count(arguments);if(r)return r;var t661=SPOCK.dynwinds;var t2138=function(k1234,t662){var r=SPOCK.count(arguments);if(r)return r;var t2139=function(k1235,t663){var t663=SPOCK.rest(arguments,1);var t664=SPOCK.dynwinds;var t667=t661;var t2140=(t664)===(t667);var t665=t2140;var t2141;if(t665!==false){t2141=false;}
+else{t2141=true;}
+var t1047=t2141;var t2142=function(t1236){return ___apply(k1235,t662,t663);};var t1237=t2142;var t2144;if(t1047!==false){var t2145=SPOCK.length(t664);var t668=t2145;var t671=t661;var t2146=SPOCK.length(t671);var t669=t2146;var t2147=(t668)-(t669);return t645(t1237,t661,t2147);}
+else{return t1237(undefined);}};return t660(k1234,t2139);};return ____25call_2dwith_2dcurrent_2dcontinuation(k1233,t2138);};___call_2dwith_2dcurrent_2dcontinuation=t2137;var t2152=function(k1238,t672){var r=SPOCK.count(arguments);if(r)return r;return ___vector(k1238,t672,SPOCK.dynwinds,SPOCK.stdin,SPOCK.stdout,SPOCK.stderr);};____25get_2dcontext=t2152;var t2154=function(K){SPOCK.count(arguments,'%restore-context');var state=arguments[1];SPOCK.dynwinds=state[1];SPOCK.stdin=state[2];SPOCK.stdout=state[3];SPOCK.stderr=state[4];return(state[0])(undefined);};____25restore_2dcontext=t2154;var t2155=function(k1239,t673){var r=SPOCK.count(arguments);if(r)return r;var t2156=function(k1240,t674){var r=SPOCK.count(arguments);if(r)return r;var t2157=function(t1242){var t2158=function(t1241){var t2159=function(K){SPOCK.count(arguments);return new SPOCK.Result(undefined);};return t2159(k1240);};return t673(t2158,t1242);};return ____25get_2dcontext(t2157,t674);};return ____25call_2dwith_2dcurrent_2dcontinuation(k1239,t2156);};___suspend=t2155;var t2164=function(k1243,t675){var r=SPOCK.count(arguments);if(r)return r;var t676=false;var t677=false;var t2166=function(k1244){var t2167;if(t676!==false){return ___apply(k1244,___values,t677);}
+else{var t2169=function(k1245,t678){var t678=SPOCK.rest(arguments,1);var t2170;if(t676!==false){return ___apply(k1245,___values,t677);}
+else{t676=true;t677=t678;return ___apply(k1245,___values,t677);}};return ___call_2dwith_2dvalues(k1244,t675,t2169);}};var t2165=new SPOCK.Promise(t2166);return k1243(t2165);};____25make_2dpromise=t2164;var t2175=function(k1246,t679){var r=SPOCK.count(arguments);if(r)return r;var t2177=(t679)instanceof SPOCK.Promise;var t2176;if(t2177!==false){var t2178=t679.thunk;return t2178(k1246);}
+else{return k1246(t679);}};___force=t2175;var t680=___dynamic_2dwind;var t2181=function(k1247,t681,t682){var r=SPOCK.count(arguments);if(r)return r;var t686=false;var t2182=function(k1248){loop:while(true){t686=SPOCK.stdin;SPOCK.stdin=t681
+return k1248(undefined);}};var t2184=function(k1249){loop:while(true){SPOCK.stdin=t686
+return k1249(undefined);}};return t680(k1247,t2182,t682,t2184);};___with_2dinput_2dfrom_2dport=t2181;var t687=___dynamic_2dwind;var t2187=function(k1250,t688,t689){var r=SPOCK.count(arguments);if(r)return r;var t693=false;var t2188=function(k1251){loop:while(true){t693=SPOCK.stdout;SPOCK.stdout=t688
+return k1251(undefined);}};var t2190=function(k1252){loop:while(true){SPOCK.stdout=t693
+return k1252(undefined);}};return t687(k1250,t2188,t689,t2190);};___with_2doutput_2dto_2dport=t2187;var t2193=function(K){SPOCK.count(arguments,'%close-port');var port=arguments[1];port.close();port.closed=true;return K(port);};____25close_2dport=t2193;var t2194=function(K){SPOCK.count(arguments,'open-input-file');var fn=SPOCK.check(arguments[1],'string','open-input-file');return K(SPOCK.openInputFile(fn));};___open_2dinput_2dfile=t2194;var t2195=function(K){SPOCK.count(arguments,'open-output-file');var fn=SPOCK.check(arguments[1],'string','open-input-file');var exp=null;if(arguments.length===3)
+exp=SPOCK.check(arguments[2],'number','open-input-file');return K(SPOCK.openOutputFile(fn,exp));};___open_2doutput_2dfile=t2195;var t2196=function(k1253,t694){var r=SPOCK.count(arguments);if(r)return r;var t695=t694;return ____25close_2dport(k1253,t695);};___close_2dinput_2dport=t2196;var t2198=function(k1254,t699){var r=SPOCK.count(arguments);if(r)return r;var t700=t699;return ____25close_2dport(k1254,t700);};___close_2doutput_2dport=t2198;var t705=___open_2dinput_2dfile;var t2200=function(k1255,t708,t709){var r=SPOCK.count(arguments);if(r)return r;var t2201=function(t1256){var t710=t1256;var t2202=function(k1257){return t709(k1257,t710);};var t2204=function(k1258){return ___close_2dinput_2dport(k1258,t710);};return ____25call_2dwith_2dsaved_2dvalues(k1255,t2202,t2204);};return t705(t2201,t708);};___call_2dwith_2dinput_2dfile=t2200;var t712=___open_2doutput_2dfile;var t2208=function(k1259,t715,t716){var r=SPOCK.count(arguments);if(r)return r;var t2209=function(t1260){var t717=t1260;var t2210=function(k1261){return t716(k1261,t717);};var t2212=function(k1262){return ___close_2doutput_2dport(k1262,t717);};return ____25call_2dwith_2dsaved_2dvalues(k1259,t2210,t2212);};return t712(t2209,t715);};___call_2dwith_2doutput_2dfile=t2208;var t718=___with_2dinput_2dfrom_2dport;var t719=___open_2dinput_2dfile;var t723=___close_2dinput_2dport;var t2216=function(k1263,t724,t725){var r=SPOCK.count(arguments);if(r)return r;var t2217=function(t1264){var t726=t1264;var t2218=function(k1265){var t2219=function(k1266){return t723(k1266,t726);};return ____25call_2dwith_2dsaved_2dvalues(k1265,t725,t2219);};return t718(k1263,t726,t2218);};return t719(t2217,t724);};___with_2dinput_2dfrom_2dfile=t2216;var t727=___with_2doutput_2dto_2dport;var t728=___open_2doutput_2dfile;var t732=___close_2doutput_2dport;var t2224=function(k1267,t733,t734){var r=SPOCK.count(arguments);if(r)return r;var t2225=function(t1268){var t735=t1268;var t2226=function(k1269){var t2227=function(k1270){return t732(k1270,t735);};return ____25call_2dwith_2dsaved_2dvalues(k1269,t734,t2227);};return t727(k1267,t735,t2226);};return t728(t2225,t733);};___with_2doutput_2dto_2dfile=t2224;var t2232=function(k1271,t736){var r=SPOCK.count(arguments);if(r)return r;var t737=undefined;var t2233=function(K){SPOCK.count(arguments,'t737');var buffer=arguments[1];var pos=0;var len=buffer.length;function read(n){if(pos>=len)return SPOCK.EOF;var str=buffer.substring(pos,pos+n);pos+=n;return str;}
+return K(new SPOCK.Port('input',{read:read}));};t737=t2233;var t2234=SPOCK.jstring(t736);return t737(k1271,t2234);};___open_2dinput_2dstring=t2232;var t2236=function(K){SPOCK.count(arguments,'open-output-string');var buffer=[];function write(s){buffer.push(s);}
+var port=new SPOCK.Port('output',{write:write});port.buffer=buffer;port.isStringPort=true;return K(port);};___open_2doutput_2dstring=t2236;var t2237=function(k1272,t739){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t2238=t739.isStringPort;var t742=t2238;var t2239=t742===undefined;var t741=t2239;var t2240;if(t741!==false){t2240=false;}
+else{t2240=true;}
+var t1048=t2240;var t2241;if(t1048!==false){var t2243=t739.buffer;var t2242=t2243.join("");var t744=t2242;var t2244=new SPOCK.String(t744);var t743=t2244;var t2245=(t739).buffer=[];t2241=t743;}
+else{var t2246=SPOCK.error("bad argument type - not a string port",t739);t2241=t2246;}
+return k1272(t2241);}};___get_2doutput_2dstring=t2237;var t2248=function(k1273,t745,t746){var r=SPOCK.count(arguments);if(r)return r;var t2249=function(t1274){var t747=t1274;return ___with_2dinput_2dfrom_2dport(k1273,t747,t746);};return ___open_2dinput_2dstring(t2249,t745);};___with_2dinput_2dfrom_2dstring=t2248;var t2252=function(k1275,t748){var r=SPOCK.count(arguments);if(r)return r;var t2253=function(t1276){var t749=t1276;var t2254=function(t1277){return ___get_2doutput_2dstring(k1275,t749);};return ___with_2doutput_2dto_2dport(t2254,t749,t748);};return ___open_2doutput_2dstring(t2253);};___with_2doutput_2dto_2dstring=t2252;var t750=___read_2dchar;var t751=___reverse;var t752=___peek_2dchar;var t753=___list_2d_3evector;var t754=___list_2d_3estring;var t2258=function(k1278){loop:while(true){return k1278(SPOCK.stdin);}};var t755=t2258;var t756=___string_2d_3enumber;var t2260=function(k1279,t757){var r=SPOCK.count(arguments);if(r)return r;var t2261=t757===undefined;var t1049=t2261;var t2262=function(t1280){var t758=t1280;var t760=undefined;var t761=undefined;var t762=undefined;var t763=undefined;var t764=undefined;var t765=undefined;var t766=undefined;var t767=undefined;var t2263=function(k1281,t768){var r=SPOCK.count(arguments);if(r)return r;var t2264=function(t1282){var t769=t1282;var t2265;if(t769!==false){return k1281(t769);}
+else{return ___string_2d_3esymbol(k1281,t768);}};return t756(t2264,t768);};t760=t2263;var t2269=function(k1283){var t2270=function(t1284){var t770=t1284;var t773=SPOCK.EOF;var t2271=(t770)===(t773);var t1050=t2271;var t2272;if(t1050!==false){return k1283(t770);}
+else{var t774=t770;var t2276=new SPOCK.Char("#");var t2275=SPOCK.eqvp(t770,t2276);var t1051=t2275;var t2277;if(t1051!==false){t2277=true;}
+else{t2277=false;}
+var t2274;if(t2277!==false){return t764(k1283);}
+else{var t2281=new SPOCK.Char("(");var t2280=SPOCK.eqvp(t774,t2281);var t1052=t2280;var t2282;if(t1052!==false){t2282=true;}
+else{t2282=false;}
+var t2279;if(t2282!==false){var t2283=new SPOCK.Char(")");return t765(k1283,t2283);}
+else{var t2287=new SPOCK.Char("[");var t2286=SPOCK.eqvp(t774,t2287);var t1053=t2286;var t2288;if(t1053!==false){t2288=true;}
+else{t2288=false;}
+var t2285;if(t2288!==false){var t2289=new SPOCK.Char("]");return t765(k1283,t2289);}
+else{var t2293=new SPOCK.Char("{");var t2292=SPOCK.eqvp(t774,t2293);var t1054=t2292;var t2294;if(t1054!==false){t2294=true;}
+else{t2294=false;}
+var t2291;if(t2294!==false){var t2295=new SPOCK.Char("}");return t765(k1283,t2295);}
+else{var t2299=new SPOCK.Char(",");var t2298=SPOCK.eqvp(t774,t2299);var t1055=t2298;var t2300;if(t1055!==false){t2300=true;}
+else{t2300=false;}
+var t2297;if(t2300!==false){var t2301=function(t1285){var t785=t1285;var t2303=new SPOCK.Char("@");var t2302=SPOCK.eqvp(t785,t2303);var t1056=t2302;var t2304;if(t1056!==false){var t2305=function(t1287){var t2306=function(t1286){var t787=t1286;return k1283(t787);};var t2308=SPOCK.intern("unquote-splicing");return ____25list(t2306,t2308,t1287);};return t761(t2305);}
+else{var t2311=function(t1289){var t2312=function(t1288){var t788=t1288;return k1283(t788);};var t2314=SPOCK.intern("unquote");return ____25list(t2312,t2314,t1289);};return t761(t2311);}};return t752(t2301,t758);}
+else{var t2320=new SPOCK.Char("`");var t2319=SPOCK.eqvp(t774,t2320);var t1057=t2319;var t2321;if(t1057!==false){t2321=true;}
+else{t2321=false;}
+var t2318;if(t2321!==false){var t2322=function(t1291){var t2323=function(t1290){var t791=t1290;return k1283(t791);};var t2325=SPOCK.intern("quasiquote");return ____25list(t2323,t2325,t1291);};return t761(t2322);}
+else{var t2330=new SPOCK.Char("'");var t2329=SPOCK.eqvp(t774,t2330);var t1058=t2329;var t2331;if(t1058!==false){t2331=true;}
+else{t2331=false;}
+var t2328;if(t2331!==false){var t2332=function(t1293){var t2333=function(t1292){var t794=t1292;return k1283(t794);};var t2335=SPOCK.intern("quote");return ____25list(t2333,t2335,t1293);};return t761(t2332);}
+else{var t2340=new SPOCK.Char(";");var t2339=SPOCK.eqvp(t774,t2340);var t1059=t2339;var t2341;if(t1059!==false){t2341=true;}
+else{t2341=false;}
+var t2338;if(t2341!==false){var t2342=function(t1294){return t761(k1283);};return t762(t2342);}
+else{var t2347=new SPOCK.Char("\"");var t2346=SPOCK.eqvp(t774,t2347);var t1060=t2346;var t2348;if(t1060!==false){t2348=true;}
+else{t2348=false;}
+var t2345;if(t2348!==false){return t766(k1283);}
+else{var t2352=new SPOCK.Char(")");var t2351=SPOCK.eqvp(t774,t2352);var t1061=t2351;var t2353;if(t1061!==false){t2353=true;}
+else{var t2355=new SPOCK.Char("]");var t2354=SPOCK.eqvp(t774,t2355);var t1062=t2354;var t2356;if(t1062!==false){t2356=true;}
+else{var t2358=new SPOCK.Char("}");var t2357=SPOCK.eqvp(t774,t2358);var t1063=t2357;var t2359;if(t1063!==false){t2359=true;}
+else{t2359=false;}
+t2356=t2359;}
+t2353=t2356;}
+var t2350;if(t2353!==false){return ____25error(k1283,"unexpected delimiter",t770);}
+else{var t2361=(t770).character.match(/^\s$/);var t807=t2361;var t2363=null;var t2362=(t807)===(t2363);var t806=t2362;var t2364;if(t806!==false){t2364=false;}
+else{t2364=true;}
+var t1064=t2364;var t2365;if(t1064!==false){return t761(k1283);}
+else{var t2367=function(t1297){var t810=t1297;var t1296=t810;var t2368=function(t1295){return t760(k1283,t1295);};return t767(t2368,t1296);};return ____25list(t2367,t770);}
+t2350=t2365;}
+t2345=t2350;}
+t2338=t2345;}
+t2328=t2338;}
+t2318=t2328;}
+t2297=t2318;}
+t2291=t2297;}
+t2285=t2291;}
+t2279=t2285;}
+t2274=t2279;}
+t2272=t2274;}};return t750(t2270,t758);};t761=t2269;var t2373=function(k1298){var t2374=function(t1299){var t811=t1299;var t816=SPOCK.EOF;var t2375=(t811)===(t816);var t813=t2375;var t2376;if(t813!==false){t2376=t813;}
+else{var t2378=new SPOCK.Char("\n");var t2377=t2378.character;var t819=t2377;var t2379=t811.character;var t820=t2379;var t2380=(t819)===(t820);t2376=t2380;}
+var t812=t2376;var t2381;if(t812!==false){t2381=false;}
+else{t2381=true;}
+var t1065=t2381;var t2382;if(t1065!==false){return t762(k1298);}
+else{return k1298(undefined);}};return t750(t2374,t758);};t762=t2373;var t2386=function(k1300){var t2387=function(t1301){var t821=t1301;var t2388=(t821).character.match(/^\s$/);var t824=t2388;var t2390=null;var t2389=(t824)===(t2390);var t823=t2389;var t2391;if(t823!==false){t2391=false;}
+else{t2391=true;}
+var t1066=t2391;var t2392;if(t1066!==false){var t2393=function(t1302){return t763(k1300);};return t750(t2393,t758);}
+else{return k1300(t821);}};return t752(t2387,t758);};t763=t2386;var t2398=function(k1303){var t2399=function(t1304){var t827=t1304;var t830=SPOCK.EOF;var t2400=(t827)===(t830);var t1067=t2400;var t2401;if(t1067!==false){return ____25error(k1303,"unexpected EOF after `#'");}
+else{var t831=t827;var t2405=new SPOCK.Char("t");var t2404=SPOCK.eqvp(t827,t2405);var t1068=t2404;var t2406;if(t1068!==false){t2406=true;}
+else{var t2408=new SPOCK.Char("T");var t2407=SPOCK.eqvp(t827,t2408);var t1069=t2407;var t2409;if(t1069!==false){t2409=true;}
+else{t2409=false;}
+t2406=t2409;}
+var t2403;if(t2406!==false){return k1303(true);}
+else{var t2413=new SPOCK.Char("f");var t2412=SPOCK.eqvp(t827,t2413);var t1070=t2412;var t2414;if(t1070!==false){t2414=true;}
+else{var t2416=new SPOCK.Char("F");var t2415=SPOCK.eqvp(t827,t2416);var t1071=t2415;var t2417;if(t1071!==false){t2417=true;}
+else{t2417=false;}
+t2414=t2417;}
+var t2411;if(t2414!==false){return k1303(false);}
+else{var t2421=new SPOCK.Char("(");var t2420=SPOCK.eqvp(t827,t2421);var t1072=t2420;var t2422;if(t1072!==false){t2422=true;}
+else{t2422=false;}
+var t2419;if(t2422!==false){var t2423=function(t1305){return t753(k1303,t1305);};var t2425=new SPOCK.Char(")");return t765(t2423,t2425);}
+else{var t2429=new SPOCK.Char("%");var t2428=SPOCK.eqvp(t831,t2429);var t1073=t2428;var t2430;if(t1073!==false){t2430=true;}
+else{var t2432=new SPOCK.Char("!");var t2431=SPOCK.eqvp(t831,t2432);var t1074=t2431;var t2433;if(t1074!==false){t2433=true;}
+else{t2433=false;}
+t2430=t2433;}
+var t2427;if(t2430!==false){var t2434=function(t1308){var t846=t1308;var t1307=t846;var t2435=function(t1306){return ___string_2d_3esymbol(k1303,t1306);};return t767(t2435,t1307);};var t2438=new SPOCK.Char("#");return ____25list(t2434,t827,t2438);}
+else{var t2442=new SPOCK.Char("\\");var t2441=SPOCK.eqvp(t831,t2442);var t1075=t2441;var t2443;if(t1075!==false){t2443=true;}
+else{t2443=false;}
+var t2440;if(t2443!==false){var t2444=function(t1309){var t849=t1309;var t2446=SPOCK.jstring("newline");var t2445=t2446.toLowerCase();var t852=t2445;var t2448=SPOCK.jstring(t849);var t2447=t2448.toLowerCase();var t853=t2447;var t2449=(t852)===(t853);var t1076=t2449;var t2450;if(t1076!==false){var t2451=new SPOCK.Char("\n");return k1303(t2451);}
+else{var t2454=SPOCK.jstring("tab");var t2453=t2454.toLowerCase();var t858=t2453;var t2456=SPOCK.jstring(t849);var t2455=t2456.toLowerCase();var t859=t2455;var t2457=(t858)===(t859);var t1077=t2457;var t2458;if(t1077!==false){var t2459=new SPOCK.Char("\t");return k1303(t2459);}
+else{var t2462=SPOCK.jstring("space");var t2461=t2462.toLowerCase();var t864=t2461;var t2464=SPOCK.jstring(t849);var t2463=t2464.toLowerCase();var t865=t2463;var t2465=(t864)===(t865);var t1078=t2465;var t2466;if(t1078!==false){var t2467=new SPOCK.Char(" ");return k1303(t2467);}
+else{var t2470=SPOCK.jstring(t849);var t2469=t2470.length;var t868=t2469;var t2471=(0)===(t868);var t1079=t2471;var t2472;if(t1079!==false){return ____25error(k1303,"invalid character syntax");}
+else{return ___string_2dref(k1303,t849,0);}
+t2466=t2472;}
+t2458=t2466;}
+t2450=t2458;}};var t2475=null;return t767(t2444,t2475);}
+else{return ____25error(k1303,"invalid `#' syntax",t827);}
+t2427=t2440;}
+t2419=t2427;}
+t2411=t2419;}
+t2403=t2411;}
+t2401=t2403;}};return t750(t2399,t758);};t764=t2398;var t2479=function(k1310,t873){var r=SPOCK.count(arguments);if(r)return r;var t874=undefined;var t2480=function(k1311,t875){var r=SPOCK.count(arguments);if(r)return r;var t2481=function(t1312){var t876=t1312;var t879=SPOCK.EOF;var t2482=(t876)===(t879);var t1080=t2482;var t2483;if(t1080!==false){return ____25error(k1311,"unexpected EOF while reading list");}
+else{var t881=t873;var t2485=t876.character;var t882=t2485;var t2486=t881.character;var t883=t2486;var t2487=(t882)===(t883);var t1081=t2487;var t2488;if(t1081!==false){var t2489=function(t1313){return t751(k1311,t875);};return t750(t2489,t758);}
+else{var t2493=new SPOCK.Char(".");var t2492=SPOCK.eqvp(t2493,t876);var t1082=t2492;var t2494;if(t1082!==false){var t2495=function(t1314){var t886=t1314;var t2496=SPOCK.jstring(".");var t889=t2496;var t2497=SPOCK.jstring(t886);var t890=t2497;var t2498=(t889)===(t890);var t1083=t2498;var t2499;if(t1083!==false){var t2500=function(t1315){var t893=t1315;var t2501=function(t1316){var t2502=function(t1317){var t894=t1317;var t895=t873;var t2503=SPOCK.eqvp(t894,t895);var t1084=t2503;var t2504;if(t1084!==false){var t2505=function(t1318){return ___append(k1311,t1318,t893);};return t751(t2505,t875);}
+else{return ____25error(k1311,"missing closing delimiter",t873);}};return t750(t2502,t758);};return t763(t2501);};return t761(t2500);}
+else{var t2512=function(t1320){var t896=t1320;var t2513=new SPOCK.Pair(t896,undefined);var t1319=t2513;return t874(k1311,t1319,t875);};return t760(t2512,t886);}};var t2516=null;return t767(t2495,t2516);}
+else{var t2518=function(t1322){var t898=t1322;var t2519=new SPOCK.Pair(t898,t875);var t1321=t2519;return t874(k1311,t1321);};return t761(t2518);}
+t2488=t2494;}
+t2483=t2488;}};return t763(t2481);};t874=t2480;var t2523=null;return t874(k1310,t2523);};t765=t2479;var t2525=function(k1323){var t900=undefined;var t2526=function(k1324,t901){var r=SPOCK.count(arguments);if(r)return r;var t2527=function(t1325){var t902=t1325;var t905=SPOCK.EOF;var t2528=(t902)===(t905);var t1085=t2528;var t2529;if(t1085!==false){return ____25error(k1324,"unexpected EOF while reading string");}
+else{var t2532=new SPOCK.Char("\"");var t2531=t2532.character;var t908=t2531;var t2533=t902.character;var t909=t2533;var t2534=(t908)===(t909);var t1086=t2534;var t2535;if(t1086!==false){var t2536=function(t1326){return t754(k1324,t1326);};return t751(t2536,t901);}
+else{var t2540=new SPOCK.Char("\\");var t2539=t2540.character;var t912=t2539;var t2541=t902.character;var t913=t2541;var t2542=(t912)===(t913);var t1087=t2542;var t2543;if(t1087!==false){var t2544=function(t1327){var t914=t1327;var t917=SPOCK.EOF;var t2545=(t914)===(t917);var t1088=t2545;var t2546;if(t1088!==false){return ____25error(k1324,"unexpected EOF while reading string");}
+else{var t2550=new SPOCK.Char("n");var t2549=SPOCK.eqvp(t914,t2550);var t1089=t2549;var t2551;if(t1089!==false){t2551=true;}
+else{t2551=false;}
+var t2548;if(t2551!==false){var t2553=new SPOCK.Char("\n");var t2552=new SPOCK.Pair(t2553,t901);return t900(k1324,t2552);}
+else{var t2557=new SPOCK.Char("t");var t2556=SPOCK.eqvp(t914,t2557);var t1090=t2556;var t2558;if(t1090!==false){t2558=true;}
+else{t2558=false;}
+var t2555;if(t2558!==false){var t2560=new SPOCK.Char("\t");var t2559=new SPOCK.Pair(t2560,t901);return t900(k1324,t2559);}
+else{var t2562=new SPOCK.Pair(t914,t901);return t900(k1324,t2562);}
+t2548=t2555;}
+t2546=t2548;}};return t750(t2544,t758);}
+else{var t2565=new SPOCK.Pair(t902,t901);return t900(k1324,t2565);}
+t2535=t2543;}
+t2529=t2535;}};return t750(t2527,t758);};t900=t2526;var t2568=null;return t900(k1323,t2568);};t766=t2525;var t2570=function(k1328,t931){var r=SPOCK.count(arguments);if(r)return r;var t932=undefined;var t2571=function(k1329,t933){var r=SPOCK.count(arguments);if(r)return r;var t2572=function(t1330){var t934=t1330;var t938=SPOCK.EOF;var t2573=(t934)===(t938);var t935=t2573;var t2574=function(t1331){var t1091=t1331;var t2575;if(t1091!==false){var t2576=function(t1332){return t754(k1329,t1332);};return t751(t2576,t933);}
+else{var t2579=function(t1334){var t945=t1334;var t2580=new SPOCK.Pair(t945,t933);var t1333=t2580;return t932(k1329,t1333);};return t750(t2579,t758);}};var t1335=t2574;var t2583;if(t935!==false){return t1335(t935);}
+else{var t2585=function(t1336){var t939=t1336;var t2586;if(t939!==false){t2586=t939;}
+else{var t2587=(t934).character.match(/^\s$/);var t942=t2587;var t2589=null;var t2588=(t942)===(t2589);var t941=t2588;var t2590;if(t941!==false){t2590=false;}
+else{t2590=true;}
+t2586=t2590;}
+return t1335(t2586);};var t2592=new SPOCK.Pair(new SPOCK.Char("{"),new SPOCK.Pair(new SPOCK.Char("}"),new SPOCK.Pair(new SPOCK.Char("("),new SPOCK.Pair(new SPOCK.Char(")"),new SPOCK.Pair(new SPOCK.Char("["),new SPOCK.Pair(new SPOCK.Char("]"),new SPOCK.Pair(new SPOCK.Char(";"),new SPOCK.Pair(new SPOCK.Char("\""),null))))))));return ___memv(t2585,t934,t2592);}};return t752(t2572,t758);};t932=t2571;return t932(k1328,t931);};t767=t2570;return t761(k1279);};var t1337=t2262;var t2597;if(t1049!==false){return t755(t1337);}
+else{return t1337(t757);}};___read=t2260;var t2600=function(k1338,t947,t948){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t2602=SPOCK.jstring(t947);var t2603=t948===undefined;var t950=t2603;var t2604;if(t950!==false){t2604=false;}
+else{t2604=true;}
+var t1092=t2604;var t2605;if(t1092!==false){var t2606=SPOCK.callback(t948);t2605=t2606;}
+else{t2605=false;}
+var t2601=SPOCK.load(t2602,t2605);return k1338(t2601);}};___load=t2600;var t2608=function(K){SPOCK.count(arguments,'%error');SPOCK.error.apply(SPOCK.global,Array.prototype.slice.call(arguments,1));};____25error=t2608;___error=____25error;var t2609=function(k1339,t952){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){var t2611=t952===undefined;var t1093=t2611;var t2612;if(t1093!==false){t2612=0;}
+else{t2612=t952;}
+var t2610=SPOCK.exit(t2612);return k1339(t2610);}};___exit=t2609;var t2614=function(k1340,t954){var r=SPOCK.count(arguments);if(r)return r;var t2615=(new Date()).getTime();var t955=t2615;var t2616=t954===undefined;var t1094=t2616;var t2617;if(t1094!==false){return k1340(t955);}
+else{var t2619=function(t1341){var t2620=(new Date()).getTime();var t958=t2620;var t2621=(t958)-(t955);return k1340(t2621);};return t954(t2619);}};___milliseconds=t2614;var t2624=function(k1342,t959){var t959=SPOCK.rest(arguments,1);var t2625=function(t1343){return ___newline(k1342);};return ___for_2deach(t2625,___display,t959);};___print=t2624;var t2628=function(k1344,t960){var t960=SPOCK.rest(arguments,1);var t2630=null;var t2629=(t960)===(t2630);var t1095=t2629;var t2631;if(t1095!==false){var t2632=function(k1345,t964){var r=SPOCK.count(arguments);if(r)return r;loop:while(true){return k1345(t964);}};return k1344(t2632);}
+else{var t965=undefined;var t2635=function(k1346,t966){var r=SPOCK.count(arguments);if(r)return r;var t2636=t966.car;var t967=t2636;var t2637=t966.cdr;var t968=t2637;var t2639=null;var t2638=(t968)===(t2639);var t1096=t2638;var t2640;if(t1096!==false){t2640=t967;}
+else{var t2641=function(k1347,t974){var r=SPOCK.count(arguments);if(r)return r;var t2642=function(t1349){var t2643=function(t1348){return t967(k1347,t1348);};return t1349(t2643,t974);};return t965(t2642,t968);};t2640=t2641;}
+return k1346(t2640);};t965=t2635;return t965(k1344,t960);}};___o=t2628;var t2649=function(K){SPOCK.count(arguments,'%');var o={};for(var i=1;i<arguments.length;i+=2){var x=arguments[i];if(typeof x==='string')o[x]=arguments[i+1];else if(x instanceof SPOCK.String)
+o[x.name]=arguments[i+1];else SPOCK.error('(%) object key not a string or symbol',x);}
+return K(o);};____25=t2649;var t2650=function(K){SPOCK.count(arguments,'native');var func=arguments[1];return K(function(k){var args=Array.prototype.splice.call(arguments,1);return k(func.apply(SPOCK.global,args));});};___native=t2650;var t2651=function(K){SPOCK.count(arguments,'native-method');var func=arguments[1];return K(function(k){var args=Array.prototype.splice.call(arguments,2);return k(func.apply(arguments[1],args));});};___native_2dmethod=t2651;var t2652=function(K){SPOCK.count(arguments,'bind-method');var func=arguments[1];var that=arguments[2];return K(function(){return func.apply(that,arguments);});};___bind_2dmethod=t2652;var t2653=function(K){SPOCK.count(arguments,'jstring');var x=arguments[1];if(typeof x==='string')return K(x);else if(x instanceof SPOCK.String)return K(x.normalize());else if(x instanceof SPOCK.Char)return K(x.character);else return K(x);};___jstring=t2653;return k1097(undefined);};SPOCK.run(t1350);SPOCK.flush();
+\ No newline at end of file
diff --git a/spock-runtime.js b/spock-runtime.js
@@ -0,0 +1,4524 @@
+/* config.js - runtime-configuration for SPOCK */
+
+
+var SPOCK = {
+ STACKSIZE: 100,
+ THREADSLICE: 10,
+ TRACELENGTH: 32
+};
+/* runtime.js - SPOCK runtime (javascript part) */
+
+
+SPOCK.modules = {};
+SPOCK.symbolTable = {};
+SPOCK.stack = 0;
+SPOCK.limit = SPOCK.STACKSIZE;
+SPOCK.debug = false;
+SPOCK.running = false;
+SPOCK.runHook = [];
+SPOCK.inBrowser = "document" in this;
+SPOCK.global = this;
+
+SPOCK.Continuation = function(func, args) {
+ this.k_callee = func;
+ this.k_arguments = args;
+};
+
+SPOCK.Result = function(val) {
+ this.value = val;
+};
+
+SPOCK.Symbol = function(name) {
+ this.name = name;
+ this.plist = {};
+};
+
+SPOCK.Pair = function(car, cdr) {
+ this.car = car;
+ this.cdr = cdr;
+};
+
+SPOCK.String = function(chars) {
+ if(typeof chars === "string") {
+ this.parts = [chars];
+ this.length = chars.length;
+ }
+ else if(typeof chars === "number") this.parts = [chars.toString()];
+ else this.parts = chars; // assumes chars is array
+};
+
+SPOCK.Char = function(str) {
+ this.character = str.charAt(0);
+};
+
+SPOCK.Port = function(direction, methods) {
+ var port = this;
+ var read = methods.read || function() {
+ SPOCK.error("reading from non-input port", port);
+ };
+
+ function doread(n) {
+ if(n === 0) return "";
+ else if(this.peeked) {
+ var p = this.peeked;
+ this.peeked = false;
+
+ if(n === 1) return p;
+ else return p + read(n - 1);
+ }
+ else return read(n);
+ }
+
+ this.peeked = false;
+ this.direction = direction;
+ this.read = doread;
+ this.write = methods.write || function() {
+ SPOCK.error("writing to non-output port", port)
+ };
+ this.close = methods.close || function() {};
+ this.flush = methods.flush || function() {};
+ this.ready = methods.ready || function() { return true; };
+ this.closed = false;
+};
+
+SPOCK.Promise = function(thunk) {
+ this.thunk = thunk;
+};
+
+SPOCK.EndOfFile = function() {};
+SPOCK.EOF = new SPOCK.EndOfFile();
+
+SPOCK.check = function(val, type, loc) {
+ if(typeof type === "function" && val instanceof type) return val;
+ if(typeof val === type) return val;
+ else SPOCK.error((loc ? "(" + loc + ") " : "") +
+ "bad argument type" +
+ (typeof type === "string" ? " - expected `" + type + "'" : ""),
+ val);
+};
+
+SPOCK.intern = function(str) {
+ var old = SPOCK.symbolTable[ str ];
+
+ if(old) return old;
+ else return SPOCK.symbolTable[ str ] = new SPOCK.Symbol(str);
+};
+
+SPOCK.stringify = function(x, readable) {
+ if(readable === undefined) readable = true;
+
+ if(typeof x === "function") return "#<procedure>";
+ else if(x === undefined) return "#<undefined>";
+ else if(x === null) return "()";
+ else if(x instanceof SPOCK.Continuation) return "#<continuation>";
+ else if(x instanceof SPOCK.Symbol) return x.name;
+ else if(x instanceof SPOCK.Pair) {
+ var str = "(";
+ var f = false;
+
+ for(var p = x; p !== null && p instanceof SPOCK.Pair; p = p.cdr) {
+ if(f) str += " ";
+
+ str += SPOCK.stringify(p.car, readable);
+ f = true;
+ }
+
+ if(p !== null) str += " . " + SPOCK.stringify(p, readable);
+
+ return str + ")";
+ }
+ else if(x instanceof Array) {
+ var str = "#(";
+ var f = false;
+
+ for(var i in x) {
+ if(f) str += " ";
+
+ str += SPOCK.stringify(x[ i ], readable);
+ f = true;
+ }
+
+ return str + ")";
+ }
+ else if(x instanceof SPOCK.String) {
+ if(readable)
+ return "\"" + x.normalize() + "\""; // XXX does not escape embedded characters
+ else return x.normalize();
+ }
+ else if(x instanceof SPOCK.Char) {
+ if(readable) return x.character;
+
+ switch(x.character) {
+ case "\n": return "#\\newline";
+ case "\t": return "#\\tab";
+ case "\r": return "#\\return";
+ case " ": return "#\\space";
+ default: return "#\\" + x.character;
+ }
+ }
+ else if(x instanceof SPOCK.Port)
+ return "#<" + x.direction + " port" +
+ (x.name ? (" \"" + x.name + "\">") : ">");
+ else if(x instanceof SPOCK.Promise) return "#<promise>";
+ else if(x instanceof SPOCK.EndOfFile) return "#<eof>";
+ else return x.toString();
+};
+
+SPOCK.error = function(msg) {
+ var args = Array.prototype.splice.call(arguments, 1);
+
+ function argstr(x) {
+ return SPOCK.stringify(x, true);
+ }
+
+ if(args.length > 0)
+ msg = msg + ":\n " + SPOCK.map(argstr, args).join("\n ");
+
+ throw new Error(msg);
+};
+
+if(this.quit) SPOCK.exit = quit;
+else SPOCK.exit = function(code) {
+ SPOCK.error("no suitable primitive available for `exit'");
+ };
+
+SPOCK.String.prototype.normalize = function() {
+ if(this.parts.length === 0) return "";
+
+ this.parts = [this.parts.join("")];
+ return this.parts[ 0 ];
+};
+
+SPOCK.jstring = function(x) {
+ if(typeof x === "string") return x;
+ else if(x instanceof SPOCK.String) return x.normalize();
+ else return x;
+};
+
+SPOCK.list = function() {
+ var lst = null;
+ var len = arguments.length;
+
+ for(var i = len - 1; i >= 0; --i)
+ lst = new SPOCK.Pair(arguments[ i ], lst);
+
+ return lst;
+};
+
+SPOCK.length = function(lst) {
+ for(var n = 0; lst instanceof SPOCK.Pair; ++n)
+ lst = lst.cdr;
+
+ return n;
+};
+
+SPOCK.map = function(func, array) {
+ var len = array.length;
+ var a2 = new Array(len);
+
+ for(var i in array)
+ a2[ i ] = func(array[ i ]);
+
+ return a2;
+};
+
+SPOCK.eqvp = function(x, y) {
+ if(x === y) return true;
+ else if(x instanceof SPOCK.Char)
+ return y instanceof SPOCK.Char && x.character === y.character;
+ else return false;
+};
+
+SPOCK.equalp = function(x, y) {
+ if(x === y) return true;
+ else if(x instanceof SPOCK.Pair)
+ return y instanceof SPOCK.Pair &&
+ SPOCK.equalp(x.car, y.car) &&
+ SPOCK.equalp(x.cdr, y.cdr);
+ else if(x instanceof Array) {
+ var len = x.length;
+ if(!(y instanceof Array) || y.length != len) return false;
+ for(var i = 0; i < len; ++i) {
+ if(!SPOCK.equalp(x[ i ], y[ i ])) return false;
+ }
+ return true;
+ }
+ else if(x instanceof SPOCK.Char)
+ return y instanceof SPOCK.Char && x.characters === y.characters;
+ else if(x instanceof SPOCK.String) {
+ var s1 = x.normalize();
+
+ if(y instanceof SPOCK.String) return s1 === y.normalize();
+ else if(typeof y === 'string') return s1 === y;
+ else return false;
+ }
+ else if(typeof x === 'string') {
+ if(y instanceof SPOCK.String) return x === y.normalize();
+ else if(typeof y === 'string') return x === y;
+ else return false;
+ }
+ else return false;
+};
+
+SPOCK.count = function(args, loc) {
+ if(--SPOCK.stack <= 0)
+ return new SPOCK.Continuation(args.callee, Array.prototype.slice.call(args));
+ else return false;
+};
+
+SPOCK.rest = function(args, count, loc) {
+ var rest = null;
+
+ // this will not unwind, but decrease the counter
+ SPOCK.count(args, loc);
+
+ for(var i = args.length - 1; i >= count; --i)
+ rest = new SPOCK.Pair(args[ i ], rest);
+
+ return rest;
+};
+
+SPOCK.statistics = function() {};
+
+SPOCK.run = function(func) { // optional arguments
+ function terminate(result) {
+ return new SPOCK.Result(result);
+ }
+
+ var k = terminate;
+ var args = [k].concat(Array.prototype.slice.call(arguments, 1));
+ var oldstack = SPOCK.stack;
+ var oldlimit = SPOCK.limit;
+ var oldrunning = SPOCK.running;
+ SPOCK.limit = Math.max(10, oldlimit - oldstack);
+ SPOCK.stack = SPOCK.limit;
+ SPOCK.running = true;
+
+ function restore() {
+ SPOCK.stack = oldstack;
+ SPOCK.limit = oldlimit;
+ SPOCK.running = oldrunning;
+
+ if(!oldrunning) {
+ for(var i in SPOCK.runHook)
+ (SPOCK.runHook[ i ])(false);
+ }
+ }
+
+ var result;
+
+ if(!oldrunning) {
+ for(var i in SPOCK.runHook)
+ (SPOCK.runHook[ i ])(true);
+ }
+
+ while(true) {
+ result = func.apply(SPOCK.global, args);
+
+ if(result instanceof SPOCK.Continuation) {
+ SPOCK.stack = SPOCK.STACKSIZE;
+ func = result.k_callee;
+ args = result.k_arguments;
+ }
+ else if(result instanceof SPOCK.Result) {
+ restore();
+ return result.value;
+ }
+ else {
+ restore();
+ SPOCK.error("unexpected return of non-continuation", result);
+ }
+ }
+
+ return result;
+};
+
+SPOCK.callback = function(proc) {
+ return function() {
+ var args = Array.prototype.slice.call(arguments);
+ args.unshift(proc);
+ return SPOCK.run.apply(this, args);
+ };
+};
+
+SPOCK.callbackMethod = function(proc) {
+ var g = this;
+ return function() {
+ var args = Array.prototype.slice.call(arguments);
+ args.unshift(this);
+ args.unshift(proc);
+ return SPOCK.run.apply(g, args);
+ };
+};
+
+SPOCK.go = function(proc) {
+ (SPOCK.callback(proc))();
+};
+
+if("java" in this) { // rhino
+ SPOCK.makeJavaInputPort = function(jp) {
+ return new SPOCK.Port("input", {
+ read: function(n) {
+ var buffer = "";
+
+ while(n--) {
+ var b = jp.read();
+
+ if(b === -1) break;
+ else buffer += String.fromCharCode(b);
+ }
+
+ return buffer === "" ? SPOCK.EOF : buffer;
+ },
+
+ close: function() { jp.close(); }
+ });
+ };
+
+ SPOCK.makeJavaOutputPort = function(jp) {
+ return new SPOCK.Port("output", {
+ write: function(s) {
+ var len = s.length;
+
+ for(var i = 0; i < len; ++i)
+ jp.write(s.charCodeAt(i));
+ },
+
+ flush: function() { jp.flush(); },
+ close: function() { jp.close(); }
+ });
+ };
+
+ SPOCK.log = function() {
+ java.lang.System.err.println(Array.prototype.slice.call(arguments).join(""));
+ };
+
+ SPOCK.stdin = SPOCK.makeJavaInputPort(java.lang.System[ "in" ]);
+ SPOCK.stdout = SPOCK.makeJavaOutputPort(java.lang.System.out);
+ SPOCK.stderr = SPOCK.makeJavaOutputPort(java.lang.System.err);
+ SPOCK.stderr.name = "[stderr]";
+}
+else {
+ if("console" in this) SPOCK.log = console.log; // firebug
+ else if(SPOCK.inBrowser) // inside browser
+ SPOCK.log = function() {
+ var msg = arguments.join(" ");
+
+ if(msg.charAt(msg.length - 1) == "\n")
+ msg = msg.substring(0, msg.length - 1);
+
+ this.defaultStatus = msg;
+ };
+ else if("print" in this) SPOCK.log = print; // spidermonkey/v8
+ else if(typeof process !== undefined) SPOCK.log = console.log; // Node.JS
+ else SPOCK.error("no suitable output primitive available");
+
+ (function() {
+ var buffer = [];
+
+ function flush() {
+ if(buffer.length > 0) {
+ SPOCK.log(buffer.join(""));
+ buffer = [];
+ }
+ }
+
+ function write(s) {
+ var parts = SPOCK.stringify(s, false).split("\n");
+ var len = parts.length - 1;
+
+ if(len > 0) { // contains newline?
+ buffer.push(parts[ 0 ]);
+ flush();
+
+ if(len > 1) {
+ for(var i = 1; i < len; ++i)
+ SPOCK.log(parts[ i ]);
+ }
+
+ buffer.push(parts[ len ]);
+ }
+ else buffer.push(parts[ 0 ]);
+ }
+
+ SPOCK.stdout = new SPOCK.Port("output", { write: write, flush: flush });
+ var inp;
+ var ibuffer = "";
+
+ if(this.prompt) {
+ inp = function(n) {
+ while(true) {
+ if(ibuffer.length <= n) {
+ var part = ibuffer.slice(0, n);
+ ibuffer = ibuffer.slice(n);
+ return part;
+ }
+
+ var input = prompt("Expecting input for " + this.toString());
+
+ if(input === null) return SPOCK.EOF;
+ else ibuffer += input;
+ }
+ };
+ }
+ else {
+ inp = function(n) {
+ SPOCK.error("no input possible for standard input port");
+ };
+ }
+
+ SPOCK.stdin = new SPOCK.Port("input", { read: inp });
+ SPOCK.stderr = SPOCK.stdout;
+ })();
+}
+
+SPOCK.stdin.name = "[stdin]";
+SPOCK.stdout.name = "[stdout]";
+
+SPOCK.flush = function() {
+ // note that this always prints a newline when console.log or print is used
+ SPOCK.stdout.flush();
+
+ if(SPOCK.stderr !== SPOCK.stdout)
+ SPOCK.stderr.flush();
+
+ SPOCK.statistics();
+};
+
+if(this.gc) SPOCK.gc = gc;
+else SPOCK.gc = function() {};
+
+SPOCK.openInputUrlHook = function(url) {
+ SPOCK.error("can not open", url);
+};
+
+SPOCK.openOutputUrlHook = function(url) {
+ SPOCK.error("can not open", url);
+};
+
+if("java" in this) {
+ SPOCK.openInputFile = function(filename) {
+ var stream;
+
+ try {
+ stream = new java.io.FileInputStream(filename);
+ }
+ catch(e) {
+ SPOCK.error(e.message);
+ }
+
+ var port = SPOCK.makeJavaInputPort(stream);
+ port.name = filename;
+ return port;
+ };
+
+ SPOCK.openOutputFile = function(filename) {
+ var stream;
+
+ try {
+ stream = new java.io.FileOutputStream(filename);
+ }
+ catch(e) {
+ SPOCK.error(e.message);
+ }
+
+ var port = SPOCK.makeJavaOutputPort(stream);
+ port.name = filename;
+ return port;
+ };
+
+ SPOCK.fileExists = function(filename) {
+ return (new java.io.File(filename)).exists();
+ };
+}
+else {
+ if(SPOCK.inBrowser) {
+ SPOCK.openInputFile = function(filename) {
+ if(filename.match(/^[a-z0-9]+:/))
+ return SPOCK.openInputUrlHook(filename);
+
+ var cookies = document.cookie.split("; ");
+ var buffer = null;
+
+ for(var i = 0; i < cookies.length; ++i) {
+ var c = cookies[ i ];
+ var p = c.indexOf("=");
+
+ if(filename === c.substring(0, p)) {
+ buffer = c.substring(p + 1);
+ break;
+ }
+ }
+
+ if(!buffer) SPOCK.error("can not open file", filename);
+
+ var pos = 0;
+
+ return new SPOCK.Port("input", {
+ read: function(n) {
+ if(pos >= buffer.length) return SPOCK.EOF;
+ else if(pos + len >= buffer.length)
+ return buffer.substring(pos);
+
+ var p1 = pos;
+ pos += n;
+ return buffer.substring(p1, p1 + n);
+ },
+
+ ready: function() { return pos < buffer.length; }
+ });
+ };
+
+ SPOCK.openOutputFile = function(filename, expiry) {
+ if(filename.match(/^[a-z0-9]+:/))
+ return SPOCK.openOutputUrlHook(filename);
+
+ return new SPOCK.Port("output", {
+ write: function(s) { buffer += s; },
+ close: function() {
+ var now = (new Date()).getTime();
+ var exp = now + (expiry || (1000 * 60 * 60 * 24 * 365));
+ document.cookie = filename + "=" + encodeURIComponent(buffer) +
+ "; expires=" + (new Date(exp)).toGMTString();
+ }
+ });
+ };
+ }
+ else {
+ SPOCK.openInputFile = function(filename) {
+ SPOCK.error("file-I/O not available");
+ }
+
+ SPOCK.openOutputFile = function(filename) {
+ SPOCK.error("file-I/O not available");
+ }
+ }
+
+ SPOCK.fileExists = function(filename) {
+ SPOCK.error("`file-exists?' not available");
+ };
+}
+
+if("document" in this) { // browser?
+ SPOCK.load = function(url, k) {
+ // http://www.nczonline.net/blog/2009/07/28/the-best-way-to-load-external-javascript/
+ var script = document.createElement("script")
+
+ script.type = "text/javascript";
+ k = k || function() {};
+
+ if (script.readyState){ //IE
+ script.onreadystatechange = function(){
+ if (script.readyState == "loaded" || script.readyState == "complete"){
+ script.onreadystatechange = null;
+ k(url);
+ }
+ };
+ }
+ else { //Others
+ script.onload = function(){
+ k(url);
+ };
+ }
+
+ script.src = url;
+ document.getElementsByTagName("head")[0].appendChild(script);
+ };
+}
+else if("load" in this) { // rhino/SM
+ SPOCK.load = function(filename, k) {
+ load(filename);
+
+ if(k) k(filename);
+ };
+}
+/* CODE GENERATED BY SPOCK 0 */
+var t1350 = function (k1097) {
+ var t1351 = function (k1098, t1) { // %list
+ var t1 = SPOCK.rest(arguments, 1);
+ loop: while(true) {
+ return k1098(t1);
+ }
+ };
+ ____25list = t1351; // set! %list
+ var t1353 = function(K) {
+ SPOCK.count(arguments, 'values');
+ return K.apply(SPOCK.global, Array.prototype.slice.call(arguments, 1));
+ };
+ ___values = t1353; // set! values
+ var t1354 = function(K) {
+ SPOCK.count(arguments, 'call-with-values');
+ var thunk = arguments[ 1 ];
+ var proc = arguments[ 2 ];
+ function k2() {
+ var args = Array.prototype.slice.call(arguments);
+ args.unshift(K);
+ return proc.apply(SPOCK.global, args);}
+ return thunk(k2);
+ };
+ ___call_2dwith_2dvalues = t1354; // set! call-with-values
+ var t1355 = function(K) {
+ SPOCK.count(arguments, '%call-with-saved-values');
+ var t1 = arguments[ 1 ];
+ var t2 = arguments[ 2 ];
+ var args;
+ function k2() { return K.apply(SPOCK.global, args); }
+ function k1() {
+ args = Array.prototype.slice.call(arguments);
+ return t2(k2);}
+ return t1(k1);
+ };
+ ____25call_2dwith_2dsaved_2dvalues = t1355; // set! %call-with-saved-values
+ var t1356 = function (k1099, t2) { // list?
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t3 = undefined;
+ var t1357 = function (k1100, t4, t5) { // t3
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1359 = null;
+ var t1358 = (t4) === (t1359);
+ var t6 = t1358;
+ var t1360;
+ if(t6 !== false) {
+ return k1100(t6);
+ }
+ else {
+ var t1362 = (t4) instanceof SPOCK.Pair ;
+ var t975 = t1362;
+ var t1363;
+ if(t975 !== false) {
+ var t1364 = t4.cdr;
+ var t11 = t1364;
+ var t1366 = null;
+ var t1365 = (t11) === (t1366);
+ var t13 = t1365;
+ var t1367;
+ if(t13 !== false) {
+ return k1100(t13);
+ }
+ else {
+ var t1369 = (t11) instanceof SPOCK.Pair ;
+ var t976 = t1369;
+ var t1370;
+ if(t976 !== false) {
+ var t1371 = t11.cdr;
+ var t18 = t1371;
+ var t1372 = t5.cdr;
+ var t19 = t1372;
+ var t1373 = (t18) === (t19);
+ var t22 = t1373;
+ var t1374;
+ if(t22 !== false) {
+ t1374 = false;
+ }
+ else {
+ t1374 = true;
+ }
+ var t977 = t1374;
+ var t1375;
+ if(t977 !== false) {
+ var t1376 = t18;
+ var t1377 = t19;
+ t4 = t1376;
+ t5 = t1377;
+ continue loop;
+ }
+ else {
+ return k1100(false);
+ }
+ t1370 = t1375;
+ }
+ else {
+ return k1100(false);
+ }
+ t1367 = t1370;
+ }
+ t1363 = t1367;
+ }
+ else {
+ return k1100(false);
+ }
+ t1360 = t1363;
+ }
+ }
+ };
+ t3 = t1357; // set! t3
+ return t3(k1099, t2, t2);
+ };
+ ___list_3f = t1356; // set! list?
+ var t1382 = function (k1101, t25) { // caaar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1383 = t25.car;
+ var t27 = t1383;
+ var t1384 = t27.car;
+ var t26 = t1384;
+ var t1385 = t26.car;
+ return k1101(t1385);
+ }
+ };
+ ___caaar = t1382; // set! caaar
+ var t1387 = function (k1102, t32) { // caadr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1388 = t32.cdr;
+ var t34 = t1388;
+ var t1389 = t34.car;
+ var t33 = t1389;
+ var t1390 = t33.car;
+ return k1102(t1390);
+ }
+ };
+ ___caadr = t1387; // set! caadr
+ var t1392 = function (k1103, t39) { // cadar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1393 = t39.car;
+ var t41 = t1393;
+ var t1394 = t41.cdr;
+ var t40 = t1394;
+ var t1395 = t40.car;
+ return k1103(t1395);
+ }
+ };
+ ___cadar = t1392; // set! cadar
+ var t1397 = function (k1104, t46) { // caddr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1398 = t46.cdr;
+ var t48 = t1398;
+ var t1399 = t48.cdr;
+ var t47 = t1399;
+ var t1400 = t47.car;
+ return k1104(t1400);
+ }
+ };
+ ___caddr = t1397; // set! caddr
+ var t1402 = function (k1105, t53) { // cdaar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1403 = t53.car;
+ var t55 = t1403;
+ var t1404 = t55.car;
+ var t54 = t1404;
+ var t1405 = t54.cdr;
+ return k1105(t1405);
+ }
+ };
+ ___cdaar = t1402; // set! cdaar
+ var t1407 = function (k1106, t60) { // cdadr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1408 = t60.cdr;
+ var t62 = t1408;
+ var t1409 = t62.car;
+ var t61 = t1409;
+ var t1410 = t61.cdr;
+ return k1106(t1410);
+ }
+ };
+ ___cdadr = t1407; // set! cdadr
+ var t1412 = function (k1107, t67) { // cddar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1413 = t67.car;
+ var t69 = t1413;
+ var t1414 = t69.cdr;
+ var t68 = t1414;
+ var t1415 = t68.cdr;
+ return k1107(t1415);
+ }
+ };
+ ___cddar = t1412; // set! cddar
+ var t1417 = function (k1108, t74) { // cdddr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1418 = t74.cdr;
+ var t76 = t1418;
+ var t1419 = t76.cdr;
+ var t75 = t1419;
+ var t1420 = t75.cdr;
+ return k1108(t1420);
+ }
+ };
+ ___cdddr = t1417; // set! cdddr
+ var t1422 = function (k1109, t81) { // caaaar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1423 = t81.car;
+ var t84 = t1423;
+ var t1424 = t84.car;
+ var t83 = t1424;
+ var t1425 = t83.car;
+ var t82 = t1425;
+ var t1426 = t82.car;
+ return k1109(t1426);
+ }
+ };
+ ___caaaar = t1422; // set! caaaar
+ var t1428 = function (k1110, t90) { // caaadr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1429 = t90.cdr;
+ var t93 = t1429;
+ var t1430 = t93.car;
+ var t92 = t1430;
+ var t1431 = t92.car;
+ var t91 = t1431;
+ var t1432 = t91.car;
+ return k1110(t1432);
+ }
+ };
+ ___caaadr = t1428; // set! caaadr
+ var t1434 = function (k1111, t99) { // caadar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1435 = t99.car;
+ var t102 = t1435;
+ var t1436 = t102.cdr;
+ var t101 = t1436;
+ var t1437 = t101.car;
+ var t100 = t1437;
+ var t1438 = t100.car;
+ return k1111(t1438);
+ }
+ };
+ ___caadar = t1434; // set! caadar
+ var t1440 = function (k1112, t108) { // caaddr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1441 = t108.cdr;
+ var t111 = t1441;
+ var t1442 = t111.cdr;
+ var t110 = t1442;
+ var t1443 = t110.car;
+ var t109 = t1443;
+ var t1444 = t109.car;
+ return k1112(t1444);
+ }
+ };
+ ___caaddr = t1440; // set! caaddr
+ var t1446 = function (k1113, t117) { // cadaar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1447 = t117.car;
+ var t120 = t1447;
+ var t1448 = t120.car;
+ var t119 = t1448;
+ var t1449 = t119.cdr;
+ var t118 = t1449;
+ var t1450 = t118.car;
+ return k1113(t1450);
+ }
+ };
+ ___cadaar = t1446; // set! cadaar
+ var t1452 = function (k1114, t126) { // cadadr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1453 = t126.cdr;
+ var t129 = t1453;
+ var t1454 = t129.car;
+ var t128 = t1454;
+ var t1455 = t128.cdr;
+ var t127 = t1455;
+ var t1456 = t127.car;
+ return k1114(t1456);
+ }
+ };
+ ___cadadr = t1452; // set! cadadr
+ var t1458 = function (k1115, t135) { // caddar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1459 = t135.car;
+ var t138 = t1459;
+ var t1460 = t138.cdr;
+ var t137 = t1460;
+ var t1461 = t137.cdr;
+ var t136 = t1461;
+ var t1462 = t136.car;
+ return k1115(t1462);
+ }
+ };
+ ___caddar = t1458; // set! caddar
+ var t1464 = function (k1116, t144) { // cadddr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1465 = t144.cdr;
+ var t147 = t1465;
+ var t1466 = t147.cdr;
+ var t146 = t1466;
+ var t1467 = t146.cdr;
+ var t145 = t1467;
+ var t1468 = t145.car;
+ return k1116(t1468);
+ }
+ };
+ ___cadddr = t1464; // set! cadddr
+ var t1470 = function (k1117, t153) { // cdaaar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1471 = t153.car;
+ var t156 = t1471;
+ var t1472 = t156.car;
+ var t155 = t1472;
+ var t1473 = t155.car;
+ var t154 = t1473;
+ var t1474 = t154.cdr;
+ return k1117(t1474);
+ }
+ };
+ ___cdaaar = t1470; // set! cdaaar
+ var t1476 = function (k1118, t162) { // cdaadr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1477 = t162.cdr;
+ var t165 = t1477;
+ var t1478 = t165.car;
+ var t164 = t1478;
+ var t1479 = t164.car;
+ var t163 = t1479;
+ var t1480 = t163.cdr;
+ return k1118(t1480);
+ }
+ };
+ ___cdaadr = t1476; // set! cdaadr
+ var t1482 = function (k1119, t171) { // cdadar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1483 = t171.car;
+ var t174 = t1483;
+ var t1484 = t174.cdr;
+ var t173 = t1484;
+ var t1485 = t173.car;
+ var t172 = t1485;
+ var t1486 = t172.cdr;
+ return k1119(t1486);
+ }
+ };
+ ___cdadar = t1482; // set! cdadar
+ var t1488 = function (k1120, t180) { // cdaddr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1489 = t180.cdr;
+ var t183 = t1489;
+ var t1490 = t183.cdr;
+ var t182 = t1490;
+ var t1491 = t182.car;
+ var t181 = t1491;
+ var t1492 = t181.cdr;
+ return k1120(t1492);
+ }
+ };
+ ___cdaddr = t1488; // set! cdaddr
+ var t1494 = function (k1121, t189) { // cddaar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1495 = t189.car;
+ var t192 = t1495;
+ var t1496 = t192.car;
+ var t191 = t1496;
+ var t1497 = t191.cdr;
+ var t190 = t1497;
+ var t1498 = t190.cdr;
+ return k1121(t1498);
+ }
+ };
+ ___cddaar = t1494; // set! cddaar
+ var t1500 = function (k1122, t198) { // cddadr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1501 = t198.cdr;
+ var t201 = t1501;
+ var t1502 = t201.car;
+ var t200 = t1502;
+ var t1503 = t200.cdr;
+ var t199 = t1503;
+ var t1504 = t199.cdr;
+ return k1122(t1504);
+ }
+ };
+ ___cddadr = t1500; // set! cddadr
+ var t1506 = function (k1123, t207) { // cdddar
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1507 = t207.car;
+ var t210 = t1507;
+ var t1508 = t210.cdr;
+ var t209 = t1508;
+ var t1509 = t209.cdr;
+ var t208 = t1509;
+ var t1510 = t208.cdr;
+ return k1123(t1510);
+ }
+ };
+ ___cdddar = t1506; // set! cdddar
+ var t1512 = function (k1124, t216) { // cddddr
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1513 = t216.cdr;
+ var t219 = t1513;
+ var t1514 = t219.cdr;
+ var t218 = t1514;
+ var t1515 = t218.cdr;
+ var t217 = t1515;
+ var t1516 = t217.cdr;
+ return k1124(t1516);
+ }
+ };
+ ___cddddr = t1512; // set! cddddr
+ var t1518 = function (k1125, t225) { // append
+ var t225 = SPOCK.rest(arguments, 1);
+ var t1520 = null;
+ var t1519 = (t225) === (t1520);
+ var t978 = t1519;
+ var t1521;
+ if(t978 !== false) {
+ var t1522 = null;
+ return k1125(t1522);
+ }
+ else {
+ var t229 = undefined;
+ var t1524 = function (k1126, t230) { // t229
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1525 = t230.cdr;
+ var t231 = t1525;
+ var t1527 = null;
+ var t1526 = (t231) === (t1527);
+ var t979 = t1526;
+ var t1528;
+ if(t979 !== false) {
+ var t1529 = t230.car;
+ return k1126(t1529);
+ }
+ else {
+ var t236 = undefined;
+ var t1531 = function (k1127, t237) { // t236
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1532 = (t237) instanceof SPOCK.Pair ;
+ var t980 = t1532;
+ var t1533;
+ if(t980 !== false) {
+ var t1534 = t237.car;
+ var t239 = t1534;
+ var t1535 = function (t1128) {
+ var t240 = t1128;
+ var t1536 = new SPOCK.Pair(t239, t240);
+ return k1127(t1536);
+ };
+ var t1538 = t237.cdr;
+ return t236(t1535, t1538);
+ }
+ else {
+ var t243 = t230;
+ var t1540 = t243.cdr;
+ return t229(k1127, t1540);
+ }
+ };
+ t236 = t1531; // set! t236
+ var t1542 = t230.car;
+ return t236(k1126, t1542);
+ }
+ };
+ t229 = t1524; // set! t229
+ return t229(k1125, t225);
+ }
+ };
+ ___append = t1518; // set! append
+ var t1545 = function (k1129, t245) { // reverse
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t246 = undefined;
+ var t1546 = function (k1130, t247, t248) { // t246
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1547 = (t247) instanceof SPOCK.Pair ;
+ var t981 = t1547;
+ var t1548;
+ if(t981 !== false) {
+ var t1551 = t247.cdr;
+ var t1549 = t1551;
+ var t1552 = t247.car;
+ var t251 = t1552;
+ var t1553 = new SPOCK.Pair(t251, t248);
+ var t1550 = t1553;
+ t247 = t1549;
+ t248 = t1550;
+ continue loop;
+ }
+ else {
+ return k1130(t248);
+ }
+ }
+ };
+ t246 = t1546; // set! t246
+ var t1555 = null;
+ return t246(k1129, t245, t1555);
+ };
+ ___reverse = t1545; // set! reverse
+ var t1557 = function (k1131, t254, t255) { // list-tail
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t256 = undefined;
+ var t1558 = function (k1132, t257, t258) { // t256
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1560 = (t257) <= 0 ;
+ var t1559;
+ if(t1560 !== false) {
+ return k1132(t258);
+ }
+ else {
+ var t1564 = (t257) - 1 ;
+ var t1562 = t1564;
+ var t1565 = t258.cdr;
+ var t1563 = t1565;
+ t257 = t1562;
+ t258 = t1563;
+ continue loop;
+ }
+ }
+ };
+ t256 = t1558; // set! t256
+ return t256(k1131, t255, t254);
+ };
+ ___list_2dtail = t1557; // set! list-tail
+ var t260 = ___list_2dtail;
+ var t1567 = function (k1133, t261, t262) { // t260
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1568 = function (t1134) {
+ var t263 = t1134;
+ var t1569 = t263.car;
+ return k1133(t1569);
+ };
+ return t260(t1568, t261, t262);
+ };
+ ___list_2dref = t1567; // set! list-ref
+ var t1572 = function(K) {
+ SPOCK.count(arguments, 'memq');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ if(n.car === x) return K(n);
+ }
+ return K(false);
+ };
+ ___memq = t1572; // set! memq
+ var t1573 = function(K) {
+ SPOCK.count(arguments, 'memv');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ if(SPOCK.eqvp(n.car, x)) return K(n);
+ }
+ return K(false);
+ };
+ ___memv = t1573; // set! memv
+ var t1574 = function(K) {
+ SPOCK.count(arguments, 'member');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ if(SPOCK.equalp(n.car, x)) return K(n);
+ }
+ return K(false);
+ };
+ ___member = t1574; // set! member
+ var t1575 = function(K) {
+ SPOCK.count(arguments, 'assq');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ var p = n.car;
+ if(p instanceof SPOCK.Pair && p.car === x) return K(p);
+ }
+ return K(false);
+ };
+ ___assq = t1575; // set! assq
+ var t1576 = function(K) {
+ SPOCK.count(arguments, 'assv');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ var p = n.car;
+ if(p instanceof SPOCK.Pair && SPOCK.eqvp(p.car, x)) return K(p);
+ }
+ return K(false);
+ };
+ ___assv = t1576; // set! assv
+ var t1577 = function(K) {
+ SPOCK.count(arguments, 'assoc');
+ var x = arguments[ 1 ];
+ for(var n = arguments[ 2 ]; n instanceof SPOCK.Pair; n = n.cdr) {
+ var p = n.car;
+ if(p instanceof SPOCK.Pair && SPOCK.equalp(p.car, x)) return K(p);
+ }
+ return K(false);
+ };
+ ___assoc = t1577; // set! assoc
+ var t1578 = function(K) {
+ SPOCK.count(arguments, '%+');
+ var len = arguments.length;
+ switch(len) {
+ case 1: return K(0);
+ case 2: return K(arguments[ 1 ]);
+ default:
+ var p = arguments[ 1 ];
+ for(var i = 2; i < len; ++i) {
+ p += arguments[ i ];
+ }
+ return K(p);}
+ };
+ ____25_2b = t1578; // set! %+
+ var t1579 = function(K) {
+ SPOCK.count(arguments, '%-');
+ var len = arguments.length;
+ switch(len) {
+ case 2: return K(-arguments[ 1 ]);
+ default:
+ var p = arguments[ 1 ];
+ for(var i = 2; i < len; ++i) {
+ p -= arguments[ i ];
+ }
+ return K(p);}
+ };
+ ____25_2d = t1579; // set! %-
+ var t1580 = function(K) {
+ SPOCK.count(arguments, '%*');
+ var len = arguments.length;
+ switch(len) {
+ case 1: return K(1);
+ case 2: return K(arguments[ 1 ]);
+ default:
+ var p = arguments[ 1 ];
+ for(var i = 2; i < len; ++i) {
+ p *= arguments[ i ];
+ }
+ return K(p);}
+ };
+ ____25_2a = t1580; // set! %*
+ var t1581 = function(K) {
+ SPOCK.count(arguments, '%/');
+ var len = arguments.length;
+ switch(len) {
+ case 2: return K(1/arguments[ 1 ]);
+ default:
+ var p = arguments[ 1 ];
+ for(var i = 2; i < len; ++i) {
+ p /= arguments[ i ];
+ }
+ return K(p);}
+ };
+ ____25_2f = t1581; // set! %/
+ var t1582 = function(K) {
+ SPOCK.count(arguments, '%=');
+ var argc = arguments.length;
+ var last = SPOCK.check(arguments[ 1 ], 'number', '=');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', '=');
+ if(last !== x) return K(false);
+ else last = x;}
+ return K(true);
+ };
+ ____25_3d = t1582; // set! %=
+ var t1583 = function(K) {
+ SPOCK.count(arguments, '%>');
+ var argc = arguments.length;
+ var last = SPOCK.check(arguments[ 1 ], 'number', '>');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', '>');
+ if(last <= x) return K(false);
+ else last = x;}
+ return K(true);
+ };
+ ____25_3e = t1583; // set! %>
+ var t1584 = function(K) {
+ SPOCK.count(arguments, '%<');
+ var argc = arguments.length;
+ var last = SPOCK.check(arguments[ 1 ], 'number', '<');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', '<');
+ if(last >= x) return K(false);
+ else last = x;}
+ return K(true);
+ };
+ ____25_3c = t1584; // set! %<
+ var t1585 = function(K) {
+ SPOCK.count(arguments, '%>=');
+ var argc = arguments.length;
+ var last = SPOCK.check(arguments[ 1 ], 'number', '>=');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', '>=');
+ if(last < x) return K(false);
+ else last = x;}
+ return K(true);
+ };
+ ____25_3e_3d = t1585; // set! %>=
+ var t1586 = function(K) {
+ SPOCK.count(arguments, '%<=');
+ var argc = arguments.length;
+ var last = SPOCK.check(arguments[ 1 ], 'number', '<=');
+ for(var i = 2; i < argc; ++i) {
+ var x = SPOCK.check(arguments[ i ], 'number', '<=');
+ if(last > x) return K(false);
+ else last = x;}
+ return K(true);
+ };
+ ____25_3c_3d = t1586; // set! %<=
+ var t1587 = function(K) {
+ SPOCK.count(arguments, '%max');
+ return K(Math.max.apply(SPOCK.global, arguments));
+ };
+ ____25max = t1587; // set! %max
+ var t1588 = function(K) {
+ SPOCK.count(arguments, '%max');
+ return K(Math.min.apply(SPOCK.global, arguments));
+ };
+ ____25max = t1588; // set! %max
+ var t1589 = function (k1135, t264, t265) { // modulo
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1590 = (t264) / (t265);
+ var t275 = t1590;
+ var t1592 = (t275) < 0 ;
+ var t1591;
+ if(t1592 !== false) {
+ var t1593 = Math.ceil(t275);
+ t1591 = t1593;
+ }
+ else {
+ var t1594 = Math.floor(t275);
+ t1591 = t1594;
+ }
+ var t271 = t1591;
+ var t1595 = (t271) * (t265);
+ var t270 = t1595;
+ var t1596 = (t264) - (t270);
+ var t266 = t1596;
+ var t1597 = (t265) < (0);
+ var t982 = t1597;
+ var t1598;
+ if(t982 !== false) {
+ var t1599 = (t266) <= (0);
+ var t983 = t1599;
+ var t1600;
+ if(t983 !== false) {
+ t1600 = t266;
+ }
+ else {
+ var t1601 = (t266) + (t265);
+ t1600 = t1601;
+ }
+ t1598 = t1600;
+ }
+ else {
+ var t1602 = (t266) >= (0);
+ var t984 = t1602;
+ var t1603;
+ if(t984 !== false) {
+ t1603 = t266;
+ }
+ else {
+ var t1604 = (t266) + (t265);
+ t1603 = t1604;
+ }
+ t1598 = t1603;
+ }
+ return k1135(t1598);
+ }
+ };
+ ___modulo = t1589; // set! modulo
+ var t1606 = function (k1136, t289, t290) { // t288
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1607 = (t289) / (t290);
+ var t297 = t1607;
+ var t1609 = (t297) < 0 ;
+ var t1608;
+ if(t1609 !== false) {
+ var t1610 = Math.ceil(t297);
+ t1608 = t1610;
+ }
+ else {
+ var t1611 = Math.floor(t297);
+ t1608 = t1611;
+ }
+ var t293 = t1608;
+ var t1612 = (t293) * (t290);
+ var t292 = t1612;
+ var t1613 = (t289) - (t292);
+ return k1136(t1613);
+ }
+ };
+ var t288 = t1606;
+ var t1615 = function (k1137, t300, t301) { // t288
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t302 = undefined;
+ var t1616 = function (k1138, t303, t304) { // t302
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1617 = (0) === (t304);
+ var t985 = t1617;
+ var t1618;
+ if(t985 !== false) {
+ var t1619 = Math.abs(t303);
+ return k1138(t1619);
+ }
+ else {
+ var t1621 = function (t1139) {
+ return t302(k1138, t304, t1139);
+ };
+ return t288(t1621, t303, t304);
+ }
+ };
+ t302 = t1616; // set! t302
+ return t302(k1137, t300, t301);
+ };
+ ____25gcd = t1615; // set! %gcd
+ var t1625 = function (k1140, t309) { // gcd
+ var t309 = SPOCK.rest(arguments, 1);
+ var t1627 = null;
+ var t1626 = (t309) === (t1627);
+ var t986 = t1626;
+ var t1628;
+ if(t986 !== false) {
+ return k1140(0);
+ }
+ else {
+ var t313 = undefined;
+ var t1630 = function (k1141, t314, t315) { // t313
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1631 = t314.car;
+ var t316 = t1631;
+ var t1632 = t314.cdr;
+ var t317 = t1632;
+ var t1634 = null;
+ var t1633 = (t317) === (t1634);
+ var t987 = t1633;
+ var t1635;
+ if(t987 !== false) {
+ var t1636 = Math.abs(t316);
+ return k1141(t1636);
+ }
+ else {
+ var t1638 = t317.car;
+ var t324 = t1638;
+ var t1639 = function (t1143) {
+ var t326 = t1143;
+ var t1640 = t317.cdr;
+ var t327 = t1640;
+ var t1641 = new SPOCK.Pair(t326, t327);
+ var t1142 = t1641;
+ return t313(k1141, t1142, false);
+ };
+ return ____25gcd(t1639, t316, t324);
+ }
+ };
+ t313 = t1630; // set! t313
+ return t313(k1140, t309, true);
+ }
+ };
+ ___gcd = t1625; // set! gcd
+ var t1645 = function (k1144, t329, t330) { // %lcm
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1646 = (t329) * (t330);
+ var t331 = t1646;
+ var t1647 = function (t1145) {
+ var t332 = t1145;
+ var t1648 = (t331) / (t332);
+ var t335 = t1648;
+ var t1650 = (t335) < 0 ;
+ var t1649;
+ if(t1650 !== false) {
+ var t1651 = Math.ceil(t335);
+ t1649 = t1651;
+ }
+ else {
+ var t1652 = Math.floor(t335);
+ t1649 = t1652;
+ }
+ return k1144(t1649);
+ };
+ return ____25gcd(t1647, t329, t330);
+ };
+ ____25lcm = t1645; // set! %lcm
+ var t1655 = function (k1146, t338) { // lcm
+ var t338 = SPOCK.rest(arguments, 1);
+ var t1657 = null;
+ var t1656 = (t338) === (t1657);
+ var t988 = t1656;
+ var t1658;
+ if(t988 !== false) {
+ return k1146(1);
+ }
+ else {
+ var t342 = undefined;
+ var t1660 = function (k1147, t343, t344) { // t342
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1661 = t343.car;
+ var t345 = t1661;
+ var t1662 = t343.cdr;
+ var t346 = t1662;
+ var t1664 = null;
+ var t1663 = (t346) === (t1664);
+ var t989 = t1663;
+ var t1665;
+ if(t989 !== false) {
+ var t1666 = Math.abs(t345);
+ return k1147(t1666);
+ }
+ else {
+ var t1668 = t346.car;
+ var t353 = t1668;
+ var t1669 = function (t1149) {
+ var t355 = t1149;
+ var t1670 = t346.cdr;
+ var t356 = t1670;
+ var t1671 = new SPOCK.Pair(t355, t356);
+ var t1148 = t1671;
+ return t342(k1147, t1148, false);
+ };
+ return ____25lcm(t1669, t345, t353);
+ }
+ };
+ t342 = t1660; // set! t342
+ return t342(k1146, t338, true);
+ }
+ };
+ ___lcm = t1655; // set! lcm
+ var t1675 = function(K) {
+ SPOCK.count(arguments, 'string->symbol');
+ var str = SPOCK.jstring(arguments[ 1 ]);
+ return K(SPOCK.intern(str));
+ };
+ ___string_2d_3esymbol = t1675; // set! string->symbol
+ var t1676 = function (k1150, t358, t359) { // get
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1678 = t359.name;
+ var t1677 = (t358) .plist[ (t1678) ] ;
+ var t360 = t1677;
+ var t1679 = t360 === undefined;
+ var t361 = t1679;
+ var t1680;
+ if(t361 !== false) {
+ t1680 = false;
+ }
+ else {
+ t1680 = true;
+ }
+ var t990 = t1680;
+ var t1681;
+ if(t990 !== false) {
+ t1681 = t360;
+ }
+ else {
+ t1681 = false;
+ }
+ return k1150(t1681);
+ }
+ };
+ ___get = t1676; // set! get
+ var t1683 = function (k1151, t363, t364, t365) { // put!
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1685 = t364.name;
+ var t1684 = (t363) .plist[ (t1685) ] = (t365);
+ return k1151(t1684);
+ }
+ };
+ ___put_21 = t1683; // set! put!
+ var t1687 = function(K) {
+ SPOCK.count(arguments, 'string-append');
+ var args = Array.prototype.slice.call(arguments, 1);
+ var strs = SPOCK.map(function(x) { return SPOCK.jstring(x); }, args);
+ return K(new SPOCK.String(strs));
+ };
+ ___string_2dappend = t1687; // set! string-append
+ var t1688 = function(K) {
+ SPOCK.count(arguments, 'string');
+ var str = [];
+ var len = arguments.length - 1;
+ for(var i = 1; i <= len; ++i) {
+ var x = arguments[ i ];
+ if(x instanceof SPOCK.Char) str.push(x.character);
+ else SPOCK.error('bad argument type - not a character', x);}
+ return K(new SPOCK.String(str.join('')));
+ };
+ ___string = t1688; // set! string
+ var t1689 = function(K) {
+ SPOCK.count(arguments, 'string->list');
+ var str = SPOCK.jstring(arguments[ 1 ]);
+ var lst = null;
+ var len = str.length;
+ for(var i = len - 1; i >= 0; --i)
+ lst = new SPOCK.Pair(new SPOCK.Char(str.charAt(i)), lst);
+ return K(lst);
+ };
+ ___string_2d_3elist = t1689; // set! string->list
+ var t1690 = function(K) {
+ SPOCK.count(arguments, 'list->string');
+ var lst = arguments[ 1 ];
+ var str = [];
+ while(lst instanceof SPOCK.Pair) {
+ str.push(SPOCK.check(lst.car, SPOCK.Char).character);
+ lst = lst.cdr;}
+ return K(new SPOCK.String(str.join('')));
+ };
+ ___list_2d_3estring = t1690; // set! list->string
+ var t1691 = function(K) {
+ SPOCK.count(arguments, 'make-string');
+ var n = SPOCK.check(arguments[ 1 ], 'number', 'make-string');
+ var c = arguments[ 2 ];
+ var a = new Array(n);
+ if(c !== undefined)
+ c = SPOCK.check(c, SPOCK.Char, 'make-string').character;
+ else c = ' ';
+ for(var i = 0; i < n; ++i) a[ i ] = c;
+ return K(new SPOCK.String(a.join('')));
+ };
+ ___make_2dstring = t1691; // set! make-string
+ var t1692 = function(K) {
+ SPOCK.count(arguments, 'string-ref');
+ var str = arguments[ 1 ];
+ var i = SPOCK.check(arguments[ 2 ], 'number', 'string-ref');
+ if(typeof str === 'string')
+ return K(new SPOCK.Char(str.charAt(i)));
+ else if(str instanceof SPOCK.String) {
+ var parts = str.parts;
+ for(var p in parts) {
+ var l = parts[ p ].length;
+ if(i <= l) return K(new SPOCK.Char(parts[ p ].charAt(i)));
+ else i -= l;}
+ SPOCK.error('`string-ref\' out of range', str, i);}
+ };
+ ___string_2dref = t1692; // set! string-ref
+ var t1693 = function(K) {
+ SPOCK.count(arguments, 'string-set!');
+ var str = arguments[ 1 ];
+ var i = SPOCK.check(arguments[ 2 ], 'number', 'string-set!');
+ var c = SPOCK.check(arguments[ 3 ], SPOCK.Char, 'string-set!');
+ if(typeof str === 'string')
+ SPOCK.error('argument to `string-set!\' is not a mutable string', str);
+ else if(str instanceof SPOCK.String) {
+ var parts = str.parts;
+ for(var p in parts) {
+ var part = parts[ p ];
+ var l = part.length;
+ if(i <= l) {
+ parts[ p ] = part.substring(0, i) + c.character + part.substring(i + 1);
+ return K(undefined);
+ } else i -= l;}
+ SPOCK.error('`string-set!\' out of range', str, i);}
+ };
+ ___string_2dset_21 = t1693; // set! string-set!
+ var t1694 = function (k1152, t366, t367, t368) { // string-copy
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1695 = SPOCK.jstring(t366);
+ var t369 = t1695;
+ var t1696 = t367 === undefined;
+ var t991 = t1696;
+ var t1697;
+ if(t991 !== false) {
+ t1697 = 0;
+ }
+ else {
+ t1697 = t367;
+ }
+ var t371 = t1697;
+ var t1698 = t368 === undefined;
+ var t992 = t1698;
+ var t1699;
+ if(t992 !== false) {
+ var t1700 = t369.length;
+ t1699 = t1700;
+ }
+ else {
+ t1699 = t368;
+ }
+ var t373 = t1699;
+ var t1701 = t369.slice(t371, t373);
+ var t375 = t1701;
+ var t1702 = new SPOCK.String(t375);
+ return k1152(t1702);
+ }
+ };
+ ___string_2dcopy = t1694; // set! string-copy
+ var t1704 = function (k1153, t376, t377, t378, t379) { // string-fill!
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1705;
+ if(true !== false) {
+ t1705 = false;
+ }
+ else {
+ t1705 = true;
+ }
+ var t993 = t1705;
+ var t1706 = function (t1154) { // t1155
+ var t1707 = t376.normalize();
+ var t381 = t1707;
+ var t382 = t377;
+ var t1708 = t378 === undefined;
+ var t994 = t1708;
+ var t1709;
+ if(t994 !== false) {
+ t1709 = 0;
+ }
+ else {
+ t1709 = t378;
+ }
+ var t383 = t1709;
+ var t1710 = t379 === undefined;
+ var t995 = t1710;
+ var t1711;
+ if(t995 !== false) {
+ var t1712 = t381.length;
+ t1711 = t1712;
+ }
+ else {
+ t1711 = t379;
+ }
+ var t385 = t1711;
+ var t1713 = function(K) {
+ SPOCK.count(arguments);
+ var str = arguments[ 1 ];
+ var from = arguments[ 2 ];
+ var to = arguments[ 3 ];
+ var c = arguments[ 4 ];
+ var snew = new Array(to - from);
+ for(var i in snew) snew[ i ] = c;
+ str.parts = [str.parts[ 0 ].substring(0, from), snew.join(''),
+ str.parts[ 0 ].substring(to)];
+ return K(str);
+ };
+ return t1713(k1153, t376, t383, t385, t382);
+ };
+ var t1155 = t1706;
+ var t1715;
+ if(t993 !== false) {
+ return ____25error(t1155, "bad argument type - not a mutable string", t376);
+ }
+ else {
+ return t1155(undefined);
+ }
+ };
+ ___string_2dfill_21 = t1704; // set! string-fill!
+ var t1718 = function(K) {
+ SPOCK.count(arguments, 'vector');
+ return K(Array.prototype.slice.call(arguments, 1));
+ };
+ ___vector = t1718; // set! vector
+ var t1719 = function(K) {
+ SPOCK.count(arguments, 'make-vector');
+ var n = SPOCK.check(arguments[ 1 ], 'number', 'make-vector');
+ var x = arguments[ 2 ];
+ var a = new Array(n);
+ if(x !== undefined) {
+ for(var i = 0; i < n; ++i) a[ i ] = x;}
+ return K(a);
+ };
+ ___make_2dvector = t1719; // set! make-vector
+ var t1720 = function(K) {
+ SPOCK.count(arguments, 'vector->list');
+ var vec = SPOCK.check(arguments[ 1 ], Array, 'vector->list');
+ var lst = null;
+ var len = vec.length;
+ for(var i = len - 1; i >= 0; --i)
+ lst = new SPOCK.Pair(vec[ i ], lst);
+ return K(lst);
+ };
+ ___vector_2d_3elist = t1720; // set! vector->list
+ var t1721 = function(K) {
+ SPOCK.count(arguments, 'list->vector');
+ var lst = arguments[ 1 ];
+ var vec = [];
+ while(lst instanceof SPOCK.Pair) {
+ vec.push(lst.car);
+ lst = lst.cdr;}
+ return K(vec);
+ };
+ ___list_2d_3evector = t1721; // set! list->vector
+ var t1722 = function(K) {
+ SPOCK.count(arguments, 'vector-fill!');
+ var vec = SPOCK.check(arguments[ 1 ], Array, 'vector-fill!');
+ var x = arguments[ 2 ];
+ var from = arguments[ 3 ];
+ var to = arguments[ 4 ];
+ if(from === undefined) from = 0;
+ if(to === undefined) to = vec.length;
+ for(var i = from; i < to; ++i)
+ vec[ i ] = x;
+ return K(undefined);
+ };
+ ___vector_2dfill_21 = t1722; // set! vector-fill!
+ var t1723 = function(K) {
+ SPOCK.count(arguments, 'string->number');
+ var str = SPOCK.jstring(arguments[ 1 ]);
+ var base = arguments[ 2 ];
+ if(!base) base = 10;
+ else base = SPOCK.check(base, 'number', 'string->number');
+ var m = true, neg = 1;
+ while(m) {
+ m = str.match(/^#[eboxid]/);
+ if(m) {
+ switch(str[ 1 ]) {
+ case 'e':
+ case 'i': break;
+ case 'd': base = 10; break;
+ case 'o': base = 8; break;
+ case 'x': base = 16; break;
+ case 'b': base = 2; break;
+ default: return K(false);}
+ str = str.substring(2);}}
+ switch(str[ 0 ]) {
+ case '-': neg = -1; str = str.substring(1); break;
+ case '+': str = str.substring(1);}
+ var num, den = false;
+ if((m = str.match(/^([^\/]+)\/(.+)$/))) {
+ str = m[ 1 ];
+ den = m[ 2 ];}
+ function num3(s) {
+ var tr = null;
+ switch(base) {
+ case 2: tr = /^[0-1]+$/; break;
+ case 8: tr = /^[0-7]+$/; break;
+ case 10: tr = /^[#0-9]*\.?[#0-9]+([esdfl][-+]?[0-9]+)?$/; break;
+ case 16: tr = /^[0-9a-fA-F]+$/;}
+ if(tr && !s.match(tr)) return false;
+ var s2 = s.replace(/#/g, '0');
+ if(base === 10) s2 = parseFloat(s2.replace(/[esdfl]/g, 'e'));
+ else if(s2 !== s) return false;
+ else s2 = parseInt(s2, base);
+ return isNaN(s2) ? false : s2;}
+ if((num = num3(str)) === false) return K(false);
+ if(den && !(den = num3(den))) return K(false);
+ return K(neg * num / (den || 1));
+ };
+ ___string_2d_3enumber = t1723; // set! string->number
+ var t1724 = function(K) {
+ SPOCK.count(arguments, '%show');
+ arguments[ 2 ].write(arguments[ 1 ]);
+ return K(undefined);
+ };
+ ____25show = t1724; // set! %show
+ var t1725 = function(K) {
+ SPOCK.count(arguments, '%fetch');
+ return K(arguments[ 2 ].read(arguments[ 1 ]));
+ };
+ ____25fetch = t1725; // set! %fetch
+ var t1726 = function (k1156, t387) { // newline
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1727 = t387 === undefined;
+ var t996 = t1727;
+ var t1728;
+ if(t996 !== false) {
+ t1728 = SPOCK.stdout;
+ }
+ else {
+ t1728 = t387;
+ }
+ return ____25show(k1156, "\n", t1728);
+ };
+ ___newline = t1726; // set! newline
+ var t1730 = function (k1157, t392) { // read-char
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1731 = function (t1158) {
+ var t393 = t1158;
+ var t400 = SPOCK.EOF;
+ var t1732 = (t393) === (t400);
+ var t998 = t1732;
+ var t1733;
+ if(t998 !== false) {
+ t1733 = t393;
+ }
+ else {
+ var t1734 = new SPOCK.Char(t393);
+ t1733 = t1734;
+ }
+ return k1157(t1733);
+ };
+ var t1736 = t392 === undefined;
+ var t997 = t1736;
+ var t1737;
+ if(t997 !== false) {
+ t1737 = SPOCK.stdin;
+ }
+ else {
+ t1737 = t392;
+ }
+ return ____25fetch(t1731, 1, t1737);
+ };
+ ___read_2dchar = t1730; // set! read-char
+ var t1739 = function (k1159, t401, t402) { // write-char
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1740 = t401.character;
+ var t1741 = t402 === undefined;
+ var t999 = t1741;
+ var t1742;
+ if(t999 !== false) {
+ t1742 = SPOCK.stdout;
+ }
+ else {
+ t1742 = t402;
+ }
+ return ____25show(k1159, t1740, t1742);
+ };
+ ___write_2dchar = t1739; // set! write-char
+ var t407 = ___read_2dchar;
+ var t1744 = function (k1160, t408) { // t407
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1745 = function (t1161) {
+ var t409 = t1161;
+ var t413 = SPOCK.EOF;
+ var t1746 = (t409) === (t413);
+ var t410 = t1746;
+ var t1747;
+ if(t410 !== false) {
+ t1747 = false;
+ }
+ else {
+ t1747 = true;
+ }
+ var t1000 = t1747;
+ var t1748;
+ if(t1000 !== false) {
+ var t1750 = t409.character;
+ var t1749 = (t408) .peeked = (t1750);
+ t1748 = t1749;
+ }
+ else {
+ }
+ return k1160(t409);
+ };
+ return t407(t1745, t408);
+ };
+ ___peek_2dchar = t1744; // set! peek-char
+ var t1753 = function (k1162, t414) { // char-ready?
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t1754 = t414.ready();
+ return k1162(t1754);
+ }
+ };
+ ___char_2dready_3f = t1753; // set! char-ready?
+ var t1756 = function (k1163, t418, t419, t420) { // %print-hook
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ return ____25show(k1163, "#<unknown object>", t419);
+ };
+ ____25print_2dhook = t1756; // set! %print-hook
+ var t1758 = function (k1164, t421, t422) { // display
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1759 = t422 === undefined;
+ var t1001 = t1759;
+ var t1760;
+ if(t1001 !== false) {
+ t1760 = SPOCK.stdout;
+ }
+ else {
+ t1760 = t422;
+ }
+ var t423 = t1760;
+ var t428 = undefined;
+ var t1761 = function (k1165, t429) { // t428
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1763 = null;
+ var t1762 = (t429) === (t1763);
+ var t1002 = t1762;
+ var t1764;
+ if(t1002 !== false) {
+ return ____25show(k1165, "()", t423);
+ }
+ else {
+ var t1766 = typeof(t429);
+ var t434 = t1766;
+ var t1767 = (t434) === ("number");
+ var t1003 = t1767;
+ var t1768;
+ if(t1003 !== false) {
+ var t1771 = undefined === undefined;
+ var t1004 = t1771;
+ var t1772;
+ if(t1004 !== false) {
+ t1772 = 10;
+ }
+ else {
+ }
+ var t1770 = t429.toString(t1772);
+ var t1769 = new SPOCK.String(t1770);
+ var t436 = t1769;
+ var t1773 = SPOCK.jstring(t436);
+ return ____25show(k1165, t1773, t423);
+ }
+ else {
+ var t1775 = typeof(t429);
+ var t442 = t1775;
+ var t1776 = (t442) === ("string");
+ var t441 = t1776;
+ var t1777;
+ if(t441 !== false) {
+ t1777 = t441;
+ }
+ else {
+ var t1778 = (t429) instanceof SPOCK.String ;
+ t1777 = t1778;
+ }
+ var t1005 = t1777;
+ var t1779;
+ if(t1005 !== false) {
+ var t1780 = SPOCK.jstring(t429);
+ return ____25show(k1165, t1780, t423);
+ }
+ else {
+ var t1782 = (t429) instanceof SPOCK.Symbol ;
+ var t1006 = t1782;
+ var t1783;
+ if(t1006 !== false) {
+ var t1784 = t429.name;
+ return ____25show(k1165, t1784, t423);
+ }
+ else {
+ var t1786 = (t429) instanceof SPOCK.Char ;
+ var t1007 = t1786;
+ var t1787;
+ if(t1007 !== false) {
+ var t1788 = t429.character;
+ return ____25show(k1165, t1788, t423);
+ }
+ else {
+ var t448 = SPOCK.EOF;
+ var t1790 = (t429) === (t448);
+ var t1008 = t1790;
+ var t1791;
+ if(t1008 !== false) {
+ return ____25show(k1165, "#<eof>", t423);
+ }
+ else {
+ var t1793 = typeof(t429);
+ var t450 = t1793;
+ var t1794 = (t450) === ("function");
+ var t1009 = t1794;
+ var t1795;
+ if(t1009 !== false) {
+ return ____25show(k1165, "#<procedure>", t423);
+ }
+ else {
+ var t1797 = (t429) === (true);
+ var t453 = t1797;
+ var t1798;
+ if(t453 !== false) {
+ t1798 = t453;
+ }
+ else {
+ var t1799 = (t429) === (false);
+ t1798 = t1799;
+ }
+ var t1010 = t1798;
+ var t1800;
+ if(t1010 !== false) {
+ var t1801;
+ if(t429 !== false) {
+ t1801 = "#t";
+ }
+ else {
+ t1801 = "#f";
+ }
+ return ____25show(k1165, t1801, t423);
+ }
+ else {
+ var t1803 = (t429) instanceof SPOCK.Pair ;
+ var t1011 = t1803;
+ var t1804;
+ if(t1011 !== false) {
+ var t1805 = function (t1166) {
+ var t459 = undefined;
+ var t1806 = function (k1167, t460) { // t459
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1808 = null;
+ var t1807 = (t460) === (t1808);
+ var t1012 = t1807;
+ var t1809;
+ if(t1012 !== false) {
+ return ____25show(k1167, ")", t423);
+ }
+ else {
+ var t1811 = (t460) instanceof SPOCK.Pair ;
+ var t464 = t1811;
+ var t1812;
+ if(t464 !== false) {
+ t1812 = false;
+ }
+ else {
+ t1812 = true;
+ }
+ var t1013 = t1812;
+ var t1813;
+ if(t1013 !== false) {
+ var t1814 = function (t1168) {
+ var t1815 = function (t1169) {
+ return ____25show(k1167, ")", t423);
+ };
+ return t428(t1815, t460);
+ };
+ return ____25show(t1814, " . ", t423);
+ }
+ else {
+ var t467 = t429;
+ var t1819 = (t467) === (t460);
+ var t466 = t1819;
+ var t1820;
+ if(t466 !== false) {
+ t1820 = false;
+ }
+ else {
+ t1820 = true;
+ }
+ var t1014 = t1820;
+ var t1821 = function (t1170) { // t1172
+ var t1822 = function (t1171) {
+ var t1823 = t460.cdr;
+ return t459(k1167, t1823);
+ };
+ var t1825 = t460.car;
+ return t428(t1822, t1825);
+ };
+ var t1172 = t1821;
+ var t1827;
+ if(t1014 !== false) {
+ return ____25show(t1172, " ", t423);
+ }
+ else {
+ return t1172(undefined);
+ }
+ t1813 = t1827;
+ }
+ t1809 = t1813;
+ }
+ };
+ t459 = t1806; // set! t459
+ return t459(k1165, t429);
+ };
+ return ____25show(t1805, "(", t423);
+ }
+ else {
+ var t1832 = t429 === undefined;
+ var t1015 = t1832;
+ var t1833;
+ if(t1015 !== false) {
+ return ____25show(k1165, "#<undefined>", t423);
+ }
+ else {
+ var t1835 = (t429) instanceof Array ;
+ var t1016 = t1835;
+ var t1836;
+ if(t1016 !== false) {
+ var t1837 = t429.length;
+ var t474 = t1837;
+ var t1838 = function (t1173) {
+ var t475 = undefined;
+ var t1839 = function (k1174, t476) { // t475
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1841 = (t476) >= (t474);
+ var t1840;
+ if(t1841 !== false) {
+ return ____25show(k1174, ")", t423);
+ }
+ else {
+ var t1843 = (t476) === (0);
+ var t477 = t1843;
+ var t1844;
+ if(t477 !== false) {
+ t1844 = false;
+ }
+ else {
+ t1844 = true;
+ }
+ var t1017 = t1844;
+ var t1845 = function (t1175) { // t1177
+ var t1846 = function (t1176) {
+ var t1847 = 1+ (t476);
+ return t475(k1174, t1847);
+ };
+ var t1849 = (t429) [ (t476) ] ;
+ return t428(t1846, t1849);
+ };
+ var t1177 = t1845;
+ var t1851;
+ if(t1017 !== false) {
+ return ____25show(t1177, " ", t423);
+ }
+ else {
+ return t1177(undefined);
+ }
+ t1840 = t1851;
+ }
+ };
+ t475 = t1839; // set! t475
+ return t475(k1165, 0);
+ };
+ return ____25show(t1838, "#(", t423);
+ }
+ else {
+ var t1857 = (t429) instanceof SPOCK.Port ;
+ var t1856;
+ if(t1857 !== false) {
+ var t1858 = SPOCK.stringify(t429);
+ return ____25show(k1165, t1858, t423);
+ }
+ else {
+ var t1861 = (t429) instanceof SPOCK.Promise ;
+ var t1860;
+ if(t1861 !== false) {
+ return ____25show(k1165, "#<promise>", t423);
+ }
+ else {
+ var t1863 = typeof(t429);
+ var t481 = t1863;
+ var t1864 = ("object") === (t481);
+ var t1018 = t1864;
+ var t1865;
+ if(t1018 !== false) {
+ return ____25print_2dhook(k1165, t429, t423, false);
+ }
+ else {
+ return ____25show(k1165, "#<unknown object>", t423);
+ }
+ t1860 = t1865;
+ }
+ t1856 = t1860;
+ }
+ t1836 = t1856;
+ }
+ t1833 = t1836;
+ }
+ t1804 = t1833;
+ }
+ t1800 = t1804;
+ }
+ t1795 = t1800;
+ }
+ t1791 = t1795;
+ }
+ t1787 = t1791;
+ }
+ t1783 = t1787;
+ }
+ t1779 = t1783;
+ }
+ t1768 = t1779;
+ }
+ t1764 = t1768;
+ }
+ };
+ t428 = t1761; // set! t428
+ return t428(k1164, t421);
+ };
+ ___display = t1758; // set! display
+ var t482 = ___display;
+ var t483 = undefined;
+ var t1869 = function(K) {
+ SPOCK.count(arguments, 't483');
+ var str = arguments[ 1 ];
+ var a = [];
+ var len = str.length;
+ for(var i = 0; i < len; ++i) {
+ var c = str.charAt(i);
+ switch(c) {
+ case '\n': a.push('\n'); break;
+ case '\t': a.push('\t'); break;
+ case '\r': a.push('\r'); break;
+ case '\"': a.push('\\"'); break;
+ case '\\': a.push('\\'); break;
+ default: a.push(c);}}
+ return K(a.join(''));
+ };
+ t483 = t1869; // set! t483
+ var t1870 = function (k1178, t484, t485) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1871 = t485 === undefined;
+ var t1019 = t1871;
+ var t1872;
+ if(t1019 !== false) {
+ t1872 = SPOCK.stdout;
+ }
+ else {
+ t1872 = t485;
+ }
+ var t486 = t1872;
+ var t491 = undefined;
+ var t1873 = function (k1179, t492) { // t491
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1874 = typeof(t492);
+ var t495 = t1874;
+ var t1875 = (t495) === ("string");
+ var t494 = t1875;
+ var t1876;
+ if(t494 !== false) {
+ t1876 = t494;
+ }
+ else {
+ var t1877 = (t492) instanceof SPOCK.String ;
+ t1876 = t1877;
+ }
+ var t1020 = t1876;
+ var t1878;
+ if(t1020 !== false) {
+ var t1879 = function (t1180) {
+ var t1880 = function (t1182) {
+ var t1881 = function (t1181) {
+ return ____25show(k1179, "\"", t486);
+ };
+ return ____25show(t1881, t1182, t486);
+ };
+ var t1884 = SPOCK.jstring(t492);
+ return t483(t1880, t1884);
+ };
+ return ____25show(t1879, "\"", t486);
+ }
+ else {
+ var t1887 = (t492) instanceof SPOCK.Char ;
+ var t1021 = t1887;
+ var t1888;
+ if(t1021 !== false) {
+ var t1889 = function (t1183) {
+ var t1890 = t492.character;
+ var t498 = t1890;
+ var t1892 = SPOCK.eqvp(t498, "\n");
+ var t1022 = t1892;
+ var t1893;
+ if(t1022 !== false) {
+ t1893 = true;
+ }
+ else {
+ t1893 = false;
+ }
+ var t1891;
+ if(t1893 !== false) {
+ t1891 = "newline";
+ }
+ else {
+ var t1895 = SPOCK.eqvp(t498, "\r");
+ var t1023 = t1895;
+ var t1896;
+ if(t1023 !== false) {
+ t1896 = true;
+ }
+ else {
+ t1896 = false;
+ }
+ var t1894;
+ if(t1896 !== false) {
+ t1894 = "return";
+ }
+ else {
+ var t1898 = SPOCK.eqvp(t498, "\t");
+ var t1024 = t1898;
+ var t1899;
+ if(t1024 !== false) {
+ t1899 = true;
+ }
+ else {
+ t1899 = false;
+ }
+ var t1897;
+ if(t1899 !== false) {
+ t1897 = "tab";
+ }
+ else {
+ var t1901 = SPOCK.eqvp(t498, " ");
+ var t1025 = t1901;
+ var t1902;
+ if(t1025 !== false) {
+ t1902 = true;
+ }
+ else {
+ t1902 = false;
+ }
+ var t1900;
+ if(t1902 !== false) {
+ t1900 = "space";
+ }
+ else {
+ t1900 = t498;
+ }
+ t1897 = t1900;
+ }
+ t1894 = t1897;
+ }
+ t1891 = t1894;
+ }
+ return ____25show(k1179, t1891, t486);
+ };
+ return ____25show(t1889, "#\\", t486);
+ }
+ else {
+ var t1905 = (t492) instanceof SPOCK.Pair ;
+ var t1026 = t1905;
+ var t1906;
+ if(t1026 !== false) {
+ var t1907 = function (t1184) {
+ var t509 = undefined;
+ var t1908 = function (k1185, t510) { // t509
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1910 = null;
+ var t1909 = (t510) === (t1910);
+ var t1027 = t1909;
+ var t1911;
+ if(t1027 !== false) {
+ return ____25show(k1185, ")", t486);
+ }
+ else {
+ var t1913 = (t510) instanceof SPOCK.Pair ;
+ var t514 = t1913;
+ var t1914;
+ if(t514 !== false) {
+ t1914 = false;
+ }
+ else {
+ t1914 = true;
+ }
+ var t1028 = t1914;
+ var t1915;
+ if(t1028 !== false) {
+ var t1916 = function (t1186) {
+ var t1917 = function (t1187) {
+ return ____25show(k1185, ")", t486);
+ };
+ return t491(t1917, t510);
+ };
+ return ____25show(t1916, " . ", t486);
+ }
+ else {
+ var t517 = t492;
+ var t1921 = (t517) === (t510);
+ var t516 = t1921;
+ var t1922;
+ if(t516 !== false) {
+ t1922 = false;
+ }
+ else {
+ t1922 = true;
+ }
+ var t1029 = t1922;
+ var t1923 = function (t1188) { // t1190
+ var t1924 = function (t1189) {
+ var t1925 = t510.cdr;
+ return t509(k1185, t1925);
+ };
+ var t1927 = t510.car;
+ return t491(t1924, t1927);
+ };
+ var t1190 = t1923;
+ var t1929;
+ if(t1029 !== false) {
+ return ____25show(t1190, " ", t486);
+ }
+ else {
+ return t1190(undefined);
+ }
+ t1915 = t1929;
+ }
+ t1911 = t1915;
+ }
+ };
+ t509 = t1908; // set! t509
+ return t509(k1179, t492);
+ };
+ return ____25show(t1907, "(", t486);
+ }
+ else {
+ var t1934 = (t492) instanceof Array ;
+ var t1030 = t1934;
+ var t1935;
+ if(t1030 !== false) {
+ var t1936 = t492.length;
+ var t523 = t1936;
+ var t1937 = function (t1191) {
+ var t524 = undefined;
+ var t1938 = function (k1192, t525) { // t524
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1940 = (t525) >= (t523);
+ var t1939;
+ if(t1940 !== false) {
+ return ____25show(k1192, ")", t486);
+ }
+ else {
+ var t1942 = (t525) === (0);
+ var t526 = t1942;
+ var t1943;
+ if(t526 !== false) {
+ t1943 = false;
+ }
+ else {
+ t1943 = true;
+ }
+ var t1031 = t1943;
+ var t1944 = function (t1193) { // t1195
+ var t1945 = function (t1194) {
+ var t1946 = 1+ (t525);
+ return t524(k1192, t1946);
+ };
+ var t1948 = (t492) [ (t525) ] ;
+ return t491(t1945, t1948);
+ };
+ var t1195 = t1944;
+ var t1950;
+ if(t1031 !== false) {
+ return ____25show(t1195, " ", t486);
+ }
+ else {
+ return t1195(undefined);
+ }
+ t1939 = t1950;
+ }
+ };
+ t524 = t1938; // set! t524
+ return t524(k1179, 0);
+ };
+ return ____25show(t1937, "#(", t486);
+ }
+ else {
+ return t482(k1179, t492, t486);
+ }
+ t1906 = t1935;
+ }
+ t1888 = t1906;
+ }
+ t1878 = t1888;
+ }
+ };
+ t491 = t1873; // set! t491
+ return t491(k1178, t484);
+ };
+ ___write = t1870; // set! write
+ var t1957 = function(K) {
+ SPOCK.count(arguments, 'apply');
+ var proc = arguments[ 1 ];
+ var argc = arguments.length;
+ var lst = arguments[ argc - 1 ];
+ var vec = [K].concat(Array.prototype.slice.call(arguments, 2, argc - 1));
+ if(lst instanceof Array) vec = vec.concat(lst);
+ else{
+ var len = SPOCK.length(lst);
+ var vec2 = new Array(len);
+ for(var i = 0; lst instanceof SPOCK.Pair; lst = lst.cdr)
+ vec2[ i++ ] = lst.car;
+ vec = vec.concat(vec2);}
+ return proc.apply(SPOCK.global, vec);
+ };
+ ___apply = t1957; // set! apply
+ var t1958 = function (k1196, t529, t530, t531) { // for-each
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t531 = SPOCK.rest(arguments, 3);
+ var t1960 = null;
+ var t1959 = (t531) === (t1960);
+ var t1032 = t1959;
+ var t1961;
+ if(t1032 !== false) {
+ var t1962 = (t530) instanceof Array ;
+ var t1033 = t1962;
+ var t1963;
+ if(t1033 !== false) {
+ var t1964 = t530.length;
+ var t536 = t1964;
+ var t538 = undefined;
+ var t1965 = function (k1197, t539) { // t538
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t541 = t536;
+ var t1966 = (t539) >= (t541);
+ var t1034 = t1966;
+ var t1967;
+ if(t1034 !== false) {
+ return k1197(false);
+ }
+ else {
+ var t1969 = function (t1198) {
+ var t1970 = (t539) + (1);
+ return t538(k1197, t1970);
+ };
+ var t542 = t530;
+ var t1972 = (t542) [ (t539) ] ;
+ return t529(t1969, t1972);
+ }
+ };
+ t538 = t1965; // set! t538
+ return t538(k1196, 0);
+ }
+ else {
+ var t546 = undefined;
+ var t1975 = function (k1199, t547) { // t546
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1976 = (t547) instanceof SPOCK.Pair ;
+ var t1035 = t1976;
+ var t1977;
+ if(t1035 !== false) {
+ var t1978 = function (t1200) {
+ var t1979 = t547.cdr;
+ return t546(k1199, t1979);
+ };
+ var t1981 = t547.car;
+ return t529(t1978, t1981);
+ }
+ else {
+ return k1199(undefined);
+ }
+ };
+ t546 = t1975; // set! t546
+ return t546(k1196, t530);
+ }
+ t1961 = t1963;
+ }
+ else {
+ var t551 = undefined;
+ var t1985 = function (k1201, t552) { // t551
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t554 = undefined;
+ var t1986 = function (k1207, t555) { // t554
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t1988 = null;
+ var t1987 = (t555) === (t1988);
+ var t1036 = t1987;
+ var t1989;
+ if(t1036 !== false) {
+ var t1990 = null;
+ return k1207(t1990);
+ }
+ else {
+ var t1992 = t555.car;
+ var t559 = t1992;
+ var t1993 = (t559) instanceof SPOCK.Pair ;
+ var t1037 = t1993;
+ var t1994;
+ if(t1037 !== false) {
+ var t1995 = t559.car;
+ var t562 = t1995;
+ var t1996 = function (t1208) {
+ var t563 = t1208;
+ var t1997 = new SPOCK.Pair(t562, t563);
+ return k1207(t1997);
+ };
+ var t1999 = t555.cdr;
+ return t554(t1996, t1999);
+ }
+ else {
+ return k1207(false);
+ }
+ t1989 = t1994;
+ }
+ };
+ t554 = t1986; // set! t554
+ var t2002 = function (t1202) {
+ var t553 = t1202;
+ var t2003;
+ if(t553 !== false) {
+ var t2004 = function (t1203) {
+ var t566 = undefined;
+ var t2005 = function (k1205, t567) { // t566
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2007 = null;
+ var t2006 = (t567) === (t2007);
+ var t1038 = t2006;
+ var t2008;
+ if(t1038 !== false) {
+ var t2009 = null;
+ return k1205(t2009);
+ }
+ else {
+ var t2011 = t567.car;
+ var t573 = t2011;
+ var t2012 = t573.cdr;
+ var t571 = t2012;
+ var t2013 = function (t1206) {
+ var t572 = t1206;
+ var t2014 = new SPOCK.Pair(t571, t572);
+ return k1205(t2014);
+ };
+ var t2016 = t567.cdr;
+ return t566(t2013, t2016);
+ }
+ };
+ t566 = t2005; // set! t566
+ var t2018 = function (t1204) {
+ return t551(k1201, t1204);
+ };
+ return t566(t2018, t552);
+ };
+ return ___apply(t2004, t529, t553);
+ }
+ else {
+ return k1201(undefined);
+ }
+ };
+ return t554(t2002, t552);
+ };
+ t551 = t1985; // set! t551
+ var t2024 = new SPOCK.Pair(t530, t531);
+ return t551(k1196, t2024);
+ }
+ };
+ ___for_2deach = t1958; // set! for-each
+ var t2026 = function (k1209, t578, t579, t580) { // map
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t580 = SPOCK.rest(arguments, 3);
+ var t2028 = null;
+ var t2027 = (t580) === (t2028);
+ var t1039 = t2027;
+ var t2029;
+ if(t1039 !== false) {
+ var t2030 = (t579) instanceof Array ;
+ var t1040 = t2030;
+ var t2031;
+ if(t1040 !== false) {
+ var t2032 = t579.length;
+ var t585 = t2032;
+ var t2033 = function (t1210) {
+ var t587 = t1210;
+ var t588 = undefined;
+ var t2034 = function (k1211, t589) { // t588
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t591 = t585;
+ var t2035 = (t589) >= (t591);
+ var t1041 = t2035;
+ var t2036;
+ if(t1041 !== false) {
+ return k1211(t587);
+ }
+ else {
+ var t592 = t587;
+ var t593 = t589;
+ var t2038 = function (t1213) {
+ var t594 = t1213;
+ var t2039 = (t592) [ (t593) ] = (t594);
+ var t1212 = t2039;
+ var t2040 = (t589) + (1);
+ return t588(k1211, t2040);
+ };
+ var t595 = t579;
+ var t2042 = (t595) [ (t589) ] ;
+ return t578(t2038, t2042);
+ }
+ };
+ t588 = t2034; // set! t588
+ return t588(k1209, 0);
+ };
+ return ___make_2dvector(t2033, t585);
+ }
+ else {
+ var t599 = undefined;
+ var t2046 = function (k1214, t600) { // t599
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2047 = (t600) instanceof SPOCK.Pair ;
+ var t1042 = t2047;
+ var t2048;
+ if(t1042 !== false) {
+ var t2049 = function (t1215) {
+ var t602 = t1215;
+ var t2050 = function (t1216) {
+ var t603 = t1216;
+ var t2051 = new SPOCK.Pair(t602, t603);
+ return k1214(t2051);
+ };
+ var t2053 = t600.cdr;
+ return t599(t2050, t2053);
+ };
+ var t2055 = t600.car;
+ return t578(t2049, t2055);
+ }
+ else {
+ var t2057 = null;
+ return k1214(t2057);
+ }
+ };
+ t599 = t2046; // set! t599
+ return t599(k1209, t579);
+ }
+ t2029 = t2031;
+ }
+ else {
+ var t606 = undefined;
+ var t2060 = function (k1217, t607) { // t606
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t609 = undefined;
+ var t2061 = function (k1224, t610) { // t609
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2063 = null;
+ var t2062 = (t610) === (t2063);
+ var t1043 = t2062;
+ var t2064;
+ if(t1043 !== false) {
+ var t2065 = null;
+ return k1224(t2065);
+ }
+ else {
+ var t2067 = t610.car;
+ var t614 = t2067;
+ var t2068 = (t614) instanceof SPOCK.Pair ;
+ var t1044 = t2068;
+ var t2069;
+ if(t1044 !== false) {
+ var t2070 = t614.car;
+ var t617 = t2070;
+ var t2071 = function (t1225) {
+ var t618 = t1225;
+ var t2072 = new SPOCK.Pair(t617, t618);
+ return k1224(t2072);
+ };
+ var t2074 = t610.cdr;
+ return t609(t2071, t2074);
+ }
+ else {
+ return k1224(false);
+ }
+ t2064 = t2069;
+ }
+ };
+ t609 = t2061; // set! t609
+ var t2077 = function (t1218) {
+ var t608 = t1218;
+ var t2078;
+ if(t608 !== false) {
+ var t2079 = function (t1219) {
+ var t621 = t1219;
+ var t623 = undefined;
+ var t2080 = function (k1222, t624) { // t623
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2082 = null;
+ var t2081 = (t624) === (t2082);
+ var t1045 = t2081;
+ var t2083;
+ if(t1045 !== false) {
+ var t2084 = null;
+ return k1222(t2084);
+ }
+ else {
+ var t2086 = t624.car;
+ var t630 = t2086;
+ var t2087 = t630.cdr;
+ var t628 = t2087;
+ var t2088 = function (t1223) {
+ var t629 = t1223;
+ var t2089 = new SPOCK.Pair(t628, t629);
+ return k1222(t2089);
+ };
+ var t2091 = t624.cdr;
+ return t623(t2088, t2091);
+ }
+ };
+ t623 = t2080; // set! t623
+ var t2093 = function (t1221) {
+ var t2094 = function (t1220) {
+ var t622 = t1220;
+ var t2095 = new SPOCK.Pair(t621, t622);
+ return k1217(t2095);
+ };
+ return t606(t2094, t1221);
+ };
+ return t623(t2093, t607);
+ };
+ return ___apply(t2079, t578, t608);
+ }
+ else {
+ var t2100 = null;
+ return k1217(t2100);
+ }
+ };
+ return t609(t2077, t607);
+ };
+ t606 = t2060; // set! t606
+ var t2103 = new SPOCK.Pair(t579, t580);
+ return t606(k1209, t2103);
+ }
+ };
+ ___map = t2026; // set! map
+ var t2105 = function (k1226, t637, t638, t639) { // dynamic-wind
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2106 = function (t1227) {
+ var t2107 = new SPOCK.Pair(t637, t639);
+ var t640 = t2107;
+ var t641 = SPOCK.dynwinds;
+ var t2108 = new SPOCK.Pair(t640, t641);
+ SPOCK.dynwinds = t2108
+ var t2109 = function (k1228) {
+ var t644 = SPOCK.dynwinds;
+ var t2110 = t644.cdr;
+ SPOCK.dynwinds = t2110
+ return t639(k1228);
+ };
+ return ____25call_2dwith_2dsaved_2dvalues(k1226, t638, t2109);
+ };
+ return t637(t2106);
+ };
+ ___dynamic_2dwind = t2105; // set! dynamic-wind
+ var t2114 = function(K) {
+ SPOCK.count(arguments, '%call-with-current-continuation');
+ var proc = arguments[ 1 ];
+ function cont() {
+ return K.apply(SPOCK.global, Array.prototype.slice.call(arguments, 1));}
+ return proc(K, cont);
+ };
+ ____25call_2dwith_2dcurrent_2dcontinuation = t2114; // set! %call-with-current-continuation
+ var t645 = undefined;
+ var t2115 = function (k1229, t646, t647) { // t645
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t649 = SPOCK.dynwinds;
+ var t2116 = (t649) === (t646);
+ var t648 = t2116;
+ var t2117;
+ if(t648 !== false) {
+ return k1229(t648);
+ }
+ else {
+ var t2119 = (t647) < (0);
+ var t1046 = t2119;
+ var t2120;
+ if(t1046 !== false) {
+ var t2121 = function (t1230) {
+ var t2122 = t646.car;
+ var t654 = t2122;
+ var t2123 = t654.car;
+ var t2124 = function (t1231) {
+ SPOCK.dynwinds = t646
+ return k1229(undefined);
+ };
+ return t2123(t2124);
+ };
+ var t2127 = t646.cdr;
+ var t2128 = (t647) + 1 ;
+ return t645(t2121, t2127, t2128);
+ }
+ else {
+ var t658 = SPOCK.dynwinds;
+ var t2130 = t658.car;
+ var t657 = t2130;
+ var t2131 = t657.cdr;
+ var t656 = t2131;
+ var t659 = SPOCK.dynwinds;
+ var t2132 = t659.cdr;
+ SPOCK.dynwinds = t2132
+ var t2133 = function (t1232) {
+ var t2134 = (t647) - 1 ;
+ return t645(k1229, t646, t2134);
+ };
+ return t656(t2133);
+ }
+ t2117 = t2120;
+ }
+ };
+ t645 = t2115; // set! t645
+ var t2137 = function (k1233, t660) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t661 = SPOCK.dynwinds;
+ var t2138 = function (k1234, t662) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2139 = function (k1235, t663) {
+ var t663 = SPOCK.rest(arguments, 1);
+ var t664 = SPOCK.dynwinds;
+ var t667 = t661;
+ var t2140 = (t664) === (t667);
+ var t665 = t2140;
+ var t2141;
+ if(t665 !== false) {
+ t2141 = false;
+ }
+ else {
+ t2141 = true;
+ }
+ var t1047 = t2141;
+ var t2142 = function (t1236) { // t1237
+ return ___apply(k1235, t662, t663);
+ };
+ var t1237 = t2142;
+ var t2144;
+ if(t1047 !== false) {
+ var t2145 = SPOCK.length(t664);
+ var t668 = t2145;
+ var t671 = t661;
+ var t2146 = SPOCK.length(t671);
+ var t669 = t2146;
+ var t2147 = (t668) - (t669);
+ return t645(t1237, t661, t2147);
+ }
+ else {
+ return t1237(undefined);
+ }
+ };
+ return t660(k1234, t2139);
+ };
+ return ____25call_2dwith_2dcurrent_2dcontinuation(k1233, t2138);
+ };
+ ___call_2dwith_2dcurrent_2dcontinuation = t2137; // set! call-with-current-continuation
+ var t2152 = function (k1238, t672) { // %get-context
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ return ___vector(k1238, t672, SPOCK.dynwinds, SPOCK.stdin, SPOCK.stdout, SPOCK.stderr);
+ };
+ ____25get_2dcontext = t2152; // set! %get-context
+ var t2154 = function(K) {
+ SPOCK.count(arguments, '%restore-context');
+ var state = arguments[ 1 ];
+ SPOCK.dynwinds = state[ 1 ];
+ SPOCK.stdin = state[ 2 ];
+ SPOCK.stdout = state[ 3 ];
+ SPOCK.stderr = state[ 4 ];
+ return (state[ 0 ])(undefined);
+ };
+ ____25restore_2dcontext = t2154; // set! %restore-context
+ var t2155 = function (k1239, t673) { // suspend
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2156 = function (k1240, t674) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2157 = function (t1242) {
+ var t2158 = function (t1241) {
+ var t2159 = function(K) {
+ SPOCK.count(arguments);
+ return new SPOCK.Result(undefined);
+ };
+ return t2159(k1240);
+ };
+ return t673(t2158, t1242);
+ };
+ return ____25get_2dcontext(t2157, t674);
+ };
+ return ____25call_2dwith_2dcurrent_2dcontinuation(k1239, t2156);
+ };
+ ___suspend = t2155; // set! suspend
+ var t2164 = function (k1243, t675) { // %make-promise
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t676 = false;
+ var t677 = false;
+ var t2166 = function (k1244) { // t677
+ var t2167;
+ if(t676 !== false) {
+ return ___apply(k1244, ___values, t677);
+ }
+ else {
+ var t2169 = function (k1245, t678) {
+ var t678 = SPOCK.rest(arguments, 1);
+ var t2170;
+ if(t676 !== false) {
+ return ___apply(k1245, ___values, t677);
+ }
+ else {
+ t676 = true; // set! t676
+ t677 = t678; // set! t677
+ return ___apply(k1245, ___values, t677);
+ }
+ };
+ return ___call_2dwith_2dvalues(k1244, t675, t2169);
+ }
+ };
+ var t2165 = new SPOCK.Promise(t2166);
+ return k1243(t2165);
+ };
+ ____25make_2dpromise = t2164; // set! %make-promise
+ var t2175 = function (k1246, t679) { // force
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2177 = (t679) instanceof SPOCK.Promise ;
+ var t2176;
+ if(t2177 !== false) {
+ var t2178 = t679.thunk;
+ return t2178(k1246);
+ }
+ else {
+ return k1246(t679);
+ }
+ };
+ ___force = t2175; // set! force
+ var t680 = ___dynamic_2dwind;
+ var t2181 = function (k1247, t681, t682) { // t680
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t686 = false;
+ var t2182 = function (k1248) {
+ loop: while(true) {
+ t686 = SPOCK.stdin; // set! t686
+ SPOCK.stdin = t681
+ return k1248(undefined);
+ }
+ };
+ var t2184 = function (k1249) {
+ loop: while(true) {
+ SPOCK.stdin = t686
+ return k1249(undefined);
+ }
+ };
+ return t680(k1247, t2182, t682, t2184);
+ };
+ ___with_2dinput_2dfrom_2dport = t2181; // set! with-input-from-port
+ var t687 = ___dynamic_2dwind;
+ var t2187 = function (k1250, t688, t689) { // t687
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t693 = false;
+ var t2188 = function (k1251) {
+ loop: while(true) {
+ t693 = SPOCK.stdout; // set! t693
+ SPOCK.stdout = t688
+ return k1251(undefined);
+ }
+ };
+ var t2190 = function (k1252) {
+ loop: while(true) {
+ SPOCK.stdout = t693
+ return k1252(undefined);
+ }
+ };
+ return t687(k1250, t2188, t689, t2190);
+ };
+ ___with_2doutput_2dto_2dport = t2187; // set! with-output-to-port
+ var t2193 = function(K) {
+ SPOCK.count(arguments, '%close-port');
+ var port = arguments[ 1 ];
+ port.close();
+ port.closed = true;
+ return K(port);
+ };
+ ____25close_2dport = t2193; // set! %close-port
+ var t2194 = function(K) {
+ SPOCK.count(arguments, 'open-input-file');
+ var fn = SPOCK.check(arguments[ 1 ], 'string', 'open-input-file');
+ return K(SPOCK.openInputFile(fn));
+ };
+ ___open_2dinput_2dfile = t2194; // set! open-input-file
+ var t2195 = function(K) {
+ SPOCK.count(arguments, 'open-output-file');
+ var fn = SPOCK.check(arguments[ 1 ], 'string', 'open-input-file');
+ var exp = null;
+ if(arguments.length === 3)
+ exp = SPOCK.check(arguments[ 2 ], 'number', 'open-input-file');
+ return K(SPOCK.openOutputFile(fn, exp));
+ };
+ ___open_2doutput_2dfile = t2195; // set! open-output-file
+ var t2196 = function (k1253, t694) { // close-input-port
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t695 = t694;
+ return ____25close_2dport(k1253, t695);
+ };
+ ___close_2dinput_2dport = t2196; // set! close-input-port
+ var t2198 = function (k1254, t699) { // close-output-port
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t700 = t699;
+ return ____25close_2dport(k1254, t700);
+ };
+ ___close_2doutput_2dport = t2198; // set! close-output-port
+ var t705 = ___open_2dinput_2dfile;
+ var t2200 = function (k1255, t708, t709) { // t705
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2201 = function (t1256) {
+ var t710 = t1256;
+ var t2202 = function (k1257) {
+ return t709(k1257, t710);
+ };
+ var t2204 = function (k1258) {
+ return ___close_2dinput_2dport(k1258, t710);
+ };
+ return ____25call_2dwith_2dsaved_2dvalues(k1255, t2202, t2204);
+ };
+ return t705(t2201, t708);
+ };
+ ___call_2dwith_2dinput_2dfile = t2200; // set! call-with-input-file
+ var t712 = ___open_2doutput_2dfile;
+ var t2208 = function (k1259, t715, t716) { // t712
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2209 = function (t1260) {
+ var t717 = t1260;
+ var t2210 = function (k1261) {
+ return t716(k1261, t717);
+ };
+ var t2212 = function (k1262) {
+ return ___close_2doutput_2dport(k1262, t717);
+ };
+ return ____25call_2dwith_2dsaved_2dvalues(k1259, t2210, t2212);
+ };
+ return t712(t2209, t715);
+ };
+ ___call_2dwith_2doutput_2dfile = t2208; // set! call-with-output-file
+ var t718 = ___with_2dinput_2dfrom_2dport;
+ var t719 = ___open_2dinput_2dfile;
+ var t723 = ___close_2dinput_2dport;
+ var t2216 = function (k1263, t724, t725) { // t723
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2217 = function (t1264) {
+ var t726 = t1264;
+ var t2218 = function (k1265) {
+ var t2219 = function (k1266) {
+ return t723(k1266, t726);
+ };
+ return ____25call_2dwith_2dsaved_2dvalues(k1265, t725, t2219);
+ };
+ return t718(k1263, t726, t2218);
+ };
+ return t719(t2217, t724);
+ };
+ ___with_2dinput_2dfrom_2dfile = t2216; // set! with-input-from-file
+ var t727 = ___with_2doutput_2dto_2dport;
+ var t728 = ___open_2doutput_2dfile;
+ var t732 = ___close_2doutput_2dport;
+ var t2224 = function (k1267, t733, t734) { // t732
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2225 = function (t1268) {
+ var t735 = t1268;
+ var t2226 = function (k1269) {
+ var t2227 = function (k1270) {
+ return t732(k1270, t735);
+ };
+ return ____25call_2dwith_2dsaved_2dvalues(k1269, t734, t2227);
+ };
+ return t727(k1267, t735, t2226);
+ };
+ return t728(t2225, t733);
+ };
+ ___with_2doutput_2dto_2dfile = t2224; // set! with-output-to-file
+ var t2232 = function (k1271, t736) { // open-input-string
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t737 = undefined;
+ var t2233 = function(K) {
+ SPOCK.count(arguments, 't737');
+ var buffer = arguments[ 1 ];
+ var pos = 0;
+ var len = buffer.length;
+ function read(n) {
+ if(pos >= len) return SPOCK.EOF;
+ var str = buffer.substring(pos, pos + n);
+ pos += n;
+ return str;}
+ return K(new SPOCK.Port('input', { read: read }));
+ };
+ t737 = t2233; // set! t737
+ var t2234 = SPOCK.jstring(t736);
+ return t737(k1271, t2234);
+ };
+ ___open_2dinput_2dstring = t2232; // set! open-input-string
+ var t2236 = function(K) {
+ SPOCK.count(arguments, 'open-output-string');
+ var buffer = [];
+ function write(s) { buffer.push(s); }
+ var port = new SPOCK.Port('output', { write: write });
+ port.buffer = buffer;
+ port.isStringPort = true;
+ return K(port);
+ };
+ ___open_2doutput_2dstring = t2236; // set! open-output-string
+ var t2237 = function (k1272, t739) { // get-output-string
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t2238 = t739.isStringPort;
+ var t742 = t2238;
+ var t2239 = t742 === undefined;
+ var t741 = t2239;
+ var t2240;
+ if(t741 !== false) {
+ t2240 = false;
+ }
+ else {
+ t2240 = true;
+ }
+ var t1048 = t2240;
+ var t2241;
+ if(t1048 !== false) {
+ var t2243 = t739.buffer;
+ var t2242 = t2243.join("");
+ var t744 = t2242;
+ var t2244 = new SPOCK.String(t744);
+ var t743 = t2244;
+ var t2245 = (t739) .buffer = [] ;
+ t2241 = t743;
+ }
+ else {
+ var t2246 = SPOCK.error("bad argument type - not a string port", t739);
+ t2241 = t2246;
+ }
+ return k1272(t2241);
+ }
+ };
+ ___get_2doutput_2dstring = t2237; // set! get-output-string
+ var t2248 = function (k1273, t745, t746) { // with-input-from-string
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2249 = function (t1274) {
+ var t747 = t1274;
+ return ___with_2dinput_2dfrom_2dport(k1273, t747, t746);
+ };
+ return ___open_2dinput_2dstring(t2249, t745);
+ };
+ ___with_2dinput_2dfrom_2dstring = t2248; // set! with-input-from-string
+ var t2252 = function (k1275, t748) { // with-output-to-string
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2253 = function (t1276) {
+ var t749 = t1276;
+ var t2254 = function (t1277) {
+ return ___get_2doutput_2dstring(k1275, t749);
+ };
+ return ___with_2doutput_2dto_2dport(t2254, t749, t748);
+ };
+ return ___open_2doutput_2dstring(t2253);
+ };
+ ___with_2doutput_2dto_2dstring = t2252; // set! with-output-to-string
+ var t750 = ___read_2dchar;
+ var t751 = ___reverse;
+ var t752 = ___peek_2dchar;
+ var t753 = ___list_2d_3evector;
+ var t754 = ___list_2d_3estring;
+ var t2258 = function (k1278) { // t755
+ loop: while(true) {
+ return k1278(SPOCK.stdin);
+ }
+ };
+ var t755 = t2258;
+ var t756 = ___string_2d_3enumber;
+ var t2260 = function (k1279, t757) { // t756
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2261 = t757 === undefined;
+ var t1049 = t2261;
+ var t2262 = function (t1280) { // t1337
+ var t758 = t1280;
+ var t760 = undefined;
+ var t761 = undefined;
+ var t762 = undefined;
+ var t763 = undefined;
+ var t764 = undefined;
+ var t765 = undefined;
+ var t766 = undefined;
+ var t767 = undefined;
+ var t2263 = function (k1281, t768) { // t760
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2264 = function (t1282) {
+ var t769 = t1282;
+ var t2265;
+ if(t769 !== false) {
+ return k1281(t769);
+ }
+ else {
+ return ___string_2d_3esymbol(k1281, t768);
+ }
+ };
+ return t756(t2264, t768);
+ };
+ t760 = t2263; // set! t760
+ var t2269 = function (k1283) { // t761
+ var t2270 = function (t1284) {
+ var t770 = t1284;
+ var t773 = SPOCK.EOF;
+ var t2271 = (t770) === (t773);
+ var t1050 = t2271;
+ var t2272;
+ if(t1050 !== false) {
+ return k1283(t770);
+ }
+ else {
+ var t774 = t770;
+ var t2276 = new SPOCK.Char("#");
+ var t2275 = SPOCK.eqvp(t770, t2276);
+ var t1051 = t2275;
+ var t2277;
+ if(t1051 !== false) {
+ t2277 = true;
+ }
+ else {
+ t2277 = false;
+ }
+ var t2274;
+ if(t2277 !== false) {
+ return t764(k1283);
+ }
+ else {
+ var t2281 = new SPOCK.Char("(");
+ var t2280 = SPOCK.eqvp(t774, t2281);
+ var t1052 = t2280;
+ var t2282;
+ if(t1052 !== false) {
+ t2282 = true;
+ }
+ else {
+ t2282 = false;
+ }
+ var t2279;
+ if(t2282 !== false) {
+ var t2283 = new SPOCK.Char(")");
+ return t765(k1283, t2283);
+ }
+ else {
+ var t2287 = new SPOCK.Char("[");
+ var t2286 = SPOCK.eqvp(t774, t2287);
+ var t1053 = t2286;
+ var t2288;
+ if(t1053 !== false) {
+ t2288 = true;
+ }
+ else {
+ t2288 = false;
+ }
+ var t2285;
+ if(t2288 !== false) {
+ var t2289 = new SPOCK.Char("]");
+ return t765(k1283, t2289);
+ }
+ else {
+ var t2293 = new SPOCK.Char("{");
+ var t2292 = SPOCK.eqvp(t774, t2293);
+ var t1054 = t2292;
+ var t2294;
+ if(t1054 !== false) {
+ t2294 = true;
+ }
+ else {
+ t2294 = false;
+ }
+ var t2291;
+ if(t2294 !== false) {
+ var t2295 = new SPOCK.Char("}");
+ return t765(k1283, t2295);
+ }
+ else {
+ var t2299 = new SPOCK.Char(",");
+ var t2298 = SPOCK.eqvp(t774, t2299);
+ var t1055 = t2298;
+ var t2300;
+ if(t1055 !== false) {
+ t2300 = true;
+ }
+ else {
+ t2300 = false;
+ }
+ var t2297;
+ if(t2300 !== false) {
+ var t2301 = function (t1285) {
+ var t785 = t1285;
+ var t2303 = new SPOCK.Char("@");
+ var t2302 = SPOCK.eqvp(t785, t2303);
+ var t1056 = t2302;
+ var t2304;
+ if(t1056 !== false) {
+ var t2305 = function (t1287) {
+ var t2306 = function (t1286) {
+ var t787 = t1286;
+ return k1283(t787);
+ };
+ var t2308 = SPOCK.intern("unquote-splicing");
+ return ____25list(t2306, t2308, t1287);
+ };
+ return t761(t2305);
+ }
+ else {
+ var t2311 = function (t1289) {
+ var t2312 = function (t1288) {
+ var t788 = t1288;
+ return k1283(t788);
+ };
+ var t2314 = SPOCK.intern("unquote");
+ return ____25list(t2312, t2314, t1289);
+ };
+ return t761(t2311);
+ }
+ };
+ return t752(t2301, t758);
+ }
+ else {
+ var t2320 = new SPOCK.Char("`");
+ var t2319 = SPOCK.eqvp(t774, t2320);
+ var t1057 = t2319;
+ var t2321;
+ if(t1057 !== false) {
+ t2321 = true;
+ }
+ else {
+ t2321 = false;
+ }
+ var t2318;
+ if(t2321 !== false) {
+ var t2322 = function (t1291) {
+ var t2323 = function (t1290) {
+ var t791 = t1290;
+ return k1283(t791);
+ };
+ var t2325 = SPOCK.intern("quasiquote");
+ return ____25list(t2323, t2325, t1291);
+ };
+ return t761(t2322);
+ }
+ else {
+ var t2330 = new SPOCK.Char("'");
+ var t2329 = SPOCK.eqvp(t774, t2330);
+ var t1058 = t2329;
+ var t2331;
+ if(t1058 !== false) {
+ t2331 = true;
+ }
+ else {
+ t2331 = false;
+ }
+ var t2328;
+ if(t2331 !== false) {
+ var t2332 = function (t1293) {
+ var t2333 = function (t1292) {
+ var t794 = t1292;
+ return k1283(t794);
+ };
+ var t2335 = SPOCK.intern("quote");
+ return ____25list(t2333, t2335, t1293);
+ };
+ return t761(t2332);
+ }
+ else {
+ var t2340 = new SPOCK.Char(";");
+ var t2339 = SPOCK.eqvp(t774, t2340);
+ var t1059 = t2339;
+ var t2341;
+ if(t1059 !== false) {
+ t2341 = true;
+ }
+ else {
+ t2341 = false;
+ }
+ var t2338;
+ if(t2341 !== false) {
+ var t2342 = function (t1294) {
+ return t761(k1283);
+ };
+ return t762(t2342);
+ }
+ else {
+ var t2347 = new SPOCK.Char("\"");
+ var t2346 = SPOCK.eqvp(t774, t2347);
+ var t1060 = t2346;
+ var t2348;
+ if(t1060 !== false) {
+ t2348 = true;
+ }
+ else {
+ t2348 = false;
+ }
+ var t2345;
+ if(t2348 !== false) {
+ return t766(k1283);
+ }
+ else {
+ var t2352 = new SPOCK.Char(")");
+ var t2351 = SPOCK.eqvp(t774, t2352);
+ var t1061 = t2351;
+ var t2353;
+ if(t1061 !== false) {
+ t2353 = true;
+ }
+ else {
+ var t2355 = new SPOCK.Char("]");
+ var t2354 = SPOCK.eqvp(t774, t2355);
+ var t1062 = t2354;
+ var t2356;
+ if(t1062 !== false) {
+ t2356 = true;
+ }
+ else {
+ var t2358 = new SPOCK.Char("}");
+ var t2357 = SPOCK.eqvp(t774, t2358);
+ var t1063 = t2357;
+ var t2359;
+ if(t1063 !== false) {
+ t2359 = true;
+ }
+ else {
+ t2359 = false;
+ }
+ t2356 = t2359;
+ }
+ t2353 = t2356;
+ }
+ var t2350;
+ if(t2353 !== false) {
+ return ____25error(k1283, "unexpected delimiter", t770);
+ }
+ else {
+ var t2361 = (t770) .character.match(/^\s$/) ;
+ var t807 = t2361;
+ var t2363 = null;
+ var t2362 = (t807) === (t2363);
+ var t806 = t2362;
+ var t2364;
+ if(t806 !== false) {
+ t2364 = false;
+ }
+ else {
+ t2364 = true;
+ }
+ var t1064 = t2364;
+ var t2365;
+ if(t1064 !== false) {
+ return t761(k1283);
+ }
+ else {
+ var t2367 = function (t1297) {
+ var t810 = t1297;
+ var t1296 = t810;
+ var t2368 = function (t1295) {
+ return t760(k1283, t1295);
+ };
+ return t767(t2368, t1296);
+ };
+ return ____25list(t2367, t770);
+ }
+ t2350 = t2365;
+ }
+ t2345 = t2350;
+ }
+ t2338 = t2345;
+ }
+ t2328 = t2338;
+ }
+ t2318 = t2328;
+ }
+ t2297 = t2318;
+ }
+ t2291 = t2297;
+ }
+ t2285 = t2291;
+ }
+ t2279 = t2285;
+ }
+ t2274 = t2279;
+ }
+ t2272 = t2274;
+ }
+ };
+ return t750(t2270, t758);
+ };
+ t761 = t2269; // set! t761
+ var t2373 = function (k1298) { // t762
+ var t2374 = function (t1299) {
+ var t811 = t1299;
+ var t816 = SPOCK.EOF;
+ var t2375 = (t811) === (t816);
+ var t813 = t2375;
+ var t2376;
+ if(t813 !== false) {
+ t2376 = t813;
+ }
+ else {
+ var t2378 = new SPOCK.Char("\n");
+ var t2377 = t2378.character;
+ var t819 = t2377;
+ var t2379 = t811.character;
+ var t820 = t2379;
+ var t2380 = (t819) === (t820);
+ t2376 = t2380;
+ }
+ var t812 = t2376;
+ var t2381;
+ if(t812 !== false) {
+ t2381 = false;
+ }
+ else {
+ t2381 = true;
+ }
+ var t1065 = t2381;
+ var t2382;
+ if(t1065 !== false) {
+ return t762(k1298);
+ }
+ else {
+ return k1298(undefined);
+ }
+ };
+ return t750(t2374, t758);
+ };
+ t762 = t2373; // set! t762
+ var t2386 = function (k1300) { // t763
+ var t2387 = function (t1301) {
+ var t821 = t1301;
+ var t2388 = (t821) .character.match(/^\s$/) ;
+ var t824 = t2388;
+ var t2390 = null;
+ var t2389 = (t824) === (t2390);
+ var t823 = t2389;
+ var t2391;
+ if(t823 !== false) {
+ t2391 = false;
+ }
+ else {
+ t2391 = true;
+ }
+ var t1066 = t2391;
+ var t2392;
+ if(t1066 !== false) {
+ var t2393 = function (t1302) {
+ return t763(k1300);
+ };
+ return t750(t2393, t758);
+ }
+ else {
+ return k1300(t821);
+ }
+ };
+ return t752(t2387, t758);
+ };
+ t763 = t2386; // set! t763
+ var t2398 = function (k1303) { // t764
+ var t2399 = function (t1304) {
+ var t827 = t1304;
+ var t830 = SPOCK.EOF;
+ var t2400 = (t827) === (t830);
+ var t1067 = t2400;
+ var t2401;
+ if(t1067 !== false) {
+ return ____25error(k1303, "unexpected EOF after `#'");
+ }
+ else {
+ var t831 = t827;
+ var t2405 = new SPOCK.Char("t");
+ var t2404 = SPOCK.eqvp(t827, t2405);
+ var t1068 = t2404;
+ var t2406;
+ if(t1068 !== false) {
+ t2406 = true;
+ }
+ else {
+ var t2408 = new SPOCK.Char("T");
+ var t2407 = SPOCK.eqvp(t827, t2408);
+ var t1069 = t2407;
+ var t2409;
+ if(t1069 !== false) {
+ t2409 = true;
+ }
+ else {
+ t2409 = false;
+ }
+ t2406 = t2409;
+ }
+ var t2403;
+ if(t2406 !== false) {
+ return k1303(true);
+ }
+ else {
+ var t2413 = new SPOCK.Char("f");
+ var t2412 = SPOCK.eqvp(t827, t2413);
+ var t1070 = t2412;
+ var t2414;
+ if(t1070 !== false) {
+ t2414 = true;
+ }
+ else {
+ var t2416 = new SPOCK.Char("F");
+ var t2415 = SPOCK.eqvp(t827, t2416);
+ var t1071 = t2415;
+ var t2417;
+ if(t1071 !== false) {
+ t2417 = true;
+ }
+ else {
+ t2417 = false;
+ }
+ t2414 = t2417;
+ }
+ var t2411;
+ if(t2414 !== false) {
+ return k1303(false);
+ }
+ else {
+ var t2421 = new SPOCK.Char("(");
+ var t2420 = SPOCK.eqvp(t827, t2421);
+ var t1072 = t2420;
+ var t2422;
+ if(t1072 !== false) {
+ t2422 = true;
+ }
+ else {
+ t2422 = false;
+ }
+ var t2419;
+ if(t2422 !== false) {
+ var t2423 = function (t1305) {
+ return t753(k1303, t1305);
+ };
+ var t2425 = new SPOCK.Char(")");
+ return t765(t2423, t2425);
+ }
+ else {
+ var t2429 = new SPOCK.Char("%");
+ var t2428 = SPOCK.eqvp(t831, t2429);
+ var t1073 = t2428;
+ var t2430;
+ if(t1073 !== false) {
+ t2430 = true;
+ }
+ else {
+ var t2432 = new SPOCK.Char("!");
+ var t2431 = SPOCK.eqvp(t831, t2432);
+ var t1074 = t2431;
+ var t2433;
+ if(t1074 !== false) {
+ t2433 = true;
+ }
+ else {
+ t2433 = false;
+ }
+ t2430 = t2433;
+ }
+ var t2427;
+ if(t2430 !== false) {
+ var t2434 = function (t1308) {
+ var t846 = t1308;
+ var t1307 = t846;
+ var t2435 = function (t1306) {
+ return ___string_2d_3esymbol(k1303, t1306);
+ };
+ return t767(t2435, t1307);
+ };
+ var t2438 = new SPOCK.Char("#");
+ return ____25list(t2434, t827, t2438);
+ }
+ else {
+ var t2442 = new SPOCK.Char("\\");
+ var t2441 = SPOCK.eqvp(t831, t2442);
+ var t1075 = t2441;
+ var t2443;
+ if(t1075 !== false) {
+ t2443 = true;
+ }
+ else {
+ t2443 = false;
+ }
+ var t2440;
+ if(t2443 !== false) {
+ var t2444 = function (t1309) {
+ var t849 = t1309;
+ var t2446 = SPOCK.jstring("newline");
+ var t2445 = t2446.toLowerCase();
+ var t852 = t2445;
+ var t2448 = SPOCK.jstring(t849);
+ var t2447 = t2448.toLowerCase();
+ var t853 = t2447;
+ var t2449 = (t852) === (t853);
+ var t1076 = t2449;
+ var t2450;
+ if(t1076 !== false) {
+ var t2451 = new SPOCK.Char("\n");
+ return k1303(t2451);
+ }
+ else {
+ var t2454 = SPOCK.jstring("tab");
+ var t2453 = t2454.toLowerCase();
+ var t858 = t2453;
+ var t2456 = SPOCK.jstring(t849);
+ var t2455 = t2456.toLowerCase();
+ var t859 = t2455;
+ var t2457 = (t858) === (t859);
+ var t1077 = t2457;
+ var t2458;
+ if(t1077 !== false) {
+ var t2459 = new SPOCK.Char("\t");
+ return k1303(t2459);
+ }
+ else {
+ var t2462 = SPOCK.jstring("space");
+ var t2461 = t2462.toLowerCase();
+ var t864 = t2461;
+ var t2464 = SPOCK.jstring(t849);
+ var t2463 = t2464.toLowerCase();
+ var t865 = t2463;
+ var t2465 = (t864) === (t865);
+ var t1078 = t2465;
+ var t2466;
+ if(t1078 !== false) {
+ var t2467 = new SPOCK.Char(" ");
+ return k1303(t2467);
+ }
+ else {
+ var t2470 = SPOCK.jstring(t849);
+ var t2469 = t2470.length;
+ var t868 = t2469;
+ var t2471 = (0) === (t868);
+ var t1079 = t2471;
+ var t2472;
+ if(t1079 !== false) {
+ return ____25error(k1303, "invalid character syntax");
+ }
+ else {
+ return ___string_2dref(k1303, t849, 0);
+ }
+ t2466 = t2472;
+ }
+ t2458 = t2466;
+ }
+ t2450 = t2458;
+ }
+ };
+ var t2475 = null;
+ return t767(t2444, t2475);
+ }
+ else {
+ return ____25error(k1303, "invalid `#' syntax", t827);
+ }
+ t2427 = t2440;
+ }
+ t2419 = t2427;
+ }
+ t2411 = t2419;
+ }
+ t2403 = t2411;
+ }
+ t2401 = t2403;
+ }
+ };
+ return t750(t2399, t758);
+ };
+ t764 = t2398; // set! t764
+ var t2479 = function (k1310, t873) { // t765
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t874 = undefined;
+ var t2480 = function (k1311, t875) { // t874
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2481 = function (t1312) {
+ var t876 = t1312;
+ var t879 = SPOCK.EOF;
+ var t2482 = (t876) === (t879);
+ var t1080 = t2482;
+ var t2483;
+ if(t1080 !== false) {
+ return ____25error(k1311, "unexpected EOF while reading list");
+ }
+ else {
+ var t881 = t873;
+ var t2485 = t876.character;
+ var t882 = t2485;
+ var t2486 = t881.character;
+ var t883 = t2486;
+ var t2487 = (t882) === (t883);
+ var t1081 = t2487;
+ var t2488;
+ if(t1081 !== false) {
+ var t2489 = function (t1313) {
+ return t751(k1311, t875);
+ };
+ return t750(t2489, t758);
+ }
+ else {
+ var t2493 = new SPOCK.Char(".");
+ var t2492 = SPOCK.eqvp(t2493, t876);
+ var t1082 = t2492;
+ var t2494;
+ if(t1082 !== false) {
+ var t2495 = function (t1314) {
+ var t886 = t1314;
+ var t2496 = SPOCK.jstring(".");
+ var t889 = t2496;
+ var t2497 = SPOCK.jstring(t886);
+ var t890 = t2497;
+ var t2498 = (t889) === (t890);
+ var t1083 = t2498;
+ var t2499;
+ if(t1083 !== false) {
+ var t2500 = function (t1315) {
+ var t893 = t1315;
+ var t2501 = function (t1316) {
+ var t2502 = function (t1317) {
+ var t894 = t1317;
+ var t895 = t873;
+ var t2503 = SPOCK.eqvp(t894, t895);
+ var t1084 = t2503;
+ var t2504;
+ if(t1084 !== false) {
+ var t2505 = function (t1318) {
+ return ___append(k1311, t1318, t893);
+ };
+ return t751(t2505, t875);
+ }
+ else {
+ return ____25error(k1311, "missing closing delimiter", t873);
+ }
+ };
+ return t750(t2502, t758);
+ };
+ return t763(t2501);
+ };
+ return t761(t2500);
+ }
+ else {
+ var t2512 = function (t1320) {
+ var t896 = t1320;
+ var t2513 = new SPOCK.Pair(t896, undefined);
+ var t1319 = t2513;
+ return t874(k1311, t1319, t875);
+ };
+ return t760(t2512, t886);
+ }
+ };
+ var t2516 = null;
+ return t767(t2495, t2516);
+ }
+ else {
+ var t2518 = function (t1322) {
+ var t898 = t1322;
+ var t2519 = new SPOCK.Pair(t898, t875);
+ var t1321 = t2519;
+ return t874(k1311, t1321);
+ };
+ return t761(t2518);
+ }
+ t2488 = t2494;
+ }
+ t2483 = t2488;
+ }
+ };
+ return t763(t2481);
+ };
+ t874 = t2480; // set! t874
+ var t2523 = null;
+ return t874(k1310, t2523);
+ };
+ t765 = t2479; // set! t765
+ var t2525 = function (k1323) { // t766
+ var t900 = undefined;
+ var t2526 = function (k1324, t901) { // t900
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2527 = function (t1325) {
+ var t902 = t1325;
+ var t905 = SPOCK.EOF;
+ var t2528 = (t902) === (t905);
+ var t1085 = t2528;
+ var t2529;
+ if(t1085 !== false) {
+ return ____25error(k1324, "unexpected EOF while reading string");
+ }
+ else {
+ var t2532 = new SPOCK.Char("\"");
+ var t2531 = t2532.character;
+ var t908 = t2531;
+ var t2533 = t902.character;
+ var t909 = t2533;
+ var t2534 = (t908) === (t909);
+ var t1086 = t2534;
+ var t2535;
+ if(t1086 !== false) {
+ var t2536 = function (t1326) {
+ return t754(k1324, t1326);
+ };
+ return t751(t2536, t901);
+ }
+ else {
+ var t2540 = new SPOCK.Char("\\");
+ var t2539 = t2540.character;
+ var t912 = t2539;
+ var t2541 = t902.character;
+ var t913 = t2541;
+ var t2542 = (t912) === (t913);
+ var t1087 = t2542;
+ var t2543;
+ if(t1087 !== false) {
+ var t2544 = function (t1327) {
+ var t914 = t1327;
+ var t917 = SPOCK.EOF;
+ var t2545 = (t914) === (t917);
+ var t1088 = t2545;
+ var t2546;
+ if(t1088 !== false) {
+ return ____25error(k1324, "unexpected EOF while reading string");
+ }
+ else {
+ var t2550 = new SPOCK.Char("n");
+ var t2549 = SPOCK.eqvp(t914, t2550);
+ var t1089 = t2549;
+ var t2551;
+ if(t1089 !== false) {
+ t2551 = true;
+ }
+ else {
+ t2551 = false;
+ }
+ var t2548;
+ if(t2551 !== false) {
+ var t2553 = new SPOCK.Char("\n");
+ var t2552 = new SPOCK.Pair(t2553, t901);
+ return t900(k1324, t2552);
+ }
+ else {
+ var t2557 = new SPOCK.Char("t");
+ var t2556 = SPOCK.eqvp(t914, t2557);
+ var t1090 = t2556;
+ var t2558;
+ if(t1090 !== false) {
+ t2558 = true;
+ }
+ else {
+ t2558 = false;
+ }
+ var t2555;
+ if(t2558 !== false) {
+ var t2560 = new SPOCK.Char("\t");
+ var t2559 = new SPOCK.Pair(t2560, t901);
+ return t900(k1324, t2559);
+ }
+ else {
+ var t2562 = new SPOCK.Pair(t914, t901);
+ return t900(k1324, t2562);
+ }
+ t2548 = t2555;
+ }
+ t2546 = t2548;
+ }
+ };
+ return t750(t2544, t758);
+ }
+ else {
+ var t2565 = new SPOCK.Pair(t902, t901);
+ return t900(k1324, t2565);
+ }
+ t2535 = t2543;
+ }
+ t2529 = t2535;
+ }
+ };
+ return t750(t2527, t758);
+ };
+ t900 = t2526; // set! t900
+ var t2568 = null;
+ return t900(k1323, t2568);
+ };
+ t766 = t2525; // set! t766
+ var t2570 = function (k1328, t931) { // t767
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t932 = undefined;
+ var t2571 = function (k1329, t933) { // t932
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2572 = function (t1330) {
+ var t934 = t1330;
+ var t938 = SPOCK.EOF;
+ var t2573 = (t934) === (t938);
+ var t935 = t2573;
+ var t2574 = function (t1331) { // t1335
+ var t1091 = t1331;
+ var t2575;
+ if(t1091 !== false) {
+ var t2576 = function (t1332) {
+ return t754(k1329, t1332);
+ };
+ return t751(t2576, t933);
+ }
+ else {
+ var t2579 = function (t1334) {
+ var t945 = t1334;
+ var t2580 = new SPOCK.Pair(t945, t933);
+ var t1333 = t2580;
+ return t932(k1329, t1333);
+ };
+ return t750(t2579, t758);
+ }
+ };
+ var t1335 = t2574;
+ var t2583;
+ if(t935 !== false) {
+ return t1335(t935);
+ }
+ else {
+ var t2585 = function (t1336) {
+ var t939 = t1336;
+ var t2586;
+ if(t939 !== false) {
+ t2586 = t939;
+ }
+ else {
+ var t2587 = (t934) .character.match(/^\s$/) ;
+ var t942 = t2587;
+ var t2589 = null;
+ var t2588 = (t942) === (t2589);
+ var t941 = t2588;
+ var t2590;
+ if(t941 !== false) {
+ t2590 = false;
+ }
+ else {
+ t2590 = true;
+ }
+ t2586 = t2590;
+ }
+ return t1335(t2586);
+ };
+ var t2592 = new SPOCK.Pair(new SPOCK.Char("{"), new SPOCK.Pair(new SPOCK.Char("}"), new SPOCK.Pair(new SPOCK.Char("("), new SPOCK.Pair(new SPOCK.Char(")"), new SPOCK.Pair(new SPOCK.Char("["), new SPOCK.Pair(new SPOCK.Char("]"), new SPOCK.Pair(new SPOCK.Char(";"), new SPOCK.Pair(new SPOCK.Char("\""), null))))))));
+ return ___memv(t2585, t934, t2592);
+ }
+ };
+ return t752(t2572, t758);
+ };
+ t932 = t2571; // set! t932
+ return t932(k1328, t931);
+ };
+ t767 = t2570; // set! t767
+ return t761(k1279);
+ };
+ var t1337 = t2262;
+ var t2597;
+ if(t1049 !== false) {
+ return t755(t1337);
+ }
+ else {
+ return t1337(t757);
+ }
+ };
+ ___read = t2260; // set! read
+ var t2600 = function (k1338, t947, t948) { // load
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t2602 = SPOCK.jstring(t947);
+ var t2603 = t948 === undefined;
+ var t950 = t2603;
+ var t2604;
+ if(t950 !== false) {
+ t2604 = false;
+ }
+ else {
+ t2604 = true;
+ }
+ var t1092 = t2604;
+ var t2605;
+ if(t1092 !== false) {
+ var t2606 = SPOCK.callback(t948);
+ t2605 = t2606;
+ }
+ else {
+ t2605 = false;
+ }
+ var t2601 = SPOCK.load(t2602, t2605);
+ return k1338(t2601);
+ }
+ };
+ ___load = t2600; // set! load
+ var t2608 = function(K) {
+ SPOCK.count(arguments, '%error');
+ SPOCK.error.apply(SPOCK.global, Array.prototype.slice.call(arguments, 1));
+ };
+ ____25error = t2608; // set! %error
+ ___error = ____25error; // set! error
+ var t2609 = function (k1339, t952) { // exit
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ var t2611 = t952 === undefined;
+ var t1093 = t2611;
+ var t2612;
+ if(t1093 !== false) {
+ t2612 = 0;
+ }
+ else {
+ t2612 = t952;
+ }
+ var t2610 = SPOCK.exit(t2612);
+ return k1339(t2610);
+ }
+ };
+ ___exit = t2609; // set! exit
+ var t2614 = function (k1340, t954) { // milliseconds
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2615 = (new Date()).getTime();
+ var t955 = t2615;
+ var t2616 = t954 === undefined;
+ var t1094 = t2616;
+ var t2617;
+ if(t1094 !== false) {
+ return k1340(t955);
+ }
+ else {
+ var t2619 = function (t1341) {
+ var t2620 = (new Date()).getTime();
+ var t958 = t2620;
+ var t2621 = (t958) - (t955);
+ return k1340(t2621);
+ };
+ return t954(t2619);
+ }
+ };
+ ___milliseconds = t2614; // set! milliseconds
+ var t2624 = function (k1342, t959) { // print
+ var t959 = SPOCK.rest(arguments, 1);
+ var t2625 = function (t1343) {
+ return ___newline(k1342);
+ };
+ return ___for_2deach(t2625, ___display, t959);
+ };
+ ___print = t2624; // set! print
+ var t2628 = function (k1344, t960) { // o
+ var t960 = SPOCK.rest(arguments, 1);
+ var t2630 = null;
+ var t2629 = (t960) === (t2630);
+ var t1095 = t2629;
+ var t2631;
+ if(t1095 !== false) {
+ var t2632 = function (k1345, t964) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ loop: while(true) {
+ return k1345(t964);
+ }
+ };
+ return k1344(t2632);
+ }
+ else {
+ var t965 = undefined;
+ var t2635 = function (k1346, t966) { // t965
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2636 = t966.car;
+ var t967 = t2636;
+ var t2637 = t966.cdr;
+ var t968 = t2637;
+ var t2639 = null;
+ var t2638 = (t968) === (t2639);
+ var t1096 = t2638;
+ var t2640;
+ if(t1096 !== false) {
+ t2640 = t967;
+ }
+ else {
+ var t2641 = function (k1347, t974) {
+ var r = SPOCK.count(arguments);
+ if(r) return r;
+ var t2642 = function (t1349) {
+ var t2643 = function (t1348) {
+ return t967(k1347, t1348);
+ };
+ return t1349(t2643, t974);
+ };
+ return t965(t2642, t968);
+ };
+ t2640 = t2641;
+ }
+ return k1346(t2640);
+ };
+ t965 = t2635; // set! t965
+ return t965(k1344, t960);
+ }
+ };
+ ___o = t2628; // set! o
+ var t2649 = function(K) {
+ SPOCK.count(arguments, '%');
+ var o = {};
+ for(var i = 1; i < arguments.length; i += 2) {
+ var x = arguments[ i ];
+ if(typeof x === 'string') o[ x ] = arguments[ i + 1 ];
+ else if(x instanceof SPOCK.String)
+ o[ x.name ] = arguments[ i + 1 ];
+ else SPOCK.error('(%) object key not a string or symbol', x);}
+ return K(o);
+ };
+ ____25 = t2649; // set! %
+ var t2650 = function(K) {
+ SPOCK.count(arguments, 'native');
+ var func = arguments[ 1 ];
+ return K(function(k) {
+ var args = Array.prototype.splice.call(arguments, 1);
+ return k(func.apply(SPOCK.global, args));});
+ };
+ ___native = t2650; // set! native
+ var t2651 = function(K) {
+ SPOCK.count(arguments, 'native-method');
+ var func = arguments[ 1 ];
+ return K(function(k) {
+ var args = Array.prototype.splice.call(arguments, 2);
+ return k(func.apply(arguments[ 1 ], args));});
+ };
+ ___native_2dmethod = t2651; // set! native-method
+ var t2652 = function(K) {
+ SPOCK.count(arguments, 'bind-method');
+ var func = arguments[ 1 ];
+ var that = arguments[ 2 ];
+ return K(function() { return func.apply(that, arguments); });
+ };
+ ___bind_2dmethod = t2652; // set! bind-method
+ var t2653 = function(K) {
+ SPOCK.count(arguments, 'jstring');
+ var x = arguments[ 1 ];
+ if(typeof x === 'string') return K(x);
+ else if(x instanceof SPOCK.String) return K(x.normalize());
+ else if(x instanceof SPOCK.Char) return K(x.character);
+ else return K(x);
+ };
+ ___jstring = t2653; // set! jstring
+ return k1097(undefined);
+};
+SPOCK.run(t1350);
+SPOCK.flush();
+/* END OF GENERATED CODE */