aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralon@honor <none@none>2010-09-11 15:29:00 -0700
committeralon@honor <none@none>2010-09-11 15:29:00 -0700
commitb91f37774b3215e8d3c67c14ddd1400923dca178 (patch)
treeb1bdda91dd868e7c5c2b023da9991ec82bf21393
parentac805ebf0af3ad7873dbed0f0f28e5f6d481c464 (diff)
cubescript web demo
-rw-r--r--demos/cubescript.html65
-rw-r--r--demos/cubescript.js12783
2 files changed, 12848 insertions, 0 deletions
diff --git a/demos/cubescript.html b/demos/cubescript.html
new file mode 100644
index 00000000..05e4f946
--- /dev/null
+++ b/demos/cubescript.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+ <title>
+ Emscripten: CubeScript
+ </title>
+ <script src="cubescript.js"></script>
+ <script>
+ // print function which the cubescript engine will call
+ function print(text) {
+ document.getElementById('output').innerHTML += text + '<br>';
+ printed = true;
+ }
+
+ function execute(text) {
+ printed = false;
+ executeCS(text);
+ if (!printed) {
+ print('<small><i>(no output)</i></small>');
+ }
+ }
+ </script>
+</head>
+<body onload="document.getElementById('the_input').focus()">
+ <p>
+ This is an <a href="http://emscripten.org">Emscriptened</a> <a href="http://sauerbraten.org/docs/config.html#cubescript">CubeScript</a> engine.
+ The CubeScript engine from <a href="http://sauerbraten.org">Sauerbraten</a>, which is about 2,500 lines of C++, was compiled by
+ <a href="http://llvm.org/cmds/llvmgcc.html">llvm-gcc</a> into <a href="http://llvm.org/">LLVM</a> bitcode,
+ which was translated by Emscripten into JavaScript, which
+ you can run in your browser here. In other words, it's a script engine (for one language, and written in C++) running in another script engine
+ (the JavaScript engine in your browser, which is incidentally also written in C++, most likely).
+ </p>
+ </p>
+ Why? <i>[insert Internet meme joke here]</i> Seriously, though, this is a test of the capabilities of
+ <a href="http://emscripten.org">Emscripten</a>, since the CubeScript engine uses fairly complicated C++ (even stuff like
+ manually copying vtable pointers), and since compiling an actual, complete script engine seems like a useful milestone.
+ Also, it's a potential first step
+ towards bringing <a href="http://www.syntensity.com">Syntensity</a> (which is based on Sauerbraten) to the web.
+ </p>
+ <hr>
+ <p>
+ <b>Instructions</b>: For example, try entering the following commands in the input field below:
+ <ul>
+ <li><div style="font-family: Courier New,Courier,monospace;">echo Hello world</div></li>
+ <li><div style="font-family: Courier New,Courier,monospace;">x = 3 </div> <small><i>(note the spaces around the '=')</i></small></li>
+ <li><div style="font-family: Courier New,Courier,monospace;">echo $x</div></li>
+ <li><div style="font-family: Courier New,Courier,monospace;">echo Another number: (+ $x (* 5 10)) </div><small><i>(note the prefix notation, that is the same as <b>$x + (5*10)</b>)</i></small></li>
+ <li><div style="font-family: Courier New,Courier,monospace;">if (> $x 2) [ echo "x is bigger than 2" ] [ echo "x is not bigger than 2" ]</div></li>
+ </ul>
+ Check out the CubeScript <a href="http://sauerbraten.org/docs/config.html#cubescript">docs</a> or
+ <a href="http://cube.wikispaces.com/Cubescript+Tutorial">tutorial</a>
+ for more (but, they mainly talk about using CubeScript in Sauerbraten itself - much like most
+ JavaScript tutorials talk about using JavaScript in a web browser).
+ </p>
+ <hr>
+ <!-- Call the cubescript engine's execute() function -->
+ <form onsubmit="execute(the_input.value); the_input.value = ''; return false">
+ <b>Enter some CubeScript</b>:
+ <input type="text" id="the_input">
+ <input type="submit" value="execute">
+ </form>
+ <hr>
+ <div id="output" style="font-family: Courier New,Courier,monospace;"></div>
+</body>
+</html>
+
diff --git a/demos/cubescript.js b/demos/cubescript.js
new file mode 100644
index 00000000..2a75e583
--- /dev/null
+++ b/demos/cubescript.js
@@ -0,0 +1,12783 @@
+// License: The original CubeScript code is zlib licensed.
+// The Emscripten code is MIT licensed.
+// So, all of this is permissively licensed.
+
+// Forward requested command to cubescript engine
+function executeCS(cmd) {
+ __Z7executePKc(Pointer_make(intArrayFromString(cmd)));
+}
+
+arguments = []; // Needed since the Emscriptened code expects it
+
+
+
+//===============================================
+// Emscripten-generated code
+//===============================================
+
+
+// === Auto-generated preamble library stuff ===
+
+function __globalConstructor__() {
+}
+
+var __THREW__ = false; // Used in checking for thrown exceptions.
+
+var __ATEXIT__ = [];
+
+var HEAP = intArrayFromString('(null)'); // So printing %s of NULL gives '(null)'
+var HEAPTOP = HEAP.length+1; // Leave 0 as an invalid address, 'NULL'
+
+
+
+function abort(text) {
+ text = "ABORT: " + text;
+ print(text + "\n");
+// print((new Error).stack); // for stack traces
+ print("\n");
+ throw text;
+}
+
+function Pointer_niceify(ptr) {
+// XXX hardcoded ptr impl
+ return { slab: HEAP, pos: ptr };
+// if (!ptr.slab)
+// return { slab: ptr[0], pos: ptr[1] };
+// else
+// return ptr;
+}
+
+function Pointer_make(slab, pos) {
+ pos = pos ? pos : 0;
+// XXX hardcoded ptr impl
+ if (slab === HEAP) return pos;
+ // Flatten out - needed for global consts/vars
+ function flatten(slab) {
+ if (!slab || slab.length === undefined || typeof slab === 'function') return [slab];
+ return slab.map(flatten).reduce(function(a,b) { return a.concat(b) }, []);
+ }
+ var slab = flatten(slab);
+ // Finalize
+ var ret = _malloc(Math.max(slab.length - pos, 1));
+ for (var i = 0; i < slab.length - pos; i++) {
+ HEAP[ret + i] = slab[pos + i];
+ }
+ return ret;
+// return { slab: slab, pos: pos ? pos : 0 };
+}
+
+function Pointer_stringify(ptr) {
+ ptr = Pointer_niceify(ptr);
+
+ var ret = "";
+ var i = 0;
+ var t;
+ while (1) {
+// if ((ptr.pos + i) >= ptr.slab.length) { return "<< Invalid read: " + (ptr.pos+i) + " : " + ptr.slab.length + " >>"; } else {}
+ if ((ptr.pos+i) >= ptr.slab.length) { break; } else {}
+ t = String.fromCharCode(ptr.slab[ptr.pos + i]);
+ if (t == "\0") { break; } else {}
+ ret = ret + t;
+ i = i + 1;
+ }
+ return ret;
+}
+
+function _malloc(size) {
+// XXX hardcoded ptr impl
+ var ret = HEAPTOP;
+ HEAPTOP += size;
+ return ret;
+ // We don't actually do new Array(size) - memory is uninitialized anyhow
+// return Pointer_make([]);
+}
+
+__Znwj = _malloc; // Mangled "new"
+__Znaj = _malloc; // Mangled "new"
+
+function _free(ptr) {
+// XXX hardcoded ptr impl
+ // XXX TODO - actual implementation! Currently we leak it all
+
+ // Nothing needs to be done! But we mark the pointer
+ // as invalid. Note that we should do it for all other
+ // pointers of this slab too.
+// ptr.slab = null;
+// ptr[0] = null;
+}
+
+__ZdlPv = _free; // Mangled "delete"
+__ZdaPv = _free; // Mangled "delete"
+
+// stdio.h
+
+// C-style: we work on ints on the HEAP.
+function __formatString() {
+ var textIndex = arguments[0];
+ var argIndex = 1;
+ var ret = [];
+ var curr = -1;
+ while (curr != 0) {
+ curr = HEAP[textIndex];
+ next = HEAP[textIndex+1];
+ if (curr == '%'.charCodeAt(0) && ['d', 'f'].indexOf(String.fromCharCode(next)) != -1) {
+ String(arguments[argIndex]).split('').forEach(function(chr) {
+ ret.push(chr.charCodeAt(0));
+ });
+ argIndex += 1;
+ textIndex += 2;
+ } else if (curr == '%'.charCodeAt(0) && next == 's'.charCodeAt(0)) {
+ ret = ret.concat(String_copy(arguments[argIndex]));
+ argIndex += 1;
+ textIndex += 2;
+ } else {
+ ret.push(curr);
+ textIndex ++;
+ }
+ }
+ return Pointer_make(ret);
+}
+
+function _printf() {
+ var text = Pointer_stringify(__formatString.apply(null, arguments));
+ // Our print() will print a \n anyhow... remove dupes
+ if (text[text.length-1] == '\n') {
+ text = text.substr(0, text.length-1);
+ }
+ print(text);
+}
+
+function _puts(p) {
+ _printf(p);
+// print("\n"); // XXX print already always adds one
+}
+
+function _putchar(p) {
+ print(String.fromCharCode(p));
+}
+
+function _strlen(p) {
+ // XXX hardcoded ptr impl
+ var q = p;
+ while (HEAP[q] != 0) q++;
+ return q - p;
+// p = Pointer_niceify(p);
+// return p.slab.length; // XXX might want to find the null terminator...
+}
+
+// Copies a list of num items on the HEAP into a
+// a normal JavaScript array of numbers
+function Array_copy(ptr, num) {
+ // XXX hardcoded ptr impl
+ return HEAP.slice(ptr, ptr+num);
+}
+
+// Copies a C-style string, terminated by a zero, from the HEAP into
+// a normal JavaScript array of numbers
+function String_copy(ptr, addZero) {
+ // XXX hardcoded ptr impl
+ return Array_copy(ptr, _strlen(ptr)).concat(addZero ? [0] : []);
+}
+
+// stdlib.h
+
+// Get a pointer, return int value of the string it points to
+function _atoi(s) {
+ return Math.floor(Number(Pointer_stringify(s)));
+}
+
+function _llvm_memcpy_i32(dest, src, num, idunno) {
+// XXX hardcoded ptr impl
+ for (var i = 0; i < num; i++) {
+ HEAP[dest + i] = HEAP[src + i];
+ }
+// dest = Pointer_niceify(dest);
+// src = Pointer_niceify(src);
+// dest.slab = src.slab.slice(src.pos);
+}
+
+// Tools
+// println((new Error).stack); // for stack traces
+
+function println(text) {
+ print(text);// + "\n"); // XXX print already always adds one
+}
+
+function jrint(label, obj) {
+ if (!obj) {
+ obj = label;
+ label = '';
+ } else
+ label = label + ' : ';
+ print(label + JSON.stringify(obj));
+}
+
+// This processes a 'normal' string into a C-line array of numbers.
+// For LLVM-originating strings, see parser.js:parseLLVMString function
+function intArrayFromString(stringy) {
+ var ret = [];
+ var t;
+ var i = 0;
+ while (i < stringy.length) {
+ ret.push(stringy.charCodeAt(i));
+ i = i + 1;
+ }
+ ret.push(0);
+ return ret;
+}
+
+// === Body ===
+
+
+// type: %0
+var _struct___class_type_info_pseudo___FLATTENER = [0];
+// type: %struct.__type_info_pseudo
+// type: %struct.cline
+// type: %"struct.databuf<char>"
+// type: %"struct.hashset<hashtableentry<const char*, ident> >"
+var __struct_hashset_hashtableentry_const_char___ident_____chain____FLATTENER = [0,12];
+var __struct_hashset_hashtableentry_const_char___ident_____chainchunk____FLATTENER = [0,832];
+var __struct_hashtable_const_char__ident_____FLATTENER = [0];
+var __struct_hashtableentry_const_char__ident_____FLATTENER = [0,1];
+var _struct_ident___FLATTENER = [0,1,2,3,4,5,6,7,8,9,10];
+// type: %struct.identstack
+// type: %struct.stringformatter
+// type: %"struct.vector<char*>"
+// type: %"struct.vector<char>"
+// type: %"struct.vector<cline>"
+// type: %"struct.vector<ident*>"
+// type: %"struct.vector<vector<char>*>"
+// type: %union..0._40
+// type: %"union.ident::._34"
+// type: %"union.ident::._35"
+// type: %"union.ident::._36"
+// type: %"union.ident::._37"
+// type: %"union.ident::._38"
+// type: %union.identval
+// type: %union.identvalptr
+this.__defineGetter__("__ZTV5ident", function() { delete __ZTV5ident; __ZTV5ident = Pointer_make([ 0, __ZTI5ident, __ZN5identD1Ev, __ZN5identD0Ev, __ZN5ident7changedEv ], 0); return __ZTV5ident });
+this.__defineGetter__("__ZTI5ident", function() { delete __ZTI5ident; __ZTI5ident = Pointer_make([ [(__ZTVN10__cxxabiv117__class_type_infoE + 8), __ZTS5ident] ], 0); return __ZTI5ident });
+var __ZTVN10__cxxabiv117__class_type_infoE = 0; /* external value? */
+this.__defineGetter__("__ZTS5ident", function() { delete __ZTS5ident; __ZTS5ident = Pointer_make([53,105,100,101,110,116,0] /* 5ident\00*/, 0); return __ZTS5ident });
+this.__defineGetter__("__ZL5state", function() { delete __ZL5state; __ZL5state = Pointer_make([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 0); return __ZL5state });
+this.__defineGetter__("__ZL4left", function() { delete __ZL4left; __ZL4left = Pointer_make([-1], 0); return __ZL4left });
+this.__defineGetter__("_conlines", function() { delete _conlines; _conlines = Pointer_make([0,0,0], 0); return _conlines });
+this.__defineGetter__("__ZL8wordbufs", function() { delete __ZL8wordbufs; __ZL8wordbufs = Pointer_make([0,0,0], 0); return __ZL8wordbufs });
+this.__defineGetter__("_maxcon", function() { delete _maxcon; _maxcon = Pointer_make([0], 0); return _maxcon });
+this.__defineGetter__("__ZZ10parsemacroRPKciR6vectorIcEE5ident", function() { delete __ZZ10parsemacroRPKciR6vectorIcEE5ident; __ZZ10parsemacroRPKciR6vectorIcEE5ident = Pointer_make([0,0,0], 0); return __ZZ10parsemacroRPKciR6vectorIcEE5ident });
+this.__defineGetter__("__ZZ10executeretPKcE6argids", function() { delete __ZZ10executeretPKcE6argids; __ZZ10executeretPKcE6argids = Pointer_make([0,0,0], 0); return __ZZ10executeretPKcE6argids });
+this.__defineGetter__("__ZZ5fatalPKczE6errors", function() { delete __ZZ5fatalPKczE6errors; __ZZ5fatalPKczE6errors = Pointer_make([0], 0); return __ZZ5fatalPKczE6errors });
+this.__defineGetter__("__ZL6retidx", function() { delete __ZL6retidx; __ZL6retidx = Pointer_make([0], 0); return __ZL6retidx });
+this.__defineGetter__("__str", function() { delete __str; __str = Pointer_make([37,46,49,102,0] /* %.1f\00*/, 0); return __str });
+this.__defineGetter__("__str1", function() { delete __str1; __str1 = Pointer_make([37,46,55,103,0] /* %.7g\00*/, 0); return __str1 });
+this.__defineGetter__("__ZL6retbuf", function() { delete __ZL6retbuf; __ZL6retbuf = Pointer_make([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 0); return __ZL6retbuf });
+this.__defineGetter__("__str2", function() { delete __str2; __str2 = Pointer_make([37,100,0] /* %d\00*/, 0); return __str2 });
+this.__defineGetter__("__ZL4next", function() { delete __ZL4next; __ZL4next = Pointer_make([0], 0); return __ZL4next });
+this.__defineGetter__("__ZZN6vectorI5clineE6insertEiRKS0_E5C_237", function() { delete __ZZN6vectorI5clineE6insertEiRKS0_E5C_237; __ZZN6vectorI5clineE6insertEiRKS0_E5C_237 = Pointer_make([0,0,0], 0); return __ZZN6vectorI5clineE6insertEiRKS0_E5C_237 });
+this.__defineGetter__("__str3", function() { delete __str3; __str3 = Pointer_make([0], 0); return __str3 });
+this.__defineGetter__("_totalmillis", function() { delete _totalmillis; _totalmillis = Pointer_make([-1], 0); return _totalmillis });
+this.__defineGetter__("__ZZ8conoutfviPKcPcE3buf", function() { delete __ZZ8conoutfviPKcPcE3buf; __ZZ8conoutfviPKcPcE3buf = Pointer_make([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 0); return __ZZ8conoutfviPKcPcE3buf });
+this.__defineGetter__("__str4", function() { delete __str4; __str4 = Pointer_make([118,97,114,105,97,98,108,101,32,37,115,32,105,115,32,114,101,97,100,45,111,110,108,121,0] /* variable %s is read-only\00*/, 0); return __str4 });
+this.__defineGetter__("_overrideidents", function() { delete _overrideidents; _overrideidents = Pointer_make([0], 0); return _overrideidents });
+this.__defineGetter__("__str5", function() { delete __str5; __str5 = Pointer_make([99,97,110,110,111,116,32,111,118,101,114,114,105,100,101,32,112,101,114,115,105,115,116,101,110,116,32,118,97,114,105,97,98,108,101,32,37,115,0] /* cannot override persistent variable %s\00*/, 0); return __str5 });
+this.__defineGetter__("__str6", function() { delete __str6; __str6 = Pointer_make([118,97,108,105,100,32,114,97,110,103,101,32,102,111,114,32,37,115,32,105,115,32,37,115,46,46,37,115,0] /* valid range for %s is %s..%s\00*/, 0); return __str6 });
+this.__defineGetter__("__str7", function() { delete __str7; __str7 = Pointer_make([118,97,108,105,100,32,114,97,110,103,101,32,102,111,114,32,37,115,32,105,115,32,37,100,46,46,48,120,37,88,0] /* valid range for %s is %d..0x%X\00*/, 0); return __str7 });
+this.__defineGetter__("__str8", function() { delete __str8; __str8 = Pointer_make([118,97,108,105,100,32,114,97,110,103,101,32,102,111,114,32,37,115,32,105,115,32,48,120,37,88,46,46,48,120,37,88,0] /* valid range for %s is 0x%X..0x%X\00*/, 0); return __str8 });
+this.__defineGetter__("__str9", function() { delete __str9; __str9 = Pointer_make([118,97,108,105,100,32,114,97,110,103,101,32,102,111,114,32,37,115,32,105,115,32,37,100,46,46,37,100,0] /* valid range for %s is %d..%d\00*/, 0); return __str9 });
+this.__defineGetter__("__str10", function() { delete __str10; __str10 = Pointer_make([37,115,0] /* %s\00*/, 0); return __str10 });
+this.__defineGetter__("_commandret", function() { delete _commandret; _commandret = Pointer_make([0], 0); return _commandret });
+this.__defineGetter__("_idents", function() { delete _idents; _idents = Pointer_make([0], 0); return _idents });
+this.__defineGetter__("__str11", function() { delete __str11; __str11 = Pointer_make([117,110,107,110,111,119,110,32,97,108,105,97,115,32,108,111,111,107,117,112,58,32,37,115,0] /* unknown alias lookup: %s\00*/, 0); return __str11 });
+this.__defineGetter__("__str12", function() { delete __str12; __str12 = Pointer_make([10,9,32,0] /* \0A\09 \00*/, 0); return __str12 });
+this.__defineGetter__("__str13", function() { delete __str13; __str13 = Pointer_make([34,10,0,0] /* \22\0A\00\00*/, 0); return __str13 });
+this.__defineGetter__("__str14", function() { delete __str14; __str14 = Pointer_make([10,9,32,0,0] /* \0A\09 \00\00*/, 0); return __str14 });
+this.__defineGetter__("__str15", function() { delete __str15; __str15 = Pointer_make([32,0] /* \00*/, 0); return __str15 });
+this.__defineGetter__("_persistidents", function() { delete _persistidents; _persistidents = Pointer_make([1], 0); return _persistidents });
+this.__defineGetter__("__str16", function() { delete __str16; __str16 = Pointer_make([99,97,110,110,111,116,32,114,101,100,101,102,105,110,101,32,98,117,105,108,116,105,110,32,37,115,32,119,105,116,104,32,97,110,32,97,108,105,97,115,0] /* cannot redefine builtin %s with an alias\00*/, 0); return __str16 });
+this.__defineGetter__("__str17", function() { delete __str17; __str17 = Pointer_make([112,117,115,104,0] /* push\00*/, 0); return __str17 });
+this.__defineGetter__("__str18", function() { delete __str18; __str18 = Pointer_make([115,115,0] /* ss\00*/, 0); return __str18 });
+this.__defineGetter__("__ZL12__dummy_push", function() { delete __ZL12__dummy_push; __ZL12__dummy_push = Pointer_make([0], 0); return __ZL12__dummy_push });
+this.__defineGetter__("__str19", function() { delete __str19; __str19 = Pointer_make([112,111,112,0] /* pop\00*/, 0); return __str19 });
+this.__defineGetter__("__str20", function() { delete __str20; __str20 = Pointer_make([115,0] /* s\00*/, 0); return __str20 });
+this.__defineGetter__("__ZL11__dummy_pop", function() { delete __ZL11__dummy_pop; __ZL11__dummy_pop = Pointer_make([0], 0); return __ZL11__dummy_pop });
+this.__defineGetter__("__str21", function() { delete __str21; __str21 = Pointer_make([114,101,115,101,116,118,97,114,0] /* resetvar\00*/, 0); return __str21 });
+this.__defineGetter__("__ZL16__dummy_resetvar", function() { delete __ZL16__dummy_resetvar; __ZL16__dummy_resetvar = Pointer_make([0], 0); return __ZL16__dummy_resetvar });
+this.__defineGetter__("__str22", function() { delete __str22; __str22 = Pointer_make([97,108,105,97,115,0] /* alias\00*/, 0); return __str22 });
+this.__defineGetter__("__ZL13__dummy_alias", function() { delete __ZL13__dummy_alias; __ZL13__dummy_alias = Pointer_make([0], 0); return __ZL13__dummy_alias });
+var ___dso_handle = 0; /* external value? */
+this.__defineGetter__("__str23", function() { delete __str23; __str23 = Pointer_make([110,117,109,97,114,103,115,0] /* numargs\00*/, 0); return __str23 });
+this.__defineGetter__("__numargs", function() { delete __numargs; __numargs = Pointer_make([0], 0); return __numargs });
+this.__defineGetter__("__str24", function() { delete __str24; __str24 = Pointer_make([105,102,0] /* if\00*/, 0); return __str24 });
+this.__defineGetter__("__str25", function() { delete __str25; __str25 = Pointer_make([115,115,115,0] /* sss\00*/, 0); return __str25 });
+this.__defineGetter__("__ZN7_stdcmdILi846EE4initE", function() { delete __ZN7_stdcmdILi846EE4initE; __ZN7_stdcmdILi846EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi846EE4initE });
+this.__defineGetter__("__str26", function() { delete __str26; __str26 = Pointer_make([63,0] /* ?\00*/, 0); return __str26 });
+this.__defineGetter__("__ZN7_stdcmdILi847EE4initE", function() { delete __ZN7_stdcmdILi847EE4initE; __ZN7_stdcmdILi847EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi847EE4initE });
+this.__defineGetter__("__str27", function() { delete __str27; __str27 = Pointer_make([108,111,111,112,0] /* loop\00*/, 0); return __str27 });
+this.__defineGetter__("__str28", function() { delete __str28; __str28 = Pointer_make([115,105,115,0] /* sis\00*/, 0); return __str28 });
+this.__defineGetter__("__ZN7_stdcmdILi860EE4initE", function() { delete __ZN7_stdcmdILi860EE4initE; __ZN7_stdcmdILi860EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi860EE4initE });
+this.__defineGetter__("__str29", function() { delete __str29; __str29 = Pointer_make([108,111,111,112,119,104,105,108,101,0] /* loopwhile\00*/, 0); return __str29 });
+this.__defineGetter__("__str30", function() { delete __str30; __str30 = Pointer_make([115,105,115,115,0] /* siss\00*/, 0); return __str30 });
+this.__defineGetter__("__ZN7_stdcmdILi874EE4initE", function() { delete __ZN7_stdcmdILi874EE4initE; __ZN7_stdcmdILi874EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi874EE4initE });
+this.__defineGetter__("__str31", function() { delete __str31; __str31 = Pointer_make([119,104,105,108,101,0] /* while\00*/, 0); return __str31 });
+this.__defineGetter__("__ZN7_stdcmdILi875EE4initE", function() { delete __ZN7_stdcmdILi875EE4initE; __ZN7_stdcmdILi875EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi875EE4initE });
+this.__defineGetter__("__str32", function() { delete __str32; __str32 = Pointer_make([99,111,110,99,97,116,0] /* concat\00*/, 0); return __str32 });
+this.__defineGetter__("__str33", function() { delete __str33; __str33 = Pointer_make([67,0] /* C\00*/, 0); return __str33 });
+this.__defineGetter__("__ZL14__dummy_concat", function() { delete __ZL14__dummy_concat; __ZL14__dummy_concat = Pointer_make([0], 0); return __ZL14__dummy_concat });
+this.__defineGetter__("__str34", function() { delete __str34; __str34 = Pointer_make([114,101,115,117,108,116,0] /* result\00*/, 0); return __str34 });
+this.__defineGetter__("__ZL14__dummy_result", function() { delete __ZL14__dummy_result; __ZL14__dummy_result = Pointer_make([0], 0); return __ZL14__dummy_result });
+this.__defineGetter__("__str35", function() { delete __str35; __str35 = Pointer_make([99,111,110,99,97,116,119,111,114,100,0] /* concatword\00*/, 0); return __str35 });
+this.__defineGetter__("__str36", function() { delete __str36; __str36 = Pointer_make([86,0] /* V\00*/, 0); return __str36 });
+this.__defineGetter__("__ZL18__dummy_concatword", function() { delete __ZL18__dummy_concatword; __ZL18__dummy_concatword = Pointer_make([0], 0); return __ZL18__dummy_concatword });
+this.__defineGetter__("__str37", function() { delete __str37; __str37 = Pointer_make([102,111,114,109,97,116,0] /* format\00*/, 0); return __str37 });
+this.__defineGetter__("__ZL14__dummy_format", function() { delete __ZL14__dummy_format; __ZL14__dummy_format = Pointer_make([0], 0); return __ZL14__dummy_format });
+this.__defineGetter__("__str38", function() { delete __str38; __str38 = Pointer_make([97,116,0] /* at\00*/, 0); return __str38 });
+this.__defineGetter__("__str39", function() { delete __str39; __str39 = Pointer_make([115,105,0] /* si\00*/, 0); return __str39 });
+this.__defineGetter__("__ZL10__dummy_at", function() { delete __ZL10__dummy_at; __ZL10__dummy_at = Pointer_make([0], 0); return __ZL10__dummy_at });
+this.__defineGetter__("__str40", function() { delete __str40; __str40 = Pointer_make([115,117,98,115,116,114,0] /* substr\00*/, 0); return __str40 });
+this.__defineGetter__("__ZL14__dummy_substr", function() { delete __ZL14__dummy_substr; __ZL14__dummy_substr = Pointer_make([0], 0); return __ZL14__dummy_substr });
+this.__defineGetter__("__str41", function() { delete __str41; __str41 = Pointer_make([108,105,115,116,108,101,110,0] /* listlen\00*/, 0); return __str41 });
+this.__defineGetter__("__ZN7_stdcmdILi973EE4initE", function() { delete __ZN7_stdcmdILi973EE4initE; __ZN7_stdcmdILi973EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi973EE4initE });
+this.__defineGetter__("__str42", function() { delete __str42; __str42 = Pointer_make([103,101,116,97,108,105,97,115,0] /* getalias\00*/, 0); return __str42 });
+this.__defineGetter__("__ZL17__dummy_getalias_", function() { delete __ZL17__dummy_getalias_; __ZL17__dummy_getalias_ = Pointer_make([0], 0); return __ZL17__dummy_getalias_ });
+this.__defineGetter__("__str43", function() { delete __str43; __str43 = Pointer_make([112,114,101,116,116,121,108,105,115,116,0] /* prettylist\00*/, 0); return __str43 });
+this.__defineGetter__("__ZL18__dummy_prettylist", function() { delete __ZL18__dummy_prettylist; __ZL18__dummy_prettylist = Pointer_make([0], 0); return __ZL18__dummy_prettylist });
+this.__defineGetter__("__str44", function() { delete __str44; __str44 = Pointer_make([108,105,115,116,100,101,108,0] /* listdel\00*/, 0); return __str44 });
+this.__defineGetter__("__ZN7_stdcmdILi1070EE4initE", function() { delete __ZN7_stdcmdILi1070EE4initE; __ZN7_stdcmdILi1070EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1070EE4initE });
+this.__defineGetter__("__str45", function() { delete __str45; __str45 = Pointer_make([105,110,100,101,120,111,102,0] /* indexof\00*/, 0); return __str45 });
+this.__defineGetter__("__ZN7_stdcmdILi1071EE4initE", function() { delete __ZN7_stdcmdILi1071EE4initE; __ZN7_stdcmdILi1071EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1071EE4initE });
+this.__defineGetter__("__str46", function() { delete __str46; __str46 = Pointer_make([108,105,115,116,102,105,110,100,0] /* listfind\00*/, 0); return __str46 });
+this.__defineGetter__("__ZN7_stdcmdILi1072EE4initE", function() { delete __ZN7_stdcmdILi1072EE4initE; __ZN7_stdcmdILi1072EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1072EE4initE });
+this.__defineGetter__("__str47", function() { delete __str47; __str47 = Pointer_make([108,111,111,112,108,105,115,116,0] /* looplist\00*/, 0); return __str47 });
+this.__defineGetter__("__ZN7_stdcmdILi1073EE4initE", function() { delete __ZN7_stdcmdILi1073EE4initE; __ZN7_stdcmdILi1073EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1073EE4initE });
+this.__defineGetter__("__str48", function() { delete __str48; __str48 = Pointer_make([43,0] /* +\00*/, 0); return __str48 });
+this.__defineGetter__("__str49", function() { delete __str49; __str49 = Pointer_make([105,105,0] /* ii\00*/, 0); return __str49 });
+this.__defineGetter__("__ZN7_stdcmdILi1075EE4initE", function() { delete __ZN7_stdcmdILi1075EE4initE; __ZN7_stdcmdILi1075EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1075EE4initE });
+this.__defineGetter__("__str50", function() { delete __str50; __str50 = Pointer_make([42,0] /* *\00*/, 0); return __str50 });
+this.__defineGetter__("__ZN7_stdcmdILi1076EE4initE", function() { delete __ZN7_stdcmdILi1076EE4initE; __ZN7_stdcmdILi1076EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1076EE4initE });
+this.__defineGetter__("__str51", function() { delete __str51; __str51 = Pointer_make([45,0] /* -\00*/, 0); return __str51 });
+this.__defineGetter__("__ZN7_stdcmdILi1077EE4initE", function() { delete __ZN7_stdcmdILi1077EE4initE; __ZN7_stdcmdILi1077EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1077EE4initE });
+this.__defineGetter__("__str52", function() { delete __str52; __str52 = Pointer_make([43,102,0] /* +f\00*/, 0); return __str52 });
+this.__defineGetter__("__str53", function() { delete __str53; __str53 = Pointer_make([102,102,0] /* ff\00*/, 0); return __str53 });
+this.__defineGetter__("__ZN7_stdcmdILi1078EE4initE", function() { delete __ZN7_stdcmdILi1078EE4initE; __ZN7_stdcmdILi1078EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1078EE4initE });
+this.__defineGetter__("__str54", function() { delete __str54; __str54 = Pointer_make([42,102,0] /* *f\00*/, 0); return __str54 });
+this.__defineGetter__("__ZN7_stdcmdILi1079EE4initE", function() { delete __ZN7_stdcmdILi1079EE4initE; __ZN7_stdcmdILi1079EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1079EE4initE });
+this.__defineGetter__("__str55", function() { delete __str55; __str55 = Pointer_make([45,102,0] /* -f\00*/, 0); return __str55 });
+this.__defineGetter__("__ZN7_stdcmdILi1080EE4initE", function() { delete __ZN7_stdcmdILi1080EE4initE; __ZN7_stdcmdILi1080EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1080EE4initE });
+this.__defineGetter__("__str56", function() { delete __str56; __str56 = Pointer_make([61,0] /* =\00*/, 0); return __str56 });
+this.__defineGetter__("__ZN7_stdcmdILi1081EE4initE", function() { delete __ZN7_stdcmdILi1081EE4initE; __ZN7_stdcmdILi1081EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1081EE4initE });
+this.__defineGetter__("__str57", function() { delete __str57; __str57 = Pointer_make([33,61,0] /* !=\00*/, 0); return __str57 });
+this.__defineGetter__("__ZN7_stdcmdILi1082EE4initE", function() { delete __ZN7_stdcmdILi1082EE4initE; __ZN7_stdcmdILi1082EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1082EE4initE });
+this.__defineGetter__("__str58", function() { delete __str58; __str58 = Pointer_make([60,0] /* <\00*/, 0); return __str58 });
+this.__defineGetter__("__ZN7_stdcmdILi1083EE4initE", function() { delete __ZN7_stdcmdILi1083EE4initE; __ZN7_stdcmdILi1083EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1083EE4initE });
+this.__defineGetter__("__str59", function() { delete __str59; __str59 = Pointer_make([62,0] /* >\00*/, 0); return __str59 });
+this.__defineGetter__("__ZN7_stdcmdILi1084EE4initE", function() { delete __ZN7_stdcmdILi1084EE4initE; __ZN7_stdcmdILi1084EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1084EE4initE });
+this.__defineGetter__("__str60", function() { delete __str60; __str60 = Pointer_make([60,61,0] /* <=\00*/, 0); return __str60 });
+this.__defineGetter__("__ZN7_stdcmdILi1085EE4initE", function() { delete __ZN7_stdcmdILi1085EE4initE; __ZN7_stdcmdILi1085EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1085EE4initE });
+this.__defineGetter__("__str61", function() { delete __str61; __str61 = Pointer_make([62,61,0] /* >=\00*/, 0); return __str61 });
+this.__defineGetter__("__ZN7_stdcmdILi1086EE4initE", function() { delete __ZN7_stdcmdILi1086EE4initE; __ZN7_stdcmdILi1086EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1086EE4initE });
+this.__defineGetter__("__str62", function() { delete __str62; __str62 = Pointer_make([61,102,0] /* =f\00*/, 0); return __str62 });
+this.__defineGetter__("__ZN7_stdcmdILi1087EE4initE", function() { delete __ZN7_stdcmdILi1087EE4initE; __ZN7_stdcmdILi1087EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1087EE4initE });
+this.__defineGetter__("__str63", function() { delete __str63; __str63 = Pointer_make([33,61,102,0] /* !=f\00*/, 0); return __str63 });
+this.__defineGetter__("__ZN7_stdcmdILi1088EE4initE", function() { delete __ZN7_stdcmdILi1088EE4initE; __ZN7_stdcmdILi1088EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1088EE4initE });
+this.__defineGetter__("__str64", function() { delete __str64; __str64 = Pointer_make([60,102,0] /* <f\00*/, 0); return __str64 });
+this.__defineGetter__("__ZN7_stdcmdILi1089EE4initE", function() { delete __ZN7_stdcmdILi1089EE4initE; __ZN7_stdcmdILi1089EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1089EE4initE });
+this.__defineGetter__("__str65", function() { delete __str65; __str65 = Pointer_make([62,102,0] /* >f\00*/, 0); return __str65 });
+this.__defineGetter__("__ZN7_stdcmdILi1090EE4initE", function() { delete __ZN7_stdcmdILi1090EE4initE; __ZN7_stdcmdILi1090EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1090EE4initE });
+this.__defineGetter__("__str66", function() { delete __str66; __str66 = Pointer_make([60,61,102,0] /* <=f\00*/, 0); return __str66 });
+this.__defineGetter__("__ZN7_stdcmdILi1091EE4initE", function() { delete __ZN7_stdcmdILi1091EE4initE; __ZN7_stdcmdILi1091EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1091EE4initE });
+this.__defineGetter__("__str67", function() { delete __str67; __str67 = Pointer_make([62,61,102,0] /* >=f\00*/, 0); return __str67 });
+this.__defineGetter__("__ZN7_stdcmdILi1092EE4initE", function() { delete __ZN7_stdcmdILi1092EE4initE; __ZN7_stdcmdILi1092EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1092EE4initE });
+this.__defineGetter__("__str68", function() { delete __str68; __str68 = Pointer_make([94,0] /* ^\00*/, 0); return __str68 });
+this.__defineGetter__("__ZN7_stdcmdILi1093EE4initE", function() { delete __ZN7_stdcmdILi1093EE4initE; __ZN7_stdcmdILi1093EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1093EE4initE });
+this.__defineGetter__("__str69", function() { delete __str69; __str69 = Pointer_make([33,0] /* !\00*/, 0); return __str69 });
+this.__defineGetter__("__str70", function() { delete __str70; __str70 = Pointer_make([105,0] /* i\00*/, 0); return __str70 });
+this.__defineGetter__("__ZN7_stdcmdILi1094EE4initE", function() { delete __ZN7_stdcmdILi1094EE4initE; __ZN7_stdcmdILi1094EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1094EE4initE });
+this.__defineGetter__("__str71", function() { delete __str71; __str71 = Pointer_make([38,0] /* &\00*/, 0); return __str71 });
+this.__defineGetter__("__ZN7_stdcmdILi1095EE4initE", function() { delete __ZN7_stdcmdILi1095EE4initE; __ZN7_stdcmdILi1095EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1095EE4initE });
+this.__defineGetter__("__str72", function() { delete __str72; __str72 = Pointer_make([124,0] /* |\00*/, 0); return __str72 });
+this.__defineGetter__("__ZN7_stdcmdILi1096EE4initE", function() { delete __ZN7_stdcmdILi1096EE4initE; __ZN7_stdcmdILi1096EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1096EE4initE });
+this.__defineGetter__("__str73", function() { delete __str73; __str73 = Pointer_make([126,0] /* ~\00*/, 0); return __str73 });
+this.__defineGetter__("__ZN7_stdcmdILi1097EE4initE", function() { delete __ZN7_stdcmdILi1097EE4initE; __ZN7_stdcmdILi1097EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1097EE4initE });
+this.__defineGetter__("__str74", function() { delete __str74; __str74 = Pointer_make([94,126,0] /* ^~\00*/, 0); return __str74 });
+this.__defineGetter__("__ZN7_stdcmdILi1098EE4initE", function() { delete __ZN7_stdcmdILi1098EE4initE; __ZN7_stdcmdILi1098EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1098EE4initE });
+this.__defineGetter__("__str75", function() { delete __str75; __str75 = Pointer_make([38,126,0] /* &~\00*/, 0); return __str75 });
+this.__defineGetter__("__ZN7_stdcmdILi1099EE4initE", function() { delete __ZN7_stdcmdILi1099EE4initE; __ZN7_stdcmdILi1099EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1099EE4initE });
+this.__defineGetter__("__str76", function() { delete __str76; __str76 = Pointer_make([124,126,0] /* |~\00*/, 0); return __str76 });
+this.__defineGetter__("__ZN7_stdcmdILi1100EE4initE", function() { delete __ZN7_stdcmdILi1100EE4initE; __ZN7_stdcmdILi1100EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1100EE4initE });
+this.__defineGetter__("__str77", function() { delete __str77; __str77 = Pointer_make([60,60,0] /* <<\00*/, 0); return __str77 });
+this.__defineGetter__("__ZN7_stdcmdILi1101EE4initE", function() { delete __ZN7_stdcmdILi1101EE4initE; __ZN7_stdcmdILi1101EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1101EE4initE });
+this.__defineGetter__("__str78", function() { delete __str78; __str78 = Pointer_make([62,62,0] /* >>\00*/, 0); return __str78 });
+this.__defineGetter__("__ZN7_stdcmdILi1102EE4initE", function() { delete __ZN7_stdcmdILi1102EE4initE; __ZN7_stdcmdILi1102EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1102EE4initE });
+this.__defineGetter__("__str79", function() { delete __str79; __str79 = Pointer_make([38,38,0] /* &&\00*/, 0); return __str79 });
+this.__defineGetter__("__ZN7_stdcmdILi1108EE4initE", function() { delete __ZN7_stdcmdILi1108EE4initE; __ZN7_stdcmdILi1108EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1108EE4initE });
+this.__defineGetter__("__str80", function() { delete __str80; __str80 = Pointer_make([124,124,0] /* ||\00*/, 0); return __str80 });
+this.__defineGetter__("__ZN7_stdcmdILi1114EE4initE", function() { delete __ZN7_stdcmdILi1114EE4initE; __ZN7_stdcmdILi1114EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1114EE4initE });
+this.__defineGetter__("__str81", function() { delete __str81; __str81 = Pointer_make([100,105,118,0] /* div\00*/, 0); return __str81 });
+this.__defineGetter__("__ZN7_stdcmdILi1116EE4initE", function() { delete __ZN7_stdcmdILi1116EE4initE; __ZN7_stdcmdILi1116EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1116EE4initE });
+this.__defineGetter__("__str82", function() { delete __str82; __str82 = Pointer_make([109,111,100,0] /* mod\00*/, 0); return __str82 });
+this.__defineGetter__("__ZN7_stdcmdILi1117EE4initE", function() { delete __ZN7_stdcmdILi1117EE4initE; __ZN7_stdcmdILi1117EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1117EE4initE });
+this.__defineGetter__("__str83", function() { delete __str83; __str83 = Pointer_make([100,105,118,102,0] /* divf\00*/, 0); return __str83 });
+this.__defineGetter__("__ZN7_stdcmdILi1118EE4initE", function() { delete __ZN7_stdcmdILi1118EE4initE; __ZN7_stdcmdILi1118EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1118EE4initE });
+this.__defineGetter__("__str84", function() { delete __str84; __str84 = Pointer_make([109,111,100,102,0] /* modf\00*/, 0); return __str84 });
+this.__defineGetter__("__ZN7_stdcmdILi1119EE4initE", function() { delete __ZN7_stdcmdILi1119EE4initE; __ZN7_stdcmdILi1119EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1119EE4initE });
+this.__defineGetter__("__str85", function() { delete __str85; __str85 = Pointer_make([115,105,110,0] /* sin\00*/, 0); return __str85 });
+this.__defineGetter__("__str86", function() { delete __str86; __str86 = Pointer_make([102,0] /* f\00*/, 0); return __str86 });
+this.__defineGetter__("__ZN7_stdcmdILi1120EE4initE", function() { delete __ZN7_stdcmdILi1120EE4initE; __ZN7_stdcmdILi1120EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1120EE4initE });
+this.__defineGetter__("__str87", function() { delete __str87; __str87 = Pointer_make([99,111,115,0] /* cos\00*/, 0); return __str87 });
+this.__defineGetter__("__ZN7_stdcmdILi1121EE4initE", function() { delete __ZN7_stdcmdILi1121EE4initE; __ZN7_stdcmdILi1121EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1121EE4initE });
+this.__defineGetter__("__str88", function() { delete __str88; __str88 = Pointer_make([116,97,110,0] /* tan\00*/, 0); return __str88 });
+this.__defineGetter__("__ZN7_stdcmdILi1122EE4initE", function() { delete __ZN7_stdcmdILi1122EE4initE; __ZN7_stdcmdILi1122EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1122EE4initE });
+this.__defineGetter__("__str89", function() { delete __str89; __str89 = Pointer_make([97,115,105,110,0] /* asin\00*/, 0); return __str89 });
+this.__defineGetter__("__ZN7_stdcmdILi1123EE4initE", function() { delete __ZN7_stdcmdILi1123EE4initE; __ZN7_stdcmdILi1123EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1123EE4initE });
+this.__defineGetter__("__str90", function() { delete __str90; __str90 = Pointer_make([97,99,111,115,0] /* acos\00*/, 0); return __str90 });
+this.__defineGetter__("__ZN7_stdcmdILi1124EE4initE", function() { delete __ZN7_stdcmdILi1124EE4initE; __ZN7_stdcmdILi1124EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1124EE4initE });
+this.__defineGetter__("__str91", function() { delete __str91; __str91 = Pointer_make([97,116,97,110,0] /* atan\00*/, 0); return __str91 });
+this.__defineGetter__("__ZN7_stdcmdILi1125EE4initE", function() { delete __ZN7_stdcmdILi1125EE4initE; __ZN7_stdcmdILi1125EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1125EE4initE });
+this.__defineGetter__("__str92", function() { delete __str92; __str92 = Pointer_make([115,113,114,116,0] /* sqrt\00*/, 0); return __str92 });
+this.__defineGetter__("__ZN7_stdcmdILi1126EE4initE", function() { delete __ZN7_stdcmdILi1126EE4initE; __ZN7_stdcmdILi1126EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1126EE4initE });
+this.__defineGetter__("__str93", function() { delete __str93; __str93 = Pointer_make([112,111,119,0] /* pow\00*/, 0); return __str93 });
+this.__defineGetter__("__ZN7_stdcmdILi1127EE4initE", function() { delete __ZN7_stdcmdILi1127EE4initE; __ZN7_stdcmdILi1127EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1127EE4initE });
+this.__defineGetter__("__str94", function() { delete __str94; __str94 = Pointer_make([108,111,103,101,0] /* loge\00*/, 0); return __str94 });
+this.__defineGetter__("__ZN7_stdcmdILi1128EE4initE", function() { delete __ZN7_stdcmdILi1128EE4initE; __ZN7_stdcmdILi1128EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1128EE4initE });
+this.__defineGetter__("__str95", function() { delete __str95; __str95 = Pointer_make([108,111,103,50,0] /* log2\00*/, 0); return __str95 });
+this.__defineGetter__("__ZN7_stdcmdILi1129EE4initE", function() { delete __ZN7_stdcmdILi1129EE4initE; __ZN7_stdcmdILi1129EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1129EE4initE });
+this.__defineGetter__("__str96", function() { delete __str96; __str96 = Pointer_make([108,111,103,49,48,0] /* log10\00*/, 0); return __str96 });
+this.__defineGetter__("__ZN7_stdcmdILi1130EE4initE", function() { delete __ZN7_stdcmdILi1130EE4initE; __ZN7_stdcmdILi1130EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1130EE4initE });
+this.__defineGetter__("__str97", function() { delete __str97; __str97 = Pointer_make([101,120,112,0] /* exp\00*/, 0); return __str97 });
+this.__defineGetter__("__ZN7_stdcmdILi1131EE4initE", function() { delete __ZN7_stdcmdILi1131EE4initE; __ZN7_stdcmdILi1131EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1131EE4initE });
+this.__defineGetter__("__str98", function() { delete __str98; __str98 = Pointer_make([109,105,110,0] /* min\00*/, 0); return __str98 });
+this.__defineGetter__("__ZN7_stdcmdILi1137EE4initE", function() { delete __ZN7_stdcmdILi1137EE4initE; __ZN7_stdcmdILi1137EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1137EE4initE });
+this.__defineGetter__("__str99", function() { delete __str99; __str99 = Pointer_make([109,97,120,0] /* max\00*/, 0); return __str99 });
+this.__defineGetter__("__ZN7_stdcmdILi1143EE4initE", function() { delete __ZN7_stdcmdILi1143EE4initE; __ZN7_stdcmdILi1143EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1143EE4initE });
+this.__defineGetter__("__str100", function() { delete __str100; __str100 = Pointer_make([109,105,110,102,0] /* minf\00*/, 0); return __str100 });
+this.__defineGetter__("__ZN7_stdcmdILi1149EE4initE", function() { delete __ZN7_stdcmdILi1149EE4initE; __ZN7_stdcmdILi1149EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1149EE4initE });
+this.__defineGetter__("__str101", function() { delete __str101; __str101 = Pointer_make([109,97,120,102,0] /* maxf\00*/, 0); return __str101 });
+this.__defineGetter__("__ZN7_stdcmdILi1155EE4initE", function() { delete __ZN7_stdcmdILi1155EE4initE; __ZN7_stdcmdILi1155EE4initE = Pointer_make([0], 0); return __ZN7_stdcmdILi1155EE4initE });
+this.__defineGetter__("__str102", function() { delete __str10