packages feed

hjsmin 0.1.3 → 0.1.4

raw patch · 76 files changed

+6787/−2 lines, 76 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

README.markdown view
@@ -28,6 +28,8 @@ Changes ------- +0.1.4 - Include test assets in cabal to allow cabal test to pass. Courtesy of @snoyberg+ 0.1.3 - Update version ranges for GHC 7.6.1, courtesy of @mietek   0.1.2 - More general fix to the space after 'new' keyword, for issue #8 & #9
hjsmin.cabal view
@@ -1,5 +1,5 @@ name:            hjsmin-version:         0.1.3+version:         0.1.4 license:         BSD3 license-file:    LICENSE author:          Alan Zimmerman <alan.zimm@gmail.com>@@ -16,7 +16,11 @@ bug-reports:     http://github.com/alanz/hjsmin/issues  Extra-source-files:-  TODO.txt, README.markdown, buildall.sh+   TODO.txt+ , README.markdown+ , buildall.sh+ , test/pminified/*.js+ , test/parsingonly/*.js   library
+ test/parsingonly/00_f.js view
@@ -0,0 +1,4 @@+function Hello(a)
+{
+	ExprArray(1,1);
+}
+ test/parsingonly/01_semi1.js view
@@ -0,0 +1,6 @@+{zero.one1;zero}
+one1
+two;three
+{{}} four;
+// five
+five
+ test/parsingonly/02_semicolon.js view
@@ -0,0 +1,13 @@+// Automatic semi-colon insertion
+
+{ 1
+2 } 3
+
+return
+a + b
+
+a = b
+//--c - Fails
+
+//a = (b + c)
+d + e.print
+ test/parsingonly/02_sm.js view
@@ -0,0 +1,8 @@+{zero}
+one1;two
+{three
+four;five;
+{
+six;{seven;}
+}
+}
+ test/parsingonly/03_sm.js view
@@ -0,0 +1,11 @@+// A comment
+a=b+z; // t=s;
+b;
+{
+/* Multi line 
+
+*/
+c;
+}
+
+
+ test/parsingonly/04_if.js view
@@ -0,0 +1,3 @@+{
+	a = f ? e : g;
+}
+ test/parsingonly/05_comments_simple.js view
@@ -0,0 +1,10 @@+// A coment
+a+1;
+
+/*
+
+b+1;
+
+*/
+
+{}
+ test/parsingonly/05_regex.js view
@@ -0,0 +1,24 @@+x = 1/y;
+var newlines = spaces.match(/\n/g);
+var newlines = spaces.match(/\n/g);
+opRegExpSrc += i.replace(/[?|^&(){}\[\]+\-*\/\.]/g, "\\$&");
+
+for (i = 0;;){
+    var t=1;
+    ;
+}
+
+for (var i = 0, j = tokens.length; i < j; i++) {
+    if (i > 0)
+        consts += ", ";
+    var t = tokens[i];
+
+    if (/^[a-z]/.test(t)) {
+        consts += t.toUpperCase();
+        keywords[t] = i;
+    } else {
+        consts += (/^\W/.test(t) ? opTypeNames[t] : t);
+    }
+    consts += " = " + x;
+    tokens[t] = j;
+}
+ test/parsingonly/06_block.js view
@@ -0,0 +1,7 @@+{
+{}{}{{}}    
+{  }
+}
+
+
+  
+ test/parsingonly/06_callexpr.js view
@@ -0,0 +1,8 @@+// Different sorts of call expressions
+
+bob()
+bob(1)(2,3)
+bob().mary
+bob()[1]
+bob(11)[2][3]
+bob(mary())
+ test/parsingonly/06_newexpr.js view
@@ -0,0 +1,4 @@+new bob;
+new bob(1)
+new bob()(1,2)
+bob[1](1,2)
+ test/parsingonly/06_var.js view
@@ -0,0 +1,7 @@+// Why does this fail !!
+// This fails as well parseProgram "for(i=0;;)\n{\n;\nvar t=1;}"
+for (i = 0;;){
+    ;
+var t=1;
+
+}
+ test/parsingonly/07_expr.js view
@@ -0,0 +1,14 @@+w=x*y+1/2
+{z=z + 1}
+
+1
++ 2
+
+"Prototype does not have an ancestor: "
+	+ currentConstructor + "."
+
+Error("Prototype does not have an ancestor: " + currentConstructor + ".")
+
+// Expression inside func call with a newline inside them
+Error("Prototype does not have an ancestor: "
+	+ currentConstructor + ".")
+ test/parsingonly/07_expr2.js view
@@ -0,0 +1,2 @@+1 + 2;
+
+ test/parsingonly/101_inheritance.js view
@@ -0,0 +1,122 @@+/* Copyright (c) 2006 Charlie Savage 
+License: BSD:
+http://www.opensource.org/licenses/bsd-license.php
+
+As posted on http://cfis.savagexi.com/articles/2006/08/25/new-and-improved-javascript-inheritance
+*/
+
+Function.prototype.inherits = function(superConstructor)
+{
+  /* Borrowed from Kevin Lindsey - create a dummy
+     constructor to create prototypes.  This is useful
+     because it means that we don't have to modify
+     the real constructors to have if-statements to 
+     guard against initialization if we are creating
+     a prototype (versus a regular instance).*/
+  function CreatePrototype() {}
+  CreatePrototype.prototype = superConstructor.prototype
+  
+  /* Reset the current constructor. This is an ugly hack required 
+     by the JavaScript prototype-chain implementation. */
+  this.prototype = new CreatePrototype()
+  this.prototype.constructor = this
+  
+  // Save a reference to the superClass constructor
+  this.superConstructor = superConstructor
+
+  this.prototype.callSuper = function()
+  {
+    /* In IE and Firefox we can get the caller argument via
+       arguments.callee.caller.  However, for some reason this
+       has been deprecated in JavaScript and is not supported
+       by Safari or Opera.  So we have to pass it in as
+       a parameter.  Yuck.*/
+    var caller = arguments.callee.caller
+    var caller = arguments[0]
+    var args = new Array()
+    for (var i=1; i<arguments.length; i++)
+      args.push(arguments[i])
+    
+     /* Figure out where we are in the inheritance hierarchy and
+       the name of the method that was invoked. */
+    var currentConstructor = this.constructor
+    var methodName = null 
+    
+    while (methodName == null && currentConstructor != null)
+    {
+      // Shortcut - Is a constructor being called?
+      if (caller === currentConstructor)
+        return currentConstructor.superConstructor.apply(this, args)
+  
+      methodName = figureMethodName(currentConstructor.prototype, caller)
+      currentConstructor = currentConstructor.superConstructor
+    }
+    
+    if (!methodName)
+      throw new Error("Could not find method: " + methodName + ".")
+
+    if (!currentConstructor)
+      throw new Error("Prototype does not have an ancestor: "
+       + currentConstructor + ".")
+      
+    // Finally - execute the method     
+    return currentConstructor.prototype[methodName].apply(this, args)
+  }    
+}
+
+function figureMethodName(prototype, method)
+{
+  for (var key in prototype)
+  {
+    if (prototype.hasOwnProperty(key) &&
+        prototype[key] === method)
+      return key
+  }
+  return null
+}
+
+// ----- Example --- 
+
+// -- Animal --
+function Animal(name)
+{
+  if (!name)
+    throw new Error('Must specify an animal name')
+  this.name = name
+}
+
+Animal.prototype.toString = function()
+{
+  return 'My name is ' + this.name
+}
+
+// -- Pet --
+function Pet(owner, name)
+{
+  this.owner = owner
+  this.callSuper(arguments.callee, name)
+}
+Pet.inherits(Animal)
+
+Pet.prototype.toString = function()
+{
+  return this.callSuper(arguments.callee) + "\n" + 
+         "My owner is " + this.owner
+}
+
+// -- Cat --
+function Cat(owner, name)
+{
+  this.callSuper(arguments.callee, owner, name)
+}
+Cat.inherits(Pet)
+ 
+Cat.prototype.toString = function()
+{
+  return this.callSuper(arguments.callee) + '\n' + 
+        'I eat mice'
+}
+        
+var cat = new Cat('charlie', 'oba')
+
+print(cat.toString())
+ test/parsingonly/10_switch.js view
@@ -0,0 +1,38 @@+switch(i){
+   case 1: 
+          1;
+   case 2: 
+2;
+}
+
+function x() {
+ switch (typeof v) {
+      case "boolean":
+        return new global.Boolean(v);
+      case "number":
+        i=1;
+        break;
+        return new global.Number(v);
+      case "string":
+        return new global.String(v);
+      case "function":
+        return v;
+      case "object":
+        if (v !== null)
+            return v;
+    }
+}
+
+switch (t) {
+              case BITWISE_OR:  v = u | v; break;
+              case BITWISE_XOR: v = u ^ v; break;
+              case BITWISE_AND: v = u & v; break;
+              case LSH:         v = u << v; break;
+              case RSH:         v = u >> v; break;
+              case URSH:        v = u >>> v; break;
+              case PLUS:        v = u + v; break;
+              case MINUS:       v = u - v; break;
+              case MUL:         v = u * v; break;
+              case DIV:         v = u / v; break;
+              case MOD:         v = u % v; break;
+            }
+ test/parsingonly/110_perfect.js view
@@ -0,0 +1,39 @@+// Some simple testing of new, eval and some string stuff.
+
+// constructor -- expression array initialization
+function ExprArray(n,v)
+{
+    // Initializes n values to v coerced to a string.
+    for (var i = 0; i < n; i++) {
+	this[i] = "" + v;
+    }
+}
+
+
+// Print the perfect numbers up to n and the sum expression for n's divisors.
+function perfect(n)
+{
+    print("The perfect numbers up to " +  n + " are:");
+
+    // We build sumOfDivisors[i] to hold a string expression for
+    // the sum of the divisors of i, excluding i itself.
+    var sumOfDivisors = new ExprArray(n+1,1);
+    for (var divisor = 2; divisor <= n; divisor++) {
+	for (var j = divisor + divisor; j <= n; j += divisor) {
+	    sumOfDivisors[j] += " + " + divisor;
+	}
+	// At this point everything up to 'divisor' has its sumOfDivisors
+	// expression calculated, so we can determine whether it's perfect
+	// already by evaluating.
+	if (eval(sumOfDivisors[divisor]) == divisor) {
+	    print("" + divisor + " = " + sumOfDivisors[divisor]);
+	}
+    }
+    print("That's all.");
+}
+
+
+print("\nA number is 'perfect' if it is equal to the sum of its");
+print("divisors (excluding itself).\n");
+perfect(500);
+
+ test/parsingonly/120_js.js view
@@ -0,0 +1,73 @@+/* ***** BEGIN LICENSE BLOCK *****+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1+ *+ * The contents of this file are subject to the Mozilla Public License Version+ * 1.1 (the "License"); you may not use this file except in compliance with+ * the License. You may obtain a copy of the License at+ * http://www.mozilla.org/MPL/+ *+ * Software distributed under the License is distributed on an "AS IS" basis,+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License+ * for the specific language governing rights and limitations under the+ * License.+ *+ * The Original Code is the Narcissus JavaScript engine.+ *+ * The Initial Developer of the Original Code is+ * Brendan Eich <brendan@mozilla.org>.+ * Portions created by the Initial Developer are Copyright (C) 2004+ * the Initial Developer. All Rights Reserved.+ *+ * Contributor(s):+ *+ * Alternatively, the contents of this file may be used under the terms of+ * either the GNU General Public License Version 2 or later (the "GPL"), or+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),+ * in which case the provisions of the GPL or the LGPL are applicable instead+ * of those above. If you wish to allow use of your version of this file only+ * under the terms of either the GPL or the LGPL, and not to allow others to+ * use your version of this file under the terms of the MPL, indicate your+ * decision by deleting the provisions above and replace them with the notice+ * and other provisions required by the GPL or the LGPL. If you do not delete+ * the provisions above, a recipient may use your version of this file under+ * the terms of any one of the MPL, the GPL or the LGPL.+ *+ * ***** END LICENSE BLOCK ***** */++/*+ * Narcissus - JS implemented in JS.+ *+ * Native objects and classes implemented metacircularly:+ *      the global object (singleton)+ *      eval+ *      function objects, Function+ *+ * SpiderMonkey extensions used:+ *      catch guards+ *      const declarations+ *      get and set functions in object initialisers+ *      Object.prototype.__defineGetter__+ *      Object.prototype.__defineSetter__+ *      Object.prototype.__defineProperty__+ *      Object.prototype.__proto__+ *      filename and line number arguments to *Error constructors+ *      callable regular expression objects+ *+ * SpiderMonkey extensions supported metacircularly:+ *      catch guards+ *      const declarations+ *      get and set functions in object initialisers+ */++/*+ * Loads a file relative to the calling script's (our) source directory, and not+ * the directory that the executing shell is being run out of.+ */+function my_load(filename) {+    evaluate(snarf(filename), filename, 1);+}++my_load('jsdefs.js');+my_load('jsparse.js');+my_load('jsexec.js');+
+ test/parsingonly/121_jsdefs.js view
@@ -0,0 +1,171 @@+/* ***** BEGIN LICENSE BLOCK *****+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1+ *+ * The contents of this file are subject to the Mozilla Public License Version+ * 1.1 (the "License"); you may not use this file except in compliance with+ * the License. You may obtain a copy of the License at+ * http://www.mozilla.org/MPL/+ *+ * Software distributed under the License is distributed on an "AS IS" basis,+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License+ * for the specific language governing rights and limitations under the+ * License.+ *+ * The Original Code is the Narcissus JavaScript engine.+ *+ * The Initial Developer of the Original Code is+ * Brendan Eich <brendan@mozilla.org>.+ * Portions created by the Initial Developer are Copyright (C) 2004+ * the Initial Developer. All Rights Reserved.+ *+ * Contributor(s):+ *+ * Alternatively, the contents of this file may be used under the terms of+ * either the GNU General Public License Version 2 or later (the "GPL"), or+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),+ * in which case the provisions of the GPL or the LGPL are applicable instead+ * of those above. If you wish to allow use of your version of this file only+ * under the terms of either the GPL or the LGPL, and not to allow others to+ * use your version of this file under the terms of the MPL, indicate your+ * decision by deleting the provisions above and replace them with the notice+ * and other provisions required by the GPL or the LGPL. If you do not delete+ * the provisions above, a recipient may use your version of this file under+ * the terms of any one of the MPL, the GPL or the LGPL.+ *+ * ***** END LICENSE BLOCK ***** */++/*+ * Narcissus - JS implemented in JS.+ *+ * Well-known constants and lookup tables.  Many consts are generated from the+ * tokens table via eval to minimize redundancy, so consumers must be compiled+ * separately to take advantage of the simple switch-case constant propagation+ * done by SpiderMonkey.+ */++const GLOBAL = this;++var tokens = [+    // End of source. ++    "END",++    // Operators and punctuators.  Some pair-wise order matters, e.g. (+, -)+    // and (UNARY_PLUS, UNARY_MINUS).+    "\n", ";",+    ",",+    "=",+    "?", ":", "CONDITIONAL",+    "||",+    "&&",+    "|",+    "^",+    "&",+    "==", "!=", "===", "!==",+    "<", "<=", ">=", ">",+    "<<", ">>", ">>>",+    "+", "-",+    "*", "/", "%",+    "!", "~", "UNARY_PLUS", "UNARY_MINUS",+    "++", "--",+    ".",+    "[", "]",+    "{", "}",+    "(", ")",++    // Nonterminal tree node type codes.+    "SCRIPT", "BLOCK", "LABEL", "FOR_IN", "CALL", "NEW_WITH_ARGS", "INDEX",+    "ARRAY_INIT", "OBJECT_INIT", "PROPERTY_INIT", "GETTER", "SETTER",+    "GROUP", "LIST",++    // Terminals.+    "IDENTIFIER", "NUMBER", "STRING", "REGEXP",++    // Keywords.+    "break",+    "case", "catch", "const", "continue",+    "debugger", "default", "delete", "do",+    "else", "enum",+    "false", "finally", "for", "function",+    "if", "in", "instanceof",+    "new", "null",+    "return",+    "switch",+    "this", "throw", "true", "try", "typeof",+    "var", "void",+    "while", "with"+];++// Operator and punctuator mapping from token to tree node type name.+// NB: superstring tokens (e.g., ++) must come before their substring token+// counterparts (+ in the example), so that the opRegExp regular expression+// synthesized from this list makes the longest possible match.+var opTypeNames = {+    '\n':   "NEWLINE",+    ';':    "SEMICOLON",+    ',':    "COMMA",+    '?':    "HOOK",+    ':':    "COLON",+    '||':   "OR",+    '&&':   "AND",+    '|':    "BITWISE_OR",+    '^':    "BITWISE_XOR",+    '&':    "BITWISE_AND",+    '===':  "STRICT_EQ",+    '==':   "EQ",+    '=':    "ASSIGN",+    '!==':  "STRICT_NE",+    '!=':   "NE",+    '<<':   "LSH",+    '<=':   "LE",+    '<':    "LT",+    '>>>':  "URSH",+    '>>':   "RSH",+    '>=':   "GE",+    '>':    "GT",+    '++':   "INCREMENT",+    '--':   "DECREMENT",+    '+':    "PLUS",+    '-':    "MINUS",+    '*':    "MUL",+    '/':    "DIV",+    '%':    "MOD",+    '!':    "NOT",+    '~':    "BITWISE_NOT",+    '.':    "DOT",+    '[':    "LEFT_BRACKET",+    ']':    "RIGHT_BRACKET",+    '{':    "LEFT_CURLY",+    '}':    "RIGHT_CURLY",+    '(':    "LEFT_PAREN",+    ')':    "RIGHT_PAREN"+};++// Hash of keyword identifier to tokens index.  NB: we must null __proto__ to+// avoid toString, etc. namespace pollution.+var keywords = {__proto__: null};++// Define const END, etc., based on the token names.  Also map name to index.+var consts = "const ";+for (var i = 0, j = tokens.length; i < j; i++) {+    if (i > 0)+        consts += ", ";+    var t = tokens[i];+    if (/^[a-z]/.test(t)) {+        consts += t.toUpperCase();+        keywords[t] = i;+    } else {+        consts += (/^\W/.test(t) ? opTypeNames[t] : t);+    }+    consts += " = " + i;+    tokens[t] = i;+}+eval(consts + ";");++// Map assignment operators to their indexes in the tokens array.+var assignOps = ['|', '^', '&', '<<', '>>', '>>>', '+', '-', '*', '/', '%'];++for (i = 0, j = assignOps.length; i < j; i++) {+    t = assignOps[i];+    assignOps[t] = tokens[t];+}
+ test/parsingonly/122_jsexec.js view
@@ -0,0 +1,946 @@+/* ***** BEGIN LICENSE BLOCK *****+ * vim: set ts=4 sw=4 et tw=80:+ *+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1+ *+ * The contents of this file are subject to the Mozilla Public License Version+ * 1.1 (the "License"); you may not use this file except in compliance with+ * the License. You may obtain a copy of the License at+ * http://www.mozilla.org/MPL/+ *+ * Software distributed under the License is distributed on an "AS IS" basis,+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License+ * for the specific language governing rights and limitations under the+ * License.+ *+ * The Original Code is the Narcissus JavaScript engine.+ *+ * The Initial Developer of the Original Code is+ * Brendan Eich <brendan@mozilla.org>.+ * Portions created by the Initial Developer are Copyright (C) 2004+ * the Initial Developer. All Rights Reserved.+ *+ * Contributor(s):+ *+ * Alternatively, the contents of this file may be used under the terms of+ * either the GNU General Public License Version 2 or later (the "GPL"), or+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),+ * in which case the provisions of the GPL or the LGPL are applicable instead+ * of those above. If you wish to allow use of your version of this file only+ * under the terms of either the GPL or the LGPL, and not to allow others to+ * use your version of this file under the terms of the MPL, indicate your+ * decision by deleting the provisions above and replace them with the notice+ * and other provisions required by the GPL or the LGPL. If you do not delete+ * the provisions above, a recipient may use your version of this file under+ * the terms of any one of the MPL, the GPL or the LGPL.+ *+ * ***** END LICENSE BLOCK ***** */++/*+ * Narcissus - JS implemented in JS.+ *+ * Execution of parse trees.+ *+ * Standard classes except for eval, Function, Array, and String are borrowed+ * from the host JS environment.  Function is metacircular.  Array and String+ * are reflected via wrapping the corresponding native constructor and adding+ * an extra level of prototype-based delegation.+ */++const GLOBAL_CODE = 0, EVAL_CODE = 1, FUNCTION_CODE = 2;++function ExecutionContext(type) {+    this.type = type;+}++var global = {+    // Value properties.+    NaN: NaN, Infinity: Infinity, undefined: undefined,++    // Function properties.+    eval: function eval(s) {+        if (typeof s != "string")+            return s;++        var x = ExecutionContext.current;+        var x2 = new ExecutionContext(EVAL_CODE);+        x2.thisObject = x.thisObject;+        x2.caller = x.caller;+        x2.callee = x.callee;+        x2.scope = x.scope;+        ExecutionContext.current = x2;+        try {+            execute(parse(s), x2);+        } catch (e if e == THROW) {+            x.result = x2.result;+            throw e;+        } finally {+            ExecutionContext.current = x;+        }+        return x2.result;+    },+    parseInt: parseInt, parseFloat: parseFloat,+    isNaN: isNaN, isFinite: isFinite,+    decodeURI: decodeURI, encodeURI: encodeURI,+    decodeURIComponent: decodeURIComponent,+    encodeURIComponent: encodeURIComponent,++    // Class constructors.  Where ECMA-262 requires C.length == 1, we declare+    // a dummy formal parameter.+    Object: Object,+    Function: function Function(dummy) {+        var p = "", b = "", n = arguments.length;+        if (n) {+            var m = n - 1;+            if (m) {+                p += arguments[0];+                for (var k = 1; k < m; k++)+                    p += "," + arguments[k];+            }+            b += arguments[m];+        }++        // XXX We want to pass a good file and line to the tokenizer.+        // Note the anonymous name to maintain parity with Spidermonkey.+        var t = new Tokenizer("anonymous(" + p + ") {" + b + "}");++        // NB: Use the STATEMENT_FORM constant since we don't want to push this+        // function onto the null compilation context.+        var f = FunctionDefinition(t, null, false, STATEMENT_FORM);+        var s = {object: global, parent: null};+        return new FunctionObject(f, s);+    },+    Array: function Array(dummy) {+        // Array when called as a function acts as a constructor.+        return GLOBAL.Array.apply(this, arguments);+    },+    String: function String(s) {+        // Called as function or constructor: convert argument to string type.+        s = arguments.length ? "" + s : "";+        if (this instanceof String) {+            // Called as constructor: save the argument as the string value+            // of this String object and return this object.+            this.value = s;+            return this;+        }+        return s;+    },+    Boolean: Boolean, Number: Number, Date: Date, RegExp: RegExp,+    Error: Error, EvalError: EvalError, RangeError: RangeError,+    ReferenceError: ReferenceError, SyntaxError: SyntaxError,+    TypeError: TypeError, URIError: URIError,++    // Other properties.+    Math: Math,++    // Extensions to ECMA.+    snarf: snarf, evaluate: evaluate,+    load: function load(s) {+        if (typeof s != "string")+            return s;++        evaluate(snarf(s), s, 1)+    },+    print: print, version: null+};++// Helper to avoid Object.prototype.hasOwnProperty polluting scope objects.+function hasDirectProperty(o, p) {+    return Object.prototype.hasOwnProperty.call(o, p);+}++// Reflect a host class into the target global environment by delegation.+function reflectClass(name, proto) {+    var gctor = global[name];+    gctor.__defineProperty__('prototype', proto, true, true, true);+    proto.__defineProperty__('constructor', gctor, false, false, true);+    return proto;+}++// Reflect Array -- note that all Array methods are generic.+reflectClass('Array', new Array);++// Reflect String, overriding non-generic methods.+var gSp = reflectClass('String', new String);+gSp.toSource = function () { return this.value.toSource(); };+gSp.toString = function () { return this.value; };+gSp.valueOf  = function () { return this.value; };+global.String.fromCharCode = String.fromCharCode;++var XCp = ExecutionContext.prototype;+ExecutionContext.current = XCp.caller = XCp.callee = null;+XCp.scope = {object: global, parent: null};+XCp.thisObject = global;+XCp.result = undefined;+XCp.target = null;+XCp.ecmaStrictMode = false;++function Reference(base, propertyName, node) {+    this.base = base;+    this.propertyName = propertyName;+    this.node = node;+}++Reference.prototype.toString = function () { return this.node.getSource(); }++function getValue(v) {+    if (v instanceof Reference) {+        if (!v.base) {+            throw new ReferenceError(v.propertyName + " is not defined",+                                     v.node.filename, v.node.lineno);+        }+        return v.base[v.propertyName];+    }+    return v;+}++function putValue(v, w, vn) {+    if (v instanceof Reference)+        return (v.base || global)[v.propertyName] = w;+    throw new ReferenceError("Invalid assignment left-hand side",+                             vn.filename, vn.lineno);+}++function isPrimitive(v) {+    var t = typeof v;+    return (t == "object") ? v === null : t != "function";+}++function isObject(v) {+    var t = typeof v;+    return (t == "object") ? v !== null : t == "function";+}++// If r instanceof Reference, v == getValue(r); else v === r.  If passed, rn+// is the node whose execute result was r.+function toObject(v, r, rn) {+    switch (typeof v) {+      case "boolean":+        return new global.Boolean(v);+      case "number":+        return new global.Number(v);+      case "string":+        return new global.String(v);+      case "function":+        return v;+      case "object":+        if (v !== null)+            return v;+    }+    var message = r + " (type " + (typeof v) + ") has no properties";+    throw rn ? new TypeError(message, rn.filename, rn.lineno)+             : new TypeError(message);+}++//function execute(n, x) {+function execute(n, x) {+    var a, f, i, j, r, s, t, u, v;++    switch (n.type) {+      case FUNCTION:+        if (n.functionForm != DECLARED_FORM) {+            if (!n.name || n.functionForm == STATEMENT_FORM) {+                v = new FunctionObject(n, x.scope);+                if (n.functionForm == STATEMENT_FORM)+                    x.scope.object.__defineProperty__(n.name, v, true);+            } else {+                t = new Object;+                x.scope = {object: t, parent: x.scope};+                try {+                    v = new FunctionObject(n, x.scope);+                    t.__defineProperty__(n.name, v, true, true);+                } finally {+                    x.scope = x.scope.parent;+                }+            }+        }+        break;++      case SCRIPT:+        t = x.scope.object;+        a = n.funDecls;+        for (i = 0, j = a.length; i < j; i++) {+            s = a[i].name;+            f = new FunctionObject(a[i], x.scope);+            t.__defineProperty__(s, f, x.type != EVAL_CODE);+        }+        a = n.varDecls;+        for (i = 0, j = a.length; i < j; i++) {+            u = a[i];+            s = u.name;+            if (u.readOnly && hasDirectProperty(t, s)) {+                throw new TypeError("Redeclaration of const " + s,+                                    u.filename, u.lineno);+            }//++??AZ??"c:/Mark/MyDevelopments/haskell/HJS/hjs-0.2/testsuite/parsingonly/122_jsexec.js"+            if (u.readOnly || !hasDirectProperty(t, s)) {+                t.__defineProperty__(s, undefined, x.type != EVAL_CODE,+                                     u.readOnly);+            }+        }+        // FALL THROUGH++      case BLOCK:+        for (i = 0, j = n.length; i < j; i++)+            execute(n[i], x);+        break;++      case IF:+        if (getValue(execute(n.condition, x)))+            execute(n.thenPart, x);+        else if (n.elsePart)+            execute(n.elsePart, x);+        break;++      case SWITCH:+        s = getValue(execute(n.discriminant, x));+        a = n.cases;+        var matchDefault = false;+      switch_loop:+        for (i = 0, j = a.length; ; i++) {+            if (i == j) {+                if (n.defaultIndex >= 0) {+                    i = n.defaultIndex - 1; // no case matched, do default+                    matchDefault = true;+                    continue;+                }+                break;                      // no default, exit switch_loop+            }+            t = a[i];                       // next case (might be default!)+            if (t.type == CASE) {+                u = getValue(execute(t.caseLabel, x));+            } else {+                if (!matchDefault)          // not defaulting, skip for now+                    continue;+                u = s;                      // force match to do default+            }+            if (u === s) {+                for (;;) {                  // this loop exits switch_loop+                    if (t.statements.length) {+                        try {+                            execute(t.statements, x);+                        } catch (e if e == BREAK && x.target == n) {+                            break switch_loop;+                        }+                    }+                    if (++i == j)+                        break switch_loop;+                    t = a[i];+                }+                // NOT REACHED+            }+        }+        break;++      case FOR:+        n.setup && getValue(execute(n.setup, x));+        // FALL THROUGH+      case WHILE:+        while (!n.condition || getValue(execute(n.condition, x))) {+            try {+                execute(n.body, x);+            } catch (e if e == BREAK && x.target == n) {+                break;+            } catch (e if e == CONTINUE && x.target == n) {+                continue;+            }+            n.update && getValue(execute(n.update, x));+        }+        break;++      case FOR_IN:+        u = n.varDecl;+        if (u)+            execute(u, x);+        r = n.iterator;+        s = execute(n.object, x);+        v = getValue(s);++        // ECMA deviation to track extant browser JS implementation behavior.+        t = (v == null && !x.ecmaStrictMode) ? v : toObject(v, s, n.object);+        a = [];+        for (i in t)+            a.push(i);+        for (i = 0, j = a.length; i < j; i++) {+            putValue(execute(r, x), a[i], r);+            try {+                execute(n.body, x);+            } catch (e if e == BREAK && x.target == n) {+                break;+            } catch (e if e == CONTINUE && x.target == n) {+                continue;+            }+        }+        break;++      case DO:+        do {+            try {+                execute(n.body, x);+            } catch (e if e == BREAK && x.target == n) {+                break;+            } catch (e if e == CONTINUE && x.target == n) {+                continue;+            }+        } while (getValue(execute(n.condition, x)));+        break;++      case BREAK:+      case CONTINUE:+        x.target = n.target;+        throw n.type;++      case TRY:+        try {+            execute(n.tryBlock, x);+        } catch (e if e == THROW && (j = n.catchClauses.length)) {+            e = x.result;+            x.result = undefined;+            for (i = 0; ; i++) {+                if (i == j) {+                    x.result = e;+                    throw THROW;+                }+                t = n.catchClauses[i];+                x.scope = {object: {}, parent: x.scope};+                x.scope.object.__defineProperty__(t.varName, e, true);+                try {+                    if (t.guard && !getValue(execute(t.guard, x)))+                        continue;+                    execute(t.block, x);+                    break;+                } finally {+                    x.scope = x.scope.parent;+                }+            }+        } finally {+            if (n.finallyBlock)+                execute(n.finallyBlock, x);+        }+        break;++      case THROW:+        x.result = getValue(execute(n.exception, x));+        throw THROW;++      case RETURN:+        x.result = getValue(execute(n.value, x));+        throw RETURN;++      case WITH:+        r = execute(n.object, x);+        t = toObject(getValue(r), r, n.object);+        x.scope = {object: t, parent: x.scope};+        try {+            execute(n.body, x);+        } finally {+            x.scope = x.scope.parent;+        }+        break;++      case VAR:+      case CONST:+        for (i = 0, j = n.length; i < j; i++) {+            u = n[i].initializer;+            if (!u)+                continue;+            t = n[i].name;+            for (s = x.scope; s; s = s.parent) {+                if (hasDirectProperty(s.object, t))+                    break;+            }+            u = getValue(execute(u, x));+            if (n.type == CONST)+                s.object.__defineProperty__(t, u, x.type != EVAL_CODE, true);+            else+                s.object[t] = u;+        }+        break;++      case DEBUGGER:+        throw "NYI: " + tokens[n.type];++      case SEMICOLON:+        if (n.expression)+            x.result = getValue(execute(n.expression, x));+        break;++      case LABEL:+        try {+            execute(n.statement, x);+        } catch (e if e == BREAK && x.target == n) {+        }+        break;++      case COMMA:+        for (i = 0, j = n.length; i < j; i++)+            v = getValue(execute(n[i], x));+        break;++      case ASSIGN:+        r = execute(n[0], x);+        t = n[0].assignOp;+        if (t)+            u = getValue(r);+        v = getValue(execute(n[1], x));+        if (t) {+            switch (t) {+              case BITWISE_OR:  v = u | v; break;+              case BITWISE_XOR: v = u ^ v; break;+              case BITWISE_AND: v = u & v; break;+              case LSH:         v = u << v; break;+              case RSH:         v = u >> v; break;+              case URSH:        v = u >>> v; break;+              case PLUS:        v = u + v; break;+              case MINUS:       v = u - v; break;+              case MUL:         v = u * v; break;+              case DIV:         v = u / v; break;+              case MOD:         v = u % v; break;+            }+        }+        putValue(r, v, n[0]);+        break;++      case CONDITIONAL:+        v = getValue(execute(n[0], x)) ? getValue(execute(n[1], x))+                                       : getValue(execute(n[2], x));+        break;++      case OR:+        v = getValue(execute(n[0], x)) || getValue(execute(n[1], x));+        break;++      case AND:+        v = getValue(execute(n[0], x)) && getValue(execute(n[1], x));+        break;++      case BITWISE_OR:+        v = getValue(execute(n[0], x)) | getValue(execute(n[1], x));+        break;++      case BITWISE_XOR:+        v = getValue(execute(n[0], x)) ^ getValue(execute(n[1], x));+        break;++      case BITWISE_AND:+        v = getValue(execute(n[0], x)) & getValue(execute(n[1], x));+        break;++      case EQ:+        v = getValue(execute(n[0], x)) == getValue(execute(n[1], x));+        break;++      case NE:+        v = getValue(execute(n[0], x)) != getValue(execute(n[1], x));+        break;++      case STRICT_EQ:+        v = getValue(execute(n[0], x)) === getValue(execute(n[1], x));+        break;++      case STRICT_NE:+        v = getValue(execute(n[0], x)) !== getValue(execute(n[1], x));+        break;++      case LT:+        v = getValue(execute(n[0], x)) < getValue(execute(n[1], x));+        break;++      case LE:+        v = getValue(execute(n[0], x)) <= getValue(execute(n[1], x));+        break;++      case GE:+        v = getValue(execute(n[0], x)) >= getValue(execute(n[1], x));+        break;++      case GT:+        v = getValue(execute(n[0], x)) > getValue(execute(n[1], x));+        break;++      case IN:+        v = getValue(execute(n[0], x)) in getValue(execute(n[1], x));+        break;++      case INSTANCEOF:+        t = getValue(execute(n[0], x));+        u = getValue(execute(n[1], x));+        if (isObject(u) && typeof u.__hasInstance__ == "function")+            v = u.__hasInstance__(t);+        else+            v = t instanceof u;+        break;++      case LSH:+        v = getValue(execute(n[0], x)) << getValue(execute(n[1], x));+        break;++      case RSH:+        v = getValue(execute(n[0], x)) >> getValue(execute(n[1], x));+        break;++      case URSH:+        v = getValue(execute(n[0], x)) >>> getValue(execute(n[1], x));+        break;++      case PLUS:+        v = getValue(execute(n[0], x)) + getValue(execute(n[1], x));+        break;++      case MINUS:+        v = getValue(execute(n[0], x)) - getValue(execute(n[1], x));+        break;++      case MUL:+        v = getValue(execute(n[0], x)) * getValue(execute(n[1], x));+        break;++      case DIV:+        v = getValue(execute(n[0], x)) / getValue(execute(n[1], x));+        break;++      case MOD:+        v = getValue(execute(n[0], x)) % getValue(execute(n[1], x));+        break;++      case DELETE:+        t = execute(n[0], x);+        v = !(t instanceof Reference) || delete t.base[t.propertyName];+        break;++      case VOID:+        getValue(execute(n[0], x));+        break;++      case TYPEOF:+        t = execute(n[0], x);+        if (t instanceof Reference)+            t = t.base ? t.base[t.propertyName] : undefined;+        v = typeof t;+        break;++      case NOT:+        v = !getValue(execute(n[0], x));+        break;++      case BITWISE_NOT:+        v = ~getValue(execute(n[0], x));+        break;++      case UNARY_PLUS:+        v = +getValue(execute(n[0], x));+        break;++      case UNARY_MINUS:+        v = -getValue(execute(n[0], x));+        break;++      case INCREMENT:+      case DECREMENT:+        t = execute(n[0], x);+        u = Number(getValue(t));+        if (n.postfix)+            v = u;+        putValue(t, (n.type == INCREMENT) ? ++u : --u, n[0]);+        if (!n.postfix)+            v = u;+        break;++      case DOT:+        r = execute(n[0], x);+        t = getValue(r);+        u = n[1].value;+        v = new Reference(toObject(t, r, n[0]), u, n);+        break;++      case INDEX:+        r = execute(n[0], x);+        t = getValue(r);+        u = getValue(execute(n[1], x));+        v = new Reference(toObject(t, r, n[0]), String(u), n);+        break;++      case LIST:+        // Curse ECMA for specifying that arguments is not an Array object!+        v = {};+        for (i = 0, j = n.length; i < j; i++) {+            u = getValue(execute(n[i], x));+            v.__defineProperty__(i, u, false, false, true);+        }+        v.__defineProperty__('length', i, false, false, true);+        break;++      case CALL:+        r = execute(n[0], x);+        a = execute(n[1], x);+        f = getValue(r);+        if (isPrimitive(f) || typeof f.__call__ != "function") {+            throw new TypeError(r + " is not callable",+                                n[0].filename, n[0].lineno);+        }+        t = (r instanceof Reference) ? r.base : null;+        if (t instanceof Activation)+            t = null;+        v = f.__call__(t, a, x);+        break;++      case NEW:+      case NEW_WITH_ARGS:+        r = execute(n[0], x);+        f = getValue(r);+        if (n.type == NEW) {+            a = {};+            a.__defineProperty__('length', 0, false, false, true);+        } else {+            a = execute(n[1], x);+        }+        if (isPrimitive(f) || typeof f.__construct__ != "function") {+            throw new TypeError(r + " is not a constructor",+                                n[0].filename, n[0].lineno);+        }+        v = f.__construct__(a, x);+        break;++      case ARRAY_INIT:+        v = [];+        for (i = 0, j = n.length; i < j; i++) {+            if (n[i])+                v[i] = getValue(execute(n[i], x));+        }+        v.length = j;+        break;++      case OBJECT_INIT:+        v = {};+        for (i = 0, j = n.length; i < j; i++) {+            t = n[i];+            if (t.type == PROPERTY_INIT) {+                v[t[0].value] = getValue(execute(t[1], x));+            } else {+                f = new FunctionObject(t, x.scope);+                u = (t.type == GETTER) ? '__defineGetter__'+                                       : '__defineSetter__';+                v[u](t.name, thunk(f, x));+            }+        }+        break;++      case NULL:+        v = null;+        break;++      case THIS:+        v = x.thisObject;+        break;++      case TRUE:+        v = true;+        break;++      case FALSE:+        v = false;+        break;++      case IDENTIFIER:+        for (s = x.scope; s; s = s.parent) {+            if (n.value in s.object)+                break;+        }+        v = new Reference(s && s.object, n.value, n);+        break;++      case NUMBER:+      case STRING:+      case REGEXP:+        v = n.value;+        break;++      case GROUP:+        v = execute(n[0], x);+        break;++      default:+        throw "PANIC: unknown operation " + n.type + ": " + uneval(n);+    }++    return v;+//}+}++function Activation(f, a) {+    for (var i = 0, j = f.params.length; i < j; i++)+        this.__defineProperty__(f.params[i], a[i], true);+    this.__defineProperty__('arguments', a, true);+}++// Null Activation.prototype's proto slot so that Object.prototype.* does not+// pollute the scope of heavyweight functions.  Also delete its 'constructor'+// property so that it doesn't pollute function scopes.  But first, we must+// copy __defineProperty__ down from Object.prototype.++Activation.prototype.__defineProperty__ = Object.prototype.__defineProperty__;+Activation.prototype.__proto__ = null;+delete Activation.prototype.constructor;++function FunctionObject(node, scope) {+    this.node = node;+    this.scope = scope;+    this.__defineProperty__('length', node.params.length, true, true, true);+    var proto = {};+    this.__defineProperty__('prototype', proto, true);+    proto.__defineProperty__('constructor', this, false, false, true);+}++var FOp = FunctionObject.prototype = {+    // Internal methods.+    __call__: function (t, a, x) {+        var x2 = new ExecutionContext(FUNCTION_CODE);+        x2.thisObject = t || global;+        x2.caller = x;+        x2.callee = this;+        a.__defineProperty__('callee', this, false, false, true);+        var f = this.node;+        x2.scope = {object: new Activation(f, a), parent: this.scope};++        ExecutionContext.current = x2;+        try {+            execute(f.body, x2);+        } catch (e if e == RETURN) {+            return x2.result;+        } catch (e if e == THROW) {+            x.result = x2.result;+            throw THROW;+        } finally {+            ExecutionContext.current = x;+        }+        return undefined;+    },++    __construct__: function (a, x) {+        var o = new Object;+        var p = this.prototype;+        if (isObject(p))+            o.__proto__ = p;+        // else o.__proto__ defaulted to Object.prototype++        var v = this.__call__(o, a, x);+        if (isObject(v))+            return v;+        return o;+    },++    __hasInstance__: function (v) {+        if (isPrimitive(v))+            return false;+        var p = this.prototype;+        if (isPrimitive(p)) {+            throw new TypeError("'prototype' property is not an object",+                                this.node.filename, this.node.lineno);+        }+        var o;+        while ((o = v.__proto__)) {+            if (o == p)+                return true;+            v = o;+        }+        return false;+    },++    // Standard methods.+    toString: function () {+        return this.node.getSource();+    },++    apply: function (t, a) {+        // Curse ECMA again!+        if (typeof this.__call__ != "function") {+            throw new TypeError("Function.prototype.apply called on" ++                                " uncallable object");+        }++        if (t === undefined || t === null)+            t = global;+        else if (typeof t != "object")+            t = toObject(t, t);++        if (a === undefined || a === null) {+            a = {};+            a.__defineProperty__('length', 0, false, false, true);+        } else if (a instanceof Array) {+            var v = {};+            for (var i = 0, j = a.length; i < j; i++)+                v.__defineProperty__(i, a[i], false, false, true);+            v.__defineProperty__('length', i, false, false, true);+            a = v;+        } else if (!(a instanceof Object)) {+            // XXX check for a non-arguments object+            throw new TypeError("Second argument to Function.prototype.apply" ++                                " must be an array or arguments object",+                                this.node.filename, this.node.lineno);+        }++        return this.__call__(t, a, ExecutionContext.current);+    },++    call: function (t) {+        // Curse ECMA a third time!+        var a = Array.prototype.splice.call(arguments, 1);+        return this.apply(t, a);+    }+};++// Connect Function.prototype and Function.prototype.constructor in global.+reflectClass('Function', FOp);++// Help native and host-scripted functions be like FunctionObjects.+var Fp = Function.prototype;+var REp = RegExp.prototype;++if (!('__call__' in Fp)) {+    Fp.__defineProperty__('__call__', function (t, a, x) {+        // Curse ECMA yet again!+        a = Array.prototype.splice.call(a, 0, a.length);+        return this.apply(t, a);+    }, true, true, true);++    REp.__defineProperty__('__call__', function (t, a, x) {+        a = Array.prototype.splice.call(a, 0, a.length);+        return this.exec.apply(this, a);+    }, true, true, true);++    Fp.__defineProperty__('__construct__', function (a, x) {+        a = Array.prototype.splice.call(a, 0, a.length);+        return this.__applyConstructor__(a);+    }, true, true, true);++    // Since we use native functions such as Date along with host ones such+    // as global.eval, we want both to be considered instances of the native+    // Function constructor.+    Fp.__defineProperty__('__hasInstance__', function (v) {+        return v instanceof Function || v instanceof global.Function;+    }, true, true, true);+}++function thunk(f, x) {+    return function () { return f.__call__(this, arguments, x); };+}++function evaluate(s, f, l) {+    if (typeof s != "string")+        return s;++    var x = ExecutionContext.current;+    var x2 = new ExecutionContext(GLOBAL_CODE);+    ExecutionContext.current = x2;+    try {+        execute(parse(s, f, l), x2);+    } catch (e if e == THROW) {+        if (x) {+            x.result = x2.result;+            throw THROW;+        }+        throw x2.result;+    } finally {+        ExecutionContext.current = x;+    }+    return x2.result;+}
+ test/parsingonly/122_jsexec2.js view
@@ -0,0 +1,946 @@+/* ***** BEGIN LICENSE BLOCK *****+ * vim: set ts=4 sw=4 et tw=80:+ *+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1+ *+ * The contents of this file are subject to the Mozilla Public License Version+ * 1.1 (the "License"); you may not use this file except in compliance with+ * the License. You may obtain a copy of the License at+ * http://www.mozilla.org/MPL/+ *+ * Software distributed under the License is distributed on an "AS IS" basis,+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License+ * for the specific language governing rights and limitations under the+ * License.+ *+ * The Original Code is the Narcissus JavaScript engine.+ *+ * The Initial Developer of the Original Code is+ * Brendan Eich <brendan@mozilla.org>.+ * Portions created by the Initial Developer are Copyright (C) 2004+ * the Initial Developer. All Rights Reserved.+ *+ * Contributor(s):+ *+ * Alternatively, the contents of this file may be used under the terms of+ * either the GNU General Public License Version 2 or later (the "GPL"), or+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),+ * in which case the provisions of the GPL or the LGPL are applicable instead+ * of those above. If you wish to allow use of your version of this file only+ * under the terms of either the GPL or the LGPL, and not to allow others to+ * use your version of this file under the terms of the MPL, indicate your+ * decision by deleting the provisions above and replace them with the notice+ * and other provisions required by the GPL or the LGPL. If you do not delete+ * the provisions above, a recipient may use your version of this file under+ * the terms of any one of the MPL, the GPL or the LGPL.+ *+ * ***** END LICENSE BLOCK ***** */++/*+ * Narcissus - JS implemented in JS.+ *+ * Execution of parse trees.+ *+ * Standard classes except for eval, Function, Array, and String are borrowed+ * from the host JS environment.  Function is metacircular.  Array and String+ * are reflected via wrapping the corresponding native constructor and adding+ * an extra level of prototype-based delegation.+ */++const GLOBAL_CODE = 0, EVAL_CODE = 1, FUNCTION_CODE = 2;++function ExecutionContext(type) {+    this.type = type;+}++var global = {+    // Value properties.+    NaN: NaN, Infinity: Infinity, undefined: undefined,++    // Function properties.+    eval: function eval(s) {+        if (typeof s != "string")+            return s;++        var x = ExecutionContext.current;+        var x2 = new ExecutionContext(EVAL_CODE);+        x2.thisObject = x.thisObject;+        x2.caller = x.caller;+        x2.callee = x.callee;+        x2.scope = x.scope;+        ExecutionContext.current = x2;+        try {+            execute(parse(s), x2);+        } catch (e if e == THROW) {+            x.result = x2.result;+            throw e;+        } finally {+            ExecutionContext.current = x;+        }+        return x2.result;+    },+    parseInt: parseInt, parseFloat: parseFloat,+    isNaN: isNaN, isFinite: isFinite,+    decodeURI: decodeURI, encodeURI: encodeURI,+    decodeURIComponent: decodeURIComponent,+    encodeURIComponent: encodeURIComponent,++    // Class constructors.  Where ECMA-262 requires C.length == 1, we declare+    // a dummy formal parameter.+    Object: Object,+    Function: function Function(dummy) {+        var p = "", b = "", n = arguments.length;+        if (n) {+            var m = n - 1;+            if (m) {+                p += arguments[0];+                for (var k = 1; k < m; k++)+                    p += "," + arguments[k];+            }+            b += arguments[m];+        }++        // XXX We want to pass a good file and line to the tokenizer.+        // Note the anonymous name to maintain parity with Spidermonkey.+        var t = new Tokenizer("anonymous(" + p + ") {" + b + "}");++        // NB: Use the STATEMENT_FORM constant since we don't want to push this+        // function onto the null compilation context.+        var f = FunctionDefinition(t, null, false, STATEMENT_FORM);+        var s = {object: global, parent: null};+        return new FunctionObject(f, s);+    },+    Array: function Array(dummy) {+        // Array when called as a function acts as a constructor.+        return GLOBAL.Array.apply(this, arguments);+    },+    String: function String(s) {+        // Called as function or constructor: convert argument to string type.+        s = arguments.length ? "" + s : "";+        if (this instanceof String) {+            // Called as constructor: save the argument as the string value+            // of this String object and return this object.+            this.value = s;+            return this;+        }+        return s;+    },+    Boolean: Boolean, Number: Number, Date: Date, RegExp: RegExp,+    Error: Error, EvalError: EvalError, RangeError: RangeError,+    ReferenceError: ReferenceError, SyntaxError: SyntaxError,+    TypeError: TypeError, URIError: URIError,++    // Other properties.+    Math: Math,++    // Extensions to ECMA.+    snarf: snarf, evaluate: evaluate,+    load: function load(s) {+        if (typeof s != "string")+            return s;++        evaluate(snarf(s), s, 1)+    },+    print: print, version: null+};++// Helper to avoid Object.prototype.hasOwnProperty polluting scope objects.+function hasDirectProperty(o, p) {+    return Object.prototype.hasOwnProperty.call(o, p);+}++// Reflect a host class into the target global environment by delegation.+function reflectClass(name, proto) {+    var gctor = global[name];+    gctor.__defineProperty__('prototype', proto, true, true, true);+    proto.__defineProperty__('constructor', gctor, false, false, true);+    return proto;+}++// Reflect Array -- note that all Array methods are generic.+reflectClass('Array', new Array);++// Reflect String, overriding non-generic methods.+var gSp = reflectClass('String', new String);+gSp.toSource = function () { return this.value.toSource(); };+gSp.toString = function () { return this.value; };+gSp.valueOf  = function () { return this.value; };+global.String.fromCharCode = String.fromCharCode;++var XCp = ExecutionContext.prototype;+ExecutionContext.current = XCp.caller = XCp.callee = null;+XCp.scope = {object: global, parent: null};+XCp.thisObject = global;+XCp.result = undefined;+XCp.target = null;+XCp.ecmaStrictMode = false;++function Reference(base, propertyName, node) {+    this.base = base;+    this.propertyName = propertyName;+    this.node = node;+}++Reference.prototype.toString = function () { return this.node.getSource(); }++function getValue(v) {+    if (v instanceof Reference) {+        if (!v.base) {+            throw new ReferenceError(v.propertyName + " is not defined",+                                     v.node.filename, v.node.lineno);+        }+        return v.base[v.propertyName];+    }+    return v;+}++function putValue(v, w, vn) {+    if (v instanceof Reference)+        return (v.base || global)[v.propertyName] = w;+    throw new ReferenceError("Invalid assignment left-hand side",+                             vn.filename, vn.lineno);+}++function isPrimitive(v) {+    var t = typeof v;+    return (t == "object") ? v === null : t != "function";+}++function isObject(v) {+    var t = typeof v;+    return (t == "object") ? v !== null : t == "function";+}++// If r instanceof Reference, v == getValue(r); else v === r.  If passed, rn+// is the node whose execute result was r.+function toObject(v, r, rn) {+    switch (typeof v) {+      case "boolean":+        return new global.Boolean(v);+      case "number":+        return new global.Number(v);+      case "string":+        return new global.String(v);+      case "function":+        return v;+      case "object":+        if (v !== null)+            return v;+    }+    var message = r + " (type " + (typeof v) + ") has no properties";+    throw rn ? new TypeError(message, rn.filename, rn.lineno)+             : new TypeError(message);+}++//function execute(n, x) {+function execute(n, x) {+    var a, f, i, j, r, s, t, u, v;++    switch (n.type) {+      case FUNCTION:+        if (n.functionForm != DECLARED_FORM) {+            if (!n.name || n.functionForm == STATEMENT_FORM) {+                v = new FunctionObject(n, x.scope);+                if (n.functionForm == STATEMENT_FORM)+                    x.scope.object.__defineProperty__(n.name, v, true);+            } else {+                t = new Object;+                x.scope = {object: t, parent: x.scope};+                try {+                    v = new FunctionObject(n, x.scope);+                    t.__defineProperty__(n.name, v, true, true);+                } finally {+                    x.scope = x.scope.parent;+                }+            }+        }+        break;++      case SCRIPT:+        t = x.scope.object;+        a = n.funDecls;+        for (i = 0, j = a.length; i < j; i++) {+            s = a[i].name;+            f = new FunctionObject(a[i], x.scope);+            t.__defineProperty__(s, f, x.type != EVAL_CODE);+        }+        a = n.varDecls;+        for (i = 0, j = a.length; i < j; i++) {+            u = a[i];+            s = u.name;+            if (u.readOnly && hasDirectProperty(t, s)) {+                throw new TypeError("Redeclaration of const " + s,+                                    u.filename, u.lineno);+            }//++??AZ??"c:/Mark/MyDevelopments/haskell/HJS/hjs-0.2/testsuite/parsingonly/122_jsexec.js"+            if (u.readOnly || !hasDirectProperty(t, s)) {+                t.__defineProperty__(s, undefined, x.type != EVAL_CODE,+                                     u.readOnly);+            }+        }+        // FALL THROUGH++      case BLOCK:+        for (i = 0, j = n.length; i < j; i++)+            execute(n[i], x);+        break;++      case IF:+        if (getValue(execute(n.condition, x)))+            execute(n.thenPart, x);+        else if (n.elsePart)+            execute(n.elsePart, x);+        break;++      case SWITCH:+        s = getValue(execute(n.discriminant, x));+        a = n.cases;+        var matchDefault = false;+      switch_loop:+        for (i = 0, j = a.length; ; i++) {+            if (i == j) {+                if (n.defaultIndex >= 0) {+                    i = n.defaultIndex - 1; // no case matched, do default+                    matchDefault = true;+                    continue;+                }+                break;                      // no default, exit switch_loop+            }+            t = a[i];                       // next case (might be default!)+            if (t.type == CASE) {+                u = getValue(execute(t.caseLabel, x));+            } else {+                if (!matchDefault)          // not defaulting, skip for now+                    continue;+                u = s;                      // force match to do default+            }+            if (u === s) {+                for (;;) {                  // this loop exits switch_loop+                    if (t.statements.length) {+                        try {+                            execute(t.statements, x);+                        } catch (e if e == BREAK && x.target == n) {+                            break switch_loop;+                        }+                    }+                    if (++i == j)+                        break switch_loop;+                    t = a[i];+                }+                // NOT REACHED+            }+        }+        break;++      case FOR:+        n.setup && getValue(execute(n.setup, x));+        // FALL THROUGH+      case WHILE:+        while (!n.condition || getValue(execute(n.condition, x))) {+            try {+                execute(n.body, x);+            } catch (e if e == BREAK && x.target == n) {+                break;+            } catch (e if e == CONTINUE && x.target == n) {+                continue;+            }+            n.update && getValue(execute(n.update, x));+        }+        break;++      case FOR_IN:+        u = n.varDecl;+        if (u)+            execute(u, x);+        r = n.iterator;+        s = execute(n.object, x);+        v = getValue(s);++        // ECMA deviation to track extant browser JS implementation behavior.+        t = (v == null && !x.ecmaStrictMode) ? v : toObject(v, s, n.object);+        a = [];+        for (i in t)+            a.push(i);+        for (i = 0, j = a.length; i < j; i++) {+            putValue(execute(r, x), a[i], r);+            try {+                execute(n.body, x);+            } catch (e if e == BREAK && x.target == n) {+                break;+            } catch (e if e == CONTINUE && x.target == n) {+                continue;+            }+        }+        break;++      case DO:+        do {+            try {+                execute(n.body, x);+            } catch (e if e == BREAK && x.target == n) {+                break;+            } catch (e if e == CONTINUE && x.target == n) {+                continue;+            }+        } while (getValue(execute(n.condition, x)));+        break;++      case BREAK:+      case CONTINUE:+        x.target = n.target;+        throw n.type;++      case TRY:+        try {+            execute(n.tryBlock, x);+        } catch (e if e == THROW && (j = n.catchClauses.length)) {+            e = x.result;+            x.result = undefined;+            for (i = 0; ; i++) {+                if (i == j) {+                    x.result = e;+                    throw THROW;+                }+                t = n.catchClauses[i];+                x.scope = {object: {}, parent: x.scope};+                x.scope.object.__defineProperty__(t.varName, e, true);+                try {+                    if (t.guard && !getValue(execute(t.guard, x)))+                        continue;+                    execute(t.block, x);+                    break;+                } finally {+                    x.scope = x.scope.parent;+                }+            }+        } finally {+            if (n.finallyBlock)+                execute(n.finallyBlock, x);+        }+        break;++      case THROW:+        x.result = getValue(execute(n.exception, x));+        throw THROW;++      case RETURN:+        x.result = getValue(execute(n.value, x));+        throw RETURN;++      case WITH:+        r = execute(n.object, x);+        t = toObject(getValue(r), r, n.object);+        x.scope = {object: t, parent: x.scope};+        try {+            execute(n.body, x);+        } finally {+            x.scope = x.scope.parent;+        }+        break;++      case VAR:+      case CONST:+        for (i = 0, j = n.length; i < j; i++) {+            u = n[i].initializer;+            if (!u)+                continue;+            t = n[i].name;+            for (s = x.scope; s; s = s.parent) {+                if (hasDirectProperty(s.object, t))+                    break;+            }+            u = getValue(execute(u, x));+            if (n.type == CONST)+                s.object.__defineProperty__(t, u, x.type != EVAL_CODE, true);+            else+                s.object[t] = u;+        }+        break;++      case DEBUGGER:+        throw "NYI: " + tokens[n.type];++      case SEMICOLON:+        if (n.expression)+            x.result = getValue(execute(n.expression, x));+        break;++      case LABEL:+        try {+            execute(n.statement, x);+        } catch (e if e == BREAK && x.target == n) {+        }+        break;++      case COMMA:+        for (i = 0, j = n.length; i < j; i++)+            v = getValue(execute(n[i], x));+        break;++      case ASSIGN:+        r = execute(n[0], x);+        t = n[0].assignOp;+        if (t)+            u = getValue(r);+        v = getValue(execute(n[1], x));+        if (t) {+            switch (t) {+              case BITWISE_OR:  v = u | v; break;+              case BITWISE_XOR: v = u ^ v; break;+              case BITWISE_AND: v = u & v; break;+              case LSH:         v = u << v; break;+              case RSH:         v = u >> v; break;+              case URSH:        v = u >>> v; break;+              case PLUS:        v = u + v; break;+              case MINUS:       v = u - v; break;+              case MUL:         v = u * v; break;+              case DIV:         v = u / v; break;+              case MOD:         v = u % v; break;+            }+        }+        putValue(r, v, n[0]);+        break;++      case CONDITIONAL:+        v = getValue(execute(n[0], x)) ? getValue(execute(n[1], x))+                                       : getValue(execute(n[2], x));+        break;++      case OR:+        v = getValue(execute(n[0], x)) || getValue(execute(n[1], x));+        break;++      case AND:+        v = getValue(execute(n[0], x)) && getValue(execute(n[1], x));+        break;++      case BITWISE_OR:+        v = getValue(execute(n[0], x)) | getValue(execute(n[1], x));+        break;++      case BITWISE_XOR:+        v = getValue(execute(n[0], x)) ^ getValue(execute(n[1], x));+        break;++      case BITWISE_AND:+        v = getValue(execute(n[0], x)) & getValue(execute(n[1], x));+        break;++      case EQ:+        v = getValue(execute(n[0], x)) == getValue(execute(n[1], x));+        break;++      case NE:+        v = getValue(execute(n[0], x)) != getValue(execute(n[1], x));+        break;++      case STRICT_EQ:+        v = getValue(execute(n[0], x)) === getValue(execute(n[1], x));+        break;++      case STRICT_NE:+        v = getValue(execute(n[0], x)) !== getValue(execute(n[1], x));+        break;++      case LT:+        v = getValue(execute(n[0], x)) < getValue(execute(n[1], x));+        break;++      case LE:+        v = getValue(execute(n[0], x)) <= getValue(execute(n[1], x));+        break;++      case GE:+        v = getValue(execute(n[0], x)) >= getValue(execute(n[1], x));+        break;++      case GT:+        v = getValue(execute(n[0], x)) > getValue(execute(n[1], x));+        break;++      case IN:+        v = getValue(execute(n[0], x)) in getValue(execute(n[1], x));+        break;++      case INSTANCEOF:+        t = getValue(execute(n[0], x));+        u = getValue(execute(n[1], x));+        if (isObject(u) && typeof u.__hasInstance__ == "function")+            v = u.__hasInstance__(t);+        else+            v = t instanceof u;+        break;++      case LSH:+        v = getValue(execute(n[0], x)) << getValue(execute(n[1], x));+        break;++      case RSH:+        v = getValue(execute(n[0], x)) >> getValue(execute(n[1], x));+        break;++      case URSH:+        v = getValue(execute(n[0], x)) >>> getValue(execute(n[1], x));+        break;++      case PLUS:+        v = getValue(execute(n[0], x)) + getValue(execute(n[1], x));+        break;++      case MINUS:+        v = getValue(execute(n[0], x)) - getValue(execute(n[1], x));+        break;++      case MUL:+        v = getValue(execute(n[0], x)) * getValue(execute(n[1], x));+        break;++      case DIV:+        v = getValue(execute(n[0], x)) / getValue(execute(n[1], x));+        break;++      case MOD:+        v = getValue(execute(n[0], x)) % getValue(execute(n[1], x));+        break;++      case DELETE:+        t = execute(n[0], x);+        v = !(t instanceof Reference) || delete t.base[t.propertyName];+        break;++      case VOID:+        getValue(execute(n[0], x));+        break;++      case TYPEOF:+        t = execute(n[0], x);+        if (t instanceof Reference)+            t = t.base ? t.base[t.propertyName] : undefined;+        v = typeof t;+        break;++      case NOT:+        v = !getValue(execute(n[0], x));+        break;++      case BITWISE_NOT:+        v = ~getValue(execute(n[0], x));+        break;++      case UNARY_PLUS:+        v = +getValue(execute(n[0], x));+        break;++      case UNARY_MINUS:+        v = -getValue(execute(n[0], x));+        break;++      case INCREMENT:+      case DECREMENT:+        t = execute(n[0], x);+        u = Number(getValue(t));+        if (n.postfix)+            v = u;+        putValue(t, (n.type == INCREMENT) ? ++u : --u, n[0]);+        if (!n.postfix)+            v = u;+        break;++      case DOT:+        r = execute(n[0], x);+        t = getValue(r);+        u = n[1].value;+        v = new Reference(toObject(t, r, n[0]), u, n);+        break;++      case INDEX:+        r = execute(n[0], x);+        t = getValue(r);+        u = getValue(execute(n[1], x));+        v = new Reference(toObject(t, r, n[0]), String(u), n);+        break;++      case LIST:+        // Curse ECMA for specifying that arguments is not an Array object!+        v = {};+        for (i = 0, j = n.length; i < j; i++) {+            u = getValue(execute(n[i], x));+            v.__defineProperty__(i, u, false, false, true);+        }+        v.__defineProperty__('length', i, false, false, true);+        break;++      case CALL:+        r = execute(n[0], x);+        a = execute(n[1], x);+        f = getValue(r);+        if (isPrimitive(f) || typeof f.__call__ != "function") {+            throw new TypeError(r + " is not callable",+                                n[0].filename, n[0].lineno);+        }+        t = (r instanceof Reference) ? r.base : null;+        if (t instanceof Activation)+            t = null;+        v = f.__call__(t, a, x);+        break;++      case NEW:+      case NEW_WITH_ARGS:+        r = execute(n[0], x);+        f = getValue(r);+        if (n.type == NEW) {+            a = {};+            a.__defineProperty__('length', 0, false, false, true);+        } else {+            a = execute(n[1], x);+        }+        if (isPrimitive(f) || typeof f.__construct__ != "function") {+            throw new TypeError(r + " is not a constructor",+                                n[0].filename, n[0].lineno);+        }+        v = f.__construct__(a, x);+        break;++      case ARRAY_INIT:+        v = [];+        for (i = 0, j = n.length; i < j; i++) {+            if (n[i])+                v[i] = getValue(execute(n[i], x));+        }+        v.length = j;+        break;++      case OBJECT_INIT:+        v = {};+        for (i = 0, j = n.length; i < j; i++) {+            t = n[i];+            if (t.type == PROPERTY_INIT) {+                v[t[0].value] = getValue(execute(t[1], x));+            } else {+                f = new FunctionObject(t, x.scope);+                u = (t.type == GETTER) ? '__defineGetter__'+                                       : '__defineSetter__';+                v[u](t.name, thunk(f, x));+            }+        }+        break;++      case NULL:+        v = null;+        break;++      case THIS:+        v = x.thisObject;+        break;++      case TRUE:+        v = true;+        break;++      case FALSE:+        v = false;+        break;++      case IDENTIFIER:+        for (s = x.scope; s; s = s.parent) {+            if (n.value in s.object)+                break;+        }+        v = new Reference(s && s.object, n.value, n);+        break;++      case NUMBER:+      case STRING:+      case REGEXP:+        v = n.value;+        break;++      case GROUP:+        v = execute(n[0], x);+        break;++      default:+        throw "PANIC: unknown operation " + n.type + ": " + uneval(n);+    }++    return v;+//}+}++function Activation(f, a) {+    for (var i = 0, j = f.params.length; i < j; i++)+        this.__defineProperty__(f.params[i], a[i], true);+    this.__defineProperty__('arguments', a, true);+}++// Null Activation.prototype's proto slot so that Object.prototype.* does not+// pollute the scope of heavyweight functions.  Also delete its 'constructor'+// property so that it doesn't pollute function scopes.  But first, we must+// copy __defineProperty__ down from Object.prototype.++Activation.prototype.__defineProperty__ = Object.prototype.__defineProperty__;+Activation.prototype.__proto__ = null;+delete Activation.prototype.constructor;++function FunctionObject(node, scope) {+    this.node = node;+    this.scope = scope;+    this.__defineProperty__('length', node.params.length, true, true, true);+    var proto = {};+    this.__defineProperty__('prototype', proto, true);+    proto.__defineProperty__('constructor', this, false, false, true);+}++var FOp = FunctionObject.prototype = {+    // Internal methods.+    __call__: function (t, a, x) {+        var x2 = new ExecutionContext(FUNCTION_CODE);+        x2.thisObject = t || global;+        x2.caller = x;+        x2.callee = this;+        a.__defineProperty__('callee', this, false, false, true);+        var f = this.node;+        x2.scope = {object: new Activation(f, a), parent: this.scope};++        ExecutionContext.current = x2;+        try {+            execute(f.body, x2);+        } catch (e if e == RETURN) {+            return x2.result;+        } catch (e if e == THROW) {+            x.result = x2.result;+            throw THROW;+        } finally {+            ExecutionContext.current = x;+        }+        return undefined;+    },++    __construct__: function (a, x) {+        var o = new Object;+        var p = this.prototype;+        if (isObject(p))+            o.__proto__ = p;+        // else o.__proto__ defaulted to Object.prototype++        var v = this.__call__(o, a, x);+        if (isObject(v))+            return v;+        return o;+    },++    __hasInstance__: function (v) {+        if (isPrimitive(v))+            return false;+        var p = this.prototype;+        if (isPrimitive(p)) {+            throw new TypeError("'prototype' property is not an object",+                                this.node.filename, this.node.lineno);+        }+        var o;+        while ((o = v.__proto__)) {+            if (o == p)+                return true;+            v = o;+        }+        return false;+    },++    // Standard methods.+    toString: function () {+        return this.node.getSource();+    },++    apply: function (t, a) {+        // Curse ECMA again!+        if (typeof this.__call__ != "function") {+            throw new TypeError("Function.prototype.apply called on" ++                                " uncallable object");+        }++        if (t === undefined || t === null)+            t = global;+        else if (typeof t != "object")+            t = toObject(t, t);++        if (a === undefined || a === null) {+            a = {};+            a.__defineProperty__('length', 0, false, false, true);+        } else if (a instanceof Array) {+            var v = {};+            for (var i = 0, j = a.length; i < j; i++)+                v.__defineProperty__(i, a[i], false, false, true);+            v.__defineProperty__('length', i, false, false, true);+            a = v;+        } else if (!(a instanceof Object)) {+            // XXX check for a non-arguments object+            throw new TypeError("Second argument to Function.prototype.apply" ++                                " must be an array or arguments object",+                                this.node.filename, this.node.lineno);+        }++        return this.__call__(t, a, ExecutionContext.current);+    },++    call: function (t) {+        // Curse ECMA a third time!+        var a = Array.prototype.splice.call(arguments, 1);+        return this.apply(t, a);+    }+};++// Connect Function.prototype and Function.prototype.constructor in global.+reflectClass('Function', FOp);++// Help native and host-scripted functions be like FunctionObjects.+var Fp = Function.prototype;+var REp = RegExp.prototype;++if (!('__call__' in Fp)) {+    Fp.__defineProperty__('__call__', function (t, a, x) {+        // Curse ECMA yet again!+        a = Array.prototype.splice.call(a, 0, a.length);+        return this.apply(t, a);+    }, true, true, true);++    REp.__defineProperty__('__call__', function (t, a, x) {+        a = Array.prototype.splice.call(a, 0, a.length);+        return this.exec.apply(this, a);+    }, true, true, true);++    Fp.__defineProperty__('__construct__', function (a, x) {+        a = Array.prototype.splice.call(a, 0, a.length);+        return this.__applyConstructor__(a);+    }, true, true, true);++    // Since we use native functions such as Date along with host ones such+    // as global.eval, we want both to be considered instances of the native+    // Function constructor.+    Fp.__defineProperty__('__hasInstance__', function (v) {+        return v instanceof Function || v instanceof global.Function;+    }, true, true, true);+}++function thunk(f, x) {+    return function () { return f.__call__(this, arguments, x); };+}++function evaluate(s, f, l) {+    if (typeof s != "string")+        return s;++    var x = ExecutionContext.current;+    var x2 = new ExecutionContext(GLOBAL_CODE);+    ExecutionContext.current = x2;+    try {+        execute(parse(s, f, l), x2);+    } catch (e if e == THROW) {+        if (x) {+            x.result = x2.result;+            throw THROW;+        }+        throw x2.result;+    } finally {+        ExecutionContext.current = x;+    }+    return x2.result;+}
+ test/parsingonly/123_jsparse.js view
@@ -0,0 +1,997 @@+/* vim: set sw=4 ts=8 et tw=80: */+/* ***** BEGIN LICENSE BLOCK *****+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1+ *+ * The contents of this file are subject to the Mozilla Public License Version+ * 1.1 (the "License"); you may not use this file except in compliance with+ * the License. You may obtain a copy of the License at+ * http://www.mozilla.org/MPL/+ *+ * Software distributed under the License is distributed on an "AS IS" basis,+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License+ * for the specific language governing rights and limitations under the+ * License.+ *+ * The Original Code is the Narcissus JavaScript engine.+ *+ * The Initial Developer of the Original Code is+ * Brendan Eich <brendan@mozilla.org>.+ * Portions created by the Initial Developer are Copyright (C) 2004+ * the Initial Developer. All Rights Reserved.+ *+ * Contributor(s):+ *+ * Alternatively, the contents of this file may be used under the terms of+ * either the GNU General Public License Version 2 or later (the "GPL"), or+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),+ * in which case the provisions of the GPL or the LGPL are applicable instead+ * of those above. If you wish to allow use of your version of this file only+ * under the terms of either the GPL or the LGPL, and not to allow others to+ * use your version of this file under the terms of the MPL, indicate your+ * decision by deleting the provisions above and replace them with the notice+ * and other provisions required by the GPL or the LGPL. If you do not delete+ * the provisions above, a recipient may use your version of this file under+ * the terms of any one of the MPL, the GPL or the LGPL.+ *+ * ***** END LICENSE BLOCK ***** */++/*+ * Narcissus - JS implemented in JS.+ *+ * Lexical scanner and parser.+ */++// Build a regexp that recognizes operators and punctuators (except newline).+var opRegExpSrc = "^";+for (i in opTypeNames) {+    if (i == '\n')+        continue;+    if (opRegExpSrc != "^")+        opRegExpSrc += "|^";+    opRegExpSrc += i.replace(/[?|^&(){}\[\]+\-*\/\.]/g, "\\$&");+}+var opRegExp = new RegExp(opRegExpSrc);++// A regexp to match floating point literals (but not integer literals).+var fpRegExp = /^\d+\.\d*(?:[eE][-+]?\d+)?|^\d+(?:\.\d*)?[eE][-+]?\d+|^\.\d+(?:[eE][-+]?\d+)?/;++function Tokenizer(s, f, l) {+    this.cursor = 0;+    this.source = String(s);+    this.tokens = [];+    this.tokenIndex = 0;+    this.lookahead = 0;+    this.scanNewlines = false;+    this.scanOperand = true;+    this.filename = f || "";+    this.lineno = l || 1;+}++Tokenizer.prototype = {+    get input() {+        return this.source.substring(this.cursor);+    },++    get done() {+        return this.peek() == END;+    },++    get token() {+        return this.tokens[this.tokenIndex];+    },++    match: function (tt) {+        return this.get() == tt || this.unget();+    },++    mustMatch: function (tt) {+        if (!this.match(tt))+            throw this.newSyntaxError("Missing " + tokens[tt].toLowerCase());+        return this.token;+    },++    peek: function () {+        var tt;+        if (this.lookahead) {+            tt = this.tokens[(this.tokenIndex + this.lookahead) & 3].type;+        } else {+            tt = this.get();+            this.unget();+        }+        return tt;+    },++    peekOnSameLine: function () {+        this.scanNewlines = true;+        var tt = this.peek();+        this.scanNewlines = false;+        return tt;+    },++    get: function () {+        var token;+        while (this.lookahead) {+            --this.lookahead;+            this.tokenIndex = (this.tokenIndex + 1) & 3;+            token = this.tokens[this.tokenIndex];+            if (token.type != NEWLINE || this.scanNewlines)+                return token.type;+        }++        for (;;) {+            var input = this.input;+            var match = (this.scanNewlines ? /^[ \t]+/ : /^\s+/)(input);+            if (match) {+                var spaces = match[0];+                this.cursor += spaces.length;+                var newlines = spaces.match(/\n/g);+                if (newlines)+                    this.lineno += newlines.length;+                input = this.input;+            }++            if (!(match = /^\/(?:\*(?:.|\n)*?\*\/|\/.*)/(input)))+                break;+            var comment = match[0];+            this.cursor += comment.length;+            newlines = comment.match(/\n/g);+            if (newlines)+                this.lineno += newlines.length+        }++        this.tokenIndex = (this.tokenIndex + 1) & 3;+        token = this.tokens[this.tokenIndex];+        if (!token)+            this.tokens[this.tokenIndex] = token = {};++        if (!input)+            return token.type = END;++        if ((match = fpRegExp(input))) {+            token.type = NUMBER;+            token.value = parseFloat(match[0]);+        } else if ((match = /^0[xX][\da-fA-F]+|^0[0-7]*|^\d+/(input))) {+            token.type = NUMBER;+            token.value = parseInt(match[0]);+        } else if ((match = /^\w+/(input))) {+            var id = match[0];+            token.type = keywords[id] || IDENTIFIER;+            token.value = id;+        } else if ((match = /^"(?:\\.|[^"])*"|^'(?:[^']|\\.)*'/(input))) { //"){+            token.type = STRING;+            token.value = eval(match[0]);+        } else if (this.scanOperand &&+                   (match = /^\/((?:\\.|[^\/])+)\/([gi]*)/(input))) {+            token.type = REGEXP;+            token.value = new RegExp(match[1], match[2]);+        } else if ((match = opRegExp(input))) {+            var op = match[0];+            if (assignOps[op] && input[op.length] == '=') {+                token.type = ASSIGN;+                token.assignOp = GLOBAL[opTypeNames[op]];+                match[0] += '=';+            } else {+                token.type = GLOBAL[opTypeNames[op]];+                if (this.scanOperand &&+                    (token.type == PLUS || token.type == MINUS)) {+                    token.type += UNARY_PLUS - PLUS;+                }+                token.assignOp = null;+            }+            token.value = op;+        } else {+            throw this.newSyntaxError("Illegal token");+        }++        token.start = this.cursor;+        this.cursor += match[0].length;+        token.end = this.cursor;+        token.lineno = this.lineno;+        return token.type;+    },++    unget: function () {+        if (++this.lookahead == 4) throw "PANIC: too much lookahead!";+        this.tokenIndex = (this.tokenIndex - 1) & 3;+    },++    newSyntaxError: function (m) {+        var e = new SyntaxError(m, this.filename, this.lineno);+        e.source = this.source;+        e.cursor = this.cursor;+        return e;+    }+};++function CompilerContext(inFunction) {+    this.inFunction = inFunction;+    this.stmtStack = [];+    this.funDecls = [];+    this.varDecls = [];+}++var CCp = CompilerContext.prototype;+CCp.bracketLevel = CCp.curlyLevel = CCp.parenLevel = CCp.hookLevel = 0;+CCp.ecmaStrictMode = CCp.inForLoopInit = false;++function Script(t, x) {+    var n = Statements(t, x);+    n.type = SCRIPT;+    n.funDecls = x.funDecls;+    n.varDecls = x.varDecls;+    return n;+}++// Node extends Array, which we extend slightly with a top-of-stack method.+Array.prototype.__defineProperty__(+    'top',+    function () { +        return this.length && this[this.length-1]; +    },+    false, false, true+);++function Node(t, type) {+    var token = t.token;+    if (token) {+        this.type = type || token.type;+        this.value = token.value;+        this.lineno = token.lineno;+        this.start = token.start;+        this.end = token.end;+    } else {+        this.type = type;+        this.lineno = t.lineno;+    }+    this.tokenizer = t;++    for (var i = 2; i < arguments.length; i++)+        this.push(arguments[i]);+}++var Np = Node.prototype = new Array;+Np.constructor = Node;+Np.toSource = Object.prototype.toSource;++// Always use push to add operands to an expression, to update start and end.+Np.push = function (kid) {+    if (kid.start < this.start)+        this.start = kid.start;+    if (this.end < kid.end)+        this.end = kid.end;+    return Array.prototype.push.call(this, kid);+}++Node.indentLevel = 0;++function tokenstr(tt) {+    var t = tokens[tt];+    return /^\W/.test(t) ? opTypeNames[t] : t.toUpperCase();+}++Np.toString = function () {+    var a = [];+    for (var i in this) {+        if (this.hasOwnProperty(i) && i != 'type')+            a.push({id: i, value: this[i]});+    }+    a.sort(function (a,b) { return (a.id < b.id) ? -1 : 1; });+    const INDENTATION = "    ";+    var n = ++Node.indentLevel;+    var s = "{\n" + INDENTATION.repeat(n) + "type: " + tokenstr(this.type);+    for (i = 0; i < a.length; i++)+        s += ",\n" + INDENTATION.repeat(n) + a[i].id + ": " + a[i].value;+    n = --Node.indentLevel;+    s += "\n" + INDENTATION.repeat(n) + "}";+    return s;+}++Np.getSource = function () {+    return this.tokenizer.source.slice(this.start, this.end);+};++Np.__defineGetter__('filename',+                    function () { return this.tokenizer.filename; });++String.prototype.__defineProperty__(+    'repeat',+    function (n) {+        var s = "", t = this + s;+        while (--n >= 0)+            s += t;+        return s;+    },+    false, false, true+);++// Statement stack and nested statement handler.+function nest(t, x, node, func, end) {+    x.stmtStack.push(node);+    var n = func(t, x);+    x.stmtStack.pop();+    end && t.mustMatch(end);+    return n;+}++function Statements(t, x) {+    var n = new Node(t, BLOCK);+    x.stmtStack.push(n);+    while (!t.done && t.peek() != RIGHT_CURLY)+        n.push(Statement(t, x));+    x.stmtStack.pop();+    return n;+}++function Block(t, x) {+    t.mustMatch(LEFT_CURLY);+    var n = Statements(t, x);+    t.mustMatch(RIGHT_CURLY);+    return n;+}++const DECLARED_FORM = 0, EXPRESSED_FORM = 1, STATEMENT_FORM = 2;++function Statement(t, x) {+    var i, label, n, n2, ss, tt = t.get();++    // Cases for statements ending in a right curly return early, avoiding the+    // common semicolon insertion magic after this switch.+    switch (tt) {+      case FUNCTION:+        return FunctionDefinition(t, x, true,+                                  (x.stmtStack.length > 1)+                                  ? STATEMENT_FORM+                                  : DECLARED_FORM);++      case LEFT_CURLY:+        n = Statements(t, x);+        t.mustMatch(RIGHT_CURLY);+        return n;++      case IF:+        n = new Node(t);+        n.condition = ParenExpression(t, x);+        x.stmtStack.push(n);+        n.thenPart = Statement(t, x);+        n.elsePart = t.match(ELSE) ? Statement(t, x) : null;+        x.stmtStack.pop();+        return n;++      case SWITCH:+        n = new Node(t);+        t.mustMatch(LEFT_PAREN);+        n.discriminant = Expression(t, x);+        t.mustMatch(RIGHT_PAREN);+        n.cases = [];+        n.defaultIndex = -1;+        x.stmtStack.push(n);+        t.mustMatch(LEFT_CURLY);+        while ((tt = t.get()) != RIGHT_CURLY) {+            switch (tt) {+              case DEFAULT:+                if (n.defaultIndex >= 0)+                    throw t.newSyntaxError("More than one switch default");+                // FALL THROUGH+              case CASE:+                n2 = new Node(t);+                if (tt == DEFAULT)+                    n.defaultIndex = n.cases.length;+                else+                    n2.caseLabel = Expression(t, x, COLON);+                break;+              default:+                throw t.newSyntaxError("Invalid switch case");+            }+            t.mustMatch(COLON);+            n2.statements = new Node(t, BLOCK);+            while ((tt=t.peek()) != CASE && tt != DEFAULT && tt != RIGHT_CURLY)+                n2.statements.push(Statement(t, x));+            n.cases.push(n2);+        }+        x.stmtStack.pop();+        return n;++      case FOR:+        n = new Node(t);+        n.isLoop = true;+        t.mustMatch(LEFT_PAREN);+        if ((tt = t.peek()) != SEMICOLON) {+            x.inForLoopInit = true;+            if (tt == VAR || tt == CONST) {+                t.get();+                n2 = Variables(t, x);+            } else {+                n2 = Expression(t, x);+            }+            x.inForLoopInit = false;+        }+        if (n2 && t.match(IN)) {+            n.type = FOR_IN;+            if (n2.type == VAR) {+                if (n2.length != 1) {+                    throw new SyntaxError("Invalid for..in left-hand side",+                                          t.filename, n2.lineno);+                }++                // NB: n2[0].type == IDENTIFIER and n2[0].value == n2[0].name.+                n.iterator = n2[0];+                n.varDecl = n2;+            } else {+                n.iterator = n2;+                n.varDecl = null;+            }+            n.object = Expression(t, x);+        } else {+            n.setup = n2 || null;+            t.mustMatch(SEMICOLON);+            n.condition = (t.peek() == SEMICOLON) ? null : Expression(t, x);+            t.mustMatch(SEMICOLON);+            n.update = (t.peek() == RIGHT_PAREN) ? null : Expression(t, x);+        }+        t.mustMatch(RIGHT_PAREN);+        n.body = nest(t, x, n, Statement);+        return n;++      case WHILE:+        n = new Node(t);+        n.isLoop = true;+        n.condition = ParenExpression(t, x);+        n.body = nest(t, x, n, Statement);+        return n;++      case DO:+        n = new Node(t);+        n.isLoop = true;+        n.body = nest(t, x, n, Statement, WHILE);+        n.condition = ParenExpression(t, x);+        if (!x.ecmaStrictMode) {+            // <script language="JavaScript"> (without version hints) may need+            // automatic semicolon insertion without a newline after do-while.+            // See http://bugzilla.mozilla.org/show_bug.cgi?id=238945.+            t.match(SEMICOLON);+            return n;+        }+        break;++      case BREAK:+      case CONTINUE:+        n = new Node(t);+        if (t.peekOnSameLine() == IDENTIFIER) {+            t.get();+            n.label = t.token.value;+        }+        ss = x.stmtStack;+        i = ss.length;+        label = n.label;+        if (label) {+            do {+                if (--i < 0)+                    throw t.newSyntaxError("Label not found");+            } while (ss[i].label != label);+        } else {+            do {+                if (--i < 0) {+                    throw t.newSyntaxError("Invalid " + ((tt == BREAK)+                                                         ? "break"+                                                         : "continue"));+                }+            } while (!ss[i].isLoop && (tt != BREAK || ss[i].type != SWITCH));+        }+        n.target = ss[i];+        break;++      case TRY:+        n = new Node(t);+        n.tryBlock = Block(t, x);+        n.catchClauses = [];+        while (t.match(CATCH)) {+            n2 = new Node(t);+            t.mustMatch(LEFT_PAREN);+            n2.varName = t.mustMatch(IDENTIFIER).value;+            if (t.match(IF)) {+                if (x.ecmaStrictMode)+                    throw t.newSyntaxError("Illegal catch guard");+                if (n.catchClauses.length && !n.catchClauses.top().guard)+                    throw t.newSyntaxError("Guarded catch after unguarded");+                n2.guard = Expression(t, x);+            } else {+                n2.guard = null;+            }+            t.mustMatch(RIGHT_PAREN);+            n2.block = Block(t, x);+            n.catchClauses.push(n2);+        }+        if (t.match(FINALLY))+            n.finallyBlock = Block(t, x);+        if (!n.catchClauses.length && !n.finallyBlock)+            throw t.newSyntaxError("Invalid try statement");+        return n;++      case CATCH:+      case FINALLY:+        throw t.newSyntaxError(tokens[tt] + " without preceding try");++      case THROW:+        n = new Node(t);+        n.exception = Expression(t, x);+        break;++      case RETURN:+        if (!x.inFunction)+            throw t.newSyntaxError("Invalid return");+        n = new Node(t);+        tt = t.peekOnSameLine();+        if (tt != END && tt != NEWLINE && tt != SEMICOLON && tt != RIGHT_CURLY)+            n.value = Expression(t, x);+        break;++      case WITH:+        n = new Node(t);+        n.object = ParenExpression(t, x);+        n.body = nest(t, x, n, Statement);+        return n;++      case VAR:+      case CONST:+        n = Variables(t, x);+        break;++      case DEBUGGER:+        n = new Node(t);+        break;++      case NEWLINE:+      case SEMICOLON:+        n = new Node(t, SEMICOLON);+        n.expression = null;+        return n;++      default:+        if (tt == IDENTIFIER && t.peek() == COLON) {+            label = t.token.value;+            ss = x.stmtStack;+            for (i = ss.length-1; i >= 0; --i) {+                if (ss[i].label == label)+                    throw t.newSyntaxError("Duplicate label");+            }+            t.get();+            n = new Node(t, LABEL);+            n.label = label;+            n.statement = nest(t, x, n, Statement);+            return n;+        }++        n = new Node(t, SEMICOLON);+        t.unget();+        n.expression = Expression(t, x);+        n.end = n.expression.end;+        break;+    }++    if (t.lineno == t.token.lineno) {+        tt = t.peekOnSameLine();+        if (tt != END && tt != NEWLINE && tt != SEMICOLON && tt != RIGHT_CURLY)+            throw t.newSyntaxError("Missing ; before statement");+    }+    t.match(SEMICOLON);+    return n;+}++function FunctionDefinition(t, x, requireName, functionForm) {+    var f = new Node(t);+    if (f.type != FUNCTION)+        f.type = (f.value == "get") ? GETTER : SETTER;+    if (t.match(IDENTIFIER))+        f.name = t.token.value;+    else if (requireName)+        throw t.newSyntaxError("Missing function identifier");++    t.mustMatch(LEFT_PAREN);+    f.params = [];+    var tt;+    while ((tt = t.get()) != RIGHT_PAREN) {+        if (tt != IDENTIFIER)+            throw t.newSyntaxError("Missing formal parameter");+        f.params.push(t.token.value);+        if (t.peek() != RIGHT_PAREN)+            t.mustMatch(COMMA);+    }++    t.mustMatch(LEFT_CURLY);+    var x2 = new CompilerContext(true);+    f.body = Script(t, x2);+    t.mustMatch(RIGHT_CURLY);+    f.end = t.token.end;++    f.functionForm = functionForm;+    if (functionForm == DECLARED_FORM)+        x.funDecls.push(f);+    return f;+}++function Variables(t, x) {+    var n = new Node(t);+    do {+        t.mustMatch(IDENTIFIER);+        var n2 = new Node(t);+        n2.name = n2.value;+        if (t.match(ASSIGN)) {+            if (t.token.assignOp)+                throw t.newSyntaxError("Invalid variable initialization");+            n2.initializer = Expression(t, x, COMMA);+        }+        n2.readOnly = (n.type == CONST);+        n.push(n2);+        x.varDecls.push(n2);+    } while (t.match(COMMA));+    return n;+}++function ParenExpression(t, x) {+    t.mustMatch(LEFT_PAREN);+    var n = Expression(t, x);+    t.mustMatch(RIGHT_PAREN);+    return n;+}++var opPrecedence = {+    SEMICOLON: 0,+    COMMA: 1,+    ASSIGN: 2, HOOK: 2, COLON: 2, CONDITIONAL: 2,+    // The above all have to have the same precedence, see bug 330975.+    OR: 4,+    AND: 5,+    BITWISE_OR: 6,+    BITWISE_XOR: 7,+    BITWISE_AND: 8,+    EQ: 9, NE: 9, STRICT_EQ: 9, STRICT_NE: 9,+    LT: 10, LE: 10, GE: 10, GT: 10, IN: 10, INSTANCEOF: 10,+    LSH: 11, RSH: 11, URSH: 11,+    PLUS: 12, MINUS: 12,+    MUL: 13, DIV: 13, MOD: 13,+    DELETE: 14, VOID: 14, TYPEOF: 14, // PRE_INCREMENT: 14, PRE_DECREMENT: 14,+    NOT: 14, BITWISE_NOT: 14, UNARY_PLUS: 14, UNARY_MINUS: 14,+    INCREMENT: 15, DECREMENT: 15,     // postfix+    NEW: 16,+    DOT: 17+};++// Map operator type code to precedence.+for (i in opPrecedence)+    opPrecedence[GLOBAL[i]] = opPrecedence[i];++var opArity = {+    COMMA: -2,+    ASSIGN: 2,+    CONDITIONAL: 3,+    OR: 2,+    AND: 2,+    BITWISE_OR: 2,+    BITWISE_XOR: 2,+    BITWISE_AND: 2,+    EQ: 2, NE: 2, STRICT_EQ: 2, STRICT_NE: 2,+    LT: 2, LE: 2, GE: 2, GT: 2, IN: 2, INSTANCEOF: 2,+    LSH: 2, RSH: 2, URSH: 2,+    PLUS: 2, MINUS: 2,+    MUL: 2, DIV: 2, MOD: 2,+    DELETE: 1, VOID: 1, TYPEOF: 1,  // PRE_INCREMENT: 1, PRE_DECREMENT: 1,+    NOT: 1, BITWISE_NOT: 1, UNARY_PLUS: 1, UNARY_MINUS: 1,+    INCREMENT: 1, DECREMENT: 1,     // postfix+    NEW: 1, NEW_WITH_ARGS: 2, DOT: 2, INDEX: 2, CALL: 2,+    ARRAY_INIT: 1, OBJECT_INIT: 1, GROUP: 1+};++// Map operator type code to arity.+for (i in opArity)+    opArity[GLOBAL[i]] = opArity[i];++function Expression(t, x, stop) {+    var n, id, tt, operators = [], operands = [];+    var bl = x.bracketLevel, cl = x.curlyLevel, pl = x.parenLevel,+        hl = x.hookLevel;++    function reduce() {+        var n = operators.pop();+        var op = n.type;+        var arity = opArity[op];+        if (arity == -2) {+            // Flatten left-associative trees.+            var left = operands.length >= 2 && operands[operands.length-2];+            if (left.type == op) {+                var right = operands.pop();+                left.push(right);+                return left;+            }+            arity = 2;+        }++        // Always use push to add operands to n, to update start and end.+        var a = operands.splice(operands.length - arity);+        for (var i = 0; i < arity; i++)+            n.push(a[i]);++        // Include closing bracket or postfix operator in [start,end).+        if (n.end < t.token.end)+            n.end = t.token.end;++        operands.push(n);+        return n;+    }++loop:+    while ((tt = t.get()) != END) {+        if (tt == stop &&+            x.bracketLevel == bl && x.curlyLevel == cl && x.parenLevel == pl &&+            x.hookLevel == hl) {+            // Stop only if tt matches the optional stop parameter, and that+            // token is not quoted by some kind of bracket.+            break;+        }+        switch (tt) {+          case SEMICOLON:+            // NB: cannot be empty, Statement handled that.+            break loop;++          case ASSIGN:+          case HOOK:+          case COLON:+            if (t.scanOperand)+                break loop;+            // Use >, not >=, for right-associative ASSIGN and HOOK/COLON.+            while (opPrecedence[operators.top().type] > opPrecedence[tt] ||+                   (tt == COLON && operators.top().type == ASSIGN)) {+                reduce();+            }+            if (tt == COLON) {+                n = operators.top();+                if (n.type != HOOK)+                    throw t.newSyntaxError("Invalid label");+                n.type = CONDITIONAL;+                --x.hookLevel;+            } else {+                operators.push(new Node(t));+                if (tt == ASSIGN)+                    operands.top().assignOp = t.token.assignOp;+                else+                    ++x.hookLevel;      // tt == HOOK+            }+            t.scanOperand = true;+            break;++          case IN:+            // An in operator should not be parsed if we're parsing the head of+            // a for (...) loop, unless it is in the then part of a conditional+            // expression, or parenthesized somehow.+            if (x.inForLoopInit && !x.hookLevel &&+                !x.bracketLevel && !x.curlyLevel && !x.parenLevel) {+                break loop;+            }+            // FALL THROUGH+          case COMMA:+            // Treat comma as left-associative so reduce can fold left-heavy+            // COMMA trees into a single array.+            // FALL THROUGH+          case OR:+          case AND:+          case BITWISE_OR:+          case BITWISE_XOR:+          case BITWISE_AND:+          case EQ: case NE: case STRICT_EQ: case STRICT_NE:+          case LT: case LE: case GE: case GT:+          case INSTANCEOF:+          case LSH: case RSH: case URSH:+          case PLUS: case MINUS:+          case MUL: case DIV: case MOD:+          case DOT:+            if (t.scanOperand)+                break loop;+            while (opPrecedence[operators.top().type] >= opPrecedence[tt])+                reduce();+            if (tt == DOT) {+                t.mustMatch(IDENTIFIER);+                operands.push(new Node(t, DOT, operands.pop(), new Node(t)));+            } else {+                operators.push(new Node(t));+                t.scanOperand = true;+            }+            break;++          case DELETE: case VOID: case TYPEOF:+          case NOT: case BITWISE_NOT: case UNARY_PLUS: case UNARY_MINUS:+          case NEW:+            if (!t.scanOperand)+                break loop;+            operators.push(new Node(t));+            break;++          case INCREMENT: case DECREMENT:+            if (t.scanOperand) {+                operators.push(new Node(t));  // prefix increment or decrement+            } else {+                // Use >, not >=, so postfix has higher precedence than prefix.+                while (opPrecedence[operators.top().type] > opPrecedence[tt])+                    reduce();+                n = new Node(t, tt, operands.pop());+                n.postfix = true;+                operands.push(n);+            }+            break;++          case FUNCTION:+            if (!t.scanOperand)+                break loop;+            operands.push(FunctionDefinition(t, x, false, EXPRESSED_FORM));+            t.scanOperand = false;+            break;++          case NULL: case THIS: case TRUE: case FALSE:+          case IDENTIFIER: case NUMBER: case STRING: case REGEXP:+            if (!t.scanOperand)+                break loop;+            operands.push(new Node(t));+            t.scanOperand = false;+            break;++          case LEFT_BRACKET:+            if (t.scanOperand) {+                // Array initialiser.  Parse using recursive descent, as the+                // sub-grammar here is not an operator grammar.+                n = new Node(t, ARRAY_INIT);+                while ((tt = t.peek()) != RIGHT_BRACKET) {+                    if (tt == COMMA) {+                        t.get();+                        n.push(null);+                        continue;+                    }+                    n.push(Expression(t, x, COMMA));+                    if (!t.match(COMMA))+                        break;+                }+                t.mustMatch(RIGHT_BRACKET);+                operands.push(n);+                t.scanOperand = false;+            } else {+                // Property indexing operator.+                operators.push(new Node(t, INDEX));+                t.scanOperand = true;+                ++x.bracketLevel;+            }+            break;++          case RIGHT_BRACKET:+            if (t.scanOperand || x.bracketLevel == bl)+                break loop;+            while (reduce().type != INDEX)+                continue;+            --x.bracketLevel;+            break;++          case LEFT_CURLY:+            if (!t.scanOperand)+                break loop;+            // Object initialiser.  As for array initialisers (see above),+            // parse using recursive descent.+            ++x.curlyLevel;+            n = new Node(t, OBJECT_INIT);+          object_init:+            if (!t.match(RIGHT_CURLY)) {+                do {+                    tt = t.get();+                    if ((t.token.value == "get" || t.token.value == "set") &&+                        t.peek() == IDENTIFIER) {+                        if (x.ecmaStrictMode)+                            throw t.newSyntaxError("Illegal property accessor");+                        n.push(FunctionDefinition(t, x, true, EXPRESSED_FORM));+                    } else {+                        switch (tt) {+                          case IDENTIFIER:+                          case NUMBER:+                          case STRING:+                            id = new Node(t);+                            break;+                          case RIGHT_CURLY:+                            if (x.ecmaStrictMode)+                                throw t.newSyntaxError("Illegal trailing ,");+                            break object_init;+                          default:+                            throw t.newSyntaxError("Invalid property name");+                        }+                        t.mustMatch(COLON);+                        n.push(new Node(t, PROPERTY_INIT, id,+                                        Expression(t, x, COMMA)));+                    }+                } while (t.match(COMMA));+                t.mustMatch(RIGHT_CURLY);+            }+            operands.push(n);+            t.scanOperand = false;+            --x.curlyLevel;+            break;++          case RIGHT_CURLY:+            if (!t.scanOperand && x.curlyLevel != cl)+                throw "PANIC: right curly botch";+            break loop;++          case LEFT_PAREN:+            if (t.scanOperand) {+                operators.push(new Node(t, GROUP));+            } else {+                while (opPrecedence[operators.top().type] > opPrecedence[NEW])+                    reduce();++                // Handle () now, to regularize the n-ary case for n > 0.+                // We must set scanOperand in case there are arguments and+                // the first one is a regexp or unary+/-.+                n = operators.top();+                t.scanOperand = true;+                if (t.match(RIGHT_PAREN)) {+                    if (n.type == NEW) {+                        --operators.length;+                        n.push(operands.pop());+                    } else {+                        n = new Node(t, CALL, operands.pop(),+                                     new Node(t, LIST));+                    }+                    operands.push(n);+                    t.scanOperand = false;+                    break;+                }+                if (n.type == NEW)+                    n.type = NEW_WITH_ARGS;+                else+                    operators.push(new Node(t, CALL));+            }+            ++x.parenLevel;+            break;++          case RIGHT_PAREN:+            if (t.scanOperand || x.parenLevel == pl)+                break loop;+            while ((tt = reduce().type) != GROUP && tt != CALL &&+                   tt != NEW_WITH_ARGS) {+                continue;+            }+            if (tt != GROUP) {+                n = operands.top();+                if (n[1].type != COMMA)+                    n[1] = new Node(t, LIST, n[1]);+                else+                    n[1].type = LIST;+            }+            --x.parenLevel;+            break;++          // Automatic semicolon insertion means we may scan across a newline+          // and into the beginning of another statement.  If so, break out of+          // the while loop and let the t.scanOperand logic handle errors.+          default:+            break loop;+        }+    }++    if (x.hookLevel != hl)+        throw t.newSyntaxError("Missing : after ?");+    if (x.parenLevel != pl)+        throw t.newSyntaxError("Missing ) in parenthetical");+    if (x.bracketLevel != bl)+        throw t.newSyntaxError("Missing ] in index expression");+    if (t.scanOperand)+        throw t.newSyntaxError("Missing operand");++    // Resume default mode, scanning for operands, not operators.+    t.scanOperand = true;+    t.unget();+    while (operators.length)+        reduce();+    return operands.pop();+}++function parse(s, f, l) {+    var t = new Tokenizer(s, f, l);+    var x = new CompilerContext(false);+    var n = Script(t, x);+    if (!t.done)+        throw t.newSyntaxError("Syntax error");+    return n;+}
+ test/parsingonly/130_htojs.js view
@@ -0,0 +1,2725 @@+// Javascript Runtime Functions for NHC-based Haskell -> Javascript compiler.
+
+// Runtime support functions.
+
+// Declare a variable which will serve as a constructor index.
+// It will be populated later.
+
+var conIdx = { };
+
+// Declare a variable which will serve as a function name index.
+// It will be populated later.
+
+var funIdx = { };
+
+// Declare a variable which will serve as a string literals reverse index.
+// It will be populated later.
+
+var strIdx = { };                
+
+// Make primitive types behave as thunks.
+
+Number.prototype._c = function () {return this;};
+Number.prototype._r = false;
+Number.prototype._chr = false;
+
+Boolean.prototype._c = function () {
+  return new HSData(this.valueOf() ? true : false,[]);
+};
+Boolean.prototype._r = true;
+
+// Strings when evaluated return their first character CONS'ed with
+// the remainder of the string.
+
+String.prototype._c = function () {
+  var cmeth = this._c;
+  this._c = function () {
+    throw ("B '" + this + "' blackhole: thunk reentered");
+  }
+  try {
+    var res = consStr (this);
+    this._r = true;
+    this._c = function () {return res;}
+    return res;
+  } catch (e) {
+    this._c = cmeth;
+    throw (e);
+  }
+};
+
+String.prototype._r = true;
+
+// Arrays when evaluated return their first element CONS'ed with
+// the remainder of the array.
+
+Array.prototype._c = function () {
+  var cmeth = this._c;
+  this._c = function () {
+    throw ("B [" + this.toString() + "] blackhole: thunk reentered");
+  }
+  try {
+    var res = consArr (this);
+    this._r = true;
+    this._c = function () {return res;}
+    return res;
+  } catch (e) {
+    this._c = cmeth;
+    throw (e);
+  }
+};
+
+Array.prototype._r = true;
+Array.prototype._toArray = function () {return this;};
+
+// Convert a String into its first character CONS'ed with the string remainder.
+
+var consStr = function (s) {
+  if (s.length == 0) {
+    return new HSEOL ();
+  } else {
+    var hdc = mkChar (s.charCodeAt (0));
+    return new HSCons (hdc, s.length > 1 ? s.substring (1) : consStr (""));
+  };
+};
+
+// Convert an Array into its first element CONS'ed with the array remainder.
+    
+var consArr = function (ar) {
+  if (ar.length == 0) {
+    return new HSEOL ();
+  } else {
+    return new HSCons (ar[0], ar.length > 1 ? ar.slice (1) : consArr ([]));
+  };
+};
+
+// Create a Number object with a special property pretending that
+// this is a character.
+
+function mkChar(c) {
+  var n = new Number(c);
+  n._chr = true;
+  return n;
+}
+
+// Object for consistent representation of lists
+
+function HSCons (head,tail) {
+  this._r = false;
+  this._c = function () { return this; };
+  this._t = conIdx['Prelude.:'];
+  this._f = [head, tail];
+};
+
+HSCons.prototype.toString = function () {
+    var evhead = exprEval (this._f[0]);
+    if (evhead._chr == true) {
+      return (String.fromCharCode(evhead) + (exprEval(this._f[1])).toString ());
+    } else {
+      return this._toArray().toString();
+    };
+  };
+
+HSCons.prototype._toArray = function () {
+    return [exprEval(this._f[0])].concat(exprEval(this._f[1])._toArray ());
+  };
+
+
+function HSEOL() {
+  this._r = false;
+  this._c = function () {return this; };
+  this._t = conIdx['Prelude.[]'];
+  this._f = [];
+  this.toString = function() { return ""};
+  this._toArray = function() {return [];};
+}
+
+// A HSFun object represents function body but holds no arguments.
+// It may be evaluated only for nullary functions.
+// Its _ap method creates a HSDly object referring to this function
+// and holding call arguments.
+
+function HSFun (name, arity, body) {
+  this._n = name;                     // function name
+  this._r = (arity == 0);             // evaluable only for nullary functions
+  this._x = arity;                    // function arity
+  this._d = this;                     // refer to self
+  this._y = 0;                        // actual number of args
+  this._u = null;                     // nothing up stack
+  this._b = body;                     // function body
+}
+
+HSFun.prototype._c = function () {
+    if (!this._r) return this;        // nothing to do if not evaluable
+    var cmeth = this._c;              // save the _c method
+    this._c = function () {           // install blackhole handler
+      throw ("B " + this._n + " blackhole: thunk reentered");
+    };
+    try {
+      var res = this._b();            // obtain evaluation result
+      this._c = function () {         // replace the _c method to return the result
+        return res;                   // without re-evaluation
+      };
+      return res;                     // return result of this evaluation
+    } catch (e) {                     // if an exception is caught
+      this._c = cmeth;                // restore the method
+      throw (e);                      // rethrow
+    }
+  };
+
+HSFun.prototype._ap = function (targs) {
+    if (targs.length == 0) return this;
+    return new HSDly(this, this, targs);
+  };
+
+
+// A HSDly object holds function arguments. It also holds
+// a reference to the HSFun to be evaluated when required,
+// and also reference to another HSDly (or to the HSFun if first application).
+// Its _ap method acts same way as HSFun's does.
+// Its _c method retrieves all arguments in proper order,
+// evaluates the HSFun object with proper number of arguments applied,
+// and returns a new HSDly with all remaining arguments and whatever came out
+// from the evaluation of HSFun.
+
+function HSDly (fun, up, targs) {
+  this._a = targs;                    // arguments to hold
+  this._n = fun._n;                   // function name
+  this._d = fun;                      // delayed function object (HSFun)
+  this._u = up;                       // up stack (HSFun or HSDly)
+  this._y = targs.length + up._y;     // summary number of arguments in the stack
+  this._r = (this._y >= fun._x);      // evaluable only if # args >= function arity
+}
+
+HSDly.prototype._c = function () {
+    if (!this._r) return this;
+    var cmeth = this._c;
+    this._c = function () {
+      throw ("B " + this._n + " blackhole: thunk reentered");
+    };
+    var cargs = this._a;              // arguments read from the stack
+    var stack = this._u;
+    for (; stack._u; stack = stack._u) {
+      cargs = stack._a.concat(cargs); // concatenate in correct order
+    };
+    var res;                          // to store result
+    try {
+      if (cargs.length == this._d._x) { // saturated call
+        res = this._d._b.apply(this._d,cargs);
+        this._u = null;               // tear the stack apart
+        this._c = function () {       // replace the method to return result
+          return res;                 // without reevaluation
+        };
+      } else {                        // oversaturated call
+        var evd;
+        if (this._d._x == 0) {        // nullary function
+          evd = exprEval(this._d);    // evaluate it 
+          this._a = cargs;            // carry all the arguments over
+        } else {                      // need to feed some arguments
+          var feed = cargs.slice (0, this._d._x);
+          var over = cargs.slice (this._d._x);
+          evd = exprEval(this._d._ap(feed));
+          this._a = over;             // and carry the rest over
+        }
+        this._n = evd._n;             // name of whatever was computed
+        this._d = evd._d;             // now refer to whatever it refers to
+        this._u = evd;                // now this is our upstack 
+        this._y = this._a.length + evd._y; // new total arguments
+        this._r = (this._y >= this._d._x); // are we evaluable? 
+        res = this;                   // reuse this object
+        this._c = cmeth;              // restore the _c method
+      }
+      return res;                     // return result;
+    } catch (e) {                     // if exception is raised
+      this._c = cmeth;                // restore method
+      throw (e);                      // rethrow
+    }
+  };
+
+HSDly.prototype._ap = function (targs) {
+    if (targs.length == 0) return this;
+    return new HSDly(this._d, this, targs);
+  };
+
+
+// Object type for a Haskell data
+
+function HSData (con, arrs) {
+  this._r = false;
+  this._c = function () { return this; };
+  this._t = con;
+  this._f = arrs;
+};
+
+// Toplevel expression evaluator entry point
+
+function exprEval (e) {
+  for (var ex = e; ex != undefined && ex._r ; ex = ex._c())
+    ;
+  return ex;
+};
+
+// Cross-browser version of the `apply' function
+// Suggested by Neil, should work around MSIE DOM methods
+// that do not support the `apply' method.
+
+function cbrApply(func, thisp, args)
+{
+       if (func.apply)
+               return func.apply(thisp,args);
+       else
+       {
+               var s = "func(";
+               for (var i = 0; i < args.length; i++)
+                       s += (i == 0 ? "" : ",") + "args[" + i + "]";
+               s += ")";
+               return eval(s);
+       }
+}
+
+// Support for XML HTTP requests. Based on 
+// http://www.w3schools.com/xml/tryit.asp?filename=try_xmlhttprequest_js4
+
+function newXmlHttpRequest () {
+  var xmlhttp;
+  xmlhttp = null;
+  if (window.XMLHttpRequest) {
+    xmlhttp=new XMLHttpRequest();
+  } else if (window.ActiveXObject) {
+    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
+  } else throw "R XML HTTP Request not supported";
+  return xmlhttp;
+}
+
+
+/******* Generated Code: Do Not Edit *******/
+conIdx["Data.Ratio.:%"] = (-4);
+conIdx["Echo.JS"] = (-5);
+conIdx["Prelude.()"] = (-6);
+conIdx["Prelude.(,)"] = (-7);
+conIdx["Prelude.(,,)"] = (-8);
+conIdx["Prelude.(,,,)"] = (-9);
+conIdx["Prelude.(,,,,,,,)"] = (-10);
+conIdx["Prelude.(,,,,,,,,)"] = (-11);
+conIdx["Prelude.:"] = 3;
+conIdx["Prelude.EQ"] = 13;
+conIdx["Prelude.False"] = false;
+conIdx["Prelude.GT"] = 15;
+conIdx["Prelude.Just"] = 16;
+conIdx["Prelude.LT"] = 17;
+conIdx["Prelude.Nothing"] = 18;
+conIdx["Prelude.True"] = true;
+conIdx["Prelude.[]"] = 2;
+strIdx["F_0"] = "Data.Char.isUpper";
+strIdx["F_1"] = "Data.Char.lexLitChar";
+strIdx["F_2"] = "Data.Char.toUpper";
+strIdx["F_4"] = "Data.Maybe.fromJust";
+strIdx["F_5"] = "Data.Maybe.fromMaybe";
+strIdx["F_6"] = "Data.Ratio.%";
+strIdx["F_8"] = "Data.Ratio.reduce";
+strIdx["F_9"] = "Data._CharNumeric._LAMBDA409";
+strIdx["F_U"] = "Data.Char.asciiTab";
+strIdx["F_V"] = "Data.Char.intToDigit";
+strIdx["F_W"] = "Data.Char.isAlpha";
+strIdx["F_X"] = "Data.Char.isAlphaNum";
+strIdx["F_Y"] = "Data.Char.isLower";
+strIdx["F_Z"] = "Data.Char.isSpace";
+strIdx["F_b"] = "Control.Monad.when";
+strIdx["F_b0"] = "Echo._LAMBDA640";
+strIdx["F_b9"] = "Echo._LAMBDA649";
+strIdx["F_bH"] = "Echo._LAMBDA621";
+strIdx["F_bJ"] = "Echo._LAMBDA623";
+strIdx["F_bS"] = "Echo._LAMBDA632";
+strIdx["F_bT"] = "Echo._LAMBDA633";
+strIdx["F_bU"] = "Echo._LAMBDA634";
+strIdx["F_bV"] = "Echo._LAMBDA635";
+strIdx["F_bW"] = "Echo._LAMBDA636";
+strIdx["F_bX"] = "Echo._LAMBDA637";
+strIdx["F_bY"] = "Echo._LAMBDA638";
+strIdx["F_bZ"] = "Echo._LAMBDA639";
+strIdx["F_ba"] = "Data._CharNumeric._LAMBDA410";
+strIdx["F_bb"] = "Data._CharNumeric._LAMBDA411";
+strIdx["F_be"] = "Data._CharNumeric.chr";
+strIdx["F_bf"] = "Data._CharNumeric.digitToInt";
+strIdx["F_bg"] = "Data._CharNumeric.isDigit";
+strIdx["F_bh"] = "Data._CharNumeric.isHexDigit";
+strIdx["F_bi"] = "Data._CharNumeric.isOctDigit";
+strIdx["F_bj"] = "Data._CharNumeric.nonnull";
+strIdx["F_bk"] = "Data._CharNumeric.ord";
+strIdx["F_bl"] = "Data._CharNumeric.readDec";
+strIdx["F_bm"] = "Data._CharNumeric.readInt";
+strIdx["F_bn"] = "Echo.Prelude.Monad.Echo.JS";
+strIdx["F_bo"] = "Echo.Prelude.Monad.Echo.JS.>>";
+strIdx["F_bp"] = "Echo.Prelude.Monad.Echo.JS.>>=";
+strIdx["F_bq"] = "Echo.Prelude.Monad.Echo.JS.fail";
+strIdx["F_br"] = "Echo.Prelude.Monad.Echo.JS.return";
+strIdx["F_c"] = "Data.Char.Data.Char.Prelude.244.prefix";
+strIdx["F_c0"] = "Prelude.Prelude.Enum.Prelude.Integer.enumFromThen";
+strIdx["F_c1"] = "Prelude.Prelude.Enum.Prelude.Integer.enumFromThenTo";
+strIdx["F_c2"] = "Prelude.Prelude.Enum.Prelude.Integer.enumFromTo";
+strIdx["F_c3"] = "Prelude.Prelude.Enum.Prelude.Integer.fromEnum";
+strIdx["F_c4"] = "Prelude.Prelude.Enum.Prelude.Integer.pred";
+strIdx["F_c5"] = "Prelude.Prelude.Enum.Prelude.Integer.succ";
+strIdx["F_c6"] = "Prelude.Prelude.Enum.Prelude.Integer.toEnum";
+strIdx["F_c7"] = "Prelude.Prelude.Enum.Prelude.Ordering.fromEnum";
+strIdx["F_c8"] = "Prelude.Prelude.Eq.Prelude.Char";
+strIdx["F_c9"] = "Prelude.Prelude.Eq.Prelude.Char./=";
+strIdx["F_cA"] = "Numeric.showIntAtBase";
+strIdx["F_cB"] = "Numeric.showSigned";
+strIdx["F_cC"] = "Prelude.$";
+strIdx["F_cD"] = "Prelude.&&";
+strIdx["F_cE"] = "Prelude.*";
+strIdx["F_cF"] = "Prelude.+";
+strIdx["F_cG"] = "Prelude.++";
+strIdx["F_cH"] = "Prelude.-";
+strIdx["F_cI"] = "Prelude..";
+strIdx["F_cJ"] = "Prelude.<";
+strIdx["F_cK"] = "Prelude.<=";
+strIdx["F_cL"] = "Prelude.==";
+strIdx["F_cM"] = "Prelude.>";
+strIdx["F_cN"] = "Prelude.>=";
+strIdx["F_cO"] = "Prelude.Prelude.Enum.Prelude.Char.fromEnum";
+strIdx["F_cP"] = "Prelude.Prelude.Enum.Prelude.Int";
+strIdx["F_cQ"] = "Prelude.Prelude.Enum.Prelude.Int.enumFrom";
+strIdx["F_cR"] = "Prelude.Prelude.Enum.Prelude.Int.enumFromThen";
+strIdx["F_cS"] = "Prelude.Prelude.Enum.Prelude.Int.enumFromThenTo";
+strIdx["F_cT"] = "Prelude.Prelude.Enum.Prelude.Int.enumFromTo";
+strIdx["F_cU"] = "Prelude.Prelude.Enum.Prelude.Int.fromEnum";
+strIdx["F_cV"] = "Prelude.Prelude.Enum.Prelude.Int.pred";
+strIdx["F_cW"] = "Prelude.Prelude.Enum.Prelude.Int.succ";
+strIdx["F_cX"] = "Prelude.Prelude.Enum.Prelude.Int.toEnum";
+strIdx["F_cY"] = "Prelude.Prelude.Enum.Prelude.Integer";
+strIdx["F_cZ"] = "Prelude.Prelude.Enum.Prelude.Integer.enumFrom";
+strIdx["F_ca"] = "Echo._LAMBDA650";
+strIdx["F_cb"] = "Echo._LAMBDA651";
+strIdx["F_cc"] = "Echo.asInt";
+strIdx["F_cd"] = "Echo.asString";
+strIdx["F_ce"] = "Echo.catchJS";
+strIdx["F_cf"] = "Echo.getDocument";
+strIdx["F_cg"] = "Echo.getProperty";
+strIdx["F_ch"] = "Echo.getTime";
+strIdx["F_ci"] = "Echo.inkey";
+strIdx["F_cj"] = "Echo.main";
+strIdx["F_ck"] = "Echo.regEventHandler";
+strIdx["F_cl"] = "Echo.runMethod";
+strIdx["F_cm"] = "Echo.setProperty";
+strIdx["F_cn"] = "Numeric.Numeric.Prelude.413.read'";
+strIdx["F_co"] = "Numeric.Numeric.Prelude.414.read''";
+strIdx["F_cq"] = "Numeric._LAMBDA2002";
+strIdx["F_cr"] = "Numeric._LAMBDA2003";
+strIdx["F_ct"] = "Numeric._LAMBDA2057";
+strIdx["F_cu"] = "Numeric._LAMBDA2058";
+strIdx["F_cv"] = "Numeric._LAMBDA2059";
+strIdx["F_cw"] = "Numeric._LAMBDA2060";
+strIdx["F_cx"] = "Numeric.lexDigits";
+strIdx["F_cy"] = "Numeric.readSigned";
+strIdx["F_cz"] = "Numeric.showInt";
+strIdx["F_d"] = "Data.Char.Data.Char.Prelude.245.lexEsc";
+strIdx["F_d0"] = "Prelude.Prelude.Ord.Prelude.Char.compare";
+strIdx["F_d1"] = "Prelude.Prelude.Ord.Prelude.Char.max";
+strIdx["F_d2"] = "Prelude.Prelude.Ord.Prelude.Char.min";
+strIdx["F_d3"] = "Prelude.Prelude.Ord.Prelude.Eq";
+strIdx["F_d4"] = "Prelude.Prelude.Ord.Prelude.Int";
+strIdx["F_d5"] = "Prelude.Prelude.Ord.Prelude.Int.<";
+strIdx["F_d6"] = "Prelude.Prelude.Ord.Prelude.Int.<=";
+strIdx["F_d7"] = "Prelude.Prelude.Ord.Prelude.Int.>";
+strIdx["F_d8"] = "Prelude.Prelude.Ord.Prelude.Int.>=";
+strIdx["F_d9"] = "Prelude.Prelude.Ord.Prelude.Int.compare";
+strIdx["F_dA"] = "Prelude.Prelude.Integral.Prelude.Integer.quotRem";
+strIdx["F_dB"] = "Prelude.Prelude.Integral.Prelude.Integer.rem";
+strIdx["F_dC"] = "Prelude.Prelude.Integral.Prelude.Integer.toInteger";
+strIdx["F_dD"] = "Prelude.Prelude.Integral.Prelude.Real";
+strIdx["F_dE"] = "Prelude.Prelude.Num.Prelude.Eq";
+strIdx["F_dF"] = "Prelude.Prelude.Num.Prelude.Int";
+strIdx["F_dG"] = "Prelude.Prelude.Num.Prelude.Int.*";
+strIdx["F_dH"] = "Prelude.Prelude.Num.Prelude.Int.+";
+strIdx["F_dI"] = "Prelude.Prelude.Num.Prelude.Int.-";
+strIdx["F_dJ"] = "Prelude.Prelude.Num.Prelude.Int.abs";
+strIdx["F_dK"] = "Prelude.Prelude.Num.Prelude.Int.fromInteger";
+strIdx["F_dL"] = "Prelude.Prelude.Num.Prelude.Int.negate";
+strIdx["F_dM"] = "Prelude.Prelude.Num.Prelude.Int.signum";
+strIdx["F_dN"] = "Prelude.Prelude.Num.Prelude.Integer";
+strIdx["F_dO"] = "Prelude.Prelude.Num.Prelude.Integer.*";
+strIdx["F_dP"] = "Prelude.Prelude.Num.Prelude.Integer.+";
+strIdx["F_dQ"] = "Prelude.Prelude.Num.Prelude.Integer.-";
+strIdx["F_dR"] = "Prelude.Prelude.Num.Prelude.Integer.abs";
+strIdx["F_dS"] = "Prelude.Prelude.Num.Prelude.Integer.fromInteger";
+strIdx["F_dT"] = "Prelude.Prelude.Num.Prelude.Integer.negate";
+strIdx["F_dU"] = "Prelude.Prelude.Num.Prelude.Integer.signum";
+strIdx["F_dV"] = "Prelude.Prelude.Ord.Prelude.Char";
+strIdx["F_dW"] = "Prelude.Prelude.Ord.Prelude.Char.<";
+strIdx["F_dX"] = "Prelude.Prelude.Ord.Prelude.Char.<=";
+strIdx["F_dY"] = "Prelude.Prelude.Ord.Prelude.Char.>";
+strIdx["F_dZ"] = "Prelude.Prelude.Ord.Prelude.Char.>=";
+strIdx["F_da"] = "Prelude.Prelude.Eq.Prelude.Char.==";
+strIdx["F_db"] = "Prelude.Prelude.Eq.Prelude.Int";
+strIdx["F_dc"] = "Prelude.Prelude.Eq.Prelude.Int./=";
+strIdx["F_dd"] = "Prelude.Prelude.Eq.Prelude.Int.==";
+strIdx["F_de"] = "Prelude.Prelude.Eq.Prelude.Integer";
+strIdx["F_df"] = "Prelude.Prelude.Eq.Prelude.Integer./=";
+strIdx["F_dg"] = "Prelude.Prelude.Eq.Prelude.Integer.==";
+strIdx["F_dh"] = "Prelude.Prelude.Eq.Prelude.Ordering";
+strIdx["F_di"] = "Prelude.Prelude.Eq.Prelude.Ordering./=";
+strIdx["F_dj"] = "Prelude.Prelude.Eq.Prelude.Ordering.==";
+strIdx["F_dk"] = "Prelude.Prelude.Eq.Prelude.[]";
+strIdx["F_dl"] = "Prelude.Prelude.Eq.Prelude.[]./=";
+strIdx["F_dm"] = "Prelude.Prelude.Eq.Prelude.[].==";
+strIdx["F_dn"] = "Prelude.Prelude.Integral.Prelude.Int";
+strIdx["F_do"] = "Prelude.Prelude.Integral.Prelude.Int.div";
+strIdx["F_dp"] = "Prelude.Prelude.Integral.Prelude.Int.divMod";
+strIdx["F_dq"] = "Prelude.Prelude.Integral.Prelude.Int.mod";
+strIdx["F_dr"] = "Prelude.Prelude.Integral.Prelude.Int.quot";
+strIdx["F_ds"] = "Prelude.Prelude.Integral.Prelude.Int.quotRem";
+strIdx["F_dt"] = "Prelude.Prelude.Integral.Prelude.Int.rem";
+strIdx["F_du"] = "Prelude.Prelude.Integral.Prelude.Int.toInteger";
+strIdx["F_dv"] = "Prelude.Prelude.Integral.Prelude.Integer";
+strIdx["F_dw"] = "Prelude.Prelude.Integral.Prelude.Integer.div";
+strIdx["F_dx"] = "Prelude.Prelude.Integral.Prelude.Integer.divMod";
+strIdx["F_dy"] = "Prelude.Prelude.Integral.Prelude.Integer.mod";
+strIdx["F_dz"] = "Prelude.Prelude.Integral.Prelude.Integer.quot";
+strIdx["F_e"] = "Data.Char.Data.Char.Prelude.246.match";
+strIdx["F_e0"] = "Prelude.Prelude._.divMod";
+strIdx["F_e1"] = "Prelude.Prelude._.enumFromThenTo";
+strIdx["F_e2"] = "Prelude.Prelude._.enumFromTo";
+strIdx["F_e3"] = "Prelude.Prelude._.fail";
+strIdx["F_e4"] = "Prelude.Prelude._.max";
+strIdx["F_e5"] = "Prelude.Prelude._.min";
+strIdx["F_e6"] = "Prelude.Prelude._.pred";
+strIdx["F_e7"] = "Prelude.Prelude._.readList";
+strIdx["F_e8"] = "Prelude.Prelude._.show";
+strIdx["F_e9"] = "Prelude.Prelude._.showList";
+strIdx["F_eA"] = "Prelude.Prelude.Read.Prelude.Int";
+strIdx["F_eB"] = "Prelude.Prelude.Read.Prelude.Int.readList";
+strIdx["F_eC"] = "Prelude.Prelude.Read.Prelude.Int.readsPrec";
+strIdx["F_eD"] = "Prelude.Prelude.Read.Prelude.Integer.readsPrec";
+strIdx["F_eE"] = "Prelude.Prelude.Real.Prelude.Int";
+strIdx["F_eF"] = "Prelude.Prelude.Real.Prelude.Int.toRational";
+strIdx["F_eG"] = "Prelude.Prelude.Real.Prelude.Integer";
+strIdx["F_eH"] = "Prelude.Prelude.Real.Prelude.Integer.toRational";
+strIdx["F_eI"] = "Prelude.Prelude.Real.Prelude.Num";
+strIdx["F_eJ"] = "Prelude.Prelude.Real.Prelude.Ord";
+strIdx["F_eK"] = "Prelude.Prelude.Show.Prelude.Int";
+strIdx["F_eL"] = "Prelude.Prelude.Show.Prelude.Int.show";
+strIdx["F_eM"] = "Prelude.Prelude.Show.Prelude.Int.showList";
+strIdx["F_eN"] = "Prelude.Prelude.Show.Prelude.Int.showsPrec";
+strIdx["F_eO"] = "Prelude.Prelude.Show.Prelude.Int.showsType";
+strIdx["F_eP"] = "Prelude.Prelude.Show.Prelude.Integer";
+strIdx["F_eQ"] = "Prelude.Prelude.Show.Prelude.Integer.show";
+strIdx["F_eR"] = "Prelude.Prelude.Show.Prelude.Integer.showList";
+strIdx["F_eS"] = "Prelude.Prelude.Show.Prelude.Integer.showsPrec";
+strIdx["F_eT"] = "Prelude.Prelude.Show.Prelude.Integer.showsType";
+strIdx["F_eU"] = "Prelude.Prelude._./=";
+strIdx["F_eV"] = "Prelude.Prelude._.<";
+strIdx["F_eW"] = "Prelude.Prelude._.>";
+strIdx["F_eX"] = "Prelude.Prelude._.>=";
+strIdx["F_eY"] = "Prelude.Prelude._.compare";
+strIdx["F_eZ"] = "Prelude.Prelude._.div";
+strIdx["F_ea"] = "Prelude.Prelude.Ord.Prelude.Int.max";
+strIdx["F_eb"] = "Prelude.Prelude.Ord.Prelude.Int.min";
+strIdx["F_ec"] = "Prelude.Prelude.Ord.Prelude.Integer";
+strIdx["F_ed"] = "Prelude.Prelude.Ord.Prelude.Integer.<";
+strIdx["F_ee"] = "Prelude.Prelude.Ord.Prelude.Integer.<=";
+strIdx["F_ef"] = "Prelude.Prelude.Ord.Prelude.Integer.>";
+strIdx["F_eg"] = "Prelude.Prelude.Ord.Prelude.Integer.>=";
+strIdx["F_eh"] = "Prelude.Prelude.Ord.Prelude.Integer.compare";
+strIdx["F_ei"] = "Prelude.Prelude.Ord.Prelude.Integer.max";
+strIdx["F_ej"] = "Prelude.Prelude.Ord.Prelude.Integer.min";
+strIdx["F_ek"] = "Prelude.Prelude.Prelude.1812.lexString";
+strIdx["F_el"] = "Prelude.Prelude.Prelude.1813.lexStrItem";
+strIdx["F_em"] = "Prelude.Prelude.Prelude.1837.isSingle";
+strIdx["F_en"] = "Prelude.Prelude.Prelude.1838.isSym";
+strIdx["F_eo"] = "Prelude.Prelude.Prelude.1839.isIdInit";
+strIdx["F_ep"] = "Prelude.Prelude.Prelude.1840.isIdChar";
+strIdx["F_eq"] = "Prelude.Prelude.Prelude.1841.lexFracExp";
+strIdx["F_er"] = "Prelude.Prelude.Prelude.1842.lexExp";
+strIdx["F_es"] = "Prelude.Prelude.Prelude.1899.optional";
+strIdx["F_et"] = "Prelude.Prelude.Prelude.1900.mandatory";
+strIdx["F_eu"] = "Prelude.Prelude.Prelude.1937.gcd'";
+strIdx["F_ev"] = "Prelude.Prelude.Prelude.535.readl";
+strIdx["F_ew"] = "Prelude.Prelude.Prelude.536.readl'";
+strIdx["F_ex"] = "Prelude.Prelude.Prelude.580.showl";
+strIdx["F_ey"] = "Prelude.Prelude.Prelude.890.ll";
+strIdx["F_ez"] = "Prelude.Prelude.Prelude.Read.Prelude.Int.readsPrec'Id 3510";
+strIdx["F_f1"] = "Prelude._LAMBDA27500";
+strIdx["F_f2"] = "Prelude._LAMBDA27501";
+strIdx["F_f6"] = "Prelude._LAMBDA27620";
+strIdx["F_f7"] = "Prelude._LAMBDA27621";
+strIdx["F_f8"] = "Prelude._LAMBDA27631";
+strIdx["F_f9"] = "Prelude._LAMBDA27632";
+strIdx["F_fA"] = "Prelude._LAMBDA26955";
+strIdx["F_fE"] = "Prelude._LAMBDA26959";
+strIdx["F_fF"] = "Prelude._LAMBDA26960";
+strIdx["F_fG"] = "Prelude._LAMBDA26961";
+strIdx["F_fH"] = "Prelude._LAMBDA26962";
+strIdx["F_fJ"] = "Prelude._LAMBDA26964";
+strIdx["F_fK"] = "Prelude._LAMBDA26965";
+strIdx["F_fL"] = "Prelude._LAMBDA26966";
+strIdx["F_fM"] = "Prelude._LAMBDA26999";
+strIdx["F_fN"] = "Prelude._LAMBDA27000";
+strIdx["F_fO"] = "Prelude._LAMBDA27001";
+strIdx["F_fP"] = "Prelude._LAMBDA27002";
+strIdx["F_fQ"] = "Prelude._LAMBDA27003";
+strIdx["F_fR"] = "Prelude._LAMBDA27004";
+strIdx["F_fS"] = "Prelude._LAMBDA27005";
+strIdx["F_fT"] = "Prelude._LAMBDA27006";
+strIdx["F_fU"] = "Prelude._LAMBDA27007";
+strIdx["F_fV"] = "Prelude._LAMBDA27008";
+strIdx["F_fW"] = "Prelude._LAMBDA27246";
+strIdx["F_fa"] = "Prelude.Prelude._.succ";
+strIdx["F_fc"] = "Prelude._LAMBDA26931";
+strIdx["F_fd"] = "Prelude._LAMBDA26932";
+strIdx["F_fe"] = "Prelude._LAMBDA26933";
+strIdx["F_fk"] = "Prelude._LAMBDA26939";
+strIdx["F_fm"] = "Prelude._LAMBDA26941";
+strIdx["F_fn"] = "Prelude._LAMBDA26942";
+strIdx["F_fo"] = "Prelude._LAMBDA26943";
+strIdx["F_fr"] = "Prelude._LAMBDA26946";
+strIdx["F_fs"] = "Prelude._LAMBDA26947";
+strIdx["F_fv"] = "Prelude._LAMBDA26950";
+strIdx["F_fw"] = "Prelude._LAMBDA26951";
+strIdx["F_fx"] = "Prelude._LAMBDA26952";
+strIdx["F_fz"] = "Prelude._LAMBDA26954";
+strIdx["F_g0"] = "Prelude.toInteger";
+strIdx["F_g1"] = "Prelude.||";
+strIdx["F_g2"] = "Roman.Roman.Prelude.221.k";
+strIdx["F_g3"] = "Roman.Roman.Prelude.228.length";
+strIdx["F_g4"] = "Roman._LAMBDA480";
+strIdx["F_g5"] = "Roman._LAMBDA481";
+strIdx["F_g9"] = "Roman.fromNumeral";
+strIdx["F_gA"] = "Prelude.lookup";
+strIdx["F_gB"] = "Prelude.map";
+strIdx["F_gC"] = "Prelude.negate";
+strIdx["F_gD"] = "Prelude.not";
+strIdx["F_gE"] = "Prelude.or";
+strIdx["F_gF"] = "Prelude.otherwise";
+strIdx["F_gG"] = "Prelude.quot";
+strIdx["F_gH"] = "Prelude.quotRem";
+strIdx["F_gI"] = "Prelude.read";
+strIdx["F_gJ"] = "Prelude.readParen";
+strIdx["F_gK"] = "Prelude.reads";
+strIdx["F_gL"] = "Prelude.readsPrec";
+strIdx["F_gM"] = "Prelude.rem";
+strIdx["F_gN"] = "Prelude.return";
+strIdx["F_gO"] = "Prelude.reverse";
+strIdx["F_gP"] = "Prelude.seq";
+strIdx["F_gQ"] = "Prelude.show";
+strIdx["F_gR"] = "Prelude.showChar";
+strIdx["F_gS"] = "Prelude.showParen";
+strIdx["F_gT"] = "Prelude.showString";
+strIdx["F_gU"] = "Prelude.showsPrec";
+strIdx["F_gV"] = "Prelude.signum";
+strIdx["F_gW"] = "Prelude.snd";
+strIdx["F_gX"] = "Prelude.span";
+strIdx["F_gY"] = "Prelude.subtract";
+strIdx["F_gZ"] = "Prelude.toEnum";
+strIdx["F_gb"] = "Prelude._LAMBDA27663";
+strIdx["F_gd"] = "Prelude._enumFromToDecC";
+strIdx["F_ge"] = "Prelude._enumFromToIncC";
+strIdx["F_gf"] = "Prelude._filter";
+strIdx["F_gg"] = "Prelude._foldr";
+strIdx["F_gh"] = "Prelude.abs";
+strIdx["F_gi"] = "Prelude.any";
+strIdx["F_gj"] = "Prelude.compare";
+strIdx["F_gk"] = "Prelude.divMod";
+strIdx["F_gl"] = "Prelude.dropWhile";
+strIdx["F_gm"] = "Prelude.elem";
+strIdx["F_gn"] = "Prelude.error";
+strIdx["F_go"] = "Prelude.flip";
+strIdx["F_gp"] = "Prelude.foldl";
+strIdx["F_gq"] = "Prelude.foldl1";
+strIdx["F_gr"] = "Prelude.foldr";
+strIdx["F_gs"] = "Prelude.fromEnum";
+strIdx["F_gt"] = "Prelude.fromInteger";
+strIdx["F_gu"] = "Prelude.fromIntegral";
+strIdx["F_gv"] = "Prelude.fst";
+strIdx["F_gw"] = "Prelude.gcd";
+strIdx["F_gx"] = "Prelude.id";
+strIdx["F_gy"] = "Prelude.length";
+strIdx["F_gz"] = "Prelude.lex";
+strIdx["F_hC"] = "YHC.Primitive.primIntAbs";
+strIdx["F_hD"] = "YHC.Primitive.primIntFromInteger";
+strIdx["F_hE"] = "YHC.Primitive.primIntSignum";
+strIdx["F_hF"] = "YHC.Primitive.primIntegerAdd";
+strIdx["F_hG"] = "YHC.Primitive.primIntegerEq";
+strIdx["F_hH"] = "YHC.Primitive.primIntegerFromInt";
+strIdx["F_hI"] = "YHC.Primitive.primIntegerGe";
+strIdx["F_hJ"] = "YHC.Primitive.primIntegerGt";
+strIdx["F_hK"] = "YHC.Primitive.primIntegerLe";
+strIdx["F_hL"] = "YHC.Primitive.primIntegerLt";
+strIdx["F_hM"] = "YHC.Primitive.primIntegerMul";
+strIdx["F_hN"] = "YHC.Primitive.primIntegerNe";
+strIdx["F_hO"] = "YHC.Primitive.primIntegerNeg";
+strIdx["F_hP"] = "YHC.Primitive.primIntegerQuot";
+strIdx["F_hQ"] = "YHC.Primitive.primIntegerQuotRem";
+strIdx["F_hR"] = "YHC.Primitive.primIntegerRem";
+strIdx["F_hS"] = "YHC.Primitive.primIntegerSub";
+strIdx["F_ha"] = "Roman.fromRoman";
+strIdx["F_hb"] = "Roman.maxmunch";
+strIdx["F_hc"] = "Roman.numerals";
+strIdx["F_hd"] = "Roman.subnums";
+strIdx["F_he"] = "Roman.toNumeral";
+strIdx["F_hf"] = "Roman.toRoman";
+strIdx["F_hg"] = "StdOverlay.StdOverlay.Prelude.255.showInt";
+strIdx["F_hh"] = "StdOverlay.StdOverlay.Prelude.256.showPosInt";
+strIdx["F_m"] = "Data.Char._LAMBDA1026";
+strIdx["F_n"] = "Data.Char._LAMBDA1027";
+var F_b=new HSFun("F_b", 3, function(_lJ, _lK, _lL){
+var c1=exprEval(_lK);
+switch((c1)._t) {
+case true : return _lL;
+case false : return ((exprEval(_lJ))._f[3])._ap([new HSData((-6), [])]);
+}
+throw('X (' + this._n + ') ' +c1.toSource());
+});
+
+var F_c=new HSFun("F_c", 2, function(_lZ, _l0){
+var c2=exprEval(_l0);
+return function(_l1, _l2){return new HSData((-7), [new HSCons(_lZ, _l1), _l2]);}((c2)._f[0], (c2)._f[1]);
+});
+
+var F_d=new HSFun("F_d", 1, function(_l3){
+var c3=exprEval(_l3);
+switch((c3)._t) {
+case 3 : return function(_l4, _l5){
+var c4=exprEval(((F_gm)._b(F_c8, _l4))._ap([F_l]));
+switch((c4)._t) {
+case true : return new HSCons(new HSData((-7), [new HSCons(_l4, new HSEOL()), _l5]), new HSEOL());
+case false : var c5=exprEval(_l4);
+switch((c5).valueOf()) {
+case 94 : var c6=exprEval(_l5);
+switch((c6)._t) {
+case 3 : return function(_l6, _l7){
+var c7=exprEval((F_cD)._b((F_dZ)._b(_l6, mkChar(64)), (Number(exprEval(_l6)))<=(Number(exprEval(mkChar(95))))));
+switch((c7)._t) {
+case true : return new HSCons(new HSData((-7), [new HSCons(mkChar(94), new HSCons(_l6, new HSEOL())), _l7]), new HSEOL());
+case false : var c8=exprEval((F_bg)._b(_l4));
+switch((c8)._t) {
+case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL());
+case false : var c9=exprEval((F_0)._b(_l4));
+switch((c9)._t) {
+case true : var c10=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL()));
+switch((c10)._t) {
+case 2 : return new HSEOL();
+case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c10)._f[0], (c10)._f[1]);
+}
+throw('X (' + this._n + ') ' +c10.toSource());
+case false : return new HSEOL();
+}
+throw('X (' + this._n + ') ' +c9.toSource());
+}
+throw('X (' + this._n + ') ' +c8.toSource());
+}
+throw('X (' + this._n + ') ' +c7.toSource());
+}((c6)._f[0], (c6)._f[1]);
+default : var c11=exprEval((F_bg)._b(_l4));
+switch((c11)._t) {
+case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL());
+case false : var c12=exprEval((F_0)._b(_l4));
+switch((c12)._t) {
+case true : var c13=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL()));
+switch((c13)._t) {
+case 2 : return new HSEOL();
+case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c13)._f[0], (c13)._f[1]);
+}
+throw('X (' + this._n + ') ' +c13.toSource());
+case false : return new HSEOL();
+}
+throw('X (' + this._n + ') ' +c12.toSource());
+}
+throw('X (' + this._n + ') ' +c11.toSource());
+}
+throw('X (' + this._n + ') ' +c6.toSource());
+case 111 : return new HSCons((F_c)._ap([mkChar(111), new HSFun("F_gX", 0, function(){return (F_gX)._b(F_bi, _l5);})]), new HSEOL());
+case 120 : return new HSCons((F_c)._ap([mkChar(120), new HSFun("F_gX", 0, function(){return (F_gX)._b(F_bh, _l5);})]), new HSEOL());
+default : var c14=exprEval((F_bg)._b(_l4));
+switch((c14)._t) {
+case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL());
+case false : var c15=exprEval((F_0)._b(_l4));
+switch((c15)._t) {
+case true : var c16=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL()));
+switch((c16)._t) {
+case 2 : return new HSEOL();
+case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c16)._f[0], (c16)._f[1]);
+}
+throw('X (' + this._n + ') ' +c16.toSource());
+case false : return new HSEOL();
+}
+throw('X (' + this._n + ') ' +c15.toSource());
+}
+throw('X (' + this._n + ') ' +c14.toSource());
+}
+throw('X (' + this._n + ') ' +c5.toSource());
+}
+throw('X (' + this._n + ') ' +c4.toSource());
+}((c3)._f[0], (c3)._f[1]);
+default : return new HSEOL();
+}
+throw('X (' + this._n + ') ' +c3.toSource());
+});
+
+var F_e=new HSFun("F_e", 3, function(_lS, _lT, _lU){
+var c17=exprEval(_lT);
+switch((c17)._t) {
+case 3 : return function(_lV, _lW){
+var c18=exprEval(_lU);
+switch((c18)._t) {
+case 3 : return function(_lX, _lY){
+var c19=exprEval(((exprEval(_lS))._f[1])._ap([_lV, _lX]));
+switch((c19)._t) {
+case true : return (F_e)._ap([_lS, _lW, _lY]);
+case false : return new HSData((-7), [_lT, _lU]);
+}
+throw('X (' + this._n + ') ' +c19.toSource());
+}((c18)._f[0], (c18)._f[1]);
+default : return new HSData((-7), [_lT, _lU]);
+}
+throw('X (' + this._n + ') ' +c18.toSource());
+}((c17)._f[0], (c17)._f[1]);
+default : return new HSData((-7), [_lT, _lU]);
+}
+throw('X (' + this._n + ') ' +c17.toSource());
+});
+
+var F_f="ESC";
+
+var F_g="FS";
+
+var F_h="GS";
+
+var F_i="RS";
+
+var F_j="US";
+
+var F_k="SP";
+
+var F_l="abfnrtv\\\"\'";
+
+var F_m=new HSFun("F_m", 3, function(_hd, _io, _iH){
+var c20=exprEval(_io);
+return function(_l8, _l9){
+var c21=exprEval(_l8);
+switch((c21)._t) {
+case 2 : return new HSCons(new HSData((-7), [_hd, _l9]), _iH);
+default : return _iH;
+}
+throw('X (' + this._n + ') ' +c21.toSource());
+}((c20)._f[0], (c20)._f[1]);
+});
+
+var F_n=new HSFun("F_n", 3, function(_l3, _hd, _he){return (F_gg)._b(new HSFun("F_m", 0, function(){return (F_m)._ap([_hd]);}), new HSCons((F_e)._ap([F_c8, _hd, _l3]), new HSEOL()), _he);});
+
+var F_o="DEL";
+
+var F_p=" \u0009\u000a\u000d\u000c\u000b\xa0";
+
+var F_q="Char.intToDigit: not a digit";
+
+var F_r="Data.Char: Pattern match failure in function at 74:1-77:62.";
+
+var F_s="Data.Char: Pattern match failure in function at 275:1-276:28.";
+
+var F_t="NUL";
+
+var F_u="SOH";
+
+var F_v="STX";
+
+var F_w="ETX";
+
+var F_x="EOT";
+
+var F_y="ENQ";
+
+var F_z="ACK";
+
+var F_A="BEL";
+
+var F_B="BS";
+
+var F_C="HT";
+
+var F_D="LF";
+
+var F_E="VT";
+
+var F_F="FF";
+
+var F_G="CR";
+
+var F_H="SO";
+
+var F_I="SI";
+
+var F_J="DLE";
+
+var F_K="DC1";
+
+var F_L="DC2";
+
+var F_M="DC3";
+
+var F_N="DC4";
+
+var F_O="NAK";
+
+var F_P="SYN";
+
+var F_Q="ETB";
+
+var F_R="CAN";
+
+var F_S="EM";
+
+var F_T="SUB";
+
+var F_U=new HSFun("F_U", 0, function(){return new HSCons(new HSData((-7), [mkChar(0), F_t]), new HSCons(new HSData((-7), [mkChar(1), F_u]), new HSCons(new HSData((-7), [mkChar(2), F_v]), new HSCons(new HSData((-7), [mkChar(3), F_w]), new HSCons(new HSData((-7), [mkChar(4), F_x]), new HSCons(new HSData((-7), [mkChar(5), F_y]), new HSCons(new HSData((-7), [mkChar(6), F_z]), new HSCons(new HSData((-7), [mkChar(7), F_A]), new HSCons(new HSData((-7), [mkChar(8), F_B]), new HSCons(new HSData((-7), [mkChar(9), F_C]), new HSCons(new HSData((-7), [mkChar(10), F_D]), new HSCons(new HSData((-7), [mkChar(11), F_E]), new HSCons(new HSData((-7), [mkChar(12), F_F]), new HSCons(new HSData((-7), [mkChar(13), F_G]), new HSCons(new HSData((-7), [mkChar(14), F_H]), new HSCons(new HSData((-7), [mkChar(15), F_I]), new HSCons(new HSData((-7), [mkChar(16), F_J]), new HSCons(new HSData((-7), [mkChar(17), F_K]), new HSCons(new HSData((-7), [mkChar(18), F_L]), new HSCons(new HSData((-7), [mkChar(19), F_M]), new HSCons(new HSData((-7), [mkChar(20), F_N]), new HSCons(new HSData((-7), [mkChar(21), F_O]), new HSCons(new HSData((-7), [mkChar(22), F_P]), new HSCons(new HSData((-7), [mkChar(23), F_Q]), new HSCons(new HSData((-7), [mkChar(24), F_R]), new HSCons(new HSData((-7), [mkChar(25), F_S]), new HSCons(new HSData((-7), [mkChar(26), F_T]), new HSCons(new HSData((-7), [mkChar(27), F_f]), new HSCons(new HSData((-7), [mkChar(28), F_g]), new HSCons(new HSData((-7), [mkChar(29), F_h]), new HSCons(new HSData((-7), [mkChar(30), F_i]), new HSCons(new HSData((-7), [mkChar(31), F_j]), new HSCons(new HSData((-7), [mkChar(32), F_k]), new HSEOL())))))))))))))))))))))))))))))))));});
+
+var F_V=new HSFun("F_V", 1, function(_mf){
+var c22=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(0), (Number(exprEval(_mf)))<=(9)));
+switch((c22)._t) {
+case true : return (F_be)._ap([(exprEval((F_bk)._ap([mkChar(48)])))+(exprEval(_mf))]);
+case false : var c23=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(10), (Number(exprEval(_mf)))<=(15)));
+switch((c23)._t) {
+case true : return (F_be)._ap([(exprEval((exprEval((F_bk)._ap([mkChar(97)])))+(exprEval(_mf))))-(10)]);
+case false : var c24=exprEval(F_gF);
+switch((c24)._t) {
+case true : return (F_gn)._b(F_q);
+case false : return (F_gn)._b(F_r);
+}
+throw('X (' + this._n + ') ' +c24.toSource());
+}
+throw('X (' + this._n + ') ' +c23.toSource());
+}
+throw('X (' + this._n + ') ' +c22.toSource());
+});
+
+var F_W=new HSFun("F_W", 1, function(_md){return (F_g1)._b((F_0)._b(_md), new HSFun("F_Y", 0, function(){return (F_Y)._b(_md);}));});
+
+var F_X=new HSFun("F_X", 1, function(_me){return (F_g1)._b((F_W)._b(_me), new HSFun("F_bg", 0, function(){return (F_bg)._b(_me);}));});
+
+var F_Y=new HSFun("F_Y", 1, function(_lM){return (F_g1)._b((F_cD)._b((F_dZ)._b(_lM, mkChar(97)), (Number(exprEval(_lM)))<=(Number(exprEval(mkChar(122))))), new HSFun("F_g1", 0, function(){return (F_g1)._b((F_cD)._b((F_dZ)._b(_lM, mkChar(223)), (Number(exprEval(_lM)))<=(Number(exprEval(mkChar(246))))), new HSFun("F_cD", 0, function(){return (F_cD)._b((F_dZ)._b(_lM, mkChar(248)), (Number(exprEval(_lM)))<=(Number(exprEval(mkChar(255)))));}));}));});
+
+var F_Z=new HSFun("F_Z", 1, function(_mc){return ((F_gm)._b(F_c8, _mc))._ap([F_p]);});
+
+var F_0=new HSFun("F_0", 1, function(_lO){return (F_g1)._b((F_cD)._b((F_dZ)._b(_lO, mkChar(65)), (Number(exprEval(_lO)))<=(Number(exprEval(mkChar(90))))), new HSFun("F_g1", 0, function(){return (F_g1)._b((F_cD)._b((F_dZ)._b(_lO, mkChar(192)), (Number(exprEval(_lO)))<=(Number(exprEval(mkChar(214))))), new HSFun("F_cD", 0, function(){return (F_cD)._b((F_dZ)._b(_lO, mkChar(216)), (Number(exprEval(_lO)))<=(Number(exprEval(mkChar(222)))));}));}));});
+
+var F_1=new HSFun("F_1", 1, function(_lP){
+var c25=exprEval(_lP);
+switch((c25)._t) {
+case 2 : return new HSEOL();
+case 3 : return function(_lQ, _lR){
+var c26=exprEval(_lQ);
+switch((c26).valueOf()) {
+case 92 : return (F_gB)._b((F_c)._ap([mkChar(92)]), (F_d)._ap([_lR]));
+default : return new HSCons(new HSData((-7), [new HSCons(_lQ, new HSEOL()), _lR]), new HSEOL());
+}
+throw('X (' + this._n + ') ' +c26.toSource());
+}((c25)._f[0], (c25)._f[1]);
+}
+throw('X (' + this._n + ') ' +c25.toSource());
+});
+
+var F_2=new HSFun("F_2", 1, function(_lN){
+var c27=exprEval((F_Y)._b(_lN));
+switch((c27)._t) {
+case true : return (exprEval((exprEval(_lN))-(exprEval(mkChar(97)))))+(exprEval(mkChar(65)));
+case false : var c28=exprEval(F_gF);
+switch((c28)._t) {
+case true : return _lN;
+case false : return (F_gn)._b(F_s);
+}
+throw('X (' + this._n + ') ' +c28.toSource());
+}
+throw('X (' + this._n + ') ' +c27.toSource());
+});
+
+var F_3="Maybe.fromJust: Nothing";
+
+var F_4=new HSFun("F_4", 1, function(_kg){
+var c29=exprEval(_kg);
+switch((c29)._t) {
+case 18 : return (F_gn)._b(F_3);
+case 16 : return (c29)._f[0];
+}
+throw('X (' + this._n + ') ' +c29.toSource());
+});
+
+var F_5=new HSFun("F_5", 2, function(_kd, _ke){
+var c30=exprEval(_ke);
+switch((c30)._t) {
+case 18 : return _kd;
+case 16 : return (c30)._f[0];
+}
+throw('X (' + this._n + ') ' +c30.toSource());
+});
+
+var F_6=new HSFun("F_6", 3, function(_I, _J, _K){return (F_8)._b(_I, ((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[2])._ap([_J, ((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[6])._ap([_K])]), ((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[8])._ap([_K]));});
+
+var F_7="Ratio.%: zero denominator";
+
+var F_8=new HSFun("F_8", 3, function(_F, _G, _H){
+var _lf=new HSFun("_lf", 0, function(){return _F;});
+var _b=new HSFun("_b", 0, function(){return (F_gw)._b(_lf, _G, _H);});
+var c31=exprEval(((exprEval((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[0]))._f[1])._ap([_H, ((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[7])._ap([0])]));
+switch((c31)._t) {
+case true : return (F_gn)._b(F_7);
+case false : return new HSData((-4), [((exprEval(_F))._f[7])._ap([_G, _b]), ((exprEval(_F))._f[7])._ap([_H, _b])]);
+}
+throw('X (' + this._n + ') ' +c31.toSource());
+});
+
+var F_9=new HSFun("F_9", 2, function(_ee, _ef){
+var c32=exprEval(_ee);
+return function(_kl, _km){
+var c33=exprEval(_kl);
+switch((c33)._t) {
+case 3 : return function(_kn, _ko){return new HSCons(new HSData((-7), [_kl, _km]), _ef);}((c33)._f[0], (c33)._f[1]);
+default : return _ef;
+}
+throw('X (' + this._n + ') ' +c33.toSource());
+}((c32)._f[0], (c32)._f[1]);
+});
+
+var F_ba=new HSFun("F_ba", 4, function(_kp, _kq, _ec, _ed){return ((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[3])._ap([((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[2])._ap([_ec, _kq]), _ed]);});
+
+var F_bb=new HSFun("F_bb", 5, function(_kq, _kp, _ks, _c7, _dI){
+var c34=exprEval(_c7);
+return function(_ku, _kv){return new HSCons(new HSData((-7), [new HSFun("F_gq", 0, function(){return (F_gq)._b(new HSFun("F_ba", 0, function(){return (F_ba)._ap([_kp, _kq]);}), (F_gB)._b((F_fc)._ap([_ks, (F_gu)._b(F_dn, new HSFun("F_eI", 0, function(){return (exprEval((exprEval(_kp))._f[0]))._f[0];}))]), _ku));}), _kv]), _dI);}((c34)._f[0], (c34)._f[1]);
+});
+
+var F_bc="Char.digitToInt: not a digit";
+
+var F_bd="Data._CharNumeric: Pattern match failure in function at 22:1-26:64.";
+
+var F_be=new HSFun("F_be", 0, function(){return F_gx;});
+
+var F_bf=new HSFun("F_bf", 1, function(_ky){
+var c35=exprEval((F_bg)._b(_ky));
+switch((c35)._t) {
+case true : return (exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(48)])));
+case false : var c36=exprEval((F_cD)._b((F_dZ)._b(_ky, mkChar(97)), (Number(exprEval(_ky)))<=(Number(exprEval(mkChar(102))))));
+switch((c36)._t) {
+case true : return (exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(97)])))))+(10);
+case false : var c37=exprEval((F_cD)._b((F_dZ)._b(_ky, mkChar(65)), (Number(exprEval(_ky)))<=(Number(exprEval(mkChar(70))))));
+switch((c37)._t) {
+case true : return (exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(65)])))))+(10);
+case false : var c38=exprEval(F_gF);
+switch((c38)._t) {
+case true : return (F_gn)._b(F_bc);
+case false : return (F_gn)._b(F_bd);
+}
+throw('X (' + this._n + ') ' +c38.toSource());
+}
+throw('X (' + this._n + ') ' +c37.toSource());
+}
+throw('X (' + this._n + ') ' +c36.toSource());
+}
+throw('X (' + this._n + ') ' +c35.toSource());
+});
+
+var F_bg=new HSFun("F_bg", 1, function(_kx){return (F_cD)._b((F_dZ)._b(_kx, mkChar(48)), (Number(exprEval(_kx)))<=(Number(exprEval(mkChar(57)))));});
+
+var F_bh=new HSFun("F_bh", 1, function(_kw){return (F_g1)._b((F_cD)._b((F_dZ)._b(_kw, mkChar(48)), (Number(exprEval(_kw)))<=(Number(exprEval(mkChar(57))))), new HSFun("F_g1", 0, function(){return (F_g1)._b((F_cD)._b((F_dZ)._b(_kw, mkChar(65)), (Number(exprEval(_kw)))<=(Number(exprEval(mkChar(70))))), new HSFun("F_cD", 0, function(){return (F_cD)._b((F_dZ)._b(_kw, mkChar(97)), (Number(exprEval(_kw)))<=(Number(exprEval(mkChar(102)))));}));}));});
+
+var F_bi=new HSFun("F_bi", 1, function(_kz){return (F_cD)._b((F_dZ)._b(_kz, mkChar(48)), (Number(exprEval(_kz)))<=(Number(exprEval(mkChar(55)))));});
+
+var F_bj=new HSFun("F_bj", 2, function(_kj, _kk){return (F_gg)._b(F_9, new HSCons((F_gX)._b(_kj, _kk), new HSEOL()), new HSEOL());});
+
+var F_bk=new HSFun("F_bk", 0, function(){return F_gx;});
+
+var F_bl=new HSFun("F_bl", 1, function(_kA){return (F_bm)._ap([_kA, ((exprEval((exprEval((exprEval(_kA))._f[0]))._f[0]))._f[7])._ap([10]), F_bg, F_bf]);});
+
+var F_bm=new HSFun("F_bm", 5, function(_kp, _kq, _kr, _ks, _kt){return (F_gg)._b(new HSFun("F_bb", 0, function(){return (F_bb)._ap([_kq, _kp, _ks]);}), (F_bj)._b(_kr, _kt), new HSEOL());});
+
+var F_bn=new HSFun("F_bn", 0, function(){return new HSData((-9), [F_bp, F_bo, F_bq, F_br]);});
+
+var F_bo=new HSFun("F_bo", 2, function(_lC, _lD){
+var c39=exprEval(_lC);
+return _lD;
+});
+
+var F_bp=new HSFun("F_bp", 2, function(_lF, _lG){
+var c40=exprEval(_lF);
+return function(_lH){return (_lG)._ap([_lH]);}((c40)._f[0]);
+});
+
+var F_bq=new HSFun("F_bq", 1, function(_lI){return (F_gn)._b(_lI);});
+
+var F_br=new HSFun("F_br", 1, function(_lB){return (F_gP)._b(_lB, new HSData((-5), [_lB]));});
+
+var F_bs="return new HSData(conIdx[\'Echo.JS\'],[document]);";
+
+var F_bt="return new HSData(conIdx[\'Echo.JS\'],[exprEval(a)[exprEval(b).toString()]]);";
+
+var F_bu="exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx[\'Echo.JS\'],[]);";
+
+var F_bv="exprEval(a)[exprEval(b).toString()]=function(e){if(!e){e=window.event;}; return exprEval(exprEval(c)._ap([e]));}; return new HSData(conIdx[\'Echo.JS\'],[]);";
+
+var F_bw="return new HSData(conIdx[\'Echo.JS\'],[new Number(exprEval(a))]);";
+
+var F_bx="return new HSData(conIdx[\'Echo.JS\'],[new String(exprEval(a))]);";
+
+var F_by="try {return exprEval(a);} catch(_e) {return exprEval(b)._ap([_e]);}";
+
+var F_bz="return new HSData(conIdx[\'Echo.JS\'],[(new Date()).getTime()]);";
+
+var F_bA="var a1=exprEval(a); return new HSData(conIdx[\'Echo.JS\'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())]);";
+
+var F_bB="keyCode";
+
+var F_bC="body";
+
+var F_bD="createElement";
+
+var F_bE="div";
+
+var F_bF="value";
+
+var F_bG="";
+
+var F_bH=new HSFun("F_bH", 1, function(v593){return (F_br)._b(F_bG);});
+
+var F_bI="";
+
+var F_bJ=new HSFun("F_bJ", 1, function(v594){return (F_br)._b(F_bI);});
+
+var F_bK=" ";
+
+var F_bL=" ";
+
+var F_bM=" ";
+
+var F_bN=" ms";
+
+var F_bO="innerHTML";
+
+var F_bP="insertBefore";
+
+var F_bQ="value";
+
+var F_bR="";
+
+var F_bS=new HSFun("F_bS", 8, function(_et, _fK, _fO, _f8, _e2, _e3, _lz, _hc){
+var _kJ=new HSFun("_kJ", 0, function(){return F_dF;});
+var _c=new HSFun("_c", 0, function(){return ((exprEval(_kJ))._f[4])._ap([_hc, _et]);});
+var _kL=new HSFun("_kL", 0, function(){return F_eK;});
+var _d=new HSFun("_d", 0, function(){return (F_cG)._b(_fK, new HSFun("F_cG", 0, function(){return (F_cG)._b(F_bK, new HSFun("F_cG", 0, function(){return (F_cG)._b(_fO, new HSFun("F_cG", 0, function(){return (F_cG)._b(F_bL, new HSFun("F_cG", 0, function(){return (F_cG)._b(_f8, new HSFun("F_cG", 0, function(){return (F_cG)._b(F_bM, new HSFun("F_cG", 0, function(){return (F_cG)._b(((exprEval(_kL))._f[3])._ap([_c]), F_bN);}));}));}));}));}));}));});
+return (F_bo)._b((F_cm)._b(_e3, F_bO, _d), (F_bo)._b((F_cl)._b(_e2, F_bP, new HSCons(_e3, new HSCons(_lz, new HSEOL()))), (F_bo)._b((F_cm)._b(_lz, F_bQ, F_bR), (F_br)._b(new HSData((-6), [])))));
+});
+
+var F_bT=new HSFun("F_bT", 7, function(_et, _fK, _fO, _e2, _e3, _lz, _f8){return (F_bp)._b((F_ch)._b(0), new HSFun("F_bS", 0, function(){return (F_bS)._ap([_et, _fK, _fO, _f8, _e2, _e3, _lz]);}));});
+
+var F_bU=new HSFun("F_bU", 6, function(_et, _fK, _e2, _e3, _lz, _fO){return (F_bp)._b((F_ce)._b(new HSFun("F_cC", 0, function(){return (F_cC)._b(F_br, new HSFun("F_hf", 0, function(){return (F_hf)._b(new HSFun("F_gI", 0, function(){return (F_gI)._b(F_eA, _fK);}));}));}), F_bJ), new HSFun("F_bT", 0, function(){return (F_bT)._ap([_et, _fK, _fO, _e2, _e3, _lz]);}));});
+
+var F_bV=new HSFun("F_bV", 5, function(_et, _e2, _e3, _lz, _fK){return (F_bo)._b((F_cC)._b(new HSFun("F_b", 0, function(){return (F_b)._ap([F_bn, (Number(exprEval((F_gy)._b(_fK))))>(0)]);}), new HSFun("F_bp", 0, function(){return (F_bp)._b((F_ce)._b(new HSFun("F_cC", 0, function(){return (F_cC)._b(F_br, ((F_fc)._ap([F_ha, F_eL]))._ap([_fK]));}), F_bH), new HSFun("F_bU", 0, function(){return (F_bU)._ap([_et, _fK, _e2, _e3, _lz]);}));})), (F_br)._b(new HSData((-6), [])));});
+
+var F_bW=new HSFun("F_bW", 4, function(_et, _e2, _lz, _e3){return (F_bp)._b((F_bp)._b((F_cg)._b(_lz, F_bF), F_cd), new HSFun("F_bV", 0, function(){return (F_bV)._ap([_et, _e2, _e3, _lz]);}));});
+
+var F_bX=new HSFun("F_bX", 4, function(_eY, _et, _lz, _e2){return (F_bp)._b((F_cl)._b(_eY, F_bD, new HSCons(F_bE, new HSEOL())), new HSFun("F_bW", 0, function(){return (F_bW)._ap([_et, _e2, _lz]);}));});
+
+var F_bY=new HSFun("F_bY", 3, function(_et, _lz, _eY){return (F_bp)._b((F_cg)._b(_eY, F_bC), new HSFun("F_bX", 0, function(){return (F_bX)._ap([_eY, _et, _lz]);}));});
+
+var F_bZ=new HSFun("F_bZ", 2, function(_lz, _et){return (F_bp)._b(F_cf, new HSFun("F_bY", 0, function(){return (F_bY)._ap([_et, _lz]);}));});
+
+var F_b0=new HSFun("F_b0", 2, function(_lz, _eq){return (F_bo)._b((F_cC)._b(new HSFun("F_b", 0, function(){return (F_b)._ap([F_bn, (Number(exprEval(_eq)))===(13)]);}), new HSFun("F_bp", 0, function(){return (F_bp)._b((F_ch)._b(0), new HSFun("F_bZ", 0, function(){return (F_bZ)._ap([_lz]);}));})), (F_br)._b(new HSData((-6), [])));});
+
+var F_b1="body";
+
+var F_b2="createElement";
+
+var F_b3="input";
+
+var F_b4="id";
+
+var F_b5="input-echo";
+
+var F_b6="appendChild";
+
+var F_b7="onkeypress";
+
+var F_b8="focus";
+
+var F_b9=new HSFun("F_b9", 2, function(_io, _iH){return (F_bo)._b((F_cm)._b(_iH, F_b4, F_b5), (F_bo)._b((F_cl)._b(_io, F_b6, new HSCons(_iH, new HSEOL())), (F_bo)._b((F_ck)._b(_iH, F_b7, new HSFun("F_ci", 0, function(){return (F_ci)._ap([_iH]);})), (F_bo)._b((F_cl)._b(_iH, F_b8, new HSEOL()), (F_br)._b(new HSData((-6), []))))));});
+
+var F_ca=new HSFun("F_ca", 2, function(_ia, _io){return (F_bp)._b((F_cl)._b(_ia, F_b2, new HSCons(F_b3, new HSEOL())), new HSFun("F_b9", 0, function(){return (F_b9)._ap([_io]);}));});
+
+var F_cb=new HSFun("F_cb", 1, function(_ia){return (F_bp)._b((F_cg)._b(_ia, F_b1), new HSFun("F_ca", 0, function(){return (F_ca)._ap([_ia]);}));});
+
+var F_cc=new HSFun("F_cc", 1, function(a){
+return new HSData(conIdx['Echo.JS'],[new Number(exprEval(a))]);});
+
+var F_cd=new HSFun("F_cd", 1, function(a){
+return new HSData(conIdx['Echo.JS'],[new String(exprEval(a))]);});
+
+var F_ce=new HSFun("F_ce", 2, function(a, b){
+try {return exprEval(a);} catch(_e) {return exprEval(b)._ap([_e]);}});
+
+var F_cf=new HSFun("F_cf", 0, function(){
+return new HSData(conIdx['Echo.JS'],[document]);});
+
+var F_cg=new HSFun("F_cg", 2, function(a, b){
+return new HSData(conIdx['Echo.JS'],[exprEval(a)[exprEval(b).toString()]]);});
+
+var F_ch=new HSFun("F_ch", 1, function(a){
+return new HSData(conIdx['Echo.JS'],[(new Date()).getTime()]);});
+
+var F_ci=new HSFun("F_ci", 2, function(_lz, _lA){return (F_bp)._b((F_bp)._b((F_cg)._b(_lA, F_bB), F_cc), new HSFun("F_b0", 0, function(){return (F_b0)._ap([_lz]);}));});
+
+var F_cj=new HSFun("F_cj", 0, function(){return (F_bp)._b(F_cf, F_cb);});
+
+var F_ck=new HSFun("F_ck", 3, function(a, b, c){
+exprEval(a)[exprEval(b).toString()]=function(e){if(!e){e=window.event;}; return exprEval(exprEval(c)._ap([e]));}; return new HSData(conIdx['Echo.JS'],[]);});
+
+var F_cl=new HSFun("F_cl", 3, function(a, b, c){
+var a1=exprEval(a); return new HSData(conIdx['Echo.JS'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())]);});
+
+var F_cm=new HSFun("F_cm", 3, function(a, b, c){
+exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx['Echo.JS'],[]);});
+
+var F_cn=new HSFun("F_cn", 3, function(_E, _bI, _bO){return (F_cG)._b(((F_co)._ap([_bI]))._ap([_bO]), new HSFun("F_gg", 0, function(){return (F_gg)._b(new HSFun("F_cw", 0, function(){return (F_cw)._ap([_E, _bI]);}), (F_gz)._b(_bO), new HSEOL());}));});
+
+var F_co=new HSFun("F_co", 2, function(_bI, _bJ){return (F_gg)._b(new HSFun("F_cu", 0, function(){return (F_cu)._ap([_bI]);}), (F_gz)._b(_bJ), new HSEOL());});
+
+var F_cp="Numeric.showIntAtBase: can\'t show negative numbers";
+
+var F_cq=new HSFun("F_cq", 1, function(_e){return (exprEval(_e))._f[0];});
+
+var F_cr=new HSFun("F_cr", 1, function(_e){return (exprEval(_e))._f[1];});
+
+var F_cs="Numeric: Pattern match failure in function at 435:1-440:66.";
+
+var F_ct=new HSFun("F_ct", 3, function(_bL, _kJ, _kK){
+var c41=exprEval(_kJ);
+return function(_bM, _bN){
+var c42=exprEval(_bN);
+switch((c42)._t) {
+case 2 : return new HSCons(new HSData((-7), [_bM, _bL]), _kK);
+default : return _kK;
+}
+throw('X (' + this._n + ') ' +c42.toSource());
+}((c41)._f[0], (c41)._f[1]);
+});
+
+var F_cu=new HSFun("F_cu", 3, function(_bI, _kH, _kI){
+var c43=exprEval(_kH);
+return function(_bK, _bL){return (F_gg)._b(new HSFun("F_ct", 0, function(){return (F_ct)._ap([_bL]);}), (_bI)._ap([_bK]), _kI);}((c43)._f[0], (c43)._f[1]);
+});
+
+var F_cv=new HSFun("F_cv", 3, function(_E, _kD, _kE){
+var c44=exprEval(_kD);
+return function(_bT, _bU){return new HSCons(new HSData((-7), [((exprEval(_E))._f[5])._ap([_bT]), _bU]), _kE);}((c44)._f[0], (c44)._f[1]);
+});
+
+var F_cw=new HSFun("F_cw", 4, function(_E, _bI, _kB, _kC){
+var c45=exprEval(_kB);
+return function(_bP, _bQ){
+var c46=exprEval(_bP);
+switch((c46)._t) {
+case 3 : return function(_bR, _bS){
+var c47=exprEval(_bR);
+switch((c47).valueOf()) {
+case 45 : var c48=exprEval(_bS);
+switch((c48)._t) {
+case 2 : return (F_gg)._b(new HSFun("F_cv", 0, function(){return (F_cv)._ap([_E]);}), ((F_co)._ap([_bI]))._ap([_bQ]), _kC);
+default : return _kC;
+}
+throw('X (' + this._n + ') ' +c48.toSource());
+default : return _kC;
+}
+throw('X (' + this._n + ') ' +c47.toSource());
+}((c46)._f[0], (c46)._f[1]);
+default : return _kC;
+}
+throw('X (' + this._n + ') ' +c46.toSource());
+}((c45)._f[0], (c45)._f[1]);
+});
+
+var F_cx=new HSFun("F_cx", 0, function(){return (F_bj)._ap([F_bg]);});
+
+var F_cy=new HSFun("F_cy", 2, function(_bH, _bI){
+var _E=new HSFun("_E", 0, function(){return (exprEval(_bH))._f[0];});
+return (F_gJ)._b(false, new HSFun("F_cn", 0, function(){return (F_cn)._ap([_E, _bI]);}));
+});
+
+var F_cz=new HSFun("F_cz", 1, function(_4){return (F_cA)._ap([_4, ((exprEval((exprEval((exprEval(_4))._f[0]))._f[0]))._f[7])._ap([10]), F_V]);});
+
+var F_cA=new HSFun("F_cA", 5, function(_V, _W, _X, _Y, _Z){
+var c49=exprEval(((exprEval((exprEval((exprEval(_V))._f[0]))._f[1]))._f[1])._ap([_Y, ((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])]));
+switch((c49)._t) {
+case true : return (F_gn)._b(F_cp);
+case false : var c50=exprEval(F_gF);
+switch((c50)._t) {
+case true : var _ld=new HSFun("_ld", 0, function(){return _V;});
+var _e=new HSFun("_e", 0, function(){return ((exprEval(_ld))._f[4])._ap([_Y, _W]);});
+var _f=new HSFun("_f", 0, function(){return (exprEval(_e))._f[0];});
+var _g=new HSFun("_g", 0, function(){return (exprEval(_e))._f[1];});
+var _le=new HSFun("_le", 0, function(){return _V;});
+var _h=new HSFun("_h", 0, function(){return new HSCons((_X)._ap([((F_gu)._b(_le, F_dF))._ap([_g])]), _Z);});
+var c51=exprEval(((exprEval((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[0]))._f[1])._ap([_f, ((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])]));
+switch((c51)._t) {
+case true : return _h;
+case false : return (F_cA)._b(_V, _W, _X, _f, _h);
+}
+throw('X (' + this._n + ') ' +c51.toSource());
+case false : return (F_gn)._b(F_cs);
+}
+throw('X (' + this._n + ') ' +c50.toSource());
+}
+throw('X (' + this._n + ') ' +c49.toSource());
+});
+
+var F_cB=new HSFun("F_cB", 4, function(_R, _S, _T, _U){
+var c52=exprEval(((exprEval((exprEval(_R))._f[1]))._f[1])._ap([_U, ((exprEval((exprEval(_R))._f[0]))._f[7])._ap([0])]));
+switch((c52)._t) {
+case true : return (F_gS)._b((Number(exprEval(_T)))>(6), (F_fc)._ap([(_S)._ap([((exprEval((exprEval(_R))._f[0]))._f[5])._ap([_U])]), (F_fW)._ap([mkChar(45)])]));
+case false : return (_S)._ap([_U]);
+}
+throw('X (' + this._n + ') ' +c52.toSource());
+});
+
+var F_cC=new HSFun("F_cC", 2, function(_eK, _eL){return (_eK)._ap([_eL]);});
+
+var F_cD=new HSFun("F_cD", 2, function(_er, _es){
+var c53=exprEval(_er);
+switch((c53)._t) {
+case true : return _es;
+case false : return false;
+}
+throw('X (' + this._n + ') ' +c53.toSource());
+});
+
+var F_cE=new HSFun("F_cE", 1, function(_jC){return (exprEval(_jC))._f[2];});
+
+var F_cF=new HSFun("F_cF", 1, function(_jD){return (exprEval(_jD))._f[3];});
+
+var F_cG=new HSFun("F_cG", 2, function(_cp, _cq){
+var c54=exprEval(_cp);
+switch((c54)._t) {
+case 2 : return _cq;
+case 3 : return function(_cr, _cs){return new HSCons(_cr, (F_cG)._b(_cs, _cq));}((c54)._f[0], (c54)._f[1]);
+}
+throw('X (' + this._n + ') ' +c54.toSource());
+});
+
+var F_cH=new HSFun("F_cH", 1, function(_jE){return (exprEval(_jE))._f[4];});
+
+var F_cI=new HSFun("F_cI", 2, function(_b9, _ca){return (F_fc)._ap([_ca, _b9]);});
+
+var F_cJ=new HSFun("F_cJ", 1, function(_jn){return (exprEval(_jn))._f[1];});
+
+var F_cK=new HSFun("F_cK", 1, function(_jo){return (exprEval(_jo))._f[2];});
+
+var F_cL=new HSFun("F_cL", 1, function(_jd){return (exprEval(_jd))._f[1];});
+
+var F_cM=new HSFun("F_cM", 1, function(_jq){return (exprEval(_jq))._f[4];});
+
+var F_cN=new HSFun("F_cN", 1, function(_jp){return (exprEval(_jp))._f[3];});
+
+var F_cO=new HSFun("F_cO", 1, function(_f7){return _f7;});
+
+var F_cP=new HSFun("F_cP", 0, function(){return new HSData((-10), [F_cW, F_cV, F_cQ, F_cU, F_cX, F_cR, F_cT, F_cS]);});
+
+var F_cQ=new HSFun("F_cQ", 1, function(_hH){return new HSCons(_hH, (F_cQ)._b((exprEval(_hH))+(1)));});
+
+var F_cR=new HSFun("F_cR", 2, function(_hF, _hG){return new HSCons(_hF, (F_cR)._b(_hG, (exprEval((2)*(exprEval(_hG))))-(exprEval(_hF))));});
+
+var F_cS=new HSFun("F_cS", 3, function(_hK, _hL, _hM){return (F_e1)._b(F_cP, _hK, _hL, _hM);});
+
+var F_cT=new HSFun("F_cT", 2, function(_hN, _hO){return (F_e2)._b(F_cP, _hN, _hO);});
+
+var F_cU=new HSFun("F_cU", 1, function(_hI){return _hI;});
+
+var F_cV=new HSFun("F_cV", 1, function(_hP){return (F_e6)._b(F_cP, _hP);});
+
+var F_cW=new HSFun("F_cW", 1, function(_hQ){return (F_fa)._b(F_cP, _hQ);});
+
+var F_cX=new HSFun("F_cX", 1, function(_hJ){return _hJ;});
+
+var F_cY=new HSFun("F_cY", 0, function(){return new HSData((-10), [F_c5, F_c4, F_cZ, F_c3, F_c6, F_c0, F_c2, F_c1]);});
+
+var F_cZ=new HSFun("F_cZ", 1, function(_g2){return new HSCons(_g2, (F_cZ)._b((F_hF)._b(_g2, 1)));});
+
+var F_c0=new HSFun("F_c0", 2, function(_g0, _g1){return new HSCons(_g0, (F_c0)._b(_g1, (F_hF)._b((F_hM)._b(2, _g1), _g0)));});
+
+var F_c1=new HSFun("F_c1", 3, function(_g7, _g8, _g9){return (F_e1)._b(F_cY, _g7, _g8, _g9);});
+
+var F_c2=new HSFun("F_c2", 2, function(_ha, _hb){return (F_e2)._b(F_cY, _ha, _hb);});
+
+var F_c3=new HSFun("F_c3", 1, function(_g3){return (F_hD)._b(_g3);});
+
+var F_c4=new HSFun("F_c4", 1, function(_g5){return (F_hS)._b(_g5, 1);});
+
+var F_c5=new HSFun("F_c5", 1, function(_g6){return (F_hF)._b(_g6, 1);});
+
+var F_c6=new HSFun("F_c6", 1, function(_g4){return (F_hH)._b(_g4);});
+
+var F_c7=new HSFun("F_c7", 1, function(_fq){
+var c55=exprEval(_fq);
+switch((c55)._t) {
+case 17 : return 0;
+case 13 : return 1;
+case 15 : return 2;
+}
+throw('X (' + this._n + ') ' +c55.toSource());
+});
+
+var F_c8=new HSFun("F_c8", 0, function(){return new HSData((-7), [F_c9, F_da]);});
+
+var F_c9=new HSFun("F_c9", 2, function(_f5, _f6){return (F_eU)._b(F_c8, _f5, _f6);});
+
+var F_da=new HSFun("F_da", 2, function(_f3, _f4){return (Number(exprEval(_f3)))===(Number(exprEval(_f4)));});
+
+var F_db=new HSFun("F_db", 0, function(){return new HSData((-7), [F_dc, F_dd]);});
+
+var F_dc=new HSFun("F_dc", 2, function(_if, _ig){return (Number(exprEval(_if)))!==(Number(exprEval(_ig)));});
+
+var F_dd=new HSFun("F_dd", 2, function(_ih, _ii){return (Number(exprEval(_ih)))===(Number(exprEval(_ii)));});
+
+var F_de=new HSFun("F_de", 0, function(){return new HSData((-7), [F_df, F_dg]);});
+
+var F_df=new HSFun("F_df", 2, function(_gW, _gX){return (F_hN)._b(_gW, _gX);});
+
+var F_dg=new HSFun("F_dg", 2, function(_gY, _gZ){return (F_hG)._b(_gY, _gZ);});
+
+var F_dh=new HSFun("F_dh", 0, function(){return new HSData((-7), [F_di, F_dj]);});
+
+var F_di=new HSFun("F_di", 2, function(_fo, _fp){return (F_eU)._b(F_dh, _fo, _fp);});
+
+var F_dj=new HSFun("F_dj", 2, function(_fj, _fk){return (Number(exprEval((F_c7)._b(_fj))))===(Number(exprEval((F_c7)._b(_fk))));});
+
+var F_dk=new HSFun("F_dk", 1, function(_bW){return new HSData((-7), [new HSFun("F_dl", 0, function(){return (F_dl)._ap([_bW]);}), new HSFun("F_dm", 0, function(){return (F_dm)._ap([_bW]);})]);});
+
+var F_dl=new HSFun("F_dl", 3, function(_iP, _iQ, _iR){return (F_eU)._b(new HSFun("F_dk", 0, function(){return (F_dk)._b(_iP);}), _iQ, _iR);});
+
+var F_dm=new HSFun("F_dm", 3, function(_iI, _iJ, _iK){
+var c56=exprEval(_iJ);
+switch((c56)._t) {
+case 2 : var c57=exprEval(_iK);
+switch((c57)._t) {
+case 2 : return true;
+default : return false;
+}
+throw('X (' + this._n + ') ' +c57.toSource());
+case 3 : return function(_iL, _iM){
+var c58=exprEval(_iK);
+switch((c58)._t) {
+case 3 : return function(_iN, _iO){return (F_cD)._b(((exprEval(_iI))._f[1])._ap([_iL, _iN]), new HSFun("F_dm", 0, function(){return (F_dm)._b(_iI, _iM, _iO);}));}((c58)._f[0], (c58)._f[1]);
+default : return false;
+}
+throw('X (' + this._n + ') ' +c58.toSource());
+}((c56)._f[0], (c56)._f[1]);
+}
+throw('X (' + this._n + ') ' +c56.toSource());
+});
+
+var F_dn=new HSFun("F_dn", 0, function(){return new HSData((-11), [F_eE, F_cP, F_dp, F_dq, F_ds, F_dt, F_du, F_dr, F_do]);});
+
+var F_do=new HSFun("F_do", 2, function(_hC, _hD){return (F_eZ)._b(F_dn, _hC, _hD);});
+
+var F_dp=new HSFun("F_dp", 2, function(_hx, _hy){return (F_e0)._b(F_dn, _hx, _hy);});
+
+var F_dq=new HSFun("F_dq", 2, function(_hp, _hq){
+var _k=new HSFun("_k", 0, function(){return (exprEval(_hp))%(exprEval(_hq));});
+var c59=exprEval((Number(exprEval((F_hE)._b(_k))))===(Number(exprEval(NEG_W(exprEval((F_hE)._b(_hq)))))));
+switch((c59)._t) {
+case true : return (exprEval(_k))+(exprEval(_hq));
+case false : return _k;
+}
+throw('X (' + this._n + ') ' +c59.toSource());
+});
+
+var F_dr=new HSFun("F_dr", 2, function(_hv, _hw){return function(x,y){return (x - (x % y))/y;}(Number(exprEval(_hv)),Number(exprEval(_hw)));});
+
+var F_ds=new HSFun("F_ds", 2, function(_hr, _hs){return new HSData((-7), [function(x,y){return (x - (x % y))/y;}(Number(exprEval(_hr)),Number(exprEval(_hs))), (exprEval(_hr))%(exprEval(_hs))]);});
+
+var F_dt=new HSFun("F_dt", 2, function(_ht, _hu){return (exprEval(_ht))%(exprEval(_hu));});
+
+var F_du=new HSFun("F_du", 1, function(_ho){return (F_hH)._b(_ho);});
+
+var F_dv=new HSFun("F_dv", 0, function(){return new HSData((-11), [F_eG, F_cY, F_dx, F_dy, F_dA, F_dB, F_dC, F_dz, F_dw]);});
+
+var F_dw=new HSFun("F_dw", 2, function(_gi, _gj){return (exprEval((F_dx)._b(_gi, _gj)))._f[0];});
+
+var F_dx=new HSFun("F_dx", 2, function(_gv, _gw){return (F_e0)._b(F_dv, _gv, _gw);});
+
+var F_dy=new HSFun("F_dy", 2, function(_gg, _gh){return (exprEval((F_dx)._b(_gg, _gh)))._f[1];});
+
+var F_dz=new HSFun("F_dz", 2, function(_gm, _gn){return (F_hP)._b(_gm, _gn);});
+
+var F_dA=new HSFun("F_dA", 2, function(_ge, _gf){return (F_hQ)._b(_ge, _gf);});
+
+var F_dB=new HSFun("F_dB", 2, function(_gk, _gl){return (F_hR)._b(_gk, _gl);});
+
+var F_dC=new HSFun("F_dC", 1, function(_gd){return _gd;});
+
+var F_dD=new HSFun("F_dD", 1, function(_jX){return (exprEval(_jX))._f[0];});
+
+var F_dE=new HSFun("F_dE", 1, function(_jB){return (exprEval(_jB))._f[0];});
+
+var F_dF=new HSFun("F_dF", 0, function(){return new HSData((-11), [F_db, F_eK, F_dG, F_dH, F_dI, F_dL, F_dM, F_dK, F_dJ]);});
+
+var F_dG=new HSFun("F_dG", 2, function(_hU, _hV){return (exprEval(_hU))*(exprEval(_hV));});
+
+var F_dH=new HSFun("F_dH", 2, function(_hY, _hZ){return (exprEval(_hY))+(exprEval(_hZ));});
+
+var F_dI=new HSFun("F_dI", 2, function(_hW, _hX){return (exprEval(_hW))-(exprEval(_hX));});
+
+var F_dJ=new HSFun("F_dJ", 1, function(_hT){return (F_hC)._b(_hT);});
+
+var F_dK=new HSFun("F_dK", 1, function(_hR){return (F_hD)._b(_hR);});
+
+var F_dL=new HSFun("F_dL", 1, function(a){
+return 0 - Number(exprEval(a));});
+
+var F_dM=new HSFun("F_dM", 1, function(_hS){return (F_hE)._b(_hS);});
+
+var F_dN=new HSFun("F_dN", 0, function(){return new HSData((-11), [F_de, F_eP, F_dO, F_dP, F_dQ, F_dT, F_dU, F_dS, F_dR]);});
+
+var F_dO=new HSFun("F_dO", 2, function(_gC, _gD){return (F_hM)._b(_gC, _gD);});
+
+var F_dP=new HSFun("F_dP", 2, function(_gG, _gH){return (F_hF)._b(_gG, _gH);});
+
+var F_dQ=new HSFun("F_dQ", 2, function(_gE, _gF){return (F_hS)._b(_gE, _gF);});
+
+var F_dR=new HSFun("F_dR", 1, function(_gA){
+var c60=exprEval((F_hL)._b(_gA, 0));
+switch((c60)._t) {
+case true : return (F_hO)._b(_gA);
+case false : return _gA;
+}
+throw('X (' + this._n + ') ' +c60.toSource());
+});
+
+var F_dS=new HSFun("F_dS", 1, function(_gy){return _gy;});
+
+var F_dT=new HSFun("F_dT", 1, function(_gB){return (F_hO)._b(_gB);});
+
+var F_dU=new HSFun("F_dU", 1, function(_gz){
+var c61=exprEval((F_eh)._b(_gz, 0));
+switch((c61)._t) {
+case 17 : return -1;
+case 13 : return 0;
+case 15 : return 1;
+}
+throw('X (' + this._n + ') ' +c61.toSource());
+});
+
+var F_dV=new HSFun("F_dV", 0, function(){return new HSData((-10), [F_c8, F_dW, F_dX, F_dZ, F_dY, F_d0, F_d2, F_d1]);});
+
+var F_dW=new HSFun("F_dW", 2, function(_f1, _f2){return (F_eV)._b(F_dV, _f1, _f2);});
+
+var F_dX=new HSFun("F_dX", 2, function(_fR, _fS){return (Number(exprEval(_fR)))<=(Number(exprEval(_fS)));});
+
+var F_dY=new HSFun("F_dY", 2, function(_fX, _fY){return (F_eW)._b(F_dV, _fX, _fY);});
+
+var F_dZ=new HSFun("F_dZ", 2, function(_fZ, _f0){return (F_eX)._b(F_dV, _fZ, _f0);});
+
+var F_d0=new HSFun("F_d0", 2, function(_fP, _fQ){return (F_d9)._b(_fP, _fQ);});
+
+var F_d1=new HSFun("F_d1", 2, function(_fV, _fW){return (F_e4)._b(F_dV, _fV, _fW);});
+
+var F_d2=new HSFun("F_d2", 2, function(_fT, _fU){return (F_e5)._b(F_dV, _fT, _fU);});
+
+var F_d3=new HSFun("F_d3", 1, function(_jm){return (exprEval(_jm))._f[0];});
+
+var F_d4=new HSFun("F_d4", 0, function(){return new HSData((-10), [F_db, F_d5, F_d6, F_d8, F_d7, F_d9, F_eb, F_ea]);});
+
+var F_d5=new HSFun("F_d5", 2, function(_h6, _h7){return (Number(exprEval(_h6)))<(Number(exprEval(_h7)));});
+
+var F_d6=new HSFun("F_d6", 2, function(_h4, _h5){return (Number(exprEval(_h4)))<=(Number(exprEval(_h5)));});
+
+var F_d7=new HSFun("F_d7", 2, function(_h0, _h1){return (Number(exprEval(_h0)))>(Number(exprEval(_h1)));});
+
+var F_d8=new HSFun("F_d8", 2, function(_h2, _h3){return (Number(exprEval(_h2)))>=(Number(exprEval(_h3)));});
+
+var F_d9=new HSFun("F_d9", 2, function(_id, _ie){return (F_eY)._b(F_d4, _id, _ie);});
+
+var F_ea=new HSFun("F_ea", 2, function(_ib, _ic){return (F_e4)._b(F_d4, _ib, _ic);});
+
+var F_eb=new HSFun("F_eb", 2, function(_h8, _h9){return (F_e5)._b(F_d4, _h8, _h9);});
+
+var F_ec=new HSFun("F_ec", 0, function(){return new HSData((-10), [F_de, F_ed, F_ee, F_eg, F_ef, F_eh, F_ej, F_ei]);});
+
+var F_ed=new HSFun("F_ed", 2, function(_gO, _gP){return (F_hL)._b(_gO, _gP);});
+
+var F_ee=new HSFun("F_ee", 2, function(_gM, _gN){return (F_hK)._b(_gM, _gN);});
+
+var F_ef=new HSFun("F_ef", 2, function(_gI, _gJ){return (F_hJ)._b(_gI, _gJ);});
+
+var F_eg=new HSFun("F_eg", 2, function(_gK, _gL){return (F_hI)._b(_gK, _gL);});
+
+var F_eh=new HSFun("F_eh", 2, function(_gU, _gV){return (F_eY)._b(F_ec, _gU, _gV);});
+
+var F_ei=new HSFun("F_ei", 2, function(_gS, _gT){return (F_e4)._b(F_ec, _gS, _gT);});
+
+var F_ej=new HSFun("F_ej", 2, function(_gQ, _gR){return (F_e5)._b(F_ec, _gQ, _gR);});
+
+var F_ek=new HSFun("F_ek", 1, function(_cL){
+var c62=exprEval(_cL);
+switch((c62)._t) {
+case 3 : return function(_cM, _cN){
+var c63=exprEval(_cM);
+switch((c63).valueOf()) {
+case 34 : return new HSCons(new HSData((-7), [F_fl, _cN]), new HSEOL());
+default : return (F_gg)._b(F_fn, (F_el)._ap([_cL]), new HSEOL());
+}
+throw('X (' + this._n + ') ' +c63.toSource());
+}((c62)._f[0], (c62)._f[1]);
+default : return (F_gg)._b(F_fn, (F_el)._ap([_cL]), new HSEOL());
+}
+throw('X (' + this._n + ') ' +c62.toSource());
+});
+
+var F_el=new HSFun("F_el", 1, function(_cE){
+var c64=exprEval(_cE);
+switch((c64)._t) {
+case 3 : return function(_cF, _cG){
+var c65=exprEval(_cF);
+switch((c65).valueOf()) {
+case 92 : var c66=exprEval(_cG);
+switch((c66)._t) {
+case 3 : return function(_cH, _cI){
+var c67=exprEval(_cH);
+switch((c67).valueOf()) {
+case 38 : return new HSCons(new HSData((-7), [F_fi, _cI]), new HSEOL());
+default : var c68=exprEval((F_Z)._b(_cH));
+switch((c68)._t) {
+case true : return (F_gg)._b(F_fk, new HSCons((F_gl)._b(F_Z, _cI), new HSEOL()), new HSEOL());
+case false : return (F_1)._b(_cE);
+}
+throw('X (' + this._n + ') ' +c68.toSource());
+}
+throw('X (' + this._n + ') ' +c67.toSource());
+}((c66)._f[0], (c66)._f[1]);
+default : return (F_1)._b(_cE);
+}
+throw('X (' + this._n + ') ' +c66.toSource());
+default : return (F_1)._b(_cE);
+}
+throw('X (' + this._n + ') ' +c65.toSource());
+}((c64)._f[0], (c64)._f[1]);
+default : return (F_1)._b(_cE);
+}
+throw('X (' + this._n + ') ' +c64.toSource());
+});
+
+var F_em=new HSFun("F_em", 1, function(_dk){return ((F_gm)._b(F_c8, _dk))._ap([F_fD]);});
+
+var F_en=new HSFun("F_en", 1, function(_dj){return ((F_gm)._b(F_c8, _dj))._ap([F_fC]);});
+
+var F_eo=new HSFun("F_eo", 1, function(_di){return (F_g1)._b((F_W)._b(_di), (Number(exprEval(_di)))===(Number(exprEval(mkChar(95)))));});
+
+var F_ep=new HSFun("F_ep", 1, function(_dh){return (F_g1)._b((F_X)._b(_dh), ((F_gm)._b(F_c8, _dh))._ap([F_fB]));});
+
+var F_eq=new HSFun("F_eq", 1, function(_c8){
+var c69=exprEval(_c8);
+switch((c69)._t) {
+case 3 : return function(_c9, _da){
+var c70=exprEval(_c9);
+switch((c70).valueOf()) {
+case 46 : var c71=exprEval(_da);
+switch((c71)._t) {
+case 3 : return function(_db, _dc){
+var c72=exprEval((F_bg)._b(_db));
+switch((c72)._t) {
+case true : return (F_gg)._b(F_fA, (F_cx)._ap([new HSCons(_db, _dc)]), new HSEOL());
+case false : return (F_er)._ap([_c8]);
+}
+throw('X (' + this._n + ') ' +c72.toSource());
+}((c71)._f[0], (c71)._f[1]);
+default : return (F_er)._ap([_c8]);
+}
+throw('X (' + this._n + ') ' +c71.toSource());
+default : return (F_er)._ap([_c8]);
+}
+throw('X (' + this._n + ') ' +c70.toSource());
+}((c69)._f[0], (c69)._f[1]);
+default : return (F_er)._ap([_c8]);
+}
+throw('X (' + this._n + ') ' +c69.toSource());
+});
+
+var F_er=new HSFun("F_er", 1, function(_cY){
+var c73=exprEval(_cY);
+switch((c73)._t) {
+case 3 : return function(_cZ, _c0){
+var c74=exprEval(((F_gm)._b(F_c8, _cZ))._ap([F_ft]));
+switch((c74)._t) {
+case true : return (F_cG)._b((F_gg)._b(new HSFun("F_fw", 0, function(){return (F_fw)._ap([_cZ]);}), new HSCons(_c0, new HSEOL()), new HSEOL()), new HSFun("F_gg", 0, function(){return (F_gg)._b(new HSFun("F_fx", 0, function(){return (F_fx)._ap([_cZ]);}), (F_cx)._ap([_c0]), new HSEOL());}));
+case false : return new HSCons(new HSData((-7), [F_fy, _cY]), new HSEOL());
+}
+throw('X (' + this._n + ') ' +c74.toSource());
+}((c73)._f[0], (c73)._f[1]);
+default : return new HSCons(new HSData((-7), [F_fy, _cY]), new HSEOL());
+}
+throw('X (' + this._n + ') ' +c73.toSource());
+});
+
+var F_es=new HSFun("F_es", 2, function(_du, _dv){return (F_cG)._b((_du)._ap([_dv]), ((F_et)._ap([_du]))._ap([_dv]));});
+
+var F_et=new HSFun("F_et", 2, function(_du, _dw){return (F_gg)._b(new HSFun("F_fL", 0, function(){return (F_fL)._ap([_du]);}), (F_gz)._b(_dw), new HSEOL());});
+
+var F_eu=new HSFun("F_eu", 3, function(_eD, _eE, _eF){
+var c75=exprEval(((exprEval((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eF, ((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[7])._ap([0])]));
+switch((c75)._t) {
+case true : return _eE;
+case false : return (F_eu)._ap([_eD, _eF, ((exprEval(_eD))._f[5])._ap([_eE, _eF])]);
+}
+throw('X (' + this._n + ') ' +c75.toSource());
+});
+
+var F_ev=new HSFun("F_ev", 2, function(_dY, _dZ){return (F_cG)._b((F_gg)._b(F_fQ, (F_gz)._b(_dZ), new HSEOL()), new HSFun("F_gg", 0, function(){return (F_gg)._b(new HSFun("F_fS", 0, function(){return (F_fS)._ap([_dY]);}), ((exprEval(_dY))._f[0])._ap([0, _dZ]), new HSEOL());}));});
+
+var F_ew=new HSFun("F_ew", 2, function(_dK, _dL){return (F_cG)._b((F_gg)._b(F_fM, (F_gz)._b(_dL), new HSEOL()), new HSFun("F_gg", 0, function(){return (F_gg)._b(new HSFun("F_fP", 0, function(){return (F_fP)._ap([_dK]);}), (F_gz)._b(_dL), new HSEOL());}));});
+
+var F_ex=new HSFun("F_ex", 2, function(_ek, _el){
+var c76=exprEval(_el);
+switch((c76)._t) {
+case 2 : return (F_fW)._ap([mkChar(93)]);
+case 3 : return function(_em, _en){return (F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_ek, _en]), ((exprEval(_ek))._f[0])._ap([0, _em])]), (F_gT)._ap([F_fY])]);}((c76)._f[0], (c76)._f[1]);
+}
+throw('X (' + this._n + ') ' +c76.toSource());
+});
+
+var F_ey=new HSFun("F_ey", 2, function(_iD, _iE){
+var c77=exprEval(_iE);
+switch((c77)._t) {
+case 2 : return _iD;
+case 3 : return function(_iF, _iG){
+var _u=new HSFun("_u", 0, function(){return (exprEval(_iD))+(1);});
+return (F_gP)._b(_u, (F_ey)._ap([_u, _iG]));
+}((c77)._f[0], (c77)._f[1]);
+}
+throw('X (' + this._n + ') ' +c77.toSource());
+});
+
+var F_ez=new HSFun("F_ez", 3, function(_hg, _hh, _hi){return (F_gB)._b(new HSFun("F_f8", 0, function(){return (F_f8)._ap([_hg]);}), ((F_eD)._b(_hh))._ap([_hi]));});
+
+var F_eA=new HSFun("F_eA", 0, function(){return new HSData((-7), [F_eC, F_eB]);});
+
+var F_eB=new HSFun("F_eB", 0, function(){return (F_e7)._b(F_eA);});
+
+var F_eC=new HSFun("F_eC", 1, function(_hf){return (F_f9)._ap([_hf]);});
+
+var F_eD=new HSFun("F_eD", 1, function(v25828){return (F_cy)._b(F_eG, new HSFun("F_bl", 0, function(){return (F_bl)._b(F_dv);}));});
+
+var F_eE=new HSFun("F_eE", 0, function(){return new HSData((-8), [F_dF, F_d4, F_eF]);});
+
+var F_eF=new HSFun("F_eF", 1, function(_hE){return (F_6)._b(F_dv, (F_hH)._b(_hE), 1);});
+
+var F_eG=new HSFun("F_eG", 0, function(){return new HSData((-8), [F_dN, F_ec, F_eH]);});
+
+var F_eH=new HSFun("F_eH", 1, function(_gx){return (F_6)._b(F_dv, _gx, 1);});
+
+var F_eI=new HSFun("F_eI", 1, function(_jM){return (exprEval(_jM))._f[0];});
+
+var F_eJ=new HSFun("F_eJ", 1, function(_jN){return (exprEval(_jN))._f[1];});
+
+var F_eK=new HSFun("F_eK", 0, function(){return new HSData((-9), [F_eN, F_eO, F_eM, F_eL]);});
+
+var F_eL=new HSFun("F_eL", 1, function(_hn){return (F_e8)._b(F_eK, _hn);});
+
+var F_eM=new HSFun("F_eM", 1, function(_hm){return (F_e9)._b(F_eK, _hm);});
+
+var F_eN=new HSFun("F_eN", 2, function(_kn, _ko){
+var c78=exprEval((Number(exprEval(_ko)))<(0));
+switch((c78)._t) {
+case true : return (F_gS)._b((Number(exprEval(_kn)))>(6), (F_fc)._ap([(F_hh)._ap([new HSFun("F_dL", 0, function(){return (F_dL)._b(_ko);})]), (F_fW)._ap([mkChar(45)])]));
+case false : return (F_hh)._ap([_ko]);
+}
+throw('X (' + this._n + ') ' +c78.toSource());
+});
+
+var F_eO=new HSFun("F_eO", 1, function(v26141){return (F_gT)._ap([F_ga]);});
+
+var F_eP=new HSFun("F_eP", 0, function(){return new HSData((-9), [F_eS, F_eT, F_eR, F_eQ]);});
+
+var F_eQ=new HSFun("F_eQ", 1, function(_gc){return (F_e8)._b(F_eP, _gc);});
+
+var F_eR=new HSFun("F_eR", 1, function(_gb){return (F_e9)._b(F_eP, _gb);});
+
+var F_eS=new HSFun("F_eS", 2, function(_f9, _ga){return (F_cB)._b(F_eG, new HSFun("F_cz", 0, function(){return (F_cz)._b(F_dv);}), _f9, _ga);});
+
+var F_eT=new HSFun("F_eT", 1, function(v25823){return (F_gT)._ap([F_f5]);});
+
+var F_eU=new HSFun("F_eU", 3, function(_fl, _fm, _fn){return (F_gD)._b(((exprEval(_fl))._f[1])._ap([_fm, _fn]));});
+
+var F_eV=new HSFun("F_eV", 3, function(_fg, _fh, _fi){return (F_dj)._b(((exprEval(_fg))._f[5])._ap([_fh, _fi]), new HSData(17, []));});
+
+var F_eW=new HSFun("F_eW", 3, function(_fa, _fb, _fc){return (F_dj)._b(((exprEval(_fa))._f[5])._ap([_fb, _fc]), new HSData(15, []));});
+
+var F_eX=new HSFun("F_eX", 3, function(_fd, _fe, _ff){return (F_di)._b(((exprEval(_fd))._f[5])._ap([_fe, _ff]), new HSData(17, []));});
+
+var F_eY=new HSFun("F_eY", 3, function(_fL, _fM, _fN){
+var c79=exprEval(((exprEval((exprEval(_fL))._f[0]))._f[1])._ap([_fM, _fN]));
+switch((c79)._t) {
+case true : return new HSData(13, []);
+case false : var c80=exprEval(((exprEval(_fL))._f[2])._ap([_fM, _fN]));
+switch((c80)._t) {
+case true : return new HSData(17, []);
+case false : return new HSData(15, []);
+}
+throw('X (' + this._n + ') ' +c80.toSource());
+}
+throw('X (' + this._n + ') ' +c79.toSource());
+});
+
+var F_eZ=new HSFun("F_eZ", 3, function(_hz, _hA, _hB){return (exprEval(((exprEval(_hz))._f[2])._ap([_hA, _hB])))._f[0];});
+
+var F_e0=new HSFun("F_e0", 3, function(_go, _gp, _gq){
+var _Q=new HSFun("_Q", 0, function(){return _go;});
+var _r=new HSFun("_r", 0, function(){return ((exprEval(_Q))._f[4])._ap([_gp, _gq]);});
+var _i=new HSFun("_i", 0, function(){return _r;});
+var _s=new HSFun("_s", 0, function(){return (exprEval(_i))._f[0];});
+var _t=new HSFun("_t", 0, function(){return (exprEval(_i))._f[1];});
+var c81=exprEval(((exprEval((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[0]))._f[1])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_t]), ((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[5])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_gq])])]));
+switch((c81)._t) {
+case true : return new HSData((-7), [((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[4])._ap([_s, ((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[7])._ap([1])]), ((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[3])._ap([_t, _gq])]);
+case false : return _r;
+}
+throw('X (' + this._n + ') ' +c81.toSource());
+});
+
+var F_e1=new HSFun("F_e1", 4, function(_fz, _fA, _fB, _fC){
+var _L=new HSFun("_L", 0, function(){return _fz;});
+var _o=new HSFun("_o", 0, function(){return ((exprEval(_L))._f[3])._ap([_fB]);});
+var _M=new HSFun("_M", 0, function(){return _fz;});
+var _n=new HSFun("_n", 0, function(){return ((exprEval(_M))._f[3])._ap([_fA]);});
+var _q=new HSFun("_q", 0, function(){return (exprEval(_o))-(exprEval(_n));});
+var _N=new HSFun("_N", 0, function(){return _fz;});
+var _p=new HSFun("_p", 0, function(){return ((exprEval(_N))._f[3])._ap([_fC]);});
+var c82=exprEval((Number(exprEval(_q)))>=(0));
+switch((c82)._t) {
+case true : return (F_ge)._b(_fz, _n, _q, _p);
+case false : return (F_gd)._b(_fz, _n, _q, _p);
+}
+throw('X (' + this._n + ') ' +c82.toSource());
+});
+
+var F_e2=new HSFun("F_e2", 3, function(_fD, _fE, _fF){
+var _O=new HSFun("_O", 0, function(){return _fD;});
+var _m=new HSFun("_m", 0, function(){return ((exprEval(_O))._f[3])._ap([_fF]);});
+var _P=new HSFun("_P", 0, function(){return _fD;});
+var _l=new HSFun("_l", 0, function(){return ((exprEval(_P))._f[3])._ap([_fE]);});
+var c83=exprEval((F_d9)._b(_l, _m));
+switch((c83)._t) {
+case 17 : return (F_ge)._b(_fD, _l, 1, _m);
+case 13 : return new HSCons(_fE, new HSEOL());
+case 15 : return new HSEOL();
+}
+throw('X (' + this._n + ') ' +c83.toSource());
+});
+
+var F_e3=new HSFun("F_e3", 2, function(v25368, _e1){return (F_gn)._b(_e1);});
+
+var F_e4=new HSFun("F_e4", 3, function(_e7, _e8, _e9){
+var c84=exprEval(((exprEval(_e7))._f[3])._ap([_e8, _e9]));
+switch((c84)._t) {
+case true : return _e8;
+case false : return _e9;
+}
+throw('X (' + this._n + ') ' +c84.toSource());
+});
+
+var F_e5=new HSFun("F_e5", 3, function(_e4, _e5, _e6){
+var c85=exprEval(((exprEval(_e4))._f[2])._ap([_e5, _e6]));
+switch((c85)._t) {
+case true : return _e5;
+case false : return _e6;
+}
+throw('X (' + this._n + ') ' +c85.toSource());
+});
+
+var F_e6=new HSFun("F_e6", 2, function(_fG, _fH){return ((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs", 0, function(){return (exprEval(_fG))._f[3];}), ((F_gY)._b(F_dF))._ap([1])]), (exprEval(_fG))._f[4]]))._ap([_fH]);});
+
+var F_e7=new HSFun("F_e7", 1, function(_dJ){return (F_gJ)._b(false, new HSFun("F_fV", 0, function(){return (F_fV)._ap([_dJ]);}));});
+
+var F_e8=new HSFun("F_e8", 2, function(_eo, _ep){return ((exprEval(_eo))._f[0])._ap([0, _ep, F_fZ]);});
+
+var F_e9=new HSFun("F_e9", 2, function(_eg, _eh){
+var c86=exprEval(_eh);
+switch((c86)._t) {
+case 2 : return (F_gT)._ap([F_fX]);
+case 3 : return function(_ei, _ej){return (F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_eg, _ej]), ((exprEval(_eg))._f[0])._ap([0, _ei])]), (F_fW)._ap([mkChar(91)])]);}((c86)._f[0], (c86)._f[1]);
+}
+throw('X (' + this._n + ') ' +c86.toSource());
+});
+
+var F_fa=new HSFun("F_fa", 2, function(_fI, _fJ){return ((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs", 0, function(){return (exprEval(_fI))._f[3];}), new HSFun("F_go", 0, function(){return (F_go)._ap([F_dH, 1]);})]), (exprEval(_fI))._f[4]]))._ap([_fJ]);});
+
+var F_fb="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 592:1-594:31.";
+
+var F_fc=new HSFun("F_fc", 3, function(_ca, _b9, _bV){return (_b9)._ap([(_ca)._ap([_bV])]);});
+
+var F_fd=new HSFun("F_fd", 1, function(_j){return (exprEval(_j))._f[0];});
+
+var F_fe=new HSFun("F_fe", 1, function(_j){return (exprEval(_j))._f[1];});
+
+var F_ff="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 736:1-738:32.";
+
+var F_fg="";
+
+var F_fh="";
+
+var F_fi="\\&";
+
+var F_fj="\\&";
+
+var F_fk=new HSFun("F_fk", 2, function(_bb, _bc){
+var c87=exprEval(_bb);
+switch((c87)._t) {
+case 3 : return function(_cJ, _cK){
+var c88=exprEval(_cJ);
+switch((c88).valueOf()) {
+case 92 : return new HSCons(new HSData((-7), [F_fj, _cK]), _bc);
+default : return _bc;
+}
+throw('X (' + this._n + ') ' +c88.toSource());
+}((c87)._f[0], (c87)._f[1]);
+default : return _bc;
+}
+throw('X (' + this._n + ') ' +c87.toSource());
+});
+
+var F_fl="\"";
+
+var F_fm=new HSFun("F_fm", 3, function(_cO, _9, _ba){
+var c89=exprEval(_9);
+return function(_cQ, _cR){return new HSCons(new HSData((-7), [new HSFun("F_cG", 0, function(){return (F_cG)._b(_cO, _cQ);}), _cR]), _ba);}((c89)._f[0], (c89)._f[1]);
+});
+
+var F_fn=new HSFun("F_fn", 2, function(_7, _8){
+var c90=exprEval(_7);
+return function(_cO, _cP){return (F_gg)._b(new HSFun("F_fm", 0, function(){return (F_fm)._ap([_cO]);}), (F_ek)._ap([_cP]), _8);}((c90)._f[0], (c90)._f[1]);
+});
+
+var F_fo=new HSFun("F_fo", 2, function(_bd, _be){
+var c91=exprEval(_bd);
+return function(_cS, _cT){return new HSCons(new HSData((-7), [new HSCons(mkChar(34), _cS), _cT]), _be);}((c91)._f[0], (c91)._f[1]);
+});
+
+var F_fp="\'";
+
+var F_fq="\'";
+
+var F_fr=new HSFun("F_fr", 3, function(_cU, _cX, _j8){return new HSCons(new HSData((-7), [new HSCons(mkChar(39), (F_cG)._b(_cU, F_fq)), _cX]), _j8);});
+
+var F_fs=new HSFun("F_fs", 2, function(_5, _6){
+var c92=exprEval(_5);
+return function(_cU, _cV){
+var c93=exprEval(_cV);
+switch((c93)._t) {
+case 3 : return function(_cW, _cX){
+var c94=exprEval(_cW);
+switch((c94).valueOf()) {
+case 39 : return (F_gf)._b((F_dl)._b(F_c8, _cU, F_fp), new HSFun("F_fr", 0, function(){return (F_fr)._ap([_cU, _cX]);}), _6);
+default : return _6;
+}
+throw('X (' + this._n + ') ' +c94.toSource());
+}((c93)._f[0], (c93)._f[1]);
+default : return _6;
+}
+throw('X (' + this._n + ') ' +c93.toSource());
+}((c92)._f[0], (c92)._f[1]);
+});
+
+var F_ft="eE";
+
+var F_fu="+-";
+
+var F_fv=new HSFun("F_fv", 4, function(_cZ, _c1, _bl, _bm){
+var c95=exprEval(_bl);
+return function(_c3, _c4){return new HSCons(new HSData((-7), [new HSCons(_cZ, new HSCons(_c1, _c3)), _c4]), _bm);}((c95)._f[0], (c95)._f[1]);
+});
+
+var F_fw=new HSFun("F_fw", 3, function(_cZ, _bj, _bk){
+var c96=exprEval(_bj);
+switch((c96)._t) {
+case 3 : return function(_c1, _c2){return (F_gf)._b(((F_gm)._b(F_c8, _c1))._ap([F_fu]), new HSFun("F_gg", 0, function(){return (F_gg)._ap([new HSFun("F_fv", 0, function(){return (F_fv)._ap([_cZ, _c1]);}), (F_cx)._ap([_c2])]);}), _bk);}((c96)._f[0], (c96)._f[1]);
+default : return _bk;
+}
+throw('X (' + this._n + ') ' +c96.toSource());
+});
+
+var F_fx=new HSFun("F_fx", 3, function(_cZ, _bn, _bo){
+var c97=exprEval(_bn);
+return function(_c5, _c6){return new HSCons(new HSData((-7), [new HSCons(_cZ, _c5), _c6]), _bo);}((c97)._f[0], (c97)._f[1]);
+});
+
+var F_fy="";
+
+var F_fz=new HSFun("F_fz", 3, function(_dd, _bh, _bi){
+var c98=exprEval(_bh);
+return function(_df, _dg){return new HSCons(new HSData((-7), [new HSCons(mkChar(46), (F_cG)._b(_dd, _df)), _dg]), _bi);}((c98)._f[0], (c98)._f[1]);
+});
+
+var F_fA=new HSFun("F_fA", 2, function(_bf, _bg){
+var c99=exprEval(_bf);
+return function(_dd, _de){return (F_gg)._b(new HSFun("F_fz", 0, function(){return (F_fz)._ap([_dd]);}), (F_er)._ap([_de]), _bg);}((c99)._f[0], (c99)._f[1]);
+});
+
+var F_fB="_\'";
+
+var F_fC="!@#$%&*+./<=>\u003f\\^|:-~";
+
+var F_fD=",;()[]{}`";
+
+var F_fE=new HSFun("F_fE", 3, function(_cC, _bp, _bq){
+var c100=exprEval(_bp);
+return function(_dl, _dm){return new HSCons(new HSData((-7), [new HSCons(_cC, _dl), _dm]), _bq);}((c100)._f[0], (c100)._f[1]);
+});
+
+var F_fF=new HSFun("F_fF", 3, function(_cC, _br, _bs){
+var c101=exprEval(_br);
+return function(_dn, _do){return new HSCons(new HSData((-7), [new HSCons(_cC, _dn), _do]), _bs);}((c101)._f[0], (c101)._f[1]);
+});
+
+var F_fG=new HSFun("F_fG", 4, function(_cC, _dp, _bv, _bw){
+var c102=exprEval(_bv);
+return function(_dr, _ds){return new HSCons(new HSData((-7), [new HSCons(_cC, (F_cG)._b(_dp, _dr)), _ds]), _bw);}((c102)._f[0], (c102)._f[1]);
+});
+
+var F_fH=new HSFun("F_fH", 3, function(_cC, _bt, _bu){
+var c103=exprEval(_bt);
+return function(_dp, _dq){return (F_gg)._b(new HSFun("F_fG", 0, function(){return (F_fG)._ap([_cC, _dp]);}), (F_eq)._ap([_dq]), _bu);}((c103)._f[0], (c103)._f[1]);
+});
+
+var F_fI="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 1664:1-1701:35.";
+
+var F_fJ=new HSFun("F_fJ", 3, function(_dB, _bF, _bG){
+var c104=exprEval(_bF);
+return function(_dD, _dE){
+var c105=exprEval(_dD);
+switch((c105)._t) {
+case 3 : return function(_dF, _dG){
+var c106=exprEval(_dF);
+switch((c106).valueOf()) {
+case 41 : var c107=exprEval(_dG);
+switch((c107)._t) {
+case 2 : return new HSCons(new HSData((-7), [_dB, _dE]), _bG);
+default : return _bG;
+}
+throw('X (' + this._n + ') ' +c107.toSource());
+default : return _bG;
+}
+throw('X (' + this._n + ') ' +c106.toSource());
+}((c105)._f[0], (c105)._f[1]);
+default : return _bG;
+}
+throw('X (' + this._n + ') ' +c105.toSource());
+}((c104)._f[0], (c104)._f[1]);
+});
+
+var F_fK=new HSFun("F_fK", 2, function(_bD, _bE){
+var c108=exprEval(_bD);
+return function(_dB, _dC){return (F_gg)._b(new HSFun("F_fJ", 0, function(){return (F_fJ)._ap([_dB]);}), (F_gz)._b(_dC), _bE);}((c108)._f[0], (c108)._f[1]);
+});
+
+var F_fL=new HSFun("F_fL", 3, function(_du, _bB, _bC){
+var c109=exprEval(_bB);
+return function(_dx, _dy){
+var c110=exprEval(_dx);
+switch((c110)._t) {
+case 3 : return function(_dz, _dA){
+var c111=exprEval(_dz);
+switch((c111).valueOf()) {
+case 40 : var c112=exprEval(_dA);
+switch((c112)._t) {
+case 2 : return (F_gg)._b(F_fK, ((F_es)._ap([_du]))._ap([_dy]), _bC);
+default : return _bC;
+}
+throw('X (' + this._n + ') ' +c112.toSource());
+default : return _bC;
+}
+throw('X (' + this._n + ') ' +c111.toSource());
+}((c110)._f[0], (c110)._f[1]);
+default : return _bC;
+}
+throw('X (' + this._n + ') ' +c110.toSource());
+}((c109)._f[0], (c109)._f[1]);
+});
+
+var F_fM=new HSFun("F_fM", 2, function(_lm, _ln){
+var c113=exprEval(_lm);
+return function(_dM, _dN){
+var c114=exprEval(_dM);
+switch((c114)._t) {
+case 3 : return function(_dO, _dP){
+var c115=exprEval(_dO);
+switch((c115).valueOf()) {
+case 93 : var c116=exprEval(_dP);
+switch((c116)._t) {
+case 2 : return new HSCons(new HSData((-7), [new HSEOL(), _dN]), _ln);
+default : return _ln;
+}
+throw('X (' + this._n + ') ' +c116.toSource());
+default : return _ln;
+}
+throw('X (' + this._n + ') ' +c115.toSource());
+}((c114)._f[0], (c114)._f[1]);
+default : return _ln;
+}
+throw('X (' + this._n + ') ' +c114.toSource());
+}((c113)._f[0], (c113)._f[1]);
+});
+
+var F_fN=new HSFun("F_fN", 3, function(_dU, _ls, _lt){
+var c117=exprEval(_ls);
+return function(_dW, _dX){return new HSCons(new HSData((-7), [new HSCons(_dU, _dW), _dX]), _lt);}((c117)._f[0], (c117)._f[1]);
+});
+
+var F_fO=new HSFun("F_fO", 3, function(_dK, _lq, _lr){
+var c118=exprEval(_lq);
+return function(_dU, _dV){return (F_gg)._b(new HSFun("F_fN", 0, function(){return (F_fN)._ap([_dU]);}), (F_ew)._ap([_dK, _dV]), _lr);}((c118)._f[0], (c118)._f[1]);
+});
+
+var F_fP=new HSFun("F_fP", 3, function(_dK, _lo, _lp){
+var c119=exprEval(_lo);
+return function(_dQ, _dR){
+var c120=exprEval(_dQ);
+switch((c120)._t) {
+case 3 : return function(_dS, _dT){
+var c121=exprEval(_dS);
+switch((c121).valueOf()) {
+case 44 : var c122=exprEval(_dT);
+switch((c122)._t) {
+case 2 : return (F_gg)._b(new HSFun("F_fO", 0, function(){return (F_fO)._ap([_dK]);}), ((exprEval(_dK))._f[0])._ap([0, _dR]), _lp);
+default : return _lp;
+}
+throw('X (' + this._n + ') ' +c122.toSource());
+default : return _lp;
+}
+throw('X (' + this._n + ') ' +c121.toSource());
+}((c120)._f[0], (c120)._f[1]);
+default : return _lp;
+}
+throw('X (' + this._n + ') ' +c120.toSource());
+}((c119)._f[0], (c119)._f[1]);
+});
+
+var F_fQ=new HSFun("F_fQ", 2, function(_lg, _lh){
+var c123=exprEval(_lg);
+return function(_d0, _d1){
+var c124=exprEval(_d0);
+switch((c124)._t) {
+case 3 : return function(_d2, _d3){
+var c125=exprEval(_d2);
+switch((c125).valueOf()) {
+case 93 : var c126=exprEval(_d3);
+switch((c126)._t) {
+case 2 : return new HSCons(new HSData((-7), [new HSEOL(), _d1]), _lh);
+default : return _lh;
+}
+throw('X (' + this._n + ') ' +c126.toSource());
+default : return _lh;
+}
+throw('X (' + this._n + ') ' +c125.toSource());
+}((c124)._f[0], (c124)._f[1]);
+default : return _lh;
+}
+throw('X (' + this._n + ') ' +c124.toSource());
+}((c123)._f[0], (c123)._f[1]);
+});
+
+var F_fR=new HSFun("F_fR", 3, function(_d4, _lk, _ll){
+var c127=exprEval(_lk);
+return function(_d6, _d7){return new HSCons(new HSData((-7), [new HSCons(_d4, _d6), _d7]), _ll);}((c127)._f[0], (c127)._f[1]);
+});
+
+var F_fS=new HSFun("F_fS", 3, function(_dY, _li, _lj){
+var c128=exprEval(_li);
+return function(_d4, _d5){return (F_gg)._b(new HSFun("F_fR", 0, function(){return (F_fR)._ap([_d4]);}), (F_ew)._ap([_dY, _d5]), _lj);}((c128)._f[0], (c128)._f[1]);
+});
+
+var F_fT=new HSFun("F_fT", 2, function(_lx, _ly){return new HSCons(_lx, _ly);});
+
+var F_fU=new HSFun("F_fU", 3, function(_dJ, _lv, _lw){
+var c129=exprEval(_lv);
+return function(_d8, _d9){
+var c130=exprEval(_d8);
+switch((c130)._t) {
+case 3 : return function(_ea, _eb){
+var c131=exprEval(_ea);
+switch((c131).valueOf()) {
+case 91 : var c132=exprEval(_eb);
+switch((c132)._t) {
+case 2 : return (F_gg)._b(F_fT, (F_ev)._ap([_dJ, _d9]), _lw);
+default : return _lw;
+}
+throw('X (' + this._n + ') ' +c132.toSource());
+default : return _lw;
+}
+throw('X (' + this._n + ') ' +c131.toSource());
+}((c130)._f[0], (c130)._f[1]);
+default : return _lw;
+}
+throw('X (' + this._n + ') ' +c130.toSource());
+}((c129)._f[0], (c129)._f[1]);
+});
+
+var F_fV=new HSFun("F_fV", 2, function(_dJ, _lu){return (F_gg)._b(new HSFun("F_fU", 0, function(){return (F_fU)._ap([_dJ]);}), (F_gz)._b(_lu), new HSEOL());});
+
+var F_fW=new HSFun("F_fW", 2, function(_ka, _j9){return new HSCons(_ka, _j9);});
+
+var F_fX="[]";
+
+var F_fY=",";
+
+var F_fZ="";
+
+var F_f0="Prelude.gcd: gcd 0 0 is undefined.";
+
+var F_f1=new HSFun("F_f1", 3, function(_eO, _bz, _bA){
+var c133=exprEval(_bz);
+return function(_eQ, _eR){
+var c134=exprEval(_eQ);
+switch((c134)._t) {
+case 2 : var c135=exprEval(_eR);
+switch((c135)._t) {
+case 2 : return new HSCons(_eO, _bA);
+default : return _bA;
+}
+throw('X (' + this._n + ') ' +c135.toSource());
+default : return _bA;
+}
+throw('X (' + this._n + ') ' +c134.toSource());
+}((c133)._f[0], (c133)._f[1]);
+});
+
+var F_f2=new HSFun("F_f2", 2, function(_bx, _by){
+var c136=exprEval(_bx);
+return function(_eO, _eP){return (F_gg)._b(new HSFun("F_f1", 0, function(){return (F_f1)._ap([_eO]);}), (F_gz)._b(_eP), _by);}((c136)._f[0], (c136)._f[1]);
+});
+
+var F_f3="Prelude.read: no parse";
+
+var F_f4="Prelude.read: ambiguous parse";
+
+var F_f5="Integer";
+
+var F_f6=new HSFun("F_f6", 1, function(_i){return (exprEval(_i))._f[0];});
+
+var F_f7=new HSFun("F_f7", 1, function(_i){return (exprEval(_i))._f[1];});
+
+var F_f8=new HSFun("F_f8", 2, function(_hg, _hj){
+var c137=exprEval(_hj);
+return function(_hk, _hl){return new HSData((-7), [((exprEval(_hg))._f[7])._ap([_hk]), _hl]);}((c137)._f[0], (c137)._f[1]);
+});
+
+var F_f9=new HSFun("F_f9", 2, function(_hf, _ki){return (F_ez)._ap([F_dF, _hf, _ki]);});
+
+var F_ga="Int";
+
+var F_gb=new HSFun("F_gb", 2, function(_kc, _kb){return new HSCons(_kc, _kb);});
+
+var F_gc="PreludeList.foldl1: empty list";
+
+var F_gd=new HSFun("F_gd", 4, function(_fv, _fw, _fx, _fy){
+var c138=exprEval((F_d9)._b(_fw, _fy));
+switch((c138)._t) {
+case 17 : return new HSEOL();
+case 13 : return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]), new HSEOL());
+case 15 : return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]), (F_gd)._b(_fv, (exprEval(_fw))+(exprEval(_fx)), _fx, _fy));
+}
+throw('X (' + this._n + ') ' +c138.toSource());
+});
+
+var F_ge=new HSFun("F_ge", 4, function(_fr, _fs, _ft, _fu){
+var c139=exprEval((F_d9)._b(_fs, _fu));
+switch((c139)._t) {
+case 17 : return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]), (F_ge)._b(_fr, (exprEval(_fs))+(exprEval(_ft)), _ft, _fu));
+case 13 : return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]), new HSEOL());
+case 15 : return new HSEOL();
+}
+throw('X (' + this._n + ') ' +c139.toSource());
+});
+
+var F_gf=new HSFun("F_gf", 3, function(_b6, _b7, _b8){
+var c140=exprEval(_b6);
+switch((c140)._t) {
+case true : return (_b7)._ap([_b8]);
+case false : return _b8;
+}
+throw('X (' + this._n + ') ' +c140.toSource());
+});
+
+var F_gg=new HSFun("F_gg", 3, function(_bX, _bY, _bZ){
+var c141=exprEval(_bY);
+switch((c141)._t) {
+case 2 : return _bZ;
+case 3 : return function(_b0, _b1){return (_bX)._ap([_b0, new HSFun("F_gg", 0, function(){return (F_gg)._b(_bX, _b1, _bZ);})]);}((c141)._f[0], (c141)._f[1]);
+}
+throw('X (' + this._n + ') ' +c141.toSource());
+});
+
+var F_gh=new HSFun("F_gh", 1, function(_jI){return (exprEval(_jI))._f[8];});
+
+var F_gi=new HSFun("F_gi", 1, function(_cm){return (F_fc)._ap([new HSFun("F_gB", 0, function(){return (F_gB)._ap([_cm]);}), F_gE]);});
+
+var F_gj=new HSFun("F_gj", 1, function(_jr){return (exprEval(_jr))._f[5];});
+
+var F_gk=new HSFun("F_gk", 1, function(_jY){return (exprEval(_jY))._f[2];});
+
+var F_gl=new HSFun("F_gl", 2, function(_b2, _b3){
+var c142=exprEval(_b3);
+switch((c142)._t) {
+case 2 : return new HSEOL();
+case 3 : return function(_b4, _b5){
+var c143=exprEval((_b2)._ap([_b4]));
+switch((c143)._t) {
+case true : return (F_gl)._b(_b2, _b5);
+case false : var c144=exprEval(F_gF);
+switch((c144)._t) {
+case true : return _b3;
+case false : return (F_gn)._b(F_fb);
+}
+throw('X (' + this._n + ') ' +c144.toSource());
+}
+throw('X (' + this._n + ') ' +c143.toSource());
+}((c142)._f[0], (c142)._f[1]);
+}
+throw('X (' + this._n + ') ' +c142.toSource());
+});
+
+var F_gm=new HSFun("F_gm", 2, function(_cn, _co){return (F_gi)._b(((exprEval(_cn))._f[1])._ap([_co]));});
+
+var F_gn=new HSFun("F_gn", 1, function(a){
+throw('E ' + exprEval(a).toString()); return undefined;});
+
+var F_go=new HSFun("F_go", 3, function(_eH, _eI, _eJ){return (_eH)._ap([_eJ, _eI]);});
+
+var F_gp=new HSFun("F_gp", 3, function(_ij, _ik, _il){
+var c145=exprEval(_il);
+switch((c145)._t) {
+case 2 : return _ik;
+case 3 : return function(_im, _in){return (F_gp)._b(_ij, (_ij)._ap([_ik, _im]), _in);}((c145)._f[0], (c145)._f[1]);
+}
+throw('X (' + this._n + ') ' +c145.toSource());
+});
+
+var F_gq=new HSFun("F_gq", 2, function(_ip, _iq){
+var c146=exprEval(_iq);
+switch((c146)._t) {
+case 2 : return (F_gn)._b(F_gc);
+case 3 : return function(_ir, _is){return (F_gp)._b(_ip, _ir, _is);}((c146)._f[0], (c146)._f[1]);
+}
+throw('X (' + this._n + ') ' +c146.toSource());
+});
+
+var F_gr=new HSFun("F_gr", 3, function(_cb, _cc, _cd){
+var c147=exprEval(_cd);
+switch((c147)._t) {
+case 2 : return _cc;
+case 3 : return function(_ce, _cf){return (_cb)._ap([_ce, new HSFun("F_gr", 0, function(){return (F_gr)._b(_cb, _cc, _cf);})]);}((c147)._f[0], (c147)._f[1]);
+}
+throw('X (' + this._n + ') ' +c147.toSource());
+});
+
+var F_gs=new HSFun("F_gs", 1, function(_i0){return (exprEval(_i0))._f[3];});
+
+var F_gt=new HSFun("F_gt", 1, function(_jH){return (exprEval(_jH))._f[7];});
+
+var F_gu=new HSFun("F_gu", 2, function(_eZ, _e0){return (F_fc)._ap([new HSFun("F_g0", 0, function(){return (exprEval(_eZ))._f[6];}), (exprEval(_e0))._f[7]]);});
+
+var F_gv=new HSFun("F_gv", 1, function(_eu){return (exprEval(_eu))._f[0];});
+
+var F_gw=new HSFun("F_gw", 3, function(_eA, _eB, _eC){
+var c148=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eB, ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])]));
+switch((c148)._t) {
+case true : var c149=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eC, ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])]));
+switch((c149)._t) {
+case true : return (F_gn)._b(F_f0);
+case false : return (F_eu)._ap([_eA, ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]), ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])]);
+}
+throw('X (' + this._n + ') ' +c149.toSource());
+case false : return (F_eu)._ap([_eA, ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]), ((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])]);
+}
+throw('X (' + this._n + ') ' +c148.toSource());
+});
+
+var F_gx=new HSFun("F_gx", 1, function(_eG){return _eG;});
+
+var F_gy=new HSFun("F_gy", 1, function(_iA){
+var c150=exprEval(_iA);
+switch((c150)._t) {
+case 2 : return 0;
+case 3 : return function(_iB, _iC){return (F_ey)._ap([1, _iC]);}((c150)._f[0], (c150)._f[1]);
+}
+throw('X (' + this._n + ') ' +c150.toSource());
+});
+
+var F_gz=new HSFun("F_gz", 1, function(_cB){
+var c151=exprEval(_cB);
+switch((c151)._t) {
+case 2 : return new HSCons(new HSData((-7), [F_fg, F_fh]), new HSEOL());
+case 3 : return function(_cC, _cD){
+var c152=exprEval((F_Z)._b(_cC));
+switch((c152)._t) {
+case true : return (F_gz)._b((F_gl)._b(F_Z, _cD));
+case false : var c153=exprEval(_cC);
+switch((c153).valueOf()) {
+case 34 : return (F_gg)._b(F_fo, (F_ek)._ap([_cD]), new HSEOL());
+case 39 : return (F_gg)._b(F_fs, (F_1)._b(_cD), new HSEOL());
+default : var c154=exprEval((F_em)._ap([_cC]));
+switch((c154)._t) {
+case true : return new HSCons(new HSData((-7), [new HSCons(_cC, new HSEOL()), _cD]), new HSEOL());
+case false : var c155=exprEval((F_en)._ap([_cC]));
+switch((c155)._t) {
+case true : return (F_gg)._b(new HSFun("F_fE", 0, function(){return (F_fE)._ap([_cC]);}), new HSCons((F_gX)._b(F_en, _cD), new HSEOL()), new HSEOL());
+case false : var c156=exprEval((F_eo)._ap([_cC]));
+switch((c156)._t) {
+case true : return (F_gg)._b(new HSFun("F_fF", 0, function(){return (F_fF)._ap([_cC]);}), new HSCons((F_gX)._b(F_ep, _cD), new HSEOL()), new HSEOL());
+case false : var c157=exprEval((F_bg)._b(_cC));
+switch((c157)._t) {
+case true : return (F_gg)._b(new HSFun("F_fH", 0, function(){return (F_fH)._ap([_cC]);}), new HSCons((F_gX)._b(F_bg, _cD), new HSEOL()), new HSEOL());
+case false : var c158=exprEval(F_gF);
+switch((c158)._t) {
+case true : return new HSEOL();
+case false : return (F_gn)._b(F_fI);
+}
+throw('X (' + this._n + ') ' +c158.toSource());
+}
+throw('X (' + this._n + ') ' +c157.toSource());
+}
+throw('X (' + this._n + ') ' +c156.toSource());
+}
+throw('X (' + this._n + ') ' +c155.toSource());
+}
+throw('X (' + this._n + ') ' +c154.toSource());
+}
+throw('X (' + this._n + ') ' +c153.toSource());
+}
+throw('X (' + this._n + ') ' +c152.toSource());
+}((c151)._f[0], (c151)._f[1]);
+}
+throw('X (' + this._n + ') ' +c151.toSource());
+});
+
+var F_gA=new HSFun("F_gA", 3, function(_it, _iu, _iv){
+var c159=exprEval(_iv);
+switch((c159)._t) {
+case 2 : return new HSData(18, []);
+case 3 : return function(_iw, _ix){
+var c160=exprEval(_iw);
+return function(_iy, _iz){
+var c161=exprEval(((exprEval(_it))._f[1])._ap([_iu, _iy]));
+switch((c161)._t) {
+case true : return new HSData(16, [_iz]);
+case false : return (F_gA)._b(_it, _iu, _ix);
+}
+throw('X (' + this._n + ') ' +c161.toSource());
+}((c160)._f[0], (c160)._f[1]);
+}((c159)._f[0], (c159)._f[1]);
+}
+throw('X (' + this._n + ') ' +c159.toSource());
+});
+
+var F_gB=new HSFun("F_gB", 2, function(_ci, _cj){
+var c162=exprEval(_cj);
+switch((c162)._t) {
+case 2 : return new HSEOL();
+case 3 : return function(_ck, _cl){return new HSCons((_ci)._ap([_ck]), (F_gB)._b(_ci, _cl));}((c162)._f[0], (c162)._f[1]);
+}
+throw('X (' + this._n + ') ' +c162.toSource());
+});
+
+var F_gC=new HSFun("F_gC", 1, function(_jF){return (exprEval(_jF))._f[5];});
+
+var F_gD=new HSFun("F_gD", 1, function(_eX){
+var c163=exprEval(_eX);
+switch((c163)._t) {
+case true : return false;
+case false : return true;
+}
+throw('X (' + this._n + ') ' +c163.toSource());
+});
+
+var F_gE=new HSFun("F_gE", 0, function(){return (F_gr)._ap([F_g1, false]);});
+
+var F_gF=new HSFun("F_gF", 0, function(){return true;});
+
+var F_gG=new HSFun("F_gG", 1, function(_j2){return (exprEval(_j2))._f[7];});
+
+var F_gH=new HSFun("F_gH", 1, function(_jZ){return (exprEval(_jZ))._f[4];});
+
+var F_gI=new HSFun("F_gI", 2, function(_eM, _eN){
+var c164=exprEval((F_gg)._b(F_f2, ((F_gK)._b(_eM))._ap([_eN]), new HSEOL()));
+switch((c164)._t) {
+case 2 : return (F_gn)._b(F_f3);
+case 3 : return function(_eS, _eT){
+var c165=exprEval(_eT);
+switch((c165)._t) {
+case 2 : return _eS;
+default : return (F_gn)._b(F_f4);
+}
+throw('X (' + this._n + ') ' +c165.toSource());
+}((c164)._f[0], (c164)._f[1]);
+}
+throw('X (' + this._n + ') ' +c164.toSource());
+});
+
+var F_gJ=new HSFun("F_gJ", 2, function(_dt, _du){
+var c166=exprEval(_dt);
+switch((c166)._t) {
+case true : return (F_et)._ap([_du]);
+case false : return (F_es)._ap([_du]);
+}
+throw('X (' + this._n + ') ' +c166.toSource());
+});
+
+var F_gK=new HSFun("F_gK", 1, function(_dH){return ((exprEval(_dH))._f[0])._ap([0]);});
+
+var F_gL=new HSFun("F_gL", 1, function(_i4){return (exprEval(_i4))._f[0];});
+
+var F_gM=new HSFun("F_gM", 1, function(_j0){return (exprEval(_j0))._f[5];});
+
+var F_gN=new HSFun("F_gN", 1, function(_j7){return (exprEval(_j7))._f[3];});
+
+var F_gO=new HSFun("F_gO", 0, function(){return (F_gp)._ap([new HSFun("F_go", 0, function(){return (F_go)._ap([F_gb]);}), new HSEOL()]);});
+
+var F_gP=new HSFun("F_gP", 2, function(a, b){
+exprEval(a); return b;});
+
+var F_gQ=new HSFun("F_gQ", 1, function(_ja){return (exprEval(_ja))._f[3];});
+
+var F_gR=new HSFun("F_gR", 0, function(){return F_fW;});
+
+var F_gS=new HSFun("F_gS", 2, function(_eU, _eV){
+var c167=exprEval(_eU);
+switch((c167)._t) {
+case true : return (F_fc)._ap([(F_fc)._ap([(F_fW)._ap([mkChar(41)]), _eV]), (F_fW)._ap([mkChar(40)])]);
+case false : return _eV;
+}
+throw('X (' + this._n + ') ' +c167.toSource());
+});
+
+var F_gT=new HSFun("F_gT", 0, function(){return F_cG;});
+
+var F_gU=new HSFun("F_gU", 1, function(_i9){return (exprEval(_i9))._f[0];});
+
+var F_gV=new HSFun("F_gV", 1, function(_jG){return (exprEval(_jG))._f[6];});
+
+var F_gW=new HSFun("F_gW", 1, function(_ex){return (exprEval(_ex))._f[1];});
+
+var F_gX=new HSFun("F_gX", 2, function(_ct, _cu){
+var c168=exprEval(_cu);
+switch((c168)._t) {
+case 2 : return new HSData((-7), [new HSEOL(), new HSEOL()]);
+case 3 : return function(_cv, _cw){
+var c169=exprEval((_ct)._ap([_cv]));
+switch((c169)._t) {
+case true : var _j=new HSFun("_j", 0, function(){return (F_gX)._b(_ct, _cw);});
+var _v=new HSFun("_v", 0, function(){return (exprEval(_j))._f[0];});
+var _w=new HSFun("_w", 0, function(){return (exprEval(_j))._f[1];});
+return new HSData((-7), [new HSCons(_cv, _v), _w]);
+case false : var c170=exprEval(F_gF);
+switch((c170)._t) {
+case true : return new HSData((-7), [new HSEOL(), _cu]);
+case false : return (F_gn)._b(F_ff);
+}
+throw('X (' + this._n + ') ' +c170.toSource());
+}
+throw('X (' + this._n + ') ' +c169.toSource());
+}((c168)._f[0], (c168)._f[1]);
+}
+throw('X (' + this._n + ') ' +c168.toSource());
+});
+
+var F_gY=new HSFun("F_gY", 1, function(_eW){return (F_go)._ap([(exprEval(_eW))._f[4]]);});
+
+var F_gZ=new HSFun("F_gZ", 1, function(_i1){return (exprEval(_i1))._f[4];});
+
+var F_g0=new HSFun("F_g0", 1, function(_j1){return (exprEval(_j1))._f[6];});
+
+var F_g1=new HSFun("F_g1", 2, function(_cg, _ch){
+var c171=exprEval(_cg);
+switch((c171)._t) {
+case true : return true;
+case false : return _ch;
+}
+throw('X (' + this._n + ') ' +c171.toSource());
+});
+
+var F_g2=new HSFun("F_g2", 2, function(_y, _lb){return (F_5)._b(((exprEval(_lb))._f[7])._ap([0]), (F_gA)._b(F_c8, _y, (F_hc)._b(_lb)));});
+
+var F_g3=new HSFun("F_g3", 2, function(_kR, _kS){
+var c172=exprEval(_kS);
+switch((c172)._t) {
+case 2 : return ((exprEval(_kR))._f[7])._ap([0]);
+case 3 : return function(_kT, _kU){return ((exprEval(_kR))._f[3])._ap([((exprEval(_kR))._f[7])._ap([1]), (F_g3)._ap([_kR, _kU])]);}((c172)._f[0], (c172)._f[1]);
+}
+throw('X (' + this._n + ') ' +c172.toSource());
+});
+
+var F_g4=new HSFun("F_g4", 1, function(_x){return (exprEval(_x))._f[0];});
+
+var F_g5=new HSFun("F_g5", 1, function(_x){return (exprEval(_x))._f[1];});
+
+var F_g6="Roman: Pattern match failure in function at 54:1-56:16.";
+
+var F_g7="Roman: Pattern match failure in function at 38:1-43:55.";
+
+var F_g8="";
+
+var F_g9=new HSFun("F_g9", 4, function(_kZ, _k0, _k1, _k2){
+var c173=exprEval(((exprEval(_k0))._f[1])._ap([_k1, _k2]));
+switch((c173)._t) {
+case true : return ((exprEval(_kZ))._f[4])._ap([_k2, _k1]);
+case false : var c174=exprEval(((exprEval(_k0))._f[4])._ap([_k1, _k2]));
+switch((c174)._t) {
+case true : return ((exprEval(_kZ))._f[3])._ap([_k2, _k1]);
+case false : return (F_gn)._b(F_g6);
+}
+throw('X (' + this._n + ') ' +c174.toSource());
+}
+throw('X (' + this._n + ') ' +c173.toSource());
+});
+
+var F_ha=new HSFun("F_ha", 0, function(){return (F_fc)._ap([(F_fc)._ap([new HSFun("F_gB", 0, function(){return (F_gB)._ap([F_2]);}), new HSFun("F_hb", 0, function(){return (F_hb)._ap([F_dF]);})]), new HSFun("F_gr", 0, function(){return (F_gr)._ap([new HSFun("F_g9", 0, function(){return (F_g9)._ap([F_dF, F_d4]);}), 0]);})]);});
+
+var F_hb=new HSFun("F_hb", 2, function(_kN, _kO){
+var c175=exprEval(_kO);
+switch((c175)._t) {
+case 2 : return new HSEOL();
+case 3 : return function(_kP, _kQ){
+var _x=new HSFun("_x", 0, function(){return (F_gX)._b(new HSFun("F_da", 0, function(){return (F_da)._ap([_kP]);}), _kO);});
+var _z=new HSFun("_z", 0, function(){return (exprEval(_x))._f[0];});
+var _A=new HSFun("_A", 0, function(){return (exprEval(_x))._f[1];});
+return new HSCons(((exprEval(_kN))._f[2])._ap([new HSFun("F_4", 0, function(){return (F_4)._b((F_gA)._b(F_c8, _kP, (F_hc)._b(_kN)));}), (F_g3)._ap([_kN, _z])]), (F_hb)._b(_kN, _A));
+}((c175)._f[0], (c175)._f[1]);
+}
+throw('X (' + this._n + ') ' +c175.toSource());
+});
+
+var F_hc=new HSFun("F_hc", 1, function(_kM){return new HSCons(new HSData((-7), [mkChar(73), ((exprEval(_kM))._f[7])._ap([1])]), new HSCons(new HSData((-7), [mkChar(86), ((exprEval(_kM))._f[7])._ap([5])]), new HSCons(new HSData((-7), [mkChar(88), ((exprEval(_kM))._f[7])._ap([10])]), new HSCons(new HSData((-7), [mkChar(76), ((exprEval(_kM))._f[7])._ap([50])]), new HSCons(new HSData((-7), [mkChar(67), ((exprEval(_kM))._f[7])._ap([100])]), new HSCons(new HSData((-7), [mkChar(68), ((exprEval(_kM))._f[7])._ap([500])]), new HSCons(new HSData((-7), [mkChar(77), ((exprEval(_kM))._f[7])._ap([1000])]), new HSEOL())))))));});
+
+var F_hd=new HSFun("F_hd", 0, function(){return new HSCons(new HSData((-7), [mkChar(86), mkChar(73)]), new HSCons(new HSData((-7), [mkChar(88), mkChar(73)]), new HSCons(new HSData((-7), [mkChar(76), mkChar(88)]), new HSCons(new HSData((-7), [mkChar(67), mkChar(88)]), new HSCons(new HSData((-7), [mkChar(68), mkChar(67)]), new HSCons(new HSData((-7), [mkChar(77), mkChar(67)]), new HSEOL()))))));});
+
+var F_he=new HSFun("F_he", 4, function(_k3, _k4, _k5, _k6){
+var c176=exprEval(_k5);
+return function(_k7, _k8){
+var c177=exprEval(_k6);
+return function(_k9, _la){
+var _y=new HSFun("_y", 0, function(){return (F_5)._b(mkChar(0), (F_gA)._b(F_c8, _k7, F_hd));});
+var c178=exprEval(((exprEval(_k4))._f[3])._ap([_k9, _k8]));
+switch((c178)._t) {
+case true : return (F_he)._b(_k3, _k4, _k5, new HSData((-7), [((exprEval(_k3))._f[4])._ap([_k9, _k8]), new HSCons(_k7, _la)]));
+case false : var c179=exprEval(((exprEval(_k4))._f[3])._ap([((exprEval(_k3))._f[3])._ap([_k9, ((F_g2)._ap([_y]))._ap([_k3])]), _k8]));
+switch((c179)._t) {
+case true : return new HSData((-7), [((exprEval(_k3))._f[3])._ap([((exprEval(_k3))._f[4])._ap([_k9, _k8]), ((F_g2)._ap([_y]))._ap([_k3])]), new HSCons(_k7, new HSCons(_y, _la))]);
+case false : var c180=exprEval(F_gF);
+switch((c180)._t) {
+case true : return new HSData((-7), [_k9, _la]);
+case false : return (F_gn)._b(F_g7);
+}
+throw('X (' + this._n + ') ' +c180.toSource());
+}
+throw('X (' + this._n + ') ' +c179.toSource());
+}
+throw('X (' + this._n + ') ' +c178.toSource());
+}((c177)._f[0], (c177)._f[1]);
+}((c176)._f[0], (c176)._f[1]);
+});
+
+var F_hf=new HSFun("F_hf", 1, function(_lc){return ((F_fc)._ap([F_gW, F_gO]))._ap([new HSFun("F_gr", 0, function(){return (F_gr)._b(new HSFun("F_he", 0, function(){return (F_he)._ap([F_dF, F_d4]);}), new HSData((-7), [_lc, F_g8]), (F_hc)._b(F_dF));})]);});
+
+var F_hg=new HSFun("F_hg", 1, function(a){
+return Number(exprEval(a)).toString();});
+
+var F_hh=new HSFun("F_hh", 2, function(_kq, _kr){return (F_cG)._b((F_hg)._ap([_kq]), _kr);});
+
+var F_hi="return Number(exprEval(a)).toString();";
+
+var F_hj="return 0 - Number(exprEval(a));";
+
+var F_hk="var ea = exprEval(a); if (ea>0) return 1; else if (ea<0) return -1; else return 0;";
+
+var F_hl="return Math.abs(exprEval(a));";
+
+var F_hm="return a;";
+
+var F_hn="return a;";
+
+var F_ho="return Number(exprEval(a)) < Number(exprEval(b));";
+
+var F_hp="return Number(exprEval(a)) <= Number(exprEval(b));";
+
+var F_hq="return Number(exprEval(a)) > Number(exprEval(b));";
+
+var F_hr="return Number(exprEval(a)) >= Number(exprEval(b));";
+
+var F_hs="return Number(exprEval(a)) !== Number(exprEval(b));";
+
+var F_ht="return Number(exprEval(a)) === Number(exprEval(b));";
+
+var F_hu="return 0 - Number(exprEval(a));";
+
+var F_hv="return exprEval(a) * exprEval(b);";
+
+var F_hw="return exprEval(a) - exprEval(b);";
+
+var F_hx="return exprEval(a) + exprEval(b);";
+
+var F_hy="return exprEval(a) % exprEval(b);";
+
+var F_hz="(function(x,y){return (x - (x % y))/y;})(exprEval(a),exprEval(b));";
+
+var F_hA="exprEval(a); return b;";
+
+var F_hB="throw(\'E \' + exprEval(a).toString()); return undefined;";
+
+var F_hC=new HSFun("F_hC", 1, function(a){
+return Math.abs(exprEval(a));});
+
+var F_hD=new HSFun("F_hD", 1, function(a){
+return a;});
+
+var F_hE=new HSFun("F_hE", 1, function(a){
+var ea = exprEval(a); if (ea>0) return 1; else if (ea<0) return -1; else return 0;});
+
+var F_hF=new HSFun("F_hF", 2, function(a, b){
+return exprEval(a) + exprEval(b);});
+
+var F_hG=new HSFun("F_hG", 2, function(a, b){
+return Number(exprEval(a)) === Number(exprEval(b));});
+
+var F_hH=new HSFun("F_hH", 1, function(a){
+return a;});
+
+var F_hI=new HSFun("F_hI", 2, function(a, b){
+return Number(exprEval(a)) >= Number(exprEval(b));});
+
+var F_hJ=new HSFun("F_hJ", 2, function(a, b){
+return Number(exprEval(a)) > Number(exprEval(b));});
+
+var F_hK=new HSFun("F_hK", 2, function(a, b){
+return Number(exprEval(a)) <= Number(exprEval(b));});
+
+var F_hL=new HSFun("F_hL", 2, function(a, b){
+return Number(exprEval(a)) < Number(exprEval(b));});
+
+var F_hM=new HSFun("F_hM", 2, function(a, b){
+return exprEval(a) * exprEval(b);});
+
+var F_hN=new HSFun("F_hN", 2, function(a, b){
+return Number(exprEval(a)) !== Number(exprEval(b));});
+
+var F_hO=new HSFun("F_hO", 1, function(a){
+return 0 - Number(exprEval(a));});
+
+var F_hP=new HSFun("F_hP", 2, function(a, b){
+(function(x,y){return (x - (x % y))/y;})(exprEval(a),exprEval(b));});
+
+var F_hQ=new HSFun("F_hQ", 2, function(_kF, _kG){
+var _C=new HSFun("_C", 0, function(){return (F_hR)._b(_kF, _kG);});
+var _B=new HSFun("_B", 0, function(){return (F_hP)._b(_kF, _kG);});
+return new HSData((-7), [_B, _C]);
+});
+
+var F_hR=new HSFun("F_hR", 2, function(a, b){
+return exprEval(a) % exprEval(b);});
+
+var F_hS=new HSFun("F_hS", 2, function(a, b){
+return exprEval(a) - exprEval(b);});
+
+funIdx["Echo.main"] = F_cj;
+
+ test/parsingonly/130_htojs2.js view
@@ -0,0 +1,85 @@+//++AZ++
+var F_d=new HSFun("F_d", 1, function(_l3){
+var c3=exprEval(_l3);
+switch((c3)._t) {
+case 3 : return function(_l4, _l5){
+var c4=exprEval(((F_gm)._b(F_c8, _l4))._ap([F_l]));
+switch((c4)._t) {
+
+case true : return new HSCons(new HSData((-7), [new HSCons(_l4, new HSEOL()), _l5]), new HSEOL());
+case false : var c5=exprEval(_l4);
+switch((c5).valueOf()) {
+case 94 : var c6=exprEval(_l5);
+switch((c6)._t) {
+/*
+case 3 : return function(_l6, _l7){
+var c7=exprEval((F_cD)._b((F_dZ)._b(_l6, mkChar(64)), (Number(exprEval(_l6)))<=(Number(exprEval(mkChar(95))))));
+switch((c7)._t) {
+case true : return new HSCons(new HSData((-7), [new HSCons(mkChar(94), new HSCons(_l6, new HSEOL())), _l7]), new HSEOL());
+case false : var c8=exprEval((F_bg)._b(_l4));
+switch((c8)._t) {
+case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL());
+case false : var c9=exprEval((F_0)._b(_l4));
+switch((c9)._t) {
+case true : var c10=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL()));
+switch((c10)._t) {
+case 2 : return new HSEOL();
+case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c10)._f[0], (c10)._f[1]);
+}
+throw('X (' + this._n + ') ' +c10.toSource());
+case false : return new HSEOL();
+}
+throw('X (' + this._n + ') ' +c9.toSource());
+}
+throw('X (' + this._n + ') ' +c8.toSource());
+}
+throw('X (' + this._n + ') ' +c7.toSource());
+}((c6)._f[0], (c6)._f[1]);
+default : var c11=exprEval((F_bg)._b(_l4));
+switch((c11)._t) {
+case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL());
+case false : var c12=exprEval((F_0)._b(_l4));
+switch((c12)._t) {
+case true : var c13=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL()));
+switch((c13)._t) {
+case 2 : return new HSEOL();
+case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c13)._f[0], (c13)._f[1]);
+}
+throw('X (' + this._n + ') ' +c13.toSource());
+case false : return new HSEOL();
+}
+throw('X (' + this._n + ') ' +c12.toSource());
+}
+throw('X (' + this._n + ') ' +c11.toSource());
+*/
+}
+throw('X (' + this._n + ') ' +c6.toSource());
+//case 111 : return new HSCons((F_c)._ap([mkChar(111), new HSFun("F_gX", 0, function(){return (F_gX)._b(F_bi, _l5);})]), new HSEOL());
+//case 120 : return new HSCons((F_c)._ap([mkChar(120), new HSFun("F_gX", 0, function(){return (F_gX)._b(F_bh, _l5);})]), new HSEOL());
+default : var c14=exprEval((F_bg)._b(_l4));
+switch((c14)._t) {
+/*
+case true : return new HSCons((F_gX)._b(F_bg, _l3), new HSEOL());
+case false : var c15=exprEval((F_0)._b(_l4));
+switch((c15)._t) {
+case true : var c16=exprEval((F_gg)._b(new HSFun("F_n", 0, function(){return (F_n)._ap([_l3]);}), new HSCons(F_o, (F_gB)._b(F_gW, F_U)), new HSEOL()));
+switch((c16)._t) {
+case 2 : return new HSEOL();
+case 3 : return function(_ma, _mb){return new HSCons(_ma, new HSEOL());}((c16)._f[0], (c16)._f[1]);
+}
+throw('X (' + this._n + ') ' +c16.toSource());
+case false : return new HSEOL();
+}
+throw('X (' + this._n + ') ' +c15.toSource());
+*///AZ
+}
+throw('X (' + this._n + ') ' +c14.toSource());
+}
+throw('X (' + this._n + ') ' +c5.toSource());
+}
+throw('X (' + this._n + ') ' +c4.toSource());
+}((c3)._f[0], (c3)._f[1]);
+default : return new HSEOL();
+}
+throw('X (' + this._n + ') ' +c3.toSource());
+});
+ test/parsingonly/130s.js view
@@ -0,0 +1,4 @@+//var F_c=new HSFun("F_c", 2, function(_lZ, _l0){
+//var c2=exprEval(_l0);
+function(_l1, _l2){}((c2)._f[0], (c2)._f[1]);
+//});
+ test/parsingonly/14_labelled_stmts.js view
@@ -0,0 +1,33 @@+i=0;
+bob: i=0;
+i=0;
+
+bob:
+if(x){}
+
+{do { 
+			t;
+                } while(t);
+t;}
+
+if (t){ 
+                do { 
+			t;
+                } while(t);
+                t;
+}
+
+switch(i) {
+  case "x":
+    
+
+ case LEFT_CURLY:
+          //object_init:
+            if (t){ 
+                do { 
+			t;
+                } while(t);
+                t;
+            }
+
+}
+ test/parsingonly/15_literals.js view
@@ -0,0 +1,16 @@+const GLOBAL = this;
+
+var tokens = [
+
+    "END",
+
+    // Operators and punctuators.  Some pair-wise order matters, e.g. (+, -)
+    // and (UNARY_PLUS, UNARY_MINUS).
+    "\n", ";"];
+
+var opTypeNames = {
+    '\n':   "NEWLINE",
+    ';':    "SEMICOLON",
+    ',':    "COMMA"};
+
+var assignOps = ['|', '^', '&', '<<', '>>', '>>>', '+', '-', '*', '/', '%'];
+ test/parsingonly/16_literals.js view
@@ -0,0 +1,43 @@+const GLOBAL = this;
+
+var tokens = [
+
+    "END",
+
+    // Operators and punctuators.  Some pair-wise order matters, e.g. (+, -)
+    // and (UNARY_PLUS, UNARY_MINUS).
+    "\n", ";"];
+
+var opTypeNames = {
+    '\n':   "NEWLINE",
+    ';':    "SEMICOLON",
+    ',':    "COMMA"
+};
+
+var assignOps = ['|', '^', '&', '<<', '>>', '>>>', '+', '-', '*', '/', '%'];
+
+function eval(s) {
+	a=-1;
+}
+
+var global = {
+    // Value properties.
+    NaN: NaN, Infinity: Infinity, undefined: undefined,
+
+
+   
+
+    // Exte
+    snarf: snarf, evaluate: evaluate,
+    load: function load(s) {
+        if (typeof s != "string")
+            return s;
+ 
+        evaluate(snarf(s), s, 1);
+    },
+    print: print, version: null
+};
+
+function eval(s) {
+;
+}
+ test/parsingonly/1_simple.js view
@@ -0,0 +1,1 @@+"abfnrtv\\\"\'";
+ test/parsingonly/20_statements.js view
@@ -0,0 +1,116 @@+
+t = 1 + b
+
+t ? '1' : 'b';
+
+if (getValue)
+   execute;
+else {
+   execute;
+}
+
+
+for (i = 0; i <= 5; i++)
+{
+	x += i;
+}
+
+for (var i = 0; i < n; i++) {
+  this[i] = 1 + v;
+}
+
+var sumOfDivisors = new ExprArray(n+1,1);
+
+
+for (var i = 0; i < j; i++) {
+    if (i > 0)
+        consts += ", ";
+    var t = tokens[i];
+}
+
+for (var i = 0, j = tokens.length; i < j; i++) {
+    if (i > 0)
+        consts += ", ";
+    var t = tokens[i];
+}
+
+
+for (i = 0; ; i++)
+{
+	x += i;
+}
+
+for( x in bob)
+{
+
+}
+
+function f() {
+  if (typeof s != "string")
+          return;
+
+
+ while (--n >= 0)
+            s += t;
+
+var a, f, i, j, r, s, t, u, v;
+
+(x.stmtStack.length > 1)
+? STATEMENT_FORM
+: DECLARED_FORM;
+
+ n2 = new Node(t);
+   while (1) {
+                if (tt == DEFAULT)
+                    n.defaultIndex = n.cases.length;
+                else
+                    n2.caseLabel = Expression(t, x, COLON);
+                break;
+
+ n = new Node(t);
+        t.mustMatch(LEFT_PAREN);
+        n.discriminant = Expression(t, x);
+        t.mustMatch(RIGHT_PAREN);
+        n.cases = [];
+        n.defaultIndex = -1;
+        x.stmtStack.push(n);
+        t.mustMatch(LEFT_CURLY);
+        while ((tt = t.get()) != RIGHT_CURLY) {
+            switch (tt) {
+              case DEFAULT:
+                if (n.defaultIndex >= 0)
+                    throw t.newSyntaxError("More than one switch default");
+                // FALL THROUGH
+              case CASE:
+                n2 = new Node(t);
+                if (tt == DEFAULT)
+                    n.defaultIndex = n.cases.length;
+                else
+                    n2.caseLabel = Expression(t, x, COLON);
+                break;
+              default:
+                throw t.newSyntaxError("Invalid switch case");
+            }
+            t.mustMatch(COLON);
+            n2.statements = new Node(t, BLOCK);
+            while ((tt=t.peek()) != CASE && tt != DEFAULT && tt != RIGHT_CURLY)
+                n2.statements.push(Statement(t, x));
+            n.cases.push(n2);
+        }
+        x.stmtStack.pop();
+        return n;
+   
+
+
+ do {
+            try {
+                execute(n.body, x);
+            } catch (e if e == BREAK && x.target == n) {
+                break;
+            } catch (e if e == CONTINUE && x.target == n) {
+                continue;
+            }
+        } while (getValue(execute(n.condition, x)));
+        break;
+}
+}
+ test/parsingonly/25_trycatch.js view
@@ -0,0 +1,52 @@+try {
+	print("hello");
+} catch(bob){}
+
+try {}
+finally {}
+
+try {}
+catch(bob)
+{
+}
+
+try 
+{
+}
+catch(bob if 1==0)
+{
+}
+
+
+
+try
+   {
+   adddlert("Welcome guest!");
+   }
+catch(err)
+   {
+   txt="There was an error on this page.\n\n";
+   txt+="Error description: " + err.description + "\n\n";
+   txt+="Click OK to continue.\n\n";
+   alert(txt);
+   }
+
+
+ try {
+            execute(parse(s), x2);
+        } catch (e if e == THROW) {
+            x.result = x2.result;
+            throw e;
+        } finally {
+            ExecutionContext.current = x;
+        }
+
+while(1)
+ try {
+                execute(n.body, x);
+            } catch (e if e == BREAK && x.target == n) {
+                break;
+            } catch (e if e == CONTINUE && x.target == n) {
+                continue;
+            }
+            n.update && getValue(execute(n.update, x));
+ test/parsingonly/40_functions.js view
@@ -0,0 +1,31 @@+function bob(){}
+function bob(a,b){}
+function bob(a,b){a=1;
+}
+
+// constructor -- expression array initialization
+function ExprArray(n,v)
+{
+    // Initializes n values to v coerced to a string.
+    for (var i = 0; i < n; i++) {
+	this[i] = "" + v;
+    }
+}
+
+function Hello()
+{
+	ExprArray(1,1);
+}
+
+Reference.prototype.toString = function () { return this.node.getSource(); }
+
+function getValue(v) {
+    if (v instanceof Reference) {
+        if (!v.base) {
+            throw new ReferenceError(v.propertyName + " is not defined",
+                                     v.node.filename, v.node.lineno);
+        }
+        return v.base[v.propertyName];
+    }
+    return v;
+}
+ test/parsingonly/41_functions.js view
@@ -0,0 +1,1 @@+function(){}()
+ test/parsingonly/5_comments.js view
@@ -0,0 +1,21 @@+// Helper to avoid Object.prototype.hasOwnProperty polluting scope objects.
+// One problem is that lexer is picking the longest string
+function bob()
+{
+  /* This a comment inside a function 
+     second line of the comment */
+}
+
+function bill()
+{
+  /* This a comment inside a function 
+     second line of the comment */
+  i=2;
+
+  function mary()
+  {
+    /* bob */
+    var currentConstructor = this.constructor
+    var methodName = null 
+  }    
+}
+ test/parsingonly/67_bob.js view
@@ -0,0 +1,68 @@+function x()
+{
+
+       var token;
+        while (this.lookahead) {
+            --this.lookahead;
+            this.tokenIndex = (this.tokenIndex + 1) & 3;
+            token = this.tokens[this.tokenIndex];
+            if (token.type != NEWLINE || this.scanNewlines)
+                return token.type;
+        }
+
+        for (;;) {
+            var input = this.input;
+            var match = (this.scanNewlines ? /^[ \t]+/ : /^\s+/)(input);
+            if (match) {
+                var spaces = match[0];
+                this.cursor += spaces.length;
+                var newlines = spaces.match(/\n/g);
+                if (newlines)
+                    this.lineno += newlines.length;
+                input = this.input;
+            }
+
+            if (!(match = /^\/(?:\*(?:.|\n)*?\*\/|\/.*)/(input)))
+                break;
+            var comment = match[0];
+            this.cursor += comment.length;
+            newlines = comment.match(/\n/g);
+            if (newlines)
+                this.lineno += newlines.length
+        }
+
+        this.tokenIndex = (this.tokenIndex + 1) & 3;
+        token = this.tokens[this.tokenIndex];
+        if (!token)
+            this.tokens[this.tokenIndex] = token = {};
+
+        if (!input)
+            return token.type = END;
+
+        if ((match = fpRegExp(input))) {
+            token.type = NUMBER;
+            token.value = parseFloat(match[0]);
+        } else if ((match = /^0[xX][\da-fA-F]+|^0[0-7]*|^\d+/(input))) {
+            token.type = NUMBER;
+            token.value = parseInt(match[0]);
+        } else if ((match = /^\w+/(input))) {
+            var id = match[0];
+            token.type = keywords[id] || IDENTIFIER;
+            token.value = id;
+        } else if ((match = /^"(?:\\.|[^"])*"|^'(?:[^']|\\.)*'/(input))) { //"){
+            token.type = STRING;
+            token.value = eval(match[0]);
+        }
+
+        if (this.scanOperand &&        
+           (match = /^\/((?:\\.|[^\/])+)\/([gi]*)/(input))) {
+            token.type = REGEXP;
+            token.value = new RegExp(match[1], match[2]);
+        }
+
+        token.start = this.cursor;
+        this.cursor += match[0].length;
+        token.end = this.cursor;
+        token.lineno = this.lineno;
+        return token.type;
+}
+ test/parsingonly/errorline13.js view
@@ -0,0 +1,13 @@+// Test to make sure we're handling comment lines correctly as part of line number tracking
+/*
+
+*/
+1+1;
+x;
+
+
+
+
+//
+//
++
+ test/parsingonly/fn.js view
@@ -0,0 +1,8 @@+
+var global = {
+    NaN: NaN, Infinity: Infinity, undefined: undefined,
+
+    eval: function eval(s) {
+	a=-1;
+	}
+};
+ test/pminified/00_f.js view
@@ -0,0 +1,1 @@+function Hello(a){ExprArray(1,1)}
+ test/pminified/01_semi1.js view
@@ -0,0 +1,1 @@+{zero.one1;zero};one1;two;three;four;five
+ test/pminified/02_semicolon.js view
@@ -0,0 +1,2 @@+Parse error: Invalid return in file 'foo' on line 6+
+ test/pminified/02_sm.js view
@@ -0,0 +1,1 @@+zero;one1;two;{three;four;five;{six;seven}}
+ test/pminified/03_sm.js view
@@ -0,0 +1,1 @@+a=b+z;b;c
+ test/pminified/04_if.js view
@@ -0,0 +1,1 @@+a=f?e:g
+ test/pminified/05_comments_simple.js view
@@ -0,0 +1,1 @@+a+1
+ test/pminified/05_regex.js view
@@ -0,0 +1,1 @@+x=1/y;var newlines=spaces.match(/\n/g),newlines=spaces.match(/\n/g);opRegExpSrc+=i.replace(/[?|^&(){}\[\]+\-*\/\.]/g,"\\$&");for(i=0;;)var t=1;for(var i=0,j=tokens.length;i<j;i++){if(i>0)consts+=", ";var t=tokens[i];if(/^[a-z]/.test(t)){consts+=t.toUpperCase();keywords[t]=i}else consts+=(/^\W/.test(t)?opTypeNames[t]:t);consts+=" = "+x;tokens[t]=j}
+ test/pminified/06_block.js view
@@ -0,0 +1,1 @@+
+ test/pminified/06_callexpr.js view
@@ -0,0 +1,1 @@+bob();bob(1)(2,3);bob().mary;bob()[1];bob(11)[2][3];bob(mary())
+ test/pminified/06_newexpr.js view
@@ -0,0 +1,1 @@+new bob;new bob(1);new bob()(1,2);bob[1](1,2)
+ test/pminified/06_var.js view
@@ -0,0 +1,1 @@+for(i=0;;)var t=1
+ test/pminified/07_expr.js view
@@ -0,0 +1,1 @@+w=x*y+1/2;z=z+1;1+2;"Prototype does not have an ancestor: "+currentConstructor+".";Error("Prototype does not have an ancestor: "+currentConstructor+".");Error("Prototype does not have an ancestor: "+currentConstructor+".")
+ test/pminified/101_inheritance.js view
@@ -0,0 +1,5 @@+Function.prototype.inherits=function(superConstructor){function CreatePrototype(){};CreatePrototype.prototype=superConstructor.prototype;this.prototype=new CreatePrototype();this.prototype.constructor=this;this.superConstructor=superConstructor;this.prototype.callSuper=function(){var caller=arguments.callee.caller,caller=arguments[0],args=new Array();for(var i=1;i<arguments.length;i++)args.push(arguments[i]);var currentConstructor=this.constructor,methodName=null;while(methodName==null&&currentConstructor!=null){if(caller===currentConstructor)return currentConstructor.superConstructor.apply(this,args);methodName=figureMethodName(currentConstructor.prototype,caller);currentConstructor=currentConstructor.superConstructor};if(!methodName)throw new Error("Could not find method: "+methodName+".");if(!currentConstructor)throw new Error("Prototype does not have an ancestor: "+currentConstructor+".");return currentConstructor.prototype[methodName].apply(this,args)}}+function figureMethodName(prototype,method){for(var key in prototype)if(prototype.hasOwnProperty(key)&&prototype[key]===method)return key;return null}+function Animal(name){if(!name)throw new Error('Must specify an animal name');this.name=name};Animal.prototype.toString=function(){return'My name is '+this.name}+function Pet(owner,name){this.owner=owner;this.callSuper(arguments.callee,name)};Pet.inherits(Animal);Pet.prototype.toString=function(){return this.callSuper(arguments.callee)+"\nMy owner is "+this.owner}+function Cat(owner,name){this.callSuper(arguments.callee,owner,name)};Cat.inherits(Pet);Cat.prototype.toString=function(){return this.callSuper(arguments.callee)+'\nI eat mice'};var cat=new Cat('charlie','oba');print(cat.toString())
+ test/pminified/10_switch.js view
@@ -0,0 +1,2 @@+switch(i){case 1:1;case 2:2}+function x(){switch(typeof v){case"boolean":return new global.Boolean(v);case"number":i=1;break;return new global.Number(v);case"string":return new global.String(v);case"function":return v;case"object":if(v!==null)return v}};switch(t){case BITWISE_OR:v=u|v;break;case BITWISE_XOR:v=u^v;break;case BITWISE_AND:v=u&v;break;case LSH:v=u<<v;break;case RSH:v=u>>v;break;case URSH:v=u>>>v;break;case PLUS:v=u+v;break;case MINUS:v=u-v;break;case MUL:v=u*v;break;case DIV:v=u/v;break;case MOD:v=u%v;break}
+ test/pminified/110_perfect.js view
@@ -0,0 +1,2 @@+function ExprArray(n,v){for(var i=0;i<n;i++)this[i]=""+v}+function perfect(n){print("The perfect numbers up to "+n+" are:");var sumOfDivisors=new ExprArray(n+1,1);for(var divisor=2;divisor<=n;divisor++){for(var j=divisor+divisor;j<=n;j+=divisor)sumOfDivisors[j]+=" + "+divisor;if(eval(sumOfDivisors[divisor])==divisor)print(""+divisor+" = "+sumOfDivisors[divisor])};print("That's all.")};print("\nA number is 'perfect' if it is equal to the sum of its");print("divisors (excluding itself).\n");perfect(500)
+ test/pminified/120_js.js view
@@ -0,0 +1,1 @@+function my_load(filename){evaluate(snarf(filename),filename,1)};my_load('jsdefs.js');my_load('jsparse.js');my_load('jsexec.js')
+ test/pminified/121_jsdefs.js view
@@ -0,0 +1,1 @@+const GLOBAL=this;var tokens=["END","\n",";",",","=","?",":","CONDITIONAL","||","&&","|","^","&","==","!=","===","!==","<","<=",">=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","enum","false","finally","for","function","if","in","instanceof","new","null","return","switch","this","throw","true","try","typeof","var","void","while","with"],opTypeNames={'\n':"NEWLINE",';':"SEMICOLON",',':"COMMA",'?':"HOOK",':':"COLON",'||':"OR",'&&':"AND",'|':"BITWISE_OR",'^':"BITWISE_XOR",'&':"BITWISE_AND",'===':"STRICT_EQ",'==':"EQ",'=':"ASSIGN",'!==':"STRICT_NE",'!=':"NE",'<<':"LSH",'<=':"LE",'<':"LT",'>>>':"URSH",'>>':"RSH",'>=':"GE",'>':"GT",'++':"INCREMENT",'--':"DECREMENT",'+':"PLUS",'-':"MINUS",'*':"MUL",'/':"DIV",'%':"MOD",'!':"NOT",'~':"BITWISE_NOT",'.':"DOT",'[':"LEFT_BRACKET",']':"RIGHT_BRACKET",'{':"LEFT_CURLY",'}':"RIGHT_CURLY",'(':"LEFT_PAREN",')':"RIGHT_PAREN"},keywords={__proto__:null},consts="const ";for(var i=0,j=tokens.length;i<j;i++){if(i>0)consts+=", ";var t=tokens[i];if(/^[a-z]/.test(t)){consts+=t.toUpperCase();keywords[t]=i}else consts+=(/^\W/.test(t)?opTypeNames[t]:t);consts+=" = "+i;tokens[t]=i};eval(consts+";");var assignOps=['|','^','&','<<','>>','>>>','+','-','*','/','%'];for(i=0,j=assignOps.length;i<j;i++){t=assignOps[i];assignOps[t]=tokens[t]}
+ test/pminified/122_jsexec.js view
@@ -0,0 +1,15 @@+const GLOBAL_CODE=0,EVAL_CODE=1,FUNCTION_CODE=2+function ExecutionContext(type){this.type=type};var global={NaN:NaN,Infinity:Infinity,undefined:undefined,eval:function eval(s){if(typeof s!="string")return s;var x=ExecutionContext.current,x2=new ExecutionContext(EVAL_CODE);x2.thisObject=x.thisObject;x2.caller=x.caller;x2.callee=x.callee;x2.scope=x.scope;ExecutionContext.current=x2;try{execute(parse(s),x2)}catch(e if e==THROW){x.result=x2.result;throw e}finally{ExecutionContext.current=x};return x2.result},parseInt:parseInt,parseFloat:parseFloat,isNaN:isNaN,isFinite:isFinite,decodeURI:decodeURI,encodeURI:encodeURI,decodeURIComponent:decodeURIComponent,encodeURIComponent:encodeURIComponent,Object:Object,Function:function Function(dummy){var p="",b="",n=arguments.length;if(n){var m=n-1;if(m){p+=arguments[0];for(var k=1;k<m;k++)p+=","+arguments[k]};b+=arguments[m]};var t=new Tokenizer("anonymous("+p+") {"+b+"}"),f=FunctionDefinition(t,null,false,STATEMENT_FORM),s={object:global,parent:null};return new FunctionObject(f,s)},Array:function Array(dummy){return GLOBAL.Array.apply(this,arguments)},String:function String(s){s=arguments.length?""+s:"";if(this instanceof String){this.value=s;return this};return s},Boolean:Boolean,Number:Number,Date:Date,RegExp:RegExp,Error:Error,EvalError:EvalError,RangeError:RangeError,ReferenceError:ReferenceError,SyntaxError:SyntaxError,TypeError:TypeError,URIError:URIError,Math:Math,snarf:snarf,evaluate:evaluate,load:function load(s){if(typeof s!="string")return s;evaluate(snarf(s),s,1)},print:print,version:null}+function hasDirectProperty(o,p){return Object.prototype.hasOwnProperty.call(o,p)}+function reflectClass(name,proto){var gctor=global[name];gctor.__defineProperty__('prototype',proto,true,true,true);proto.__defineProperty__('constructor',gctor,false,false,true);return proto};reflectClass('Array',new Array);var gSp=reflectClass('String',new String);gSp.toSource=function(){return this.value.toSource()};gSp.toString=function(){return this.value};gSp.valueOf=function(){return this.value};global.String.fromCharCode=String.fromCharCode;var XCp=ExecutionContext.prototype;ExecutionContext.current=XCp.caller=XCp.callee=null;XCp.scope={object:global,parent:null};XCp.thisObject=global;XCp.result=undefined;XCp.target=null;XCp.ecmaStrictMode=false+function Reference(base,propertyName,node){this.base=base;this.propertyName=propertyName;this.node=node};Reference.prototype.toString=function(){return this.node.getSource()}+function getValue(v){if(v instanceof Reference){if(!v.base)throw new ReferenceError(v.propertyName+" is not defined",v.node.filename,v.node.lineno);return v.base[v.propertyName]};return v}+function putValue(v,w,vn){if(v instanceof Reference)return(v.base||global)[v.propertyName]=w;throw new ReferenceError("Invalid assignment left-hand side",vn.filename,vn.lineno)}+function isPrimitive(v){var t=typeof v;return(t=="object")?v===null:t!="function"}+function isObject(v){var t=typeof v;return(t=="object")?v!==null:t=="function"}+function toObject(v,r,rn){switch(typeof v){case"boolean":return new global.Boolean(v);case"number":return new global.Number(v);case"string":return new global.String(v);case"function":return v;case"object":if(v!==null)return v};var message=r+" (type "+(typeof v)+") has no properties";throw rn?new TypeError(message,rn.filename,rn.lineno):new TypeError(message)}+function execute(n,x){var a,f,i,j,r,s,t,u,v;switch(n.type){case FUNCTION:if(n.functionForm!=DECLARED_FORM)if(!n.name||n.functionForm==STATEMENT_FORM){v=new FunctionObject(n,x.scope);if(n.functionForm==STATEMENT_FORM)x.scope.object.__defineProperty__(n.name,v,true)}else{t=new Object;x.scope={object:t,parent:x.scope};try{v=new FunctionObject(n,x.scope);t.__defineProperty__(n.name,v,true,true)}finally{x.scope=x.scope.parent}};break;case SCRIPT:t=x.scope.object;a=n.funDecls;for(i=0,j=a.length;i<j;i++){s=a[i].name;f=new FunctionObject(a[i],x.scope);t.__defineProperty__(s,f,x.type!=EVAL_CODE)};a=n.varDecls;for(i=0,j=a.length;i<j;i++){u=a[i];s=u.name;if(u.readOnly&&hasDirectProperty(t,s))throw new TypeError("Redeclaration of const "+s,u.filename,u.lineno);if(u.readOnly||!hasDirectProperty(t,s))t.__defineProperty__(s,undefined,x.type!=EVAL_CODE,u.readOnly)};case BLOCK:for(i=0,j=n.length;i<j;i++)execute(n[i],x);break;case IF:if(getValue(execute(n.condition,x))){execute(n.thenPart,x)}else if(n.elsePart)execute(n.elsePart,x);break;case SWITCH:s=getValue(execute(n.discriminant,x));a=n.cases;var matchDefault=false;switch_loop:for(i=0,j=a.length;;i++){if(i==j){if(n.defaultIndex>=0){i=n.defaultIndex-1;matchDefault=true;continue};break};t=a[i];if(t.type==CASE){u=getValue(execute(t.caseLabel,x))}else{if(!matchDefault)continue;u=s};if(u===s)for(;;){if(t.statements.length)try{execute(t.statements,x)}catch(e if e==BREAK&&x.target==n){break switch_loop};if(++i==j)break switch_loop;t=a[i]}};break;case FOR:n.setup&&getValue(execute(n.setup,x));case WHILE:while(!n.condition||getValue(execute(n.condition,x))){try{execute(n.body,x)}catch(e if e==BREAK&&x.target==n){break}catch(e if e==CONTINUE&&x.target==n){continue};n.update&&getValue(execute(n.update,x))};break;case FOR_IN:u=n.varDecl;if(u)execute(u,x);r=n.iterator;s=execute(n.object,x);v=getValue(s);t=(v==null&&!x.ecmaStrictMode)?v:toObject(v,s,n.object);a=[];for(i in t)a.push(i);for(i=0,j=a.length;i<j;i++){putValue(execute(r,x),a[i],r);try{execute(n.body,x)}catch(e if e==BREAK&&x.target==n){break}catch(e if e==CONTINUE&&x.target==n){continue}};break;case DO:do{try{execute(n.body,x)}catch(e if e==BREAK&&x.target==n){break}catch(e if e==CONTINUE&&x.target==n){continue}}while(getValue(execute(n.condition,x)));break;case BREAK:case CONTINUE:x.target=n.target;throw n.type;case TRY:try{execute(n.tryBlock,x)}catch(e if e==THROW&&(j=n.catchClauses.length)){e=x.result;x.result=undefined;for(i=0;;i++){if(i==j){x.result=e;throw THROW};t=n.catchClauses[i];x.scope={object:{},parent:x.scope};x.scope.object.__defineProperty__(t.varName,e,true);try{if(t.guard&&!getValue(execute(t.guard,x)))continue;execute(t.block,x);break}finally{x.scope=x.scope.parent}}}finally{if(n.finallyBlock)execute(n.finallyBlock,x)};break;case THROW:x.result=getValue(execute(n.exception,x));throw THROW;case RETURN:x.result=getValue(execute(n.value,x));throw RETURN;case WITH:r=execute(n.object,x);t=toObject(getValue(r),r,n.object);x.scope={object:t,parent:x.scope};try{execute(n.body,x)}finally{x.scope=x.scope.parent};break;case VAR:case CONST:for(i=0,j=n.length;i<j;i++){u=n[i].initializer;if(!u)continue;t=n[i].name;for(s=x.scope;s;s=s.parent)if(hasDirectProperty(s.object,t))break;u=getValue(execute(u,x));if(n.type==CONST){s.object.__defineProperty__(t,u,x.type!=EVAL_CODE,true)}else s.object[t]=u};break;case DEBUGGER:throw "NYI: "+tokens[n.type];case SEMICOLON:if(n.expression)x.result=getValue(execute(n.expression,x));break;case LABEL:try{execute(n.statement,x)}catch(e if e==BREAK&&x.target==n){};break;case COMMA:for(i=0,j=n.length;i<j;i++)v=getValue(execute(n[i],x));break;case ASSIGN:r=execute(n[0],x);t=n[0].assignOp;if(t)u=getValue(r);v=getValue(execute(n[1],x));if(t)switch(t){case BITWISE_OR:v=u|v;break;case BITWISE_XOR:v=u^v;break;case BITWISE_AND:v=u&v;break;case LSH:v=u<<v;break;case RSH:v=u>>v;break;case URSH:v=u>>>v;break;case PLUS:v=u+v;break;case MINUS:v=u-v;break;case MUL:v=u*v;break;case DIV:v=u/v;break;case MOD:v=u%v;break};putValue(r,v,n[0]);break;case CONDITIONAL:v=getValue(execute(n[0],x))?getValue(execute(n[1],x)):getValue(execute(n[2],x));break;case OR:v=getValue(execute(n[0],x))||getValue(execute(n[1],x));break;case AND:v=getValue(execute(n[0],x))&&getValue(execute(n[1],x));break;case BITWISE_OR:v=getValue(execute(n[0],x))|getValue(execute(n[1],x));break;case BITWISE_XOR:v=getValue(execute(n[0],x))^getValue(execute(n[1],x));break;case BITWISE_AND:v=getValue(execute(n[0],x))&getValue(execute(n[1],x));break;case EQ:v=getValue(execute(n[0],x))==getValue(execute(n[1],x));break;case NE:v=getValue(execute(n[0],x))!=getValue(execute(n[1],x));break;case STRICT_EQ:v=getValue(execute(n[0],x))===getValue(execute(n[1],x));break;case STRICT_NE:v=getValue(execute(n[0],x))!==getValue(execute(n[1],x));break;case LT:v=getValue(execute(n[0],x))<getValue(execute(n[1],x));break;case LE:v=getValue(execute(n[0],x))<=getValue(execute(n[1],x));break;case GE:v=getValue(execute(n[0],x))>=getValue(execute(n[1],x));break;case GT:v=getValue(execute(n[0],x))>getValue(execute(n[1],x));break;case IN:v=getValue(execute(n[0],x)) in getValue(execute(n[1],x));break;case INSTANCEOF:t=getValue(execute(n[0],x));u=getValue(execute(n[1],x));if(isObject(u)&&typeof u.__hasInstance__=="function"){v=u.__hasInstance__(t)}else v=t instanceof u;break;case LSH:v=getValue(execute(n[0],x))<<getValue(execute(n[1],x));break;case RSH:v=getValue(execute(n[0],x))>>getValue(execute(n[1],x));break;case URSH:v=getValue(execute(n[0],x))>>>getValue(execute(n[1],x));break;case PLUS:v=getValue(execute(n[0],x))+getValue(execute(n[1],x));break;case MINUS:v=getValue(execute(n[0],x))-getValue(execute(n[1],x));break;case MUL:v=getValue(execute(n[0],x))*getValue(execute(n[1],x));break;case DIV:v=getValue(execute(n[0],x))/getValue(execute(n[1],x));break;case MOD:v=getValue(execute(n[0],x))%getValue(execute(n[1],x));break;case DELETE:t=execute(n[0],x);v=!(t instanceof Reference)||delete t.base[t.propertyName];break;case VOID:getValue(execute(n[0],x));break;case TYPEOF:t=execute(n[0],x);if(t instanceof Reference)t=t.base?t.base[t.propertyName]:undefined;v=typeof t;break;case NOT:v=!getValue(execute(n[0],x));break;case BITWISE_NOT:v=~getValue(execute(n[0],x));break;case UNARY_PLUS:v=+getValue(execute(n[0],x));break;case UNARY_MINUS:v=-getValue(execute(n[0],x));break;case INCREMENT:case DECREMENT:t=execute(n[0],x);u=Number(getValue(t));if(n.postfix)v=u;putValue(t,(n.type==INCREMENT)?++u:--u,n[0]);if(!n.postfix)v=u;break;case DOT:r=execute(n[0],x);t=getValue(r);u=n[1].value;v=new Reference(toObject(t,r,n[0]),u,n);break;case INDEX:r=execute(n[0],x);t=getValue(r);u=getValue(execute(n[1],x));v=new Reference(toObject(t,r,n[0]),String(u),n);break;case LIST:v={};for(i=0,j=n.length;i<j;i++){u=getValue(execute(n[i],x));v.__defineProperty__(i,u,false,false,true)};v.__defineProperty__('length',i,false,false,true);break;case CALL:r=execute(n[0],x);a=execute(n[1],x);f=getValue(r);if(isPrimitive(f)||typeof f.__call__!="function")throw new TypeError(r+" is not callable",n[0].filename,n[0].lineno);t=(r instanceof Reference)?r.base:null;if(t instanceof Activation)t=null;v=f.__call__(t,a,x);break;case NEW:case NEW_WITH_ARGS:r=execute(n[0],x);f=getValue(r);if(n.type==NEW){a={};a.__defineProperty__('length',0,false,false,true)}else a=execute(n[1],x);if(isPrimitive(f)||typeof f.__construct__!="function")throw new TypeError(r+" is not a constructor",n[0].filename,n[0].lineno);v=f.__construct__(a,x);break;case ARRAY_INIT:v=[];for(i=0,j=n.length;i<j;i++)if(n[i])v[i]=getValue(execute(n[i],x));v.length=j;break;case OBJECT_INIT:v={};for(i=0,j=n.length;i<j;i++){t=n[i];if(t.type==PROPERTY_INIT){v[t[0].value]=getValue(execute(t[1],x))}else{f=new FunctionObject(t,x.scope);u=(t.type==GETTER)?'__defineGetter__':'__defineSetter__';v[u](t.name,thunk(f,x))}};break;case NULL:v=null;break;case THIS:v=x.thisObject;break;case TRUE:v=true;break;case FALSE:v=false;break;case IDENTIFIER:for(s=x.scope;s;s=s.parent)if(n.value in s.object)break;v=new Reference(s&&s.object,n.value,n);break;case NUMBER:case STRING:case REGEXP:v=n.value;break;case GROUP:v=execute(n[0],x);break;default:throw "PANIC: unknown operation "+n.type+": "+uneval(n)};return v}+function Activation(f,a){for(var i=0,j=f.params.length;i<j;i++)this.__defineProperty__(f.params[i],a[i],true);this.__defineProperty__('arguments',a,true)};Activation.prototype.__defineProperty__=Object.prototype.__defineProperty__;Activation.prototype.__proto__=null;delete Activation.prototype.constructor+function FunctionObject(node,scope){this.node=node;this.scope=scope;this.__defineProperty__('length',node.params.length,true,true,true);var proto={};this.__defineProperty__('prototype',proto,true);proto.__defineProperty__('constructor',this,false,false,true)};var FOp=FunctionObject.prototype={__call__:function(t,a,x){var x2=new ExecutionContext(FUNCTION_CODE);x2.thisObject=t||global;x2.caller=x;x2.callee=this;a.__defineProperty__('callee',this,false,false,true);var f=this.node;x2.scope={object:new Activation(f,a),parent:this.scope};ExecutionContext.current=x2;try{execute(f.body,x2)}catch(e if e==RETURN){return x2.result}catch(e if e==THROW){x.result=x2.result;throw THROW}finally{ExecutionContext.current=x};return undefined},__construct__:function(a,x){var o=new Object,p=this.prototype;if(isObject(p))o.__proto__=p;var v=this.__call__(o,a,x);if(isObject(v))return v;return o},__hasInstance__:function(v){if(isPrimitive(v))return false;var p=this.prototype;if(isPrimitive(p))throw new TypeError("'prototype' property is not an object",this.node.filename,this.node.lineno);var o;while((o=v.__proto__)){if(o==p)return true;v=o};return false},toString:function(){return this.node.getSource()},apply:function(t,a){if(typeof this.__call__!="function")throw new TypeError("Function.prototype.apply called on uncallable object");if(t===undefined||t===null){t=global}else if(typeof t!="object")t=toObject(t,t);if(a===undefined||a===null){a={};a.__defineProperty__('length',0,false,false,true)}else if(a instanceof Array){var v={};for(var i=0,j=a.length;i<j;i++)v.__defineProperty__(i,a[i],false,false,true);v.__defineProperty__('length',i,false,false,true);a=v}else if(!(a instanceof Object))throw new TypeError("Second argument to Function.prototype.apply must be an array or arguments object",this.node.filename,this.node.lineno);return this.__call__(t,a,ExecutionContext.current)},call:function(t){var a=Array.prototype.splice.call(arguments,1);return this.apply(t,a)}};reflectClass('Function',FOp);var Fp=Function.prototype,REp=RegExp.prototype;if(!('__call__' in Fp)){Fp.__defineProperty__('__call__',function(t,a,x){a=Array.prototype.splice.call(a,0,a.length);return this.apply(t,a)},true,true,true);REp.__defineProperty__('__call__',function(t,a,x){a=Array.prototype.splice.call(a,0,a.length);return this.exec.apply(this,a)},true,true,true);Fp.__defineProperty__('__construct__',function(a,x){a=Array.prototype.splice.call(a,0,a.length);return this.__applyConstructor__(a)},true,true,true);Fp.__defineProperty__('__hasInstance__',function(v){return v instanceof Function||v instanceof global.Function},true,true,true)}+function thunk(f,x){return function(){return f.__call__(this,arguments,x)}}+function evaluate(s,f,l){if(typeof s!="string")return s;var x=ExecutionContext.current,x2=new ExecutionContext(GLOBAL_CODE);ExecutionContext.current=x2;try{execute(parse(s,f,l),x2)}catch(e if e==THROW){if(x){x.result=x2.result;throw THROW};throw x2.result}finally{ExecutionContext.current=x};return x2.result}
+ test/pminified/122_jsexec2.js view
@@ -0,0 +1,1 @@+function execute(n,x){switch(n.type){case CONST:for(i=0,j=n.length;i<j;i++){u=n[i].initializer;if(!u)continue;t=n[i].name;for(s=x.scope;s;s=s.parent)if(hasDirectProperty(s.object,t))break;u=getValue(execute(u,x));if(n.type==CONST){s.object.__defineProperty__(t,u,x.type!=EVAL_CODE,true)}else s.object[t]=u};break}}
+ test/pminified/122_jsexec3.js view
@@ -0,0 +1,2 @@+function execute(n,x){switch(n.type){case SWITCH:s=getValue(execute(n.discriminant,x));a=n.cases;var matchDefault=false;switch_loop:for(i=0,j=a.length;;i++){if(i==j){if(n.defaultIndex>=0){i=n.defaultIndex-1;matchDefault=true;continue};break};t=a[i];if(t.type==CASE){u=getValue(execute(t.caseLabel,x))}else{if(!matchDefault)continue;u=s};if(u===s)for(;;){if(t.statements.length)try{execute(t.statements,x)}catch(e if e==BREAK&&x.target==n){break switch_loop};if(++i==j)break switch_loop;t=a[i]}};break;default:throw "PANIC: unknown operation "+n.type+": "+uneval(n)};return v}+
+ test/pminified/123_jsparse.js view
@@ -0,0 +1,16 @@+var opRegExpSrc="^";for(i in opTypeNames){if(i=='\n')continue;if(opRegExpSrc!="^")opRegExpSrc+="|^";opRegExpSrc+=i.replace(/[?|^&(){}\[\]+\-*\/\.]/g,"\\$&")};var opRegExp=new RegExp(opRegExpSrc),fpRegExp=/^\d+\.\d*(?:[eE][-+]?\d+)?|^\d+(?:\.\d*)?[eE][-+]?\d+|^\.\d+(?:[eE][-+]?\d+)?/+function Tokenizer(s,f,l){this.cursor=0;this.source=String(s);this.tokens=[];this.tokenIndex=0;this.lookahead=0;this.scanNewlines=false;this.scanOperand=true;this.filename=f||"";this.lineno=l||1};Tokenizer.prototype={get input(){return this.source.substring(this.cursor)}}+function CompilerContext(inFunction){this.inFunction=inFunction;this.stmtStack=[];this.funDecls=[];this.varDecls=[]};var CCp=CompilerContext.prototype;CCp.bracketLevel=CCp.curlyLevel=CCp.parenLevel=CCp.hookLevel=0;CCp.ecmaStrictMode=CCp.inForLoopInit=false+function Script(t,x){var n=Statements(t,x);n.type=SCRIPT;n.funDecls=x.funDecls;n.varDecls=x.varDecls;return n};Array.prototype.__defineProperty__('top',function(){return this.length&&this[this.length-1]},false,false,true)+function Node(t,type){var token=t.token;if(token){this.type=type||token.type;this.value=token.value;this.lineno=token.lineno;this.start=token.start;this.end=token.end}else{this.type=type;this.lineno=t.lineno};this.tokenizer=t;for(var i=2;i<arguments.length;i++)this.push(arguments[i])};var Np=Node.prototype=new Array();Np.constructor=Node;Np.toSource=Object.prototype.toSource;Np.push=function(kid){if(kid.start<this.start)this.start=kid.start;if(this.end<kid.end)this.end=kid.end;return Array.prototype.push.call(this,kid)};Node.indentLevel=0+function tokenstr(tt){var t=tokens[tt];return/^\W/.test(t)?opTypeNames[t]:t.toUpperCase()};Np.toString=function(){var a=[];for(var i in this)if(this.hasOwnProperty(i)&&i!='type')a.push({id:i,value:this[i]});a.sort(function(a,b){return(a.id<b.id)?-1:1});const INDENTATION="    ";var n=++Node.indentLevel,s="{\n"+INDENTATION.repeat(n)+"type: "+tokenstr(this.type);for(i=0;i<a.length;i++)s+=",\n"+INDENTATION.repeat(n)+a[i].id+": "+a[i].value;n=--Node.indentLevel;s+="\n"+INDENTATION.repeat(n)+"}";return s};Np.getSource=function(){return this.tokenizer.source.slice(this.start,this.end)};Np.__defineGetter__('filename',function(){return this.tokenizer.filename});String.prototype.__defineProperty__('repeat',function(n){var s="",t=this+s;while(--n>=0)s+=t;return s},false,false,true)+function nest(t,x,node,func,end){x.stmtStack.push(node);var n=func(t,x);x.stmtStack.pop();end&&t.mustMatch(end);return n}+function Statements(t,x){var n=new Node(t,BLOCK);x.stmtStack.push(n);while(!t.done&&t.peek()!=RIGHT_CURLY)n.push(Statement(t,x));x.stmtStack.pop();return n}+function Block(t,x){t.mustMatch(LEFT_CURLY);var n=Statements(t,x);t.mustMatch(RIGHT_CURLY);return n};const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2+function Statement(t,x){var i,label,n,n2,ss,tt=t.get();switch(tt){case FUNCTION:return FunctionDefinition(t,x,true,(x.stmtStack.length>1)?STATEMENT_FORM:DECLARED_FORM);case LEFT_CURLY:n=Statements(t,x);t.mustMatch(RIGHT_CURLY);return n;case IF:n=new Node(t);n.condition=ParenExpression(t,x);x.stmtStack.push(n);n.thenPart=Statement(t,x);n.elsePart=t.match(ELSE)?Statement(t,x):null;x.stmtStack.pop();return n;case SWITCH:n=new Node(t);t.mustMatch(LEFT_PAREN);n.discriminant=Expression(t,x);t.mustMatch(RIGHT_PAREN);n.cases=[];n.defaultIndex=-1;x.stmtStack.push(n);t.mustMatch(LEFT_CURLY);while((tt=t.get())!=RIGHT_CURLY){switch(tt){case DEFAULT:if(n.defaultIndex>=0)throw t.newSyntaxError("More than one switch default");case CASE:n2=new Node(t);if(tt==DEFAULT){n.defaultIndex=n.cases.length}else n2.caseLabel=Expression(t,x,COLON);break;default:throw t.newSyntaxError("Invalid switch case")};t.mustMatch(COLON);n2.statements=new Node(t,BLOCK);while((tt=t.peek())!=CASE&&tt!=DEFAULT&&tt!=RIGHT_CURLY)n2.statements.push(Statement(t,x));n.cases.push(n2)};x.stmtStack.pop();return n;case FOR:n=new Node(t);n.isLoop=true;t.mustMatch(LEFT_PAREN);if((tt=t.peek())!=SEMICOLON){x.inForLoopInit=true;if(tt==VAR||tt==CONST){t.get();n2=Variables(t,x)}else n2=Expression(t,x);x.inForLoopInit=false};if(n2&&t.match(IN)){n.type=FOR_IN;if(n2.type==VAR){if(n2.length!=1)throw new SyntaxError("Invalid for..in left-hand side",t.filename,n2.lineno);n.iterator=n2[0];n.varDecl=n2}else{n.iterator=n2;n.varDecl=null};n.object=Expression(t,x)}else{n.setup=n2||null;t.mustMatch(SEMICOLON);n.condition=(t.peek()==SEMICOLON)?null:Expression(t,x);t.mustMatch(SEMICOLON);n.update=(t.peek()==RIGHT_PAREN)?null:Expression(t,x)};t.mustMatch(RIGHT_PAREN);n.body=nest(t,x,n,Statement);return n;case WHILE:n=new Node(t);n.isLoop=true;n.condition=ParenExpression(t,x);n.body=nest(t,x,n,Statement);return n;case DO:n=new Node(t);n.isLoop=true;n.body=nest(t,x,n,Statement,WHILE);n.condition=ParenExpression(t,x);if(!x.ecmaStrictMode){t.match(SEMICOLON);return n};break;case BREAK:case CONTINUE:n=new Node(t);if(t.peekOnSameLine()==IDENTIFIER){t.get();n.label=t.token.value};ss=x.stmtStack;i=ss.length;label=n.label;if(label){do{if(--i<0)throw t.newSyntaxError("Label not found")}while(ss[i].label!=label)}else do{if(--i<0)throw t.newSyntaxError("Invalid "+((tt==BREAK)?"break":"continue"))}while(!ss[i].isLoop&&(tt!=BREAK||ss[i].type!=SWITCH));n.target=ss[i];break;case TRY:n=new Node(t);n.tryBlock=Block(t,x);n.catchClauses=[];while(t.match(CATCH)){n2=new Node(t);t.mustMatch(LEFT_PAREN);n2.varName=t.mustMatch(IDENTIFIER).value;if(t.match(IF)){if(x.ecmaStrictMode)throw t.newSyntaxError("Illegal catch guard");if(n.catchClauses.length&&!n.catchClauses.top().guard)throw t.newSyntaxError("Guarded catch after unguarded");n2.guard=Expression(t,x)}else n2.guard=null;t.mustMatch(RIGHT_PAREN);n2.block=Block(t,x);n.catchClauses.push(n2)};if(t.match(FINALLY))n.finallyBlock=Block(t,x);if(!n.catchClauses.length&&!n.finallyBlock)throw t.newSyntaxError("Invalid try statement");return n;case CATCH:case FINALLY:throw t.newSyntaxError(tokens[tt]+" without preceding try");case THROW:n=new Node(t);n.exception=Expression(t,x);break;case RETURN:if(!x.inFunction)throw t.newSyntaxError("Invalid return");n=new Node(t);tt=t.peekOnSameLine();if(tt!=END&&tt!=NEWLINE&&tt!=SEMICOLON&&tt!=RIGHT_CURLY)n.value=Expression(t,x);break;case WITH:n=new Node(t);n.object=ParenExpression(t,x);n.body=nest(t,x,n,Statement);return n;case VAR:case CONST:n=Variables(t,x);break;case DEBUGGER:n=new Node(t);break;case NEWLINE:case SEMICOLON:n=new Node(t,SEMICOLON);n.expression=null;return n;default:if(tt==IDENTIFIER&&t.peek()==COLON){label=t.token.value;ss=x.stmtStack;for(i=ss.length-1;i>=0;--i)if(ss[i].label==label)throw t.newSyntaxError("Duplicate label");t.get();n=new Node(t,LABEL);n.label=label;n.statement=nest(t,x,n,Statement);return n};n=new Node(t,SEMICOLON);t.unget();n.expression=Expression(t,x);n.end=n.expression.end;break};if(t.lineno==t.token.lineno){tt=t.peekOnSameLine();if(tt!=END&&tt!=NEWLINE&&tt!=SEMICOLON&&tt!=RIGHT_CURLY)throw t.newSyntaxError("Missing ; before statement")};t.match(SEMICOLON);return n}+function FunctionDefinition(t,x,requireName,functionForm){var f=new Node(t);if(f.type!=FUNCTION)f.type=(f.value=="get")?GETTER:SETTER;if(t.match(IDENTIFIER)){f.name=t.token.value}else if(requireName)throw t.newSyntaxError("Missing function identifier");t.mustMatch(LEFT_PAREN);f.params=[];var tt;while((tt=t.get())!=RIGHT_PAREN){if(tt!=IDENTIFIER)throw t.newSyntaxError("Missing formal parameter");f.params.push(t.token.value);if(t.peek()!=RIGHT_PAREN)t.mustMatch(COMMA)};t.mustMatch(LEFT_CURLY);var x2=new CompilerContext(true);f.body=Script(t,x2);t.mustMatch(RIGHT_CURLY);f.end=t.token.end;f.functionForm=functionForm;if(functionForm==DECLARED_FORM)x.funDecls.push(f);return f}+function Variables(t,x){var n=new Node(t);do{t.mustMatch(IDENTIFIER);var n2=new Node(t);n2.name=n2.value;if(t.match(ASSIGN)){if(t.token.assignOp)throw t.newSyntaxError("Invalid variable initialization");n2.initializer=Expression(t,x,COMMA)};n2.readOnly=(n.type==CONST);n.push(n2);x.varDecls.push(n2)}while(t.match(COMMA));return n}+function ParenExpression(t,x){t.mustMatch(LEFT_PAREN);var n=Expression(t,x);t.mustMatch(RIGHT_PAREN);return n};var opPrecedence={SEMICOLON:0,COMMA:1,ASSIGN:2,HOOK:2,COLON:2,CONDITIONAL:2,OR:4,AND:5,BITWISE_OR:6,BITWISE_XOR:7,BITWISE_AND:8,EQ:9,NE:9,STRICT_EQ:9,STRICT_NE:9,LT:10,LE:10,GE:10,GT:10,IN:10,INSTANCEOF:10,LSH:11,RSH:11,URSH:11,PLUS:12,MINUS:12,MUL:13,DIV:13,MOD:13,DELETE:14,VOID:14,TYPEOF:14,NOT:14,BITWISE_NOT:14,UNARY_PLUS:14,UNARY_MINUS:14,INCREMENT:15,DECREMENT:15,NEW:16,DOT:17};for(i in opPrecedence)opPrecedence[GLOBAL[i]]=opPrecedence[i];var opArity={COMMA:-2,ASSIGN:2,CONDITIONAL:3,OR:2,AND:2,BITWISE_OR:2,BITWISE_XOR:2,BITWISE_AND:2,EQ:2,NE:2,STRICT_EQ:2,STRICT_NE:2,LT:2,LE:2,GE:2,GT:2,IN:2,INSTANCEOF:2,LSH:2,RSH:2,URSH:2,PLUS:2,MINUS:2,MUL:2,DIV:2,MOD:2,DELETE:1,VOID:1,TYPEOF:1,NOT:1,BITWISE_NOT:1,UNARY_PLUS:1,UNARY_MINUS:1,INCREMENT:1,DECREMENT:1,NEW:1,NEW_WITH_ARGS:2,DOT:2,INDEX:2,CALL:2,ARRAY_INIT:1,OBJECT_INIT:1,GROUP:1};for(i in opArity)opArity[GLOBAL[i]]=opArity[i]+function Expression(t,x,stop){var n,id,tt,operators=[],operands=[],bl=x.bracketLevel,cl=x.curlyLevel,pl=x.parenLevel,hl=x.hookLevel+function reduce(){var n=operators.pop(),op=n.type,arity=opArity[op];if(arity==-2){var left=operands.length>=2&&operands[operands.length-2];if(left.type==op){var right=operands.pop();left.push(right);return left};arity=2};var a=operands.splice(operands.length-arity);for(var i=0;i<arity;i++)n.push(a[i]);if(n.end<t.token.end)n.end=t.token.end;operands.push(n);return n};loop:while((tt=t.get())!=END){if(tt==stop&&x.bracketLevel==bl&&x.curlyLevel==cl&&x.parenLevel==pl&&x.hookLevel==hl)break;switch(tt){case SEMICOLON:break loop;case ASSIGN:case HOOK:case COLON:if(t.scanOperand)break loop;while(opPrecedence[operators.top().type]>opPrecedence[tt]||(tt==COLON&&operators.top().type==ASSIGN))reduce();if(tt==COLON){n=operators.top();if(n.type!=HOOK)throw t.newSyntaxError("Invalid label");n.type=CONDITIONAL;--x.hookLevel}else{operators.push(new Node(t));if(tt==ASSIGN){operands.top().assignOp=t.token.assignOp}else ++x.hookLevel};t.scanOperand=true;break;case IN:if(x.inForLoopInit&&!x.hookLevel&&!x.bracketLevel&&!x.curlyLevel&&!x.parenLevel)break loop;case COMMA:case OR:case AND:case BITWISE_OR:case BITWISE_XOR:case BITWISE_AND:case EQ:case NE:case STRICT_EQ:case STRICT_NE:case LT:case LE:case GE:case GT:case INSTANCEOF:case LSH:case RSH:case URSH:case PLUS:case MINUS:case MUL:case DIV:case MOD:case DOT:if(t.scanOperand)break loop;while(opPrecedence[operators.top().type]>=opPrecedence[tt])reduce();if(tt==DOT){t.mustMatch(IDENTIFIER);operands.push(new Node(t,DOT,operands.pop(),new Node(t)))}else{operators.push(new Node(t));t.scanOperand=true};break;case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case UNARY_PLUS:case UNARY_MINUS:case NEW:if(!t.scanOperand)break loop;operators.push(new Node(t));break;case INCREMENT:case DECREMENT:if(t.scanOperand){operators.push(new Node(t))}else{while(opPrecedence[operators.top().type]>opPrecedence[tt])reduce();n=new Node(t,tt,operands.pop());n.postfix=true;operands.push(n)};break;case FUNCTION:if(!t.scanOperand)break loop;operands.push(FunctionDefinition(t,x,false,EXPRESSED_FORM));t.scanOperand=false;break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:if(!t.scanOperand)break loop;operands.push(new Node(t));t.scanOperand=false;break;case LEFT_BRACKET:if(t.scanOperand){n=new Node(t,ARRAY_INIT);while((tt=t.peek())!=RIGHT_BRACKET){if(tt==COMMA){t.get();n.push(null);continue};n.push(Expression(t,x,COMMA));if(!t.match(COMMA))break};t.mustMatch(RIGHT_BRACKET);operands.push(n);t.scanOperand=false}else{operators.push(new Node(t,INDEX));t.scanOperand=true;++x.bracketLevel};break;case RIGHT_BRACKET:if(t.scanOperand||x.bracketLevel==bl)break loop;while(reduce().type!=INDEX)continue;--x.bracketLevel;break;case LEFT_CURLY:if(!t.scanOperand)break loop;++x.curlyLevel;n=new Node(t,OBJECT_INIT);object_init:if(!t.match(RIGHT_CURLY)){do{tt=t.get();if((t.token.value=="get"||t.token.value=="set")&&t.peek()==IDENTIFIER){if(x.ecmaStrictMode)throw t.newSyntaxError("Illegal property accessor");n.push(FunctionDefinition(t,x,true,EXPRESSED_FORM))}else{switch(tt){case IDENTIFIER:case NUMBER:case STRING:id=new Node(t);break;case RIGHT_CURLY:if(x.ecmaStrictMode)throw t.newSyntaxError("Illegal trailing ,");break object_init;default:throw t.newSyntaxError("Invalid property name")};t.mustMatch(COLON);n.push(new Node(t,PROPERTY_INIT,id,Expression(t,x,COMMA)))}}while(t.match(COMMA));t.mustMatch(RIGHT_CURLY)};operands.push(n);t.scanOperand=false;--x.curlyLevel;break;case RIGHT_CURLY:if(!t.scanOperand&&x.curlyLevel!=cl)throw "PANIC: right curly botch";break loop;case LEFT_PAREN:if(t.scanOperand){operators.push(new Node(t,GROUP))}else{while(opPrecedence[operators.top().type]>opPrecedence[NEW])reduce();n=operators.top();t.scanOperand=true;if(t.match(RIGHT_PAREN)){if(n.type==NEW){--operators.length;n.push(operands.pop())}else n=new Node(t,CALL,operands.pop(),new Node(t,LIST));operands.push(n);t.scanOperand=false;break};if(n.type==NEW){n.type=NEW_WITH_ARGS}else operators.push(new Node(t,CALL))};++x.parenLevel;break;case RIGHT_PAREN:if(t.scanOperand||x.parenLevel==pl)break loop;while((tt=reduce().type)!=GROUP&&tt!=CALL&&tt!=NEW_WITH_ARGS)continue;if(tt!=GROUP){n=operands.top();if(n[1].type!=COMMA){n[1]=new Node(t,LIST,n[1])}else n[1].type=LIST};--x.parenLevel;break;default:break loop}};if(x.hookLevel!=hl)throw t.newSyntaxError("Missing : after ?");if(x.parenLevel!=pl)throw t.newSyntaxError("Missing ) in parenthetical");if(x.bracketLevel!=bl)throw t.newSyntaxError("Missing ] in index expression");if(t.scanOperand)throw t.newSyntaxError("Missing operand");t.scanOperand=true;t.unget();while(operators.length)reduce();return operands.pop()}+function parse(s,f,l){var t=new Tokenizer(s,f,l),x=new CompilerContext(false),n=Script(t,x);if(!t.done)throw t.newSyntaxError("Syntax error");return n}
+ test/pminified/130_htojs.js view
@@ -0,0 +1,10 @@+var conIdx={},funIdx={},strIdx={};Number.prototype._c=function(){return this};Number.prototype._r=false;Number.prototype._chr=false;Boolean.prototype._c=function(){return new HSData(this.valueOf()?true:false,[])};Boolean.prototype._r=true;String.prototype._c=function(){var cmeth=this._c;this._c=function(){throw ("B '"+this+"' blackhole: thunk reentered")};try{var res=consStr(this);this._r=true;this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};String.prototype._r=true;Array.prototype._c=function(){var cmeth=this._c;this._c=function(){throw ("B ["+this.toString()+"] blackhole: thunk reentered")};try{var res=consArr(this);this._r=true;this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};Array.prototype._r=true;Array.prototype._toArray=function(){return this};var consStr=function(s){if(s.length==0){return new HSEOL()}else{var hdc=mkChar(s.charCodeAt(0));return new HSCons(hdc,s.length>1?s.substring(1):consStr(""))}},consArr=function(ar){if(ar.length==0){return new HSEOL()}else return new HSCons(ar[0],ar.length>1?ar.slice(1):consArr([]))}+function mkChar(c){var n=new Number(c);n._chr=true;return n}+function HSCons(head,tail){this._r=false;this._c=function(){return this};this._t=conIdx['Prelude.:'];this._f=[head,tail]};HSCons.prototype.toString=function(){var evhead=exprEval(this._f[0]);if(evhead._chr==true){return(String.fromCharCode(evhead)+(exprEval(this._f[1])).toString())}else return this._toArray().toString()};HSCons.prototype._toArray=function(){return[exprEval(this._f[0])].concat(exprEval(this._f[1])._toArray())}+function HSEOL(){this._r=false;this._c=function(){return this};this._t=conIdx['Prelude.[]'];this._f=[];this.toString=function(){return""};this._toArray=function(){return[]}}+function HSFun(name,arity,body){this._n=name;this._r=(arity==0);this._x=arity;this._d=this;this._y=0;this._u=null;this._b=body};HSFun.prototype._c=function(){if(!this._r)return this;var cmeth=this._c;this._c=function(){throw ("B "+this._n+" blackhole: thunk reentered")};try{var res=this._b();this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};HSFun.prototype._ap=function(targs){if(targs.length==0)return this;return new HSDly(this,this,targs)}+function HSDly(fun,up,targs){this._a=targs;this._n=fun._n;this._d=fun;this._u=up;this._y=targs.length+up._y;this._r=(this._y>=fun._x)};HSDly.prototype._c=function(){if(!this._r)return this;var cmeth=this._c;this._c=function(){throw ("B "+this._n+" blackhole: thunk reentered")};var cargs=this._a,stack=this._u;for(;stack._u;stack=stack._u)cargs=stack._a.concat(cargs);var res;try{if(cargs.length==this._d._x){res=this._d._b.apply(this._d,cargs);this._u=null;this._c=function(){return res}}else{var evd;if(this._d._x==0){evd=exprEval(this._d);this._a=cargs}else{var feed=cargs.slice(0,this._d._x),over=cargs.slice(this._d._x);evd=exprEval(this._d._ap(feed));this._a=over};this._n=evd._n;this._d=evd._d;this._u=evd;this._y=this._a.length+evd._y;this._r=(this._y>=this._d._x);res=this;this._c=cmeth};return res}catch(e){this._c=cmeth;throw (e)}};HSDly.prototype._ap=function(targs){if(targs.length==0)return this;return new HSDly(this._d,this,targs)}+function HSData(con,arrs){this._r=false;this._c=function(){return this};this._t=con;this._f=arrs}+function exprEval(e){for(var ex=e;ex!=undefined&&ex._r;ex=ex._c());return ex}+function cbrApply(func,thisp,args){if(func.apply){return func.apply(thisp,args)}else{var s="func(";for(var i=0;i<args.length;i++)s+=(i==0?"":",")+"args["+i+"]";s+=")";return eval(s)}}+function newXmlHttpRequest(){var xmlhttp;xmlhttp=null;if(window.XMLHttpRequest){xmlhttp=new XMLHttpRequest()}else if(window.ActiveXObject){xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}else throw "R XML HTTP Request not supported";return xmlhttp};conIdx["Data.Ratio.:%"]=(-4);conIdx["Echo.JS"]=(-5);conIdx["Prelude.()"]=(-6);conIdx["Prelude.(,)"]=(-7);conIdx["Prelude.(,,)"]=(-8);conIdx["Prelude.(,,,)"]=(-9);conIdx["Prelude.(,,,,,,,)"]=(-10);conIdx["Prelude.(,,,,,,,,)"]=(-11);conIdx["Prelude.:"]=3;conIdx["Prelude.EQ"]=13;conIdx["Prelude.False"]=false;conIdx["Prelude.GT"]=15;conIdx["Prelude.Just"]=16;conIdx["Prelude.LT"]=17;conIdx["Prelude.Nothing"]=18;conIdx["Prelude.True"]=true;conIdx["Prelude.[]"]=2;strIdx.F_0="Data.Char.isUpper";strIdx.F_1="Data.Char.lexLitChar";strIdx.F_2="Data.Char.toUpper";strIdx.F_4="Data.Maybe.fromJust";strIdx.F_5="Data.Maybe.fromMaybe";strIdx.F_6="Data.Ratio.%";strIdx.F_8="Data.Ratio.reduce";strIdx.F_9="Data._CharNumeric._LAMBDA409";strIdx.F_U="Data.Char.asciiTab";strIdx.F_V="Data.Char.intToDigit";strIdx.F_W="Data.Char.isAlpha";strIdx.F_X="Data.Char.isAlphaNum";strIdx.F_Y="Data.Char.isLower";strIdx.F_Z="Data.Char.isSpace";strIdx.F_b="Control.Monad.when";strIdx.F_b0="Echo._LAMBDA640";strIdx.F_b9="Echo._LAMBDA649";strIdx.F_bH="Echo._LAMBDA621";strIdx.F_bJ="Echo._LAMBDA623";strIdx.F_bS="Echo._LAMBDA632";strIdx.F_bT="Echo._LAMBDA633";strIdx.F_bU="Echo._LAMBDA634";strIdx.F_bV="Echo._LAMBDA635";strIdx.F_bW="Echo._LAMBDA636";strIdx.F_bX="Echo._LAMBDA637";strIdx.F_bY="Echo._LAMBDA638";strIdx.F_bZ="Echo._LAMBDA639";strIdx.F_ba="Data._CharNumeric._LAMBDA410";strIdx.F_bb="Data._CharNumeric._LAMBDA411";strIdx.F_be="Data._CharNumeric.chr";strIdx.F_bf="Data._CharNumeric.digitToInt";strIdx.F_bg="Data._CharNumeric.isDigit";strIdx.F_bh="Data._CharNumeric.isHexDigit";strIdx.F_bi="Data._CharNumeric.isOctDigit";strIdx.F_bj="Data._CharNumeric.nonnull";strIdx.F_bk="Data._CharNumeric.ord";strIdx.F_bl="Data._CharNumeric.readDec";strIdx.F_bm="Data._CharNumeric.readInt";strIdx.F_bn="Echo.Prelude.Monad.Echo.JS";strIdx.F_bo="Echo.Prelude.Monad.Echo.JS.>>";strIdx.F_bp="Echo.Prelude.Monad.Echo.JS.>>=";strIdx.F_bq="Echo.Prelude.Monad.Echo.JS.fail";strIdx.F_br="Echo.Prelude.Monad.Echo.JS.return";strIdx.F_c="Data.Char.Data.Char.Prelude.244.prefix";strIdx.F_c0="Prelude.Prelude.Enum.Prelude.Integer.enumFromThen";strIdx.F_c1="Prelude.Prelude.Enum.Prelude.Integer.enumFromThenTo";strIdx.F_c2="Prelude.Prelude.Enum.Prelude.Integer.enumFromTo";strIdx.F_c3="Prelude.Prelude.Enum.Prelude.Integer.fromEnum";strIdx.F_c4="Prelude.Prelude.Enum.Prelude.Integer.pred";strIdx.F_c5="Prelude.Prelude.Enum.Prelude.Integer.succ";strIdx.F_c6="Prelude.Prelude.Enum.Prelude.Integer.toEnum";strIdx.F_c7="Prelude.Prelude.Enum.Prelude.Ordering.fromEnum";strIdx.F_c8="Prelude.Prelude.Eq.Prelude.Char";strIdx.F_c9="Prelude.Prelude.Eq.Prelude.Char./=";strIdx.F_cA="Numeric.showIntAtBase";strIdx.F_cB="Numeric.showSigned";strIdx.F_cC="Prelude.$";strIdx.F_cD="Prelude.&&";strIdx.F_cE="Prelude.*";strIdx.F_cF="Prelude.+";strIdx.F_cG="Prelude.++";strIdx.F_cH="Prelude.-";strIdx.F_cI="Prelude..";strIdx.F_cJ="Prelude.<";strIdx.F_cK="Prelude.<=";strIdx.F_cL="Prelude.==";strIdx.F_cM="Prelude.>";strIdx.F_cN="Prelude.>=";strIdx.F_cO="Prelude.Prelude.Enum.Prelude.Char.fromEnum";strIdx.F_cP="Prelude.Prelude.Enum.Prelude.Int";strIdx.F_cQ="Prelude.Prelude.Enum.Prelude.Int.enumFrom";strIdx.F_cR="Prelude.Prelude.Enum.Prelude.Int.enumFromThen";strIdx.F_cS="Prelude.Prelude.Enum.Prelude.Int.enumFromThenTo";strIdx.F_cT="Prelude.Prelude.Enum.Prelude.Int.enumFromTo";strIdx.F_cU="Prelude.Prelude.Enum.Prelude.Int.fromEnum";strIdx.F_cV="Prelude.Prelude.Enum.Prelude.Int.pred";strIdx.F_cW="Prelude.Prelude.Enum.Prelude.Int.succ";strIdx.F_cX="Prelude.Prelude.Enum.Prelude.Int.toEnum";strIdx.F_cY="Prelude.Prelude.Enum.Prelude.Integer";strIdx.F_cZ="Prelude.Prelude.Enum.Prelude.Integer.enumFrom";strIdx.F_ca="Echo._LAMBDA650";strIdx.F_cb="Echo._LAMBDA651";strIdx.F_cc="Echo.asInt";strIdx.F_cd="Echo.asString";strIdx.F_ce="Echo.catchJS";strIdx.F_cf="Echo.getDocument";strIdx.F_cg="Echo.getProperty";strIdx.F_ch="Echo.getTime";strIdx.F_ci="Echo.inkey";strIdx.F_cj="Echo.main";strIdx.F_ck="Echo.regEventHandler";strIdx.F_cl="Echo.runMethod";strIdx.F_cm="Echo.setProperty";strIdx.F_cn="Numeric.Numeric.Prelude.413.read'";strIdx.F_co="Numeric.Numeric.Prelude.414.read''";strIdx.F_cq="Numeric._LAMBDA2002";strIdx.F_cr="Numeric._LAMBDA2003";strIdx.F_ct="Numeric._LAMBDA2057";strIdx.F_cu="Numeric._LAMBDA2058";strIdx.F_cv="Numeric._LAMBDA2059";strIdx.F_cw="Numeric._LAMBDA2060";strIdx.F_cx="Numeric.lexDigits";strIdx.F_cy="Numeric.readSigned";strIdx.F_cz="Numeric.showInt";strIdx.F_d="Data.Char.Data.Char.Prelude.245.lexEsc";strIdx.F_d0="Prelude.Prelude.Ord.Prelude.Char.compare";strIdx.F_d1="Prelude.Prelude.Ord.Prelude.Char.max";strIdx.F_d2="Prelude.Prelude.Ord.Prelude.Char.min";strIdx.F_d3="Prelude.Prelude.Ord.Prelude.Eq";strIdx.F_d4="Prelude.Prelude.Ord.Prelude.Int";strIdx.F_d5="Prelude.Prelude.Ord.Prelude.Int.<";strIdx.F_d6="Prelude.Prelude.Ord.Prelude.Int.<=";strIdx.F_d7="Prelude.Prelude.Ord.Prelude.Int.>";strIdx.F_d8="Prelude.Prelude.Ord.Prelude.Int.>=";strIdx.F_d9="Prelude.Prelude.Ord.Prelude.Int.compare";strIdx.F_dA="Prelude.Prelude.Integral.Prelude.Integer.quotRem";strIdx.F_dB="Prelude.Prelude.Integral.Prelude.Integer.rem";strIdx.F_dC="Prelude.Prelude.Integral.Prelude.Integer.toInteger";strIdx.F_dD="Prelude.Prelude.Integral.Prelude.Real";strIdx.F_dE="Prelude.Prelude.Num.Prelude.Eq";strIdx.F_dF="Prelude.Prelude.Num.Prelude.Int";strIdx.F_dG="Prelude.Prelude.Num.Prelude.Int.*";strIdx.F_dH="Prelude.Prelude.Num.Prelude.Int.+";strIdx.F_dI="Prelude.Prelude.Num.Prelude.Int.-";strIdx.F_dJ="Prelude.Prelude.Num.Prelude.Int.abs";strIdx.F_dK="Prelude.Prelude.Num.Prelude.Int.fromInteger";strIdx.F_dL="Prelude.Prelude.Num.Prelude.Int.negate";strIdx.F_dM="Prelude.Prelude.Num.Prelude.Int.signum";strIdx.F_dN="Prelude.Prelude.Num.Prelude.Integer";strIdx.F_dO="Prelude.Prelude.Num.Prelude.Integer.*";strIdx.F_dP="Prelude.Prelude.Num.Prelude.Integer.+";strIdx.F_dQ="Prelude.Prelude.Num.Prelude.Integer.-";strIdx.F_dR="Prelude.Prelude.Num.Prelude.Integer.abs";strIdx.F_dS="Prelude.Prelude.Num.Prelude.Integer.fromInteger";strIdx.F_dT="Prelude.Prelude.Num.Prelude.Integer.negate";strIdx.F_dU="Prelude.Prelude.Num.Prelude.Integer.signum";strIdx.F_dV="Prelude.Prelude.Ord.Prelude.Char";strIdx.F_dW="Prelude.Prelude.Ord.Prelude.Char.<";strIdx.F_dX="Prelude.Prelude.Ord.Prelude.Char.<=";strIdx.F_dY="Prelude.Prelude.Ord.Prelude.Char.>";strIdx.F_dZ="Prelude.Prelude.Ord.Prelude.Char.>=";strIdx.F_da="Prelude.Prelude.Eq.Prelude.Char.==";strIdx.F_db="Prelude.Prelude.Eq.Prelude.Int";strIdx.F_dc="Prelude.Prelude.Eq.Prelude.Int./=";strIdx.F_dd="Prelude.Prelude.Eq.Prelude.Int.==";strIdx.F_de="Prelude.Prelude.Eq.Prelude.Integer";strIdx.F_df="Prelude.Prelude.Eq.Prelude.Integer./=";strIdx.F_dg="Prelude.Prelude.Eq.Prelude.Integer.==";strIdx.F_dh="Prelude.Prelude.Eq.Prelude.Ordering";strIdx.F_di="Prelude.Prelude.Eq.Prelude.Ordering./=";strIdx.F_dj="Prelude.Prelude.Eq.Prelude.Ordering.==";strIdx.F_dk="Prelude.Prelude.Eq.Prelude.[]";strIdx.F_dl="Prelude.Prelude.Eq.Prelude.[]./=";strIdx.F_dm="Prelude.Prelude.Eq.Prelude.[].==";strIdx.F_dn="Prelude.Prelude.Integral.Prelude.Int";strIdx.F_do="Prelude.Prelude.Integral.Prelude.Int.div";strIdx.F_dp="Prelude.Prelude.Integral.Prelude.Int.divMod";strIdx.F_dq="Prelude.Prelude.Integral.Prelude.Int.mod";strIdx.F_dr="Prelude.Prelude.Integral.Prelude.Int.quot";strIdx.F_ds="Prelude.Prelude.Integral.Prelude.Int.quotRem";strIdx.F_dt="Prelude.Prelude.Integral.Prelude.Int.rem";strIdx.F_du="Prelude.Prelude.Integral.Prelude.Int.toInteger";strIdx.F_dv="Prelude.Prelude.Integral.Prelude.Integer";strIdx.F_dw="Prelude.Prelude.Integral.Prelude.Integer.div";strIdx.F_dx="Prelude.Prelude.Integral.Prelude.Integer.divMod";strIdx.F_dy="Prelude.Prelude.Integral.Prelude.Integer.mod";strIdx.F_dz="Prelude.Prelude.Integral.Prelude.Integer.quot";strIdx.F_e="Data.Char.Data.Char.Prelude.246.match";strIdx.F_e0="Prelude.Prelude._.divMod";strIdx.F_e1="Prelude.Prelude._.enumFromThenTo";strIdx.F_e2="Prelude.Prelude._.enumFromTo";strIdx.F_e3="Prelude.Prelude._.fail";strIdx.F_e4="Prelude.Prelude._.max";strIdx.F_e5="Prelude.Prelude._.min";strIdx.F_e6="Prelude.Prelude._.pred";strIdx.F_e7="Prelude.Prelude._.readList";strIdx.F_e8="Prelude.Prelude._.show";strIdx.F_e9="Prelude.Prelude._.showList";strIdx.F_eA="Prelude.Prelude.Read.Prelude.Int";strIdx.F_eB="Prelude.Prelude.Read.Prelude.Int.readList";strIdx.F_eC="Prelude.Prelude.Read.Prelude.Int.readsPrec";strIdx.F_eD="Prelude.Prelude.Read.Prelude.Integer.readsPrec";strIdx.F_eE="Prelude.Prelude.Real.Prelude.Int";strIdx.F_eF="Prelude.Prelude.Real.Prelude.Int.toRational";strIdx.F_eG="Prelude.Prelude.Real.Prelude.Integer";strIdx.F_eH="Prelude.Prelude.Real.Prelude.Integer.toRational";strIdx.F_eI="Prelude.Prelude.Real.Prelude.Num";strIdx.F_eJ="Prelude.Prelude.Real.Prelude.Ord";strIdx.F_eK="Prelude.Prelude.Show.Prelude.Int";strIdx.F_eL="Prelude.Prelude.Show.Prelude.Int.show";strIdx.F_eM="Prelude.Prelude.Show.Prelude.Int.showList";strIdx.F_eN="Prelude.Prelude.Show.Prelude.Int.showsPrec";strIdx.F_eO="Prelude.Prelude.Show.Prelude.Int.showsType";strIdx.F_eP="Prelude.Prelude.Show.Prelude.Integer";strIdx.F_eQ="Prelude.Prelude.Show.Prelude.Integer.show";strIdx.F_eR="Prelude.Prelude.Show.Prelude.Integer.showList";strIdx.F_eS="Prelude.Prelude.Show.Prelude.Integer.showsPrec";strIdx.F_eT="Prelude.Prelude.Show.Prelude.Integer.showsType";strIdx.F_eU="Prelude.Prelude._./=";strIdx.F_eV="Prelude.Prelude._.<";strIdx.F_eW="Prelude.Prelude._.>";strIdx.F_eX="Prelude.Prelude._.>=";strIdx.F_eY="Prelude.Prelude._.compare";strIdx.F_eZ="Prelude.Prelude._.div";strIdx.F_ea="Prelude.Prelude.Ord.Prelude.Int.max";strIdx.F_eb="Prelude.Prelude.Ord.Prelude.Int.min";strIdx.F_ec="Prelude.Prelude.Ord.Prelude.Integer";strIdx.F_ed="Prelude.Prelude.Ord.Prelude.Integer.<";strIdx.F_ee="Prelude.Prelude.Ord.Prelude.Integer.<=";strIdx.F_ef="Prelude.Prelude.Ord.Prelude.Integer.>";strIdx.F_eg="Prelude.Prelude.Ord.Prelude.Integer.>=";strIdx.F_eh="Prelude.Prelude.Ord.Prelude.Integer.compare";strIdx.F_ei="Prelude.Prelude.Ord.Prelude.Integer.max";strIdx.F_ej="Prelude.Prelude.Ord.Prelude.Integer.min";strIdx.F_ek="Prelude.Prelude.Prelude.1812.lexString";strIdx.F_el="Prelude.Prelude.Prelude.1813.lexStrItem";strIdx.F_em="Prelude.Prelude.Prelude.1837.isSingle";strIdx.F_en="Prelude.Prelude.Prelude.1838.isSym";strIdx.F_eo="Prelude.Prelude.Prelude.1839.isIdInit";strIdx.F_ep="Prelude.Prelude.Prelude.1840.isIdChar";strIdx.F_eq="Prelude.Prelude.Prelude.1841.lexFracExp";strIdx.F_er="Prelude.Prelude.Prelude.1842.lexExp";strIdx.F_es="Prelude.Prelude.Prelude.1899.optional";strIdx.F_et="Prelude.Prelude.Prelude.1900.mandatory";strIdx.F_eu="Prelude.Prelude.Prelude.1937.gcd'";strIdx.F_ev="Prelude.Prelude.Prelude.535.readl";strIdx.F_ew="Prelude.Prelude.Prelude.536.readl'";strIdx.F_ex="Prelude.Prelude.Prelude.580.showl";strIdx.F_ey="Prelude.Prelude.Prelude.890.ll";strIdx.F_ez="Prelude.Prelude.Prelude.Read.Prelude.Int.readsPrec'Id 3510";strIdx.F_f1="Prelude._LAMBDA27500";strIdx.F_f2="Prelude._LAMBDA27501";strIdx.F_f6="Prelude._LAMBDA27620";strIdx.F_f7="Prelude._LAMBDA27621";strIdx.F_f8="Prelude._LAMBDA27631";strIdx.F_f9="Prelude._LAMBDA27632";strIdx.F_fA="Prelude._LAMBDA26955";strIdx.F_fE="Prelude._LAMBDA26959";strIdx.F_fF="Prelude._LAMBDA26960";strIdx.F_fG="Prelude._LAMBDA26961";strIdx.F_fH="Prelude._LAMBDA26962";strIdx.F_fJ="Prelude._LAMBDA26964";strIdx.F_fK="Prelude._LAMBDA26965";strIdx.F_fL="Prelude._LAMBDA26966";strIdx.F_fM="Prelude._LAMBDA26999";strIdx.F_fN="Prelude._LAMBDA27000";strIdx.F_fO="Prelude._LAMBDA27001";strIdx.F_fP="Prelude._LAMBDA27002";strIdx.F_fQ="Prelude._LAMBDA27003";strIdx.F_fR="Prelude._LAMBDA27004";strIdx.F_fS="Prelude._LAMBDA27005";strIdx.F_fT="Prelude._LAMBDA27006";strIdx.F_fU="Prelude._LAMBDA27007";strIdx.F_fV="Prelude._LAMBDA27008";strIdx.F_fW="Prelude._LAMBDA27246";strIdx.F_fa="Prelude.Prelude._.succ";strIdx.F_fc="Prelude._LAMBDA26931";strIdx.F_fd="Prelude._LAMBDA26932";strIdx.F_fe="Prelude._LAMBDA26933";strIdx.F_fk="Prelude._LAMBDA26939";strIdx.F_fm="Prelude._LAMBDA26941";strIdx.F_fn="Prelude._LAMBDA26942";strIdx.F_fo="Prelude._LAMBDA26943";strIdx.F_fr="Prelude._LAMBDA26946";strIdx.F_fs="Prelude._LAMBDA26947";strIdx.F_fv="Prelude._LAMBDA26950";strIdx.F_fw="Prelude._LAMBDA26951";strIdx.F_fx="Prelude._LAMBDA26952";strIdx.F_fz="Prelude._LAMBDA26954";strIdx.F_g0="Prelude.toInteger";strIdx.F_g1="Prelude.||";strIdx.F_g2="Roman.Roman.Prelude.221.k";strIdx.F_g3="Roman.Roman.Prelude.228.length";strIdx.F_g4="Roman._LAMBDA480";strIdx.F_g5="Roman._LAMBDA481";strIdx.F_g9="Roman.fromNumeral";strIdx.F_gA="Prelude.lookup";strIdx.F_gB="Prelude.map";strIdx.F_gC="Prelude.negate";strIdx.F_gD="Prelude.not";strIdx.F_gE="Prelude.or";strIdx.F_gF="Prelude.otherwise";strIdx.F_gG="Prelude.quot";strIdx.F_gH="Prelude.quotRem";strIdx.F_gI="Prelude.read";strIdx.F_gJ="Prelude.readParen";strIdx.F_gK="Prelude.reads";strIdx.F_gL="Prelude.readsPrec";strIdx.F_gM="Prelude.rem";strIdx.F_gN="Prelude.return";strIdx.F_gO="Prelude.reverse";strIdx.F_gP="Prelude.seq";strIdx.F_gQ="Prelude.show";strIdx.F_gR="Prelude.showChar";strIdx.F_gS="Prelude.showParen";strIdx.F_gT="Prelude.showString";strIdx.F_gU="Prelude.showsPrec";strIdx.F_gV="Prelude.signum";strIdx.F_gW="Prelude.snd";strIdx.F_gX="Prelude.span";strIdx.F_gY="Prelude.subtract";strIdx.F_gZ="Prelude.toEnum";strIdx.F_gb="Prelude._LAMBDA27663";strIdx.F_gd="Prelude._enumFromToDecC";strIdx.F_ge="Prelude._enumFromToIncC";strIdx.F_gf="Prelude._filter";strIdx.F_gg="Prelude._foldr";strIdx.F_gh="Prelude.abs";strIdx.F_gi="Prelude.any";strIdx.F_gj="Prelude.compare";strIdx.F_gk="Prelude.divMod";strIdx.F_gl="Prelude.dropWhile";strIdx.F_gm="Prelude.elem";strIdx.F_gn="Prelude.error";strIdx.F_go="Prelude.flip";strIdx.F_gp="Prelude.foldl";strIdx.F_gq="Prelude.foldl1";strIdx.F_gr="Prelude.foldr";strIdx.F_gs="Prelude.fromEnum";strIdx.F_gt="Prelude.fromInteger";strIdx.F_gu="Prelude.fromIntegral";strIdx.F_gv="Prelude.fst";strIdx.F_gw="Prelude.gcd";strIdx.F_gx="Prelude.id";strIdx.F_gy="Prelude.length";strIdx.F_gz="Prelude.lex";strIdx.F_hC="YHC.Primitive.primIntAbs";strIdx.F_hD="YHC.Primitive.primIntFromInteger";strIdx.F_hE="YHC.Primitive.primIntSignum";strIdx.F_hF="YHC.Primitive.primIntegerAdd";strIdx.F_hG="YHC.Primitive.primIntegerEq";strIdx.F_hH="YHC.Primitive.primIntegerFromInt";strIdx.F_hI="YHC.Primitive.primIntegerGe";strIdx.F_hJ="YHC.Primitive.primIntegerGt";strIdx.F_hK="YHC.Primitive.primIntegerLe";strIdx.F_hL="YHC.Primitive.primIntegerLt";strIdx.F_hM="YHC.Primitive.primIntegerMul";strIdx.F_hN="YHC.Primitive.primIntegerNe";strIdx.F_hO="YHC.Primitive.primIntegerNeg";strIdx.F_hP="YHC.Primitive.primIntegerQuot";strIdx.F_hQ="YHC.Primitive.primIntegerQuotRem";strIdx.F_hR="YHC.Primitive.primIntegerRem";strIdx.F_hS="YHC.Primitive.primIntegerSub";strIdx.F_ha="Roman.fromRoman";strIdx.F_hb="Roman.maxmunch";strIdx.F_hc="Roman.numerals";strIdx.F_hd="Roman.subnums";strIdx.F_he="Roman.toNumeral";strIdx.F_hf="Roman.toRoman";strIdx.F_hg="StdOverlay.StdOverlay.Prelude.255.showInt";strIdx.F_hh="StdOverlay.StdOverlay.Prelude.256.showPosInt";strIdx.F_m="Data.Char._LAMBDA1026";strIdx.F_n="Data.Char._LAMBDA1027";var F_b=new HSFun("F_b",3,function(_lJ,_lK,_lL){var c1=exprEval(_lK);switch((c1)._t){case true:return _lL;case false:return((exprEval(_lJ))._f[3])._ap([new HSData((-6),[])])};throw ('X ('+this._n+') '+c1.toSource())}),F_c=new HSFun("F_c",2,function(_lZ,_l0){var c2=exprEval(_l0);return function(_l1,_l2){return new HSData((-7),[new HSCons(_lZ,_l1),_l2])}((c2)._f[0],(c2)._f[1])}),F_d=new HSFun("F_d",1,function(_l3){var c3=exprEval(_l3);switch((c3)._t){case 3:return function(_l4,_l5){var c4=exprEval(((F_gm)._b(F_c8,_l4))._ap([F_l]));switch((c4)._t){case true:return new HSCons(new HSData((-7),[new HSCons(_l4,new HSEOL()),_l5]),new HSEOL());case false:var c5=exprEval(_l4);switch((c5).valueOf()){case 94:var c6=exprEval(_l5);switch((c6)._t){case 3:return function(_l6,_l7){var c7=exprEval((F_cD)._b((F_dZ)._b(_l6,mkChar(64)),(Number(exprEval(_l6)))<=(Number(exprEval(mkChar(95))))));switch((c7)._t){case true:return new HSCons(new HSData((-7),[new HSCons(mkChar(94),new HSCons(_l6,new HSEOL())),_l7]),new HSEOL());case false:var c8=exprEval((F_bg)._b(_l4));switch((c8)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c9=exprEval((F_0)._b(_l4));switch((c9)._t){case true:var c10=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c10)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c10)._f[0],(c10)._f[1])};throw ('X ('+this._n+') '+c10.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c9.toSource())};throw ('X ('+this._n+') '+c8.toSource())};throw ('X ('+this._n+') '+c7.toSource())}((c6)._f[0],(c6)._f[1]);default:var c11=exprEval((F_bg)._b(_l4));switch((c11)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c12=exprEval((F_0)._b(_l4));switch((c12)._t){case true:var c13=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c13)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c13)._f[0],(c13)._f[1])};throw ('X ('+this._n+') '+c13.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c12.toSource())};throw ('X ('+this._n+') '+c11.toSource())};throw ('X ('+this._n+') '+c6.toSource());case 111:return new HSCons((F_c)._ap([mkChar(111),new HSFun("F_gX",0,function(){return(F_gX)._b(F_bi,_l5)})]),new HSEOL());case 120:return new HSCons((F_c)._ap([mkChar(120),new HSFun("F_gX",0,function(){return(F_gX)._b(F_bh,_l5)})]),new HSEOL());default:var c14=exprEval((F_bg)._b(_l4));switch((c14)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c15=exprEval((F_0)._b(_l4));switch((c15)._t){case true:var c16=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c16)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c16)._f[0],(c16)._f[1])};throw ('X ('+this._n+') '+c16.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c15.toSource())};throw ('X ('+this._n+') '+c14.toSource())};throw ('X ('+this._n+') '+c5.toSource())};throw ('X ('+this._n+') '+c4.toSource())}((c3)._f[0],(c3)._f[1]);default:return new HSEOL()};throw ('X ('+this._n+') '+c3.toSource())}),F_e=new HSFun("F_e",3,function(_lS,_lT,_lU){var c17=exprEval(_lT);switch((c17)._t){case 3:return function(_lV,_lW){var c18=exprEval(_lU);switch((c18)._t){case 3:return function(_lX,_lY){var c19=exprEval(((exprEval(_lS))._f[1])._ap([_lV,_lX]));switch((c19)._t){case true:return(F_e)._ap([_lS,_lW,_lY]);case false:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c19.toSource())}((c18)._f[0],(c18)._f[1]);default:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c18.toSource())}((c17)._f[0],(c17)._f[1]);default:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c17.toSource())}),F_f="ESC",F_g="FS",F_h="GS",F_i="RS",F_j="US",F_k="SP",F_l="abfnrtv\\\"\'",F_m=new HSFun("F_m",3,function(_hd,_io,_iH){var c20=exprEval(_io);return function(_l8,_l9){var c21=exprEval(_l8);switch((c21)._t){case 2:return new HSCons(new HSData((-7),[_hd,_l9]),_iH);default:return _iH};throw ('X ('+this._n+') '+c21.toSource())}((c20)._f[0],(c20)._f[1])}),F_n=new HSFun("F_n",3,function(_l3,_hd,_he){return(F_gg)._b(new HSFun("F_m",0,function(){return(F_m)._ap([_hd])}),new HSCons((F_e)._ap([F_c8,_hd,_l3]),new HSEOL()),_he)}),F_o="DEL",F_p=" \u0009\u000a\u000d\u000c\u000b\xa0",F_q="Char.intToDigit: not a digit",F_r="Data.Char: Pattern match failure in function at 74:1-77:62.",F_s="Data.Char: Pattern match failure in function at 275:1-276:28.",F_t="NUL",F_u="SOH",F_v="STX",F_w="ETX",F_x="EOT",F_y="ENQ",F_z="ACK",F_A="BEL",F_B="BS",F_C="HT",F_D="LF",F_E="VT",F_F="FF",F_G="CR",F_H="SO",F_I="SI",F_J="DLE",F_K="DC1",F_L="DC2",F_M="DC3",F_N="DC4",F_O="NAK",F_P="SYN",F_Q="ETB",F_R="CAN",F_S="EM",F_T="SUB",F_U=new HSFun("F_U",0,function(){return new HSCons(new HSData((-7),[mkChar(0),F_t]),new HSCons(new HSData((-7),[mkChar(1),F_u]),new HSCons(new HSData((-7),[mkChar(2),F_v]),new HSCons(new HSData((-7),[mkChar(3),F_w]),new HSCons(new HSData((-7),[mkChar(4),F_x]),new HSCons(new HSData((-7),[mkChar(5),F_y]),new HSCons(new HSData((-7),[mkChar(6),F_z]),new HSCons(new HSData((-7),[mkChar(7),F_A]),new HSCons(new HSData((-7),[mkChar(8),F_B]),new HSCons(new HSData((-7),[mkChar(9),F_C]),new HSCons(new HSData((-7),[mkChar(10),F_D]),new HSCons(new HSData((-7),[mkChar(11),F_E]),new HSCons(new HSData((-7),[mkChar(12),F_F]),new HSCons(new HSData((-7),[mkChar(13),F_G]),new HSCons(new HSData((-7),[mkChar(14),F_H]),new HSCons(new HSData((-7),[mkChar(15),F_I]),new HSCons(new HSData((-7),[mkChar(16),F_J]),new HSCons(new HSData((-7),[mkChar(17),F_K]),new HSCons(new HSData((-7),[mkChar(18),F_L]),new HSCons(new HSData((-7),[mkChar(19),F_M]),new HSCons(new HSData((-7),[mkChar(20),F_N]),new HSCons(new HSData((-7),[mkChar(21),F_O]),new HSCons(new HSData((-7),[mkChar(22),F_P]),new HSCons(new HSData((-7),[mkChar(23),F_Q]),new HSCons(new HSData((-7),[mkChar(24),F_R]),new HSCons(new HSData((-7),[mkChar(25),F_S]),new HSCons(new HSData((-7),[mkChar(26),F_T]),new HSCons(new HSData((-7),[mkChar(27),F_f]),new HSCons(new HSData((-7),[mkChar(28),F_g]),new HSCons(new HSData((-7),[mkChar(29),F_h]),new HSCons(new HSData((-7),[mkChar(30),F_i]),new HSCons(new HSData((-7),[mkChar(31),F_j]),new HSCons(new HSData((-7),[mkChar(32),F_k]),new HSEOL())))))))))))))))))))))))))))))))))}),F_V=new HSFun("F_V",1,function(_mf){var c22=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(0),(Number(exprEval(_mf)))<=(9)));switch((c22)._t){case true:return(F_be)._ap([(exprEval((F_bk)._ap([mkChar(48)])))+(exprEval(_mf))]);case false:var c23=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(10),(Number(exprEval(_mf)))<=(15)));switch((c23)._t){case true:return(F_be)._ap([(exprEval((exprEval((F_bk)._ap([mkChar(97)])))+(exprEval(_mf))))-(10)]);case false:var c24=exprEval(F_gF);switch((c24)._t){case true:return(F_gn)._b(F_q);case false:return(F_gn)._b(F_r)};throw ('X ('+this._n+') '+c24.toSource())};throw ('X ('+this._n+') '+c23.toSource())};throw ('X ('+this._n+') '+c22.toSource())}),F_W=new HSFun("F_W",1,function(_md){return(F_g1)._b((F_0)._b(_md),new HSFun("F_Y",0,function(){return(F_Y)._b(_md)}))}),F_X=new HSFun("F_X",1,function(_me){return(F_g1)._b((F_W)._b(_me),new HSFun("F_bg",0,function(){return(F_bg)._b(_me)}))}),F_Y=new HSFun("F_Y",1,function(_lM){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lM,mkChar(97)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(122))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lM,mkChar(223)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(246))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_lM,mkChar(248)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(255)))))}))}))}),F_Z=new HSFun("F_Z",1,function(_mc){return((F_gm)._b(F_c8,_mc))._ap([F_p])}),F_0=new HSFun("F_0",1,function(_lO){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lO,mkChar(65)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(90))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lO,mkChar(192)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(214))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_lO,mkChar(216)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(222)))))}))}))}),F_1=new HSFun("F_1",1,function(_lP){var c25=exprEval(_lP);switch((c25)._t){case 2:return new HSEOL();case 3:return function(_lQ,_lR){var c26=exprEval(_lQ);switch((c26).valueOf()){case 92:return(F_gB)._b((F_c)._ap([mkChar(92)]),(F_d)._ap([_lR]));default:return new HSCons(new HSData((-7),[new HSCons(_lQ,new HSEOL()),_lR]),new HSEOL())};throw ('X ('+this._n+') '+c26.toSource())}((c25)._f[0],(c25)._f[1])};throw ('X ('+this._n+') '+c25.toSource())}),F_2=new HSFun("F_2",1,function(_lN){var c27=exprEval((F_Y)._b(_lN));switch((c27)._t){case true:return(exprEval((exprEval(_lN))-(exprEval(mkChar(97)))))+(exprEval(mkChar(65)));case false:var c28=exprEval(F_gF);switch((c28)._t){case true:return _lN;case false:return(F_gn)._b(F_s)};throw ('X ('+this._n+') '+c28.toSource())};throw ('X ('+this._n+') '+c27.toSource())}),F_3="Maybe.fromJust: Nothing",F_4=new HSFun("F_4",1,function(_kg){var c29=exprEval(_kg);switch((c29)._t){case 18:return(F_gn)._b(F_3);case 16:return(c29)._f[0]};throw ('X ('+this._n+') '+c29.toSource())}),F_5=new HSFun("F_5",2,function(_kd,_ke){var c30=exprEval(_ke);switch((c30)._t){case 18:return _kd;case 16:return(c30)._f[0]};throw ('X ('+this._n+') '+c30.toSource())}),F_6=new HSFun("F_6",3,function(_I,_J,_K){return(F_8)._b(_I,((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[2])._ap([_J,((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[6])._ap([_K])]),((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[8])._ap([_K]))}),F_7="Ratio.%: zero denominator",F_8=new HSFun("F_8",3,function(_F,_G,_H){var _lf=new HSFun("_lf",0,function(){return _F}),_b=new HSFun("_b",0,function(){return(F_gw)._b(_lf,_G,_H)}),c31=exprEval(((exprEval((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[0]))._f[1])._ap([_H,((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c31)._t){case true:return(F_gn)._b(F_7);case false:return new HSData((-4),[((exprEval(_F))._f[7])._ap([_G,_b]),((exprEval(_F))._f[7])._ap([_H,_b])])};throw ('X ('+this._n+') '+c31.toSource())}),F_9=new HSFun("F_9",2,function(_ee,_ef){var c32=exprEval(_ee);return function(_kl,_km){var c33=exprEval(_kl);switch((c33)._t){case 3:return function(_kn,_ko){return new HSCons(new HSData((-7),[_kl,_km]),_ef)}((c33)._f[0],(c33)._f[1]);default:return _ef};throw ('X ('+this._n+') '+c33.toSource())}((c32)._f[0],(c32)._f[1])}),F_ba=new HSFun("F_ba",4,function(_kp,_kq,_ec,_ed){return((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[3])._ap([((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[2])._ap([_ec,_kq]),_ed])}),F_bb=new HSFun("F_bb",5,function(_kq,_kp,_ks,_c7,_dI){var c34=exprEval(_c7);return function(_ku,_kv){return new HSCons(new HSData((-7),[new HSFun("F_gq",0,function(){return(F_gq)._b(new HSFun("F_ba",0,function(){return(F_ba)._ap([_kp,_kq])}),(F_gB)._b((F_fc)._ap([_ks,(F_gu)._b(F_dn,new HSFun("F_eI",0,function(){return(exprEval((exprEval(_kp))._f[0]))._f[0]}))]),_ku))}),_kv]),_dI)}((c34)._f[0],(c34)._f[1])}),F_bc="Char.digitToInt: not a digit",F_bd="Data._CharNumeric: Pattern match failure in function at 22:1-26:64.",F_be=new HSFun("F_be",0,function(){return F_gx}),F_bf=new HSFun("F_bf",1,function(_ky){var c35=exprEval((F_bg)._b(_ky));switch((c35)._t){case true:return(exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(48)])));case false:var c36=exprEval((F_cD)._b((F_dZ)._b(_ky,mkChar(97)),(Number(exprEval(_ky)))<=(Number(exprEval(mkChar(102))))));switch((c36)._t){case true:return(exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(97)])))))+(10);case false:var c37=exprEval((F_cD)._b((F_dZ)._b(_ky,mkChar(65)),(Number(exprEval(_ky)))<=(Number(exprEval(mkChar(70))))));switch((c37)._t){case true:return(exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(65)])))))+(10);case false:var c38=exprEval(F_gF);switch((c38)._t){case true:return(F_gn)._b(F_bc);case false:return(F_gn)._b(F_bd)};throw ('X ('+this._n+') '+c38.toSource())};throw ('X ('+this._n+') '+c37.toSource())};throw ('X ('+this._n+') '+c36.toSource())};throw ('X ('+this._n+') '+c35.toSource())}),F_bg=new HSFun("F_bg",1,function(_kx){return(F_cD)._b((F_dZ)._b(_kx,mkChar(48)),(Number(exprEval(_kx)))<=(Number(exprEval(mkChar(57)))))}),F_bh=new HSFun("F_bh",1,function(_kw){return(F_g1)._b((F_cD)._b((F_dZ)._b(_kw,mkChar(48)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(57))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_kw,mkChar(65)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(70))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_kw,mkChar(97)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(102)))))}))}))}),F_bi=new HSFun("F_bi",1,function(_kz){return(F_cD)._b((F_dZ)._b(_kz,mkChar(48)),(Number(exprEval(_kz)))<=(Number(exprEval(mkChar(55)))))}),F_bj=new HSFun("F_bj",2,function(_kj,_kk){return(F_gg)._b(F_9,new HSCons((F_gX)._b(_kj,_kk),new HSEOL()),new HSEOL())}),F_bk=new HSFun("F_bk",0,function(){return F_gx}),F_bl=new HSFun("F_bl",1,function(_kA){return(F_bm)._ap([_kA,((exprEval((exprEval((exprEval(_kA))._f[0]))._f[0]))._f[7])._ap([10]),F_bg,F_bf])}),F_bm=new HSFun("F_bm",5,function(_kp,_kq,_kr,_ks,_kt){return(F_gg)._b(new HSFun("F_bb",0,function(){return(F_bb)._ap([_kq,_kp,_ks])}),(F_bj)._b(_kr,_kt),new HSEOL())}),F_bn=new HSFun("F_bn",0,function(){return new HSData((-9),[F_bp,F_bo,F_bq,F_br])}),F_bo=new HSFun("F_bo",2,function(_lC,_lD){var c39=exprEval(_lC);return _lD}),F_bp=new HSFun("F_bp",2,function(_lF,_lG){var c40=exprEval(_lF);return function(_lH){return(_lG)._ap([_lH])}((c40)._f[0])}),F_bq=new HSFun("F_bq",1,function(_lI){return(F_gn)._b(_lI)}),F_br=new HSFun("F_br",1,function(_lB){return(F_gP)._b(_lB,new HSData((-5),[_lB]))}),F_bs="return new HSData(conIdx[\'Echo.JS\'],[document]);",F_bt="return new HSData(conIdx[\'Echo.JS\'],[exprEval(a)[exprEval(b).toString()]]);",F_bu="exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx[\'Echo.JS\'],[]);",F_bv="exprEval(a)[exprEval(b).toString()]=function(e){if(!e){e=window.event;}; return exprEval(exprEval(c)._ap([e]));}; return new HSData(conIdx[\'Echo.JS\'],[]);",F_bw="return new HSData(conIdx[\'Echo.JS\'],[new Number(exprEval(a))]);",F_bx="return new HSData(conIdx[\'Echo.JS\'],[new String(exprEval(a))]);",F_by="try {return exprEval(a);} catch(_e) {return exprEval(b)._ap([_e]);}",F_bz="return new HSData(conIdx[\'Echo.JS\'],[(new Date()).getTime()]);",F_bA="var a1=exprEval(a); return new HSData(conIdx[\'Echo.JS\'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())]);",F_bB="keyCode",F_bC="body",F_bD="createElement",F_bE="div",F_bF="value",F_bG="",F_bH=new HSFun("F_bH",1,function(v593){return(F_br)._b(F_bG)}),F_bI="",F_bJ=new HSFun("F_bJ",1,function(v594){return(F_br)._b(F_bI)}),F_bK=" ",F_bL=" ",F_bM=" ",F_bN=" ms",F_bO="innerHTML",F_bP="insertBefore",F_bQ="value",F_bR="",F_bS=new HSFun("F_bS",8,function(_et,_fK,_fO,_f8,_e2,_e3,_lz,_hc){var _kJ=new HSFun("_kJ",0,function(){return F_dF}),_c=new HSFun("_c",0,function(){return((exprEval(_kJ))._f[4])._ap([_hc,_et])}),_kL=new HSFun("_kL",0,function(){return F_eK}),_d=new HSFun("_d",0,function(){return(F_cG)._b(_fK,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bK,new HSFun("F_cG",0,function(){return(F_cG)._b(_fO,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bL,new HSFun("F_cG",0,function(){return(F_cG)._b(_f8,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bM,new HSFun("F_cG",0,function(){return(F_cG)._b(((exprEval(_kL))._f[3])._ap([_c]),F_bN)}))}))}))}))}))}))});return(F_bo)._b((F_cm)._b(_e3,F_bO,_d),(F_bo)._b((F_cl)._b(_e2,F_bP,new HSCons(_e3,new HSCons(_lz,new HSEOL()))),(F_bo)._b((F_cm)._b(_lz,F_bQ,F_bR),(F_br)._b(new HSData((-6),[])))))}),F_bT=new HSFun("F_bT",7,function(_et,_fK,_fO,_e2,_e3,_lz,_f8){return(F_bp)._b((F_ch)._b(0),new HSFun("F_bS",0,function(){return(F_bS)._ap([_et,_fK,_fO,_f8,_e2,_e3,_lz])}))}),F_bU=new HSFun("F_bU",6,function(_et,_fK,_e2,_e3,_lz,_fO){return(F_bp)._b((F_ce)._b(new HSFun("F_cC",0,function(){return(F_cC)._b(F_br,new HSFun("F_hf",0,function(){return(F_hf)._b(new HSFun("F_gI",0,function(){return(F_gI)._b(F_eA,_fK)}))}))}),F_bJ),new HSFun("F_bT",0,function(){return(F_bT)._ap([_et,_fK,_fO,_e2,_e3,_lz])}))}),F_bV=new HSFun("F_bV",5,function(_et,_e2,_e3,_lz,_fK){return(F_bo)._b((F_cC)._b(new HSFun("F_b",0,function(){return(F_b)._ap([F_bn,(Number(exprEval((F_gy)._b(_fK))))>(0)])}),new HSFun("F_bp",0,function(){return(F_bp)._b((F_ce)._b(new HSFun("F_cC",0,function(){return(F_cC)._b(F_br,((F_fc)._ap([F_ha,F_eL]))._ap([_fK]))}),F_bH),new HSFun("F_bU",0,function(){return(F_bU)._ap([_et,_fK,_e2,_e3,_lz])}))})),(F_br)._b(new HSData((-6),[])))}),F_bW=new HSFun("F_bW",4,function(_et,_e2,_lz,_e3){return(F_bp)._b((F_bp)._b((F_cg)._b(_lz,F_bF),F_cd),new HSFun("F_bV",0,function(){return(F_bV)._ap([_et,_e2,_e3,_lz])}))}),F_bX=new HSFun("F_bX",4,function(_eY,_et,_lz,_e2){return(F_bp)._b((F_cl)._b(_eY,F_bD,new HSCons(F_bE,new HSEOL())),new HSFun("F_bW",0,function(){return(F_bW)._ap([_et,_e2,_lz])}))}),F_bY=new HSFun("F_bY",3,function(_et,_lz,_eY){return(F_bp)._b((F_cg)._b(_eY,F_bC),new HSFun("F_bX",0,function(){return(F_bX)._ap([_eY,_et,_lz])}))}),F_bZ=new HSFun("F_bZ",2,function(_lz,_et){return(F_bp)._b(F_cf,new HSFun("F_bY",0,function(){return(F_bY)._ap([_et,_lz])}))}),F_b0=new HSFun("F_b0",2,function(_lz,_eq){return(F_bo)._b((F_cC)._b(new HSFun("F_b",0,function(){return(F_b)._ap([F_bn,(Number(exprEval(_eq)))===(13)])}),new HSFun("F_bp",0,function(){return(F_bp)._b((F_ch)._b(0),new HSFun("F_bZ",0,function(){return(F_bZ)._ap([_lz])}))})),(F_br)._b(new HSData((-6),[])))}),F_b1="body",F_b2="createElement",F_b3="input",F_b4="id",F_b5="input-echo",F_b6="appendChild",F_b7="onkeypress",F_b8="focus",F_b9=new HSFun("F_b9",2,function(_io,_iH){return(F_bo)._b((F_cm)._b(_iH,F_b4,F_b5),(F_bo)._b((F_cl)._b(_io,F_b6,new HSCons(_iH,new HSEOL())),(F_bo)._b((F_ck)._b(_iH,F_b7,new HSFun("F_ci",0,function(){return(F_ci)._ap([_iH])})),(F_bo)._b((F_cl)._b(_iH,F_b8,new HSEOL()),(F_br)._b(new HSData((-6),[]))))))}),F_ca=new HSFun("F_ca",2,function(_ia,_io){return(F_bp)._b((F_cl)._b(_ia,F_b2,new HSCons(F_b3,new HSEOL())),new HSFun("F_b9",0,function(){return(F_b9)._ap([_io])}))}),F_cb=new HSFun("F_cb",1,function(_ia){return(F_bp)._b((F_cg)._b(_ia,F_b1),new HSFun("F_ca",0,function(){return(F_ca)._ap([_ia])}))}),F_cc=new HSFun("F_cc",1,function(a){return new HSData(conIdx['Echo.JS'],[new Number(exprEval(a))])}),F_cd=new HSFun("F_cd",1,function(a){return new HSData(conIdx['Echo.JS'],[new String(exprEval(a))])}),F_ce=new HSFun("F_ce",2,function(a,b){try{return exprEval(a)}catch(_e){return exprEval(b)._ap([_e])}}),F_cf=new HSFun("F_cf",0,function(){return new HSData(conIdx['Echo.JS'],[document])}),F_cg=new HSFun("F_cg",2,function(a,b){return new HSData(conIdx['Echo.JS'],[exprEval(a)[exprEval(b).toString()]])}),F_ch=new HSFun("F_ch",1,function(a){return new HSData(conIdx['Echo.JS'],[(new Date()).getTime()])}),F_ci=new HSFun("F_ci",2,function(_lz,_lA){return(F_bp)._b((F_bp)._b((F_cg)._b(_lA,F_bB),F_cc),new HSFun("F_b0",0,function(){return(F_b0)._ap([_lz])}))}),F_cj=new HSFun("F_cj",0,function(){return(F_bp)._b(F_cf,F_cb)}),F_ck=new HSFun("F_ck",3,function(a,b,c){exprEval(a)[exprEval(b).toString()]=function(e){if(!e)e=window.event;return exprEval(exprEval(c)._ap([e]))};return new HSData(conIdx['Echo.JS'],[])}),F_cl=new HSFun("F_cl",3,function(a,b,c){var a1=exprEval(a);return new HSData(conIdx['Echo.JS'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())])}),F_cm=new HSFun("F_cm",3,function(a,b,c){exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx['Echo.JS'],[])}),F_cn=new HSFun("F_cn",3,function(_E,_bI,_bO){return(F_cG)._b(((F_co)._ap([_bI]))._ap([_bO]),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_cw",0,function(){return(F_cw)._ap([_E,_bI])}),(F_gz)._b(_bO),new HSEOL())}))}),F_co=new HSFun("F_co",2,function(_bI,_bJ){return(F_gg)._b(new HSFun("F_cu",0,function(){return(F_cu)._ap([_bI])}),(F_gz)._b(_bJ),new HSEOL())}),F_cp="Numeric.showIntAtBase: can\'t show negative numbers",F_cq=new HSFun("F_cq",1,function(_e){return(exprEval(_e))._f[0]}),F_cr=new HSFun("F_cr",1,function(_e){return(exprEval(_e))._f[1]}),F_cs="Numeric: Pattern match failure in function at 435:1-440:66.",F_ct=new HSFun("F_ct",3,function(_bL,_kJ,_kK){var c41=exprEval(_kJ);return function(_bM,_bN){var c42=exprEval(_bN);switch((c42)._t){case 2:return new HSCons(new HSData((-7),[_bM,_bL]),_kK);default:return _kK};throw ('X ('+this._n+') '+c42.toSource())}((c41)._f[0],(c41)._f[1])}),F_cu=new HSFun("F_cu",3,function(_bI,_kH,_kI){var c43=exprEval(_kH);return function(_bK,_bL){return(F_gg)._b(new HSFun("F_ct",0,function(){return(F_ct)._ap([_bL])}),(_bI)._ap([_bK]),_kI)}((c43)._f[0],(c43)._f[1])}),F_cv=new HSFun("F_cv",3,function(_E,_kD,_kE){var c44=exprEval(_kD);return function(_bT,_bU){return new HSCons(new HSData((-7),[((exprEval(_E))._f[5])._ap([_bT]),_bU]),_kE)}((c44)._f[0],(c44)._f[1])}),F_cw=new HSFun("F_cw",4,function(_E,_bI,_kB,_kC){var c45=exprEval(_kB);return function(_bP,_bQ){var c46=exprEval(_bP);switch((c46)._t){case 3:return function(_bR,_bS){var c47=exprEval(_bR);switch((c47).valueOf()){case 45:var c48=exprEval(_bS);switch((c48)._t){case 2:return(F_gg)._b(new HSFun("F_cv",0,function(){return(F_cv)._ap([_E])}),((F_co)._ap([_bI]))._ap([_bQ]),_kC);default:return _kC};throw ('X ('+this._n+') '+c48.toSource());default:return _kC};throw ('X ('+this._n+') '+c47.toSource())}((c46)._f[0],(c46)._f[1]);default:return _kC};throw ('X ('+this._n+') '+c46.toSource())}((c45)._f[0],(c45)._f[1])}),F_cx=new HSFun("F_cx",0,function(){return(F_bj)._ap([F_bg])}),F_cy=new HSFun("F_cy",2,function(_bH,_bI){var _E=new HSFun("_E",0,function(){return(exprEval(_bH))._f[0]});return(F_gJ)._b(false,new HSFun("F_cn",0,function(){return(F_cn)._ap([_E,_bI])}))}),F_cz=new HSFun("F_cz",1,function(_4){return(F_cA)._ap([_4,((exprEval((exprEval((exprEval(_4))._f[0]))._f[0]))._f[7])._ap([10]),F_V])}),F_cA=new HSFun("F_cA",5,function(_V,_W,_X,_Y,_Z){var c49=exprEval(((exprEval((exprEval((exprEval(_V))._f[0]))._f[1]))._f[1])._ap([_Y,((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c49)._t){case true:return(F_gn)._b(F_cp);case false:var c50=exprEval(F_gF);switch((c50)._t){case true:var _ld=new HSFun("_ld",0,function(){return _V}),_e=new HSFun("_e",0,function(){return((exprEval(_ld))._f[4])._ap([_Y,_W])}),_f=new HSFun("_f",0,function(){return(exprEval(_e))._f[0]}),_g=new HSFun("_g",0,function(){return(exprEval(_e))._f[1]}),_le=new HSFun("_le",0,function(){return _V}),_h=new HSFun("_h",0,function(){return new HSCons((_X)._ap([((F_gu)._b(_le,F_dF))._ap([_g])]),_Z)}),c51=exprEval(((exprEval((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[0]))._f[1])._ap([_f,((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c51)._t){case true:return _h;case false:return(F_cA)._b(_V,_W,_X,_f,_h)};throw ('X ('+this._n+') '+c51.toSource());case false:return(F_gn)._b(F_cs)};throw ('X ('+this._n+') '+c50.toSource())};throw ('X ('+this._n+') '+c49.toSource())}),F_cB=new HSFun("F_cB",4,function(_R,_S,_T,_U){var c52=exprEval(((exprEval((exprEval(_R))._f[1]))._f[1])._ap([_U,((exprEval((exprEval(_R))._f[0]))._f[7])._ap([0])]));switch((c52)._t){case true:return(F_gS)._b((Number(exprEval(_T)))>(6),(F_fc)._ap([(_S)._ap([((exprEval((exprEval(_R))._f[0]))._f[5])._ap([_U])]),(F_fW)._ap([mkChar(45)])]));case false:return(_S)._ap([_U])};throw ('X ('+this._n+') '+c52.toSource())}),F_cC=new HSFun("F_cC",2,function(_eK,_eL){return(_eK)._ap([_eL])}),F_cD=new HSFun("F_cD",2,function(_er,_es){var c53=exprEval(_er);switch((c53)._t){case true:return _es;case false:return false};throw ('X ('+this._n+') '+c53.toSource())}),F_cE=new HSFun("F_cE",1,function(_jC){return(exprEval(_jC))._f[2]}),F_cF=new HSFun("F_cF",1,function(_jD){return(exprEval(_jD))._f[3]}),F_cG=new HSFun("F_cG",2,function(_cp,_cq){var c54=exprEval(_cp);switch((c54)._t){case 2:return _cq;case 3:return function(_cr,_cs){return new HSCons(_cr,(F_cG)._b(_cs,_cq))}((c54)._f[0],(c54)._f[1])};throw ('X ('+this._n+') '+c54.toSource())}),F_cH=new HSFun("F_cH",1,function(_jE){return(exprEval(_jE))._f[4]}),F_cI=new HSFun("F_cI",2,function(_b9,_ca){return(F_fc)._ap([_ca,_b9])}),F_cJ=new HSFun("F_cJ",1,function(_jn){return(exprEval(_jn))._f[1]}),F_cK=new HSFun("F_cK",1,function(_jo){return(exprEval(_jo))._f[2]}),F_cL=new HSFun("F_cL",1,function(_jd){return(exprEval(_jd))._f[1]}),F_cM=new HSFun("F_cM",1,function(_jq){return(exprEval(_jq))._f[4]}),F_cN=new HSFun("F_cN",1,function(_jp){return(exprEval(_jp))._f[3]}),F_cO=new HSFun("F_cO",1,function(_f7){return _f7}),F_cP=new HSFun("F_cP",0,function(){return new HSData((-10),[F_cW,F_cV,F_cQ,F_cU,F_cX,F_cR,F_cT,F_cS])}),F_cQ=new HSFun("F_cQ",1,function(_hH){return new HSCons(_hH,(F_cQ)._b((exprEval(_hH))+(1)))}),F_cR=new HSFun("F_cR",2,function(_hF,_hG){return new HSCons(_hF,(F_cR)._b(_hG,(exprEval((2)*(exprEval(_hG))))-(exprEval(_hF))))}),F_cS=new HSFun("F_cS",3,function(_hK,_hL,_hM){return(F_e1)._b(F_cP,_hK,_hL,_hM)}),F_cT=new HSFun("F_cT",2,function(_hN,_hO){return(F_e2)._b(F_cP,_hN,_hO)}),F_cU=new HSFun("F_cU",1,function(_hI){return _hI}),F_cV=new HSFun("F_cV",1,function(_hP){return(F_e6)._b(F_cP,_hP)}),F_cW=new HSFun("F_cW",1,function(_hQ){return(F_fa)._b(F_cP,_hQ)}),F_cX=new HSFun("F_cX",1,function(_hJ){return _hJ}),F_cY=new HSFun("F_cY",0,function(){return new HSData((-10),[F_c5,F_c4,F_cZ,F_c3,F_c6,F_c0,F_c2,F_c1])}),F_cZ=new HSFun("F_cZ",1,function(_g2){return new HSCons(_g2,(F_cZ)._b((F_hF)._b(_g2,1)))}),F_c0=new HSFun("F_c0",2,function(_g0,_g1){return new HSCons(_g0,(F_c0)._b(_g1,(F_hF)._b((F_hM)._b(2,_g1),_g0)))}),F_c1=new HSFun("F_c1",3,function(_g7,_g8,_g9){return(F_e1)._b(F_cY,_g7,_g8,_g9)}),F_c2=new HSFun("F_c2",2,function(_ha,_hb){return(F_e2)._b(F_cY,_ha,_hb)}),F_c3=new HSFun("F_c3",1,function(_g3){return(F_hD)._b(_g3)}),F_c4=new HSFun("F_c4",1,function(_g5){return(F_hS)._b(_g5,1)}),F_c5=new HSFun("F_c5",1,function(_g6){return(F_hF)._b(_g6,1)}),F_c6=new HSFun("F_c6",1,function(_g4){return(F_hH)._b(_g4)}),F_c7=new HSFun("F_c7",1,function(_fq){var c55=exprEval(_fq);switch((c55)._t){case 17:return 0;case 13:return 1;case 15:return 2};throw ('X ('+this._n+') '+c55.toSource())}),F_c8=new HSFun("F_c8",0,function(){return new HSData((-7),[F_c9,F_da])}),F_c9=new HSFun("F_c9",2,function(_f5,_f6){return(F_eU)._b(F_c8,_f5,_f6)}),F_da=new HSFun("F_da",2,function(_f3,_f4){return(Number(exprEval(_f3)))===(Number(exprEval(_f4)))}),F_db=new HSFun("F_db",0,function(){return new HSData((-7),[F_dc,F_dd])}),F_dc=new HSFun("F_dc",2,function(_if,_ig){return(Number(exprEval(_if)))!==(Number(exprEval(_ig)))}),F_dd=new HSFun("F_dd",2,function(_ih,_ii){return(Number(exprEval(_ih)))===(Number(exprEval(_ii)))}),F_de=new HSFun("F_de",0,function(){return new HSData((-7),[F_df,F_dg])}),F_df=new HSFun("F_df",2,function(_gW,_gX){return(F_hN)._b(_gW,_gX)}),F_dg=new HSFun("F_dg",2,function(_gY,_gZ){return(F_hG)._b(_gY,_gZ)}),F_dh=new HSFun("F_dh",0,function(){return new HSData((-7),[F_di,F_dj])}),F_di=new HSFun("F_di",2,function(_fo,_fp){return(F_eU)._b(F_dh,_fo,_fp)}),F_dj=new HSFun("F_dj",2,function(_fj,_fk){return(Number(exprEval((F_c7)._b(_fj))))===(Number(exprEval((F_c7)._b(_fk))))}),F_dk=new HSFun("F_dk",1,function(_bW){return new HSData((-7),[new HSFun("F_dl",0,function(){return(F_dl)._ap([_bW])}),new HSFun("F_dm",0,function(){return(F_dm)._ap([_bW])})])}),F_dl=new HSFun("F_dl",3,function(_iP,_iQ,_iR){return(F_eU)._b(new HSFun("F_dk",0,function(){return(F_dk)._b(_iP)}),_iQ,_iR)}),F_dm=new HSFun("F_dm",3,function(_iI,_iJ,_iK){var c56=exprEval(_iJ);switch((c56)._t){case 2:var c57=exprEval(_iK);switch((c57)._t){case 2:return true;default:return false};throw ('X ('+this._n+') '+c57.toSource());case 3:return function(_iL,_iM){var c58=exprEval(_iK);switch((c58)._t){case 3:return function(_iN,_iO){return(F_cD)._b(((exprEval(_iI))._f[1])._ap([_iL,_iN]),new HSFun("F_dm",0,function(){return(F_dm)._b(_iI,_iM,_iO)}))}((c58)._f[0],(c58)._f[1]);default:return false};throw ('X ('+this._n+') '+c58.toSource())}((c56)._f[0],(c56)._f[1])};throw ('X ('+this._n+') '+c56.toSource())}),F_dn=new HSFun("F_dn",0,function(){return new HSData((-11),[F_eE,F_cP,F_dp,F_dq,F_ds,F_dt,F_du,F_dr,F_do])}),F_do=new HSFun("F_do",2,function(_hC,_hD){return(F_eZ)._b(F_dn,_hC,_hD)}),F_dp=new HSFun("F_dp",2,function(_hx,_hy){return(F_e0)._b(F_dn,_hx,_hy)}),F_dq=new HSFun("F_dq",2,function(_hp,_hq){var _k=new HSFun("_k",0,function(){return(exprEval(_hp))%(exprEval(_hq))}),c59=exprEval((Number(exprEval((F_hE)._b(_k))))===(Number(exprEval(NEG_W(exprEval((F_hE)._b(_hq)))))));switch((c59)._t){case true:return(exprEval(_k))+(exprEval(_hq));case false:return _k};throw ('X ('+this._n+') '+c59.toSource())}),F_dr=new HSFun("F_dr",2,function(_hv,_hw){return function(x,y){return(x-(x%y))/y}(Number(exprEval(_hv)),Number(exprEval(_hw)))}),F_ds=new HSFun("F_ds",2,function(_hr,_hs){return new HSData((-7),[function(x,y){return(x-(x%y))/y}(Number(exprEval(_hr)),Number(exprEval(_hs))),(exprEval(_hr))%(exprEval(_hs))])}),F_dt=new HSFun("F_dt",2,function(_ht,_hu){return(exprEval(_ht))%(exprEval(_hu))}),F_du=new HSFun("F_du",1,function(_ho){return(F_hH)._b(_ho)}),F_dv=new HSFun("F_dv",0,function(){return new HSData((-11),[F_eG,F_cY,F_dx,F_dy,F_dA,F_dB,F_dC,F_dz,F_dw])}),F_dw=new HSFun("F_dw",2,function(_gi,_gj){return(exprEval((F_dx)._b(_gi,_gj)))._f[0]}),F_dx=new HSFun("F_dx",2,function(_gv,_gw){return(F_e0)._b(F_dv,_gv,_gw)}),F_dy=new HSFun("F_dy",2,function(_gg,_gh){return(exprEval((F_dx)._b(_gg,_gh)))._f[1]}),F_dz=new HSFun("F_dz",2,function(_gm,_gn){return(F_hP)._b(_gm,_gn)}),F_dA=new HSFun("F_dA",2,function(_ge,_gf){return(F_hQ)._b(_ge,_gf)}),F_dB=new HSFun("F_dB",2,function(_gk,_gl){return(F_hR)._b(_gk,_gl)}),F_dC=new HSFun("F_dC",1,function(_gd){return _gd}),F_dD=new HSFun("F_dD",1,function(_jX){return(exprEval(_jX))._f[0]}),F_dE=new HSFun("F_dE",1,function(_jB){return(exprEval(_jB))._f[0]}),F_dF=new HSFun("F_dF",0,function(){return new HSData((-11),[F_db,F_eK,F_dG,F_dH,F_dI,F_dL,F_dM,F_dK,F_dJ])}),F_dG=new HSFun("F_dG",2,function(_hU,_hV){return(exprEval(_hU))*(exprEval(_hV))}),F_dH=new HSFun("F_dH",2,function(_hY,_hZ){return(exprEval(_hY))+(exprEval(_hZ))}),F_dI=new HSFun("F_dI",2,function(_hW,_hX){return(exprEval(_hW))-(exprEval(_hX))}),F_dJ=new HSFun("F_dJ",1,function(_hT){return(F_hC)._b(_hT)}),F_dK=new HSFun("F_dK",1,function(_hR){return(F_hD)._b(_hR)}),F_dL=new HSFun("F_dL",1,function(a){return 0-Number(exprEval(a))}),F_dM=new HSFun("F_dM",1,function(_hS){return(F_hE)._b(_hS)}),F_dN=new HSFun("F_dN",0,function(){return new HSData((-11),[F_de,F_eP,F_dO,F_dP,F_dQ,F_dT,F_dU,F_dS,F_dR])}),F_dO=new HSFun("F_dO",2,function(_gC,_gD){return(F_hM)._b(_gC,_gD)}),F_dP=new HSFun("F_dP",2,function(_gG,_gH){return(F_hF)._b(_gG,_gH)}),F_dQ=new HSFun("F_dQ",2,function(_gE,_gF){return(F_hS)._b(_gE,_gF)}),F_dR=new HSFun("F_dR",1,function(_gA){var c60=exprEval((F_hL)._b(_gA,0));switch((c60)._t){case true:return(F_hO)._b(_gA);case false:return _gA};throw ('X ('+this._n+') '+c60.toSource())}),F_dS=new HSFun("F_dS",1,function(_gy){return _gy}),F_dT=new HSFun("F_dT",1,function(_gB){return(F_hO)._b(_gB)}),F_dU=new HSFun("F_dU",1,function(_gz){var c61=exprEval((F_eh)._b(_gz,0));switch((c61)._t){case 17:return -1;case 13:return 0;case 15:return 1};throw ('X ('+this._n+') '+c61.toSource())}),F_dV=new HSFun("F_dV",0,function(){return new HSData((-10),[F_c8,F_dW,F_dX,F_dZ,F_dY,F_d0,F_d2,F_d1])}),F_dW=new HSFun("F_dW",2,function(_f1,_f2){return(F_eV)._b(F_dV,_f1,_f2)}),F_dX=new HSFun("F_dX",2,function(_fR,_fS){return(Number(exprEval(_fR)))<=(Number(exprEval(_fS)))}),F_dY=new HSFun("F_dY",2,function(_fX,_fY){return(F_eW)._b(F_dV,_fX,_fY)}),F_dZ=new HSFun("F_dZ",2,function(_fZ,_f0){return(F_eX)._b(F_dV,_fZ,_f0)}),F_d0=new HSFun("F_d0",2,function(_fP,_fQ){return(F_d9)._b(_fP,_fQ)}),F_d1=new HSFun("F_d1",2,function(_fV,_fW){return(F_e4)._b(F_dV,_fV,_fW)}),F_d2=new HSFun("F_d2",2,function(_fT,_fU){return(F_e5)._b(F_dV,_fT,_fU)}),F_d3=new HSFun("F_d3",1,function(_jm){return(exprEval(_jm))._f[0]}),F_d4=new HSFun("F_d4",0,function(){return new HSData((-10),[F_db,F_d5,F_d6,F_d8,F_d7,F_d9,F_eb,F_ea])}),F_d5=new HSFun("F_d5",2,function(_h6,_h7){return(Number(exprEval(_h6)))<(Number(exprEval(_h7)))}),F_d6=new HSFun("F_d6",2,function(_h4,_h5){return(Number(exprEval(_h4)))<=(Number(exprEval(_h5)))}),F_d7=new HSFun("F_d7",2,function(_h0,_h1){return(Number(exprEval(_h0)))>(Number(exprEval(_h1)))}),F_d8=new HSFun("F_d8",2,function(_h2,_h3){return(Number(exprEval(_h2)))>=(Number(exprEval(_h3)))}),F_d9=new HSFun("F_d9",2,function(_id,_ie){return(F_eY)._b(F_d4,_id,_ie)}),F_ea=new HSFun("F_ea",2,function(_ib,_ic){return(F_e4)._b(F_d4,_ib,_ic)}),F_eb=new HSFun("F_eb",2,function(_h8,_h9){return(F_e5)._b(F_d4,_h8,_h9)}),F_ec=new HSFun("F_ec",0,function(){return new HSData((-10),[F_de,F_ed,F_ee,F_eg,F_ef,F_eh,F_ej,F_ei])}),F_ed=new HSFun("F_ed",2,function(_gO,_gP){return(F_hL)._b(_gO,_gP)}),F_ee=new HSFun("F_ee",2,function(_gM,_gN){return(F_hK)._b(_gM,_gN)}),F_ef=new HSFun("F_ef",2,function(_gI,_gJ){return(F_hJ)._b(_gI,_gJ)}),F_eg=new HSFun("F_eg",2,function(_gK,_gL){return(F_hI)._b(_gK,_gL)}),F_eh=new HSFun("F_eh",2,function(_gU,_gV){return(F_eY)._b(F_ec,_gU,_gV)}),F_ei=new HSFun("F_ei",2,function(_gS,_gT){return(F_e4)._b(F_ec,_gS,_gT)}),F_ej=new HSFun("F_ej",2,function(_gQ,_gR){return(F_e5)._b(F_ec,_gQ,_gR)}),F_ek=new HSFun("F_ek",1,function(_cL){var c62=exprEval(_cL);switch((c62)._t){case 3:return function(_cM,_cN){var c63=exprEval(_cM);switch((c63).valueOf()){case 34:return new HSCons(new HSData((-7),[F_fl,_cN]),new HSEOL());default:return(F_gg)._b(F_fn,(F_el)._ap([_cL]),new HSEOL())};throw ('X ('+this._n+') '+c63.toSource())}((c62)._f[0],(c62)._f[1]);default:return(F_gg)._b(F_fn,(F_el)._ap([_cL]),new HSEOL())};throw ('X ('+this._n+') '+c62.toSource())}),F_el=new HSFun("F_el",1,function(_cE){var c64=exprEval(_cE);switch((c64)._t){case 3:return function(_cF,_cG){var c65=exprEval(_cF);switch((c65).valueOf()){case 92:var c66=exprEval(_cG);switch((c66)._t){case 3:return function(_cH,_cI){var c67=exprEval(_cH);switch((c67).valueOf()){case 38:return new HSCons(new HSData((-7),[F_fi,_cI]),new HSEOL());default:var c68=exprEval((F_Z)._b(_cH));switch((c68)._t){case true:return(F_gg)._b(F_fk,new HSCons((F_gl)._b(F_Z,_cI),new HSEOL()),new HSEOL());case false:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c68.toSource())};throw ('X ('+this._n+') '+c67.toSource())}((c66)._f[0],(c66)._f[1]);default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c66.toSource());default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c65.toSource())}((c64)._f[0],(c64)._f[1]);default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c64.toSource())}),F_em=new HSFun("F_em",1,function(_dk){return((F_gm)._b(F_c8,_dk))._ap([F_fD])}),F_en=new HSFun("F_en",1,function(_dj){return((F_gm)._b(F_c8,_dj))._ap([F_fC])}),F_eo=new HSFun("F_eo",1,function(_di){return(F_g1)._b((F_W)._b(_di),(Number(exprEval(_di)))===(Number(exprEval(mkChar(95)))))}),F_ep=new HSFun("F_ep",1,function(_dh){return(F_g1)._b((F_X)._b(_dh),((F_gm)._b(F_c8,_dh))._ap([F_fB]))}),F_eq=new HSFun("F_eq",1,function(_c8){var c69=exprEval(_c8);switch((c69)._t){case 3:return function(_c9,_da){var c70=exprEval(_c9);switch((c70).valueOf()){case 46:var c71=exprEval(_da);switch((c71)._t){case 3:return function(_db,_dc){var c72=exprEval((F_bg)._b(_db));switch((c72)._t){case true:return(F_gg)._b(F_fA,(F_cx)._ap([new HSCons(_db,_dc)]),new HSEOL());case false:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c72.toSource())}((c71)._f[0],(c71)._f[1]);default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c71.toSource());default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c70.toSource())}((c69)._f[0],(c69)._f[1]);default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c69.toSource())}),F_er=new HSFun("F_er",1,function(_cY){var c73=exprEval(_cY);switch((c73)._t){case 3:return function(_cZ,_c0){var c74=exprEval(((F_gm)._b(F_c8,_cZ))._ap([F_ft]));switch((c74)._t){case true:return(F_cG)._b((F_gg)._b(new HSFun("F_fw",0,function(){return(F_fw)._ap([_cZ])}),new HSCons(_c0,new HSEOL()),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fx",0,function(){return(F_fx)._ap([_cZ])}),(F_cx)._ap([_c0]),new HSEOL())}));case false:return new HSCons(new HSData((-7),[F_fy,_cY]),new HSEOL())};throw ('X ('+this._n+') '+c74.toSource())}((c73)._f[0],(c73)._f[1]);default:return new HSCons(new HSData((-7),[F_fy,_cY]),new HSEOL())};throw ('X ('+this._n+') '+c73.toSource())}),F_es=new HSFun("F_es",2,function(_du,_dv){return(F_cG)._b((_du)._ap([_dv]),((F_et)._ap([_du]))._ap([_dv]))}),F_et=new HSFun("F_et",2,function(_du,_dw){return(F_gg)._b(new HSFun("F_fL",0,function(){return(F_fL)._ap([_du])}),(F_gz)._b(_dw),new HSEOL())}),F_eu=new HSFun("F_eu",3,function(_eD,_eE,_eF){var c75=exprEval(((exprEval((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eF,((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c75)._t){case true:return _eE;case false:return(F_eu)._ap([_eD,_eF,((exprEval(_eD))._f[5])._ap([_eE,_eF])])};throw ('X ('+this._n+') '+c75.toSource())}),F_ev=new HSFun("F_ev",2,function(_dY,_dZ){return(F_cG)._b((F_gg)._b(F_fQ,(F_gz)._b(_dZ),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fS",0,function(){return(F_fS)._ap([_dY])}),((exprEval(_dY))._f[0])._ap([0,_dZ]),new HSEOL())}))}),F_ew=new HSFun("F_ew",2,function(_dK,_dL){return(F_cG)._b((F_gg)._b(F_fM,(F_gz)._b(_dL),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fP",0,function(){return(F_fP)._ap([_dK])}),(F_gz)._b(_dL),new HSEOL())}))}),F_ex=new HSFun("F_ex",2,function(_ek,_el){var c76=exprEval(_el);switch((c76)._t){case 2:return(F_fW)._ap([mkChar(93)]);case 3:return function(_em,_en){return(F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_ek,_en]),((exprEval(_ek))._f[0])._ap([0,_em])]),(F_gT)._ap([F_fY])])}((c76)._f[0],(c76)._f[1])};throw ('X ('+this._n+') '+c76.toSource())}),F_ey=new HSFun("F_ey",2,function(_iD,_iE){var c77=exprEval(_iE);switch((c77)._t){case 2:return _iD;case 3:return function(_iF,_iG){var _u=new HSFun("_u",0,function(){return(exprEval(_iD))+(1)});return(F_gP)._b(_u,(F_ey)._ap([_u,_iG]))}((c77)._f[0],(c77)._f[1])};throw ('X ('+this._n+') '+c77.toSource())}),F_ez=new HSFun("F_ez",3,function(_hg,_hh,_hi){return(F_gB)._b(new HSFun("F_f8",0,function(){return(F_f8)._ap([_hg])}),((F_eD)._b(_hh))._ap([_hi]))}),F_eA=new HSFun("F_eA",0,function(){return new HSData((-7),[F_eC,F_eB])}),F_eB=new HSFun("F_eB",0,function(){return(F_e7)._b(F_eA)}),F_eC=new HSFun("F_eC",1,function(_hf){return(F_f9)._ap([_hf])}),F_eD=new HSFun("F_eD",1,function(v25828){return(F_cy)._b(F_eG,new HSFun("F_bl",0,function(){return(F_bl)._b(F_dv)}))}),F_eE=new HSFun("F_eE",0,function(){return new HSData((-8),[F_dF,F_d4,F_eF])}),F_eF=new HSFun("F_eF",1,function(_hE){return(F_6)._b(F_dv,(F_hH)._b(_hE),1)}),F_eG=new HSFun("F_eG",0,function(){return new HSData((-8),[F_dN,F_ec,F_eH])}),F_eH=new HSFun("F_eH",1,function(_gx){return(F_6)._b(F_dv,_gx,1)}),F_eI=new HSFun("F_eI",1,function(_jM){return(exprEval(_jM))._f[0]}),F_eJ=new HSFun("F_eJ",1,function(_jN){return(exprEval(_jN))._f[1]}),F_eK=new HSFun("F_eK",0,function(){return new HSData((-9),[F_eN,F_eO,F_eM,F_eL])}),F_eL=new HSFun("F_eL",1,function(_hn){return(F_e8)._b(F_eK,_hn)}),F_eM=new HSFun("F_eM",1,function(_hm){return(F_e9)._b(F_eK,_hm)}),F_eN=new HSFun("F_eN",2,function(_kn,_ko){var c78=exprEval((Number(exprEval(_ko)))<(0));switch((c78)._t){case true:return(F_gS)._b((Number(exprEval(_kn)))>(6),(F_fc)._ap([(F_hh)._ap([new HSFun("F_dL",0,function(){return(F_dL)._b(_ko)})]),(F_fW)._ap([mkChar(45)])]));case false:return(F_hh)._ap([_ko])};throw ('X ('+this._n+') '+c78.toSource())}),F_eO=new HSFun("F_eO",1,function(v26141){return(F_gT)._ap([F_ga])}),F_eP=new HSFun("F_eP",0,function(){return new HSData((-9),[F_eS,F_eT,F_eR,F_eQ])}),F_eQ=new HSFun("F_eQ",1,function(_gc){return(F_e8)._b(F_eP,_gc)}),F_eR=new HSFun("F_eR",1,function(_gb){return(F_e9)._b(F_eP,_gb)}),F_eS=new HSFun("F_eS",2,function(_f9,_ga){return(F_cB)._b(F_eG,new HSFun("F_cz",0,function(){return(F_cz)._b(F_dv)}),_f9,_ga)}),F_eT=new HSFun("F_eT",1,function(v25823){return(F_gT)._ap([F_f5])}),F_eU=new HSFun("F_eU",3,function(_fl,_fm,_fn){return(F_gD)._b(((exprEval(_fl))._f[1])._ap([_fm,_fn]))}),F_eV=new HSFun("F_eV",3,function(_fg,_fh,_fi){return(F_dj)._b(((exprEval(_fg))._f[5])._ap([_fh,_fi]),new HSData(17,[]))}),F_eW=new HSFun("F_eW",3,function(_fa,_fb,_fc){return(F_dj)._b(((exprEval(_fa))._f[5])._ap([_fb,_fc]),new HSData(15,[]))}),F_eX=new HSFun("F_eX",3,function(_fd,_fe,_ff){return(F_di)._b(((exprEval(_fd))._f[5])._ap([_fe,_ff]),new HSData(17,[]))}),F_eY=new HSFun("F_eY",3,function(_fL,_fM,_fN){var c79=exprEval(((exprEval((exprEval(_fL))._f[0]))._f[1])._ap([_fM,_fN]));switch((c79)._t){case true:return new HSData(13,[]);case false:var c80=exprEval(((exprEval(_fL))._f[2])._ap([_fM,_fN]));switch((c80)._t){case true:return new HSData(17,[]);case false:return new HSData(15,[])};throw ('X ('+this._n+') '+c80.toSource())};throw ('X ('+this._n+') '+c79.toSource())}),F_eZ=new HSFun("F_eZ",3,function(_hz,_hA,_hB){return(exprEval(((exprEval(_hz))._f[2])._ap([_hA,_hB])))._f[0]}),F_e0=new HSFun("F_e0",3,function(_go,_gp,_gq){var _Q=new HSFun("_Q",0,function(){return _go}),_r=new HSFun("_r",0,function(){return((exprEval(_Q))._f[4])._ap([_gp,_gq])}),_i=new HSFun("_i",0,function(){return _r}),_s=new HSFun("_s",0,function(){return(exprEval(_i))._f[0]}),_t=new HSFun("_t",0,function(){return(exprEval(_i))._f[1]}),c81=exprEval(((exprEval((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[0]))._f[1])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_t]),((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[5])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_gq])])]));switch((c81)._t){case true:return new HSData((-7),[((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[4])._ap([_s,((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[7])._ap([1])]),((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[3])._ap([_t,_gq])]);case false:return _r};throw ('X ('+this._n+') '+c81.toSource())}),F_e1=new HSFun("F_e1",4,function(_fz,_fA,_fB,_fC){var _L=new HSFun("_L",0,function(){return _fz}),_o=new HSFun("_o",0,function(){return((exprEval(_L))._f[3])._ap([_fB])}),_M=new HSFun("_M",0,function(){return _fz}),_n=new HSFun("_n",0,function(){return((exprEval(_M))._f[3])._ap([_fA])}),_q=new HSFun("_q",0,function(){return(exprEval(_o))-(exprEval(_n))}),_N=new HSFun("_N",0,function(){return _fz}),_p=new HSFun("_p",0,function(){return((exprEval(_N))._f[3])._ap([_fC])}),c82=exprEval((Number(exprEval(_q)))>=(0));switch((c82)._t){case true:return(F_ge)._b(_fz,_n,_q,_p);case false:return(F_gd)._b(_fz,_n,_q,_p)};throw ('X ('+this._n+') '+c82.toSource())}),F_e2=new HSFun("F_e2",3,function(_fD,_fE,_fF){var _O=new HSFun("_O",0,function(){return _fD}),_m=new HSFun("_m",0,function(){return((exprEval(_O))._f[3])._ap([_fF])}),_P=new HSFun("_P",0,function(){return _fD}),_l=new HSFun("_l",0,function(){return((exprEval(_P))._f[3])._ap([_fE])}),c83=exprEval((F_d9)._b(_l,_m));switch((c83)._t){case 17:return(F_ge)._b(_fD,_l,1,_m);case 13:return new HSCons(_fE,new HSEOL());case 15:return new HSEOL()};throw ('X ('+this._n+') '+c83.toSource())}),F_e3=new HSFun("F_e3",2,function(v25368,_e1){return(F_gn)._b(_e1)}),F_e4=new HSFun("F_e4",3,function(_e7,_e8,_e9){var c84=exprEval(((exprEval(_e7))._f[3])._ap([_e8,_e9]));switch((c84)._t){case true:return _e8;case false:return _e9};throw ('X ('+this._n+') '+c84.toSource())}),F_e5=new HSFun("F_e5",3,function(_e4,_e5,_e6){var c85=exprEval(((exprEval(_e4))._f[2])._ap([_e5,_e6]));switch((c85)._t){case true:return _e5;case false:return _e6};throw ('X ('+this._n+') '+c85.toSource())}),F_e6=new HSFun("F_e6",2,function(_fG,_fH){return((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs",0,function(){return(exprEval(_fG))._f[3]}),((F_gY)._b(F_dF))._ap([1])]),(exprEval(_fG))._f[4]]))._ap([_fH])}),F_e7=new HSFun("F_e7",1,function(_dJ){return(F_gJ)._b(false,new HSFun("F_fV",0,function(){return(F_fV)._ap([_dJ])}))}),F_e8=new HSFun("F_e8",2,function(_eo,_ep){return((exprEval(_eo))._f[0])._ap([0,_ep,F_fZ])}),F_e9=new HSFun("F_e9",2,function(_eg,_eh){var c86=exprEval(_eh);switch((c86)._t){case 2:return(F_gT)._ap([F_fX]);case 3:return function(_ei,_ej){return(F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_eg,_ej]),((exprEval(_eg))._f[0])._ap([0,_ei])]),(F_fW)._ap([mkChar(91)])])}((c86)._f[0],(c86)._f[1])};throw ('X ('+this._n+') '+c86.toSource())}),F_fa=new HSFun("F_fa",2,function(_fI,_fJ){return((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs",0,function(){return(exprEval(_fI))._f[3]}),new HSFun("F_go",0,function(){return(F_go)._ap([F_dH,1])})]),(exprEval(_fI))._f[4]]))._ap([_fJ])}),F_fb="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 592:1-594:31.",F_fc=new HSFun("F_fc",3,function(_ca,_b9,_bV){return(_b9)._ap([(_ca)._ap([_bV])])}),F_fd=new HSFun("F_fd",1,function(_j){return(exprEval(_j))._f[0]}),F_fe=new HSFun("F_fe",1,function(_j){return(exprEval(_j))._f[1]}),F_ff="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 736:1-738:32.",F_fg="",F_fh="",F_fi="\\&",F_fj="\\&",F_fk=new HSFun("F_fk",2,function(_bb,_bc){var c87=exprEval(_bb);switch((c87)._t){case 3:return function(_cJ,_cK){var c88=exprEval(_cJ);switch((c88).valueOf()){case 92:return new HSCons(new HSData((-7),[F_fj,_cK]),_bc);default:return _bc};throw ('X ('+this._n+') '+c88.toSource())}((c87)._f[0],(c87)._f[1]);default:return _bc};throw ('X ('+this._n+') '+c87.toSource())}),F_fl="\"",F_fm=new HSFun("F_fm",3,function(_cO,_9,_ba){var c89=exprEval(_9);return function(_cQ,_cR){return new HSCons(new HSData((-7),[new HSFun("F_cG",0,function(){return(F_cG)._b(_cO,_cQ)}),_cR]),_ba)}((c89)._f[0],(c89)._f[1])}),F_fn=new HSFun("F_fn",2,function(_7,_8){var c90=exprEval(_7);return function(_cO,_cP){return(F_gg)._b(new HSFun("F_fm",0,function(){return(F_fm)._ap([_cO])}),(F_ek)._ap([_cP]),_8)}((c90)._f[0],(c90)._f[1])}),F_fo=new HSFun("F_fo",2,function(_bd,_be){var c91=exprEval(_bd);return function(_cS,_cT){return new HSCons(new HSData((-7),[new HSCons(mkChar(34),_cS),_cT]),_be)}((c91)._f[0],(c91)._f[1])}),F_fp="\'",F_fq="\'",F_fr=new HSFun("F_fr",3,function(_cU,_cX,_j8){return new HSCons(new HSData((-7),[new HSCons(mkChar(39),(F_cG)._b(_cU,F_fq)),_cX]),_j8)}),F_fs=new HSFun("F_fs",2,function(_5,_6){var c92=exprEval(_5);return function(_cU,_cV){var c93=exprEval(_cV);switch((c93)._t){case 3:return function(_cW,_cX){var c94=exprEval(_cW);switch((c94).valueOf()){case 39:return(F_gf)._b((F_dl)._b(F_c8,_cU,F_fp),new HSFun("F_fr",0,function(){return(F_fr)._ap([_cU,_cX])}),_6);default:return _6};throw ('X ('+this._n+') '+c94.toSource())}((c93)._f[0],(c93)._f[1]);default:return _6};throw ('X ('+this._n+') '+c93.toSource())}((c92)._f[0],(c92)._f[1])}),F_ft="eE",F_fu="+-",F_fv=new HSFun("F_fv",4,function(_cZ,_c1,_bl,_bm){var c95=exprEval(_bl);return function(_c3,_c4){return new HSCons(new HSData((-7),[new HSCons(_cZ,new HSCons(_c1,_c3)),_c4]),_bm)}((c95)._f[0],(c95)._f[1])}),F_fw=new HSFun("F_fw",3,function(_cZ,_bj,_bk){var c96=exprEval(_bj);switch((c96)._t){case 3:return function(_c1,_c2){return(F_gf)._b(((F_gm)._b(F_c8,_c1))._ap([F_fu]),new HSFun("F_gg",0,function(){return(F_gg)._ap([new HSFun("F_fv",0,function(){return(F_fv)._ap([_cZ,_c1])}),(F_cx)._ap([_c2])])}),_bk)}((c96)._f[0],(c96)._f[1]);default:return _bk};throw ('X ('+this._n+') '+c96.toSource())}),F_fx=new HSFun("F_fx",3,function(_cZ,_bn,_bo){var c97=exprEval(_bn);return function(_c5,_c6){return new HSCons(new HSData((-7),[new HSCons(_cZ,_c5),_c6]),_bo)}((c97)._f[0],(c97)._f[1])}),F_fy="",F_fz=new HSFun("F_fz",3,function(_dd,_bh,_bi){var c98=exprEval(_bh);return function(_df,_dg){return new HSCons(new HSData((-7),[new HSCons(mkChar(46),(F_cG)._b(_dd,_df)),_dg]),_bi)}((c98)._f[0],(c98)._f[1])}),F_fA=new HSFun("F_fA",2,function(_bf,_bg){var c99=exprEval(_bf);return function(_dd,_de){return(F_gg)._b(new HSFun("F_fz",0,function(){return(F_fz)._ap([_dd])}),(F_er)._ap([_de]),_bg)}((c99)._f[0],(c99)._f[1])}),F_fB="_\'",F_fC="!@#$%&*+./<=>\u003f\\^|:-~",F_fD=",;()[]{}`",F_fE=new HSFun("F_fE",3,function(_cC,_bp,_bq){var c100=exprEval(_bp);return function(_dl,_dm){return new HSCons(new HSData((-7),[new HSCons(_cC,_dl),_dm]),_bq)}((c100)._f[0],(c100)._f[1])}),F_fF=new HSFun("F_fF",3,function(_cC,_br,_bs){var c101=exprEval(_br);return function(_dn,_do){return new HSCons(new HSData((-7),[new HSCons(_cC,_dn),_do]),_bs)}((c101)._f[0],(c101)._f[1])}),F_fG=new HSFun("F_fG",4,function(_cC,_dp,_bv,_bw){var c102=exprEval(_bv);return function(_dr,_ds){return new HSCons(new HSData((-7),[new HSCons(_cC,(F_cG)._b(_dp,_dr)),_ds]),_bw)}((c102)._f[0],(c102)._f[1])}),F_fH=new HSFun("F_fH",3,function(_cC,_bt,_bu){var c103=exprEval(_bt);return function(_dp,_dq){return(F_gg)._b(new HSFun("F_fG",0,function(){return(F_fG)._ap([_cC,_dp])}),(F_eq)._ap([_dq]),_bu)}((c103)._f[0],(c103)._f[1])}),F_fI="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 1664:1-1701:35.",F_fJ=new HSFun("F_fJ",3,function(_dB,_bF,_bG){var c104=exprEval(_bF);return function(_dD,_dE){var c105=exprEval(_dD);switch((c105)._t){case 3:return function(_dF,_dG){var c106=exprEval(_dF);switch((c106).valueOf()){case 41:var c107=exprEval(_dG);switch((c107)._t){case 2:return new HSCons(new HSData((-7),[_dB,_dE]),_bG);default:return _bG};throw ('X ('+this._n+') '+c107.toSource());default:return _bG};throw ('X ('+this._n+') '+c106.toSource())}((c105)._f[0],(c105)._f[1]);default:return _bG};throw ('X ('+this._n+') '+c105.toSource())}((c104)._f[0],(c104)._f[1])}),F_fK=new HSFun("F_fK",2,function(_bD,_bE){var c108=exprEval(_bD);return function(_dB,_dC){return(F_gg)._b(new HSFun("F_fJ",0,function(){return(F_fJ)._ap([_dB])}),(F_gz)._b(_dC),_bE)}((c108)._f[0],(c108)._f[1])}),F_fL=new HSFun("F_fL",3,function(_du,_bB,_bC){var c109=exprEval(_bB);return function(_dx,_dy){var c110=exprEval(_dx);switch((c110)._t){case 3:return function(_dz,_dA){var c111=exprEval(_dz);switch((c111).valueOf()){case 40:var c112=exprEval(_dA);switch((c112)._t){case 2:return(F_gg)._b(F_fK,((F_es)._ap([_du]))._ap([_dy]),_bC);default:return _bC};throw ('X ('+this._n+') '+c112.toSource());default:return _bC};throw ('X ('+this._n+') '+c111.toSource())}((c110)._f[0],(c110)._f[1]);default:return _bC};throw ('X ('+this._n+') '+c110.toSource())}((c109)._f[0],(c109)._f[1])}),F_fM=new HSFun("F_fM",2,function(_lm,_ln){var c113=exprEval(_lm);return function(_dM,_dN){var c114=exprEval(_dM);switch((c114)._t){case 3:return function(_dO,_dP){var c115=exprEval(_dO);switch((c115).valueOf()){case 93:var c116=exprEval(_dP);switch((c116)._t){case 2:return new HSCons(new HSData((-7),[new HSEOL(),_dN]),_ln);default:return _ln};throw ('X ('+this._n+') '+c116.toSource());default:return _ln};throw ('X ('+this._n+') '+c115.toSource())}((c114)._f[0],(c114)._f[1]);default:return _ln};throw ('X ('+this._n+') '+c114.toSource())}((c113)._f[0],(c113)._f[1])}),F_fN=new HSFun("F_fN",3,function(_dU,_ls,_lt){var c117=exprEval(_ls);return function(_dW,_dX){return new HSCons(new HSData((-7),[new HSCons(_dU,_dW),_dX]),_lt)}((c117)._f[0],(c117)._f[1])}),F_fO=new HSFun("F_fO",3,function(_dK,_lq,_lr){var c118=exprEval(_lq);return function(_dU,_dV){return(F_gg)._b(new HSFun("F_fN",0,function(){return(F_fN)._ap([_dU])}),(F_ew)._ap([_dK,_dV]),_lr)}((c118)._f[0],(c118)._f[1])}),F_fP=new HSFun("F_fP",3,function(_dK,_lo,_lp){var c119=exprEval(_lo);return function(_dQ,_dR){var c120=exprEval(_dQ);switch((c120)._t){case 3:return function(_dS,_dT){var c121=exprEval(_dS);switch((c121).valueOf()){case 44:var c122=exprEval(_dT);switch((c122)._t){case 2:return(F_gg)._b(new HSFun("F_fO",0,function(){return(F_fO)._ap([_dK])}),((exprEval(_dK))._f[0])._ap([0,_dR]),_lp);default:return _lp};throw ('X ('+this._n+') '+c122.toSource());default:return _lp};throw ('X ('+this._n+') '+c121.toSource())}((c120)._f[0],(c120)._f[1]);default:return _lp};throw ('X ('+this._n+') '+c120.toSource())}((c119)._f[0],(c119)._f[1])}),F_fQ=new HSFun("F_fQ",2,function(_lg,_lh){var c123=exprEval(_lg);return function(_d0,_d1){var c124=exprEval(_d0);switch((c124)._t){case 3:return function(_d2,_d3){var c125=exprEval(_d2);switch((c125).valueOf()){case 93:var c126=exprEval(_d3);switch((c126)._t){case 2:return new HSCons(new HSData((-7),[new HSEOL(),_d1]),_lh);default:return _lh};throw ('X ('+this._n+') '+c126.toSource());default:return _lh};throw ('X ('+this._n+') '+c125.toSource())}((c124)._f[0],(c124)._f[1]);default:return _lh};throw ('X ('+this._n+') '+c124.toSource())}((c123)._f[0],(c123)._f[1])}),F_fR=new HSFun("F_fR",3,function(_d4,_lk,_ll){var c127=exprEval(_lk);return function(_d6,_d7){return new HSCons(new HSData((-7),[new HSCons(_d4,_d6),_d7]),_ll)}((c127)._f[0],(c127)._f[1])}),F_fS=new HSFun("F_fS",3,function(_dY,_li,_lj){var c128=exprEval(_li);return function(_d4,_d5){return(F_gg)._b(new HSFun("F_fR",0,function(){return(F_fR)._ap([_d4])}),(F_ew)._ap([_dY,_d5]),_lj)}((c128)._f[0],(c128)._f[1])}),F_fT=new HSFun("F_fT",2,function(_lx,_ly){return new HSCons(_lx,_ly)}),F_fU=new HSFun("F_fU",3,function(_dJ,_lv,_lw){var c129=exprEval(_lv);return function(_d8,_d9){var c130=exprEval(_d8);switch((c130)._t){case 3:return function(_ea,_eb){var c131=exprEval(_ea);switch((c131).valueOf()){case 91:var c132=exprEval(_eb);switch((c132)._t){case 2:return(F_gg)._b(F_fT,(F_ev)._ap([_dJ,_d9]),_lw);default:return _lw};throw ('X ('+this._n+') '+c132.toSource());default:return _lw};throw ('X ('+this._n+') '+c131.toSource())}((c130)._f[0],(c130)._f[1]);default:return _lw};throw ('X ('+this._n+') '+c130.toSource())}((c129)._f[0],(c129)._f[1])}),F_fV=new HSFun("F_fV",2,function(_dJ,_lu){return(F_gg)._b(new HSFun("F_fU",0,function(){return(F_fU)._ap([_dJ])}),(F_gz)._b(_lu),new HSEOL())}),F_fW=new HSFun("F_fW",2,function(_ka,_j9){return new HSCons(_ka,_j9)}),F_fX="[]",F_fY=",",F_fZ="",F_f0="Prelude.gcd: gcd 0 0 is undefined.",F_f1=new HSFun("F_f1",3,function(_eO,_bz,_bA){var c133=exprEval(_bz);return function(_eQ,_eR){var c134=exprEval(_eQ);switch((c134)._t){case 2:var c135=exprEval(_eR);switch((c135)._t){case 2:return new HSCons(_eO,_bA);default:return _bA};throw ('X ('+this._n+') '+c135.toSource());default:return _bA};throw ('X ('+this._n+') '+c134.toSource())}((c133)._f[0],(c133)._f[1])}),F_f2=new HSFun("F_f2",2,function(_bx,_by){var c136=exprEval(_bx);return function(_eO,_eP){return(F_gg)._b(new HSFun("F_f1",0,function(){return(F_f1)._ap([_eO])}),(F_gz)._b(_eP),_by)}((c136)._f[0],(c136)._f[1])}),F_f3="Prelude.read: no parse",F_f4="Prelude.read: ambiguous parse",F_f5="Integer",F_f6=new HSFun("F_f6",1,function(_i){return(exprEval(_i))._f[0]}),F_f7=new HSFun("F_f7",1,function(_i){return(exprEval(_i))._f[1]}),F_f8=new HSFun("F_f8",2,function(_hg,_hj){var c137=exprEval(_hj);return function(_hk,_hl){return new HSData((-7),[((exprEval(_hg))._f[7])._ap([_hk]),_hl])}((c137)._f[0],(c137)._f[1])}),F_f9=new HSFun("F_f9",2,function(_hf,_ki){return(F_ez)._ap([F_dF,_hf,_ki])}),F_ga="Int",F_gb=new HSFun("F_gb",2,function(_kc,_kb){return new HSCons(_kc,_kb)}),F_gc="PreludeList.foldl1: empty list",F_gd=new HSFun("F_gd",4,function(_fv,_fw,_fx,_fy){var c138=exprEval((F_d9)._b(_fw,_fy));switch((c138)._t){case 17:return new HSEOL();case 13:return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]),new HSEOL());case 15:return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]),(F_gd)._b(_fv,(exprEval(_fw))+(exprEval(_fx)),_fx,_fy))};throw ('X ('+this._n+') '+c138.toSource())}),F_ge=new HSFun("F_ge",4,function(_fr,_fs,_ft,_fu){var c139=exprEval((F_d9)._b(_fs,_fu));switch((c139)._t){case 17:return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]),(F_ge)._b(_fr,(exprEval(_fs))+(exprEval(_ft)),_ft,_fu));case 13:return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]),new HSEOL());case 15:return new HSEOL()};throw ('X ('+this._n+') '+c139.toSource())}),F_gf=new HSFun("F_gf",3,function(_b6,_b7,_b8){var c140=exprEval(_b6);switch((c140)._t){case true:return(_b7)._ap([_b8]);case false:return _b8};throw ('X ('+this._n+') '+c140.toSource())}),F_gg=new HSFun("F_gg",3,function(_bX,_bY,_bZ){var c141=exprEval(_bY);switch((c141)._t){case 2:return _bZ;case 3:return function(_b0,_b1){return(_bX)._ap([_b0,new HSFun("F_gg",0,function(){return(F_gg)._b(_bX,_b1,_bZ)})])}((c141)._f[0],(c141)._f[1])};throw ('X ('+this._n+') '+c141.toSource())}),F_gh=new HSFun("F_gh",1,function(_jI){return(exprEval(_jI))._f[8]}),F_gi=new HSFun("F_gi",1,function(_cm){return(F_fc)._ap([new HSFun("F_gB",0,function(){return(F_gB)._ap([_cm])}),F_gE])}),F_gj=new HSFun("F_gj",1,function(_jr){return(exprEval(_jr))._f[5]}),F_gk=new HSFun("F_gk",1,function(_jY){return(exprEval(_jY))._f[2]}),F_gl=new HSFun("F_gl",2,function(_b2,_b3){var c142=exprEval(_b3);switch((c142)._t){case 2:return new HSEOL();case 3:return function(_b4,_b5){var c143=exprEval((_b2)._ap([_b4]));switch((c143)._t){case true:return(F_gl)._b(_b2,_b5);case false:var c144=exprEval(F_gF);switch((c144)._t){case true:return _b3;case false:return(F_gn)._b(F_fb)};throw ('X ('+this._n+') '+c144.toSource())};throw ('X ('+this._n+') '+c143.toSource())}((c142)._f[0],(c142)._f[1])};throw ('X ('+this._n+') '+c142.toSource())}),F_gm=new HSFun("F_gm",2,function(_cn,_co){return(F_gi)._b(((exprEval(_cn))._f[1])._ap([_co]))}),F_gn=new HSFun("F_gn",1,function(a){throw ('E '+exprEval(a).toString());return undefined}),F_go=new HSFun("F_go",3,function(_eH,_eI,_eJ){return(_eH)._ap([_eJ,_eI])}),F_gp=new HSFun("F_gp",3,function(_ij,_ik,_il){var c145=exprEval(_il);switch((c145)._t){case 2:return _ik;case 3:return function(_im,_in){return(F_gp)._b(_ij,(_ij)._ap([_ik,_im]),_in)}((c145)._f[0],(c145)._f[1])};throw ('X ('+this._n+') '+c145.toSource())}),F_gq=new HSFun("F_gq",2,function(_ip,_iq){var c146=exprEval(_iq);switch((c146)._t){case 2:return(F_gn)._b(F_gc);case 3:return function(_ir,_is){return(F_gp)._b(_ip,_ir,_is)}((c146)._f[0],(c146)._f[1])};throw ('X ('+this._n+') '+c146.toSource())}),F_gr=new HSFun("F_gr",3,function(_cb,_cc,_cd){var c147=exprEval(_cd);switch((c147)._t){case 2:return _cc;case 3:return function(_ce,_cf){return(_cb)._ap([_ce,new HSFun("F_gr",0,function(){return(F_gr)._b(_cb,_cc,_cf)})])}((c147)._f[0],(c147)._f[1])};throw ('X ('+this._n+') '+c147.toSource())}),F_gs=new HSFun("F_gs",1,function(_i0){return(exprEval(_i0))._f[3]}),F_gt=new HSFun("F_gt",1,function(_jH){return(exprEval(_jH))._f[7]}),F_gu=new HSFun("F_gu",2,function(_eZ,_e0){return(F_fc)._ap([new HSFun("F_g0",0,function(){return(exprEval(_eZ))._f[6]}),(exprEval(_e0))._f[7]])}),F_gv=new HSFun("F_gv",1,function(_eu){return(exprEval(_eu))._f[0]}),F_gw=new HSFun("F_gw",3,function(_eA,_eB,_eC){var c148=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eB,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c148)._t){case true:var c149=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eC,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c149)._t){case true:return(F_gn)._b(F_f0);case false:return(F_eu)._ap([_eA,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]),((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])])};throw ('X ('+this._n+') '+c149.toSource());case false:return(F_eu)._ap([_eA,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]),((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])])};throw ('X ('+this._n+') '+c148.toSource())}),F_gx=new HSFun("F_gx",1,function(_eG){return _eG}),F_gy=new HSFun("F_gy",1,function(_iA){var c150=exprEval(_iA);switch((c150)._t){case 2:return 0;case 3:return function(_iB,_iC){return(F_ey)._ap([1,_iC])}((c150)._f[0],(c150)._f[1])};throw ('X ('+this._n+') '+c150.toSource())}),F_gz=new HSFun("F_gz",1,function(_cB){var c151=exprEval(_cB);switch((c151)._t){case 2:return new HSCons(new HSData((-7),[F_fg,F_fh]),new HSEOL());case 3:return function(_cC,_cD){var c152=exprEval((F_Z)._b(_cC));switch((c152)._t){case true:return(F_gz)._b((F_gl)._b(F_Z,_cD));case false:var c153=exprEval(_cC);switch((c153).valueOf()){case 34:return(F_gg)._b(F_fo,(F_ek)._ap([_cD]),new HSEOL());case 39:return(F_gg)._b(F_fs,(F_1)._b(_cD),new HSEOL());default:var c154=exprEval((F_em)._ap([_cC]));switch((c154)._t){case true:return new HSCons(new HSData((-7),[new HSCons(_cC,new HSEOL()),_cD]),new HSEOL());case false:var c155=exprEval((F_en)._ap([_cC]));switch((c155)._t){case true:return(F_gg)._b(new HSFun("F_fE",0,function(){return(F_fE)._ap([_cC])}),new HSCons((F_gX)._b(F_en,_cD),new HSEOL()),new HSEOL());case false:var c156=exprEval((F_eo)._ap([_cC]));switch((c156)._t){case true:return(F_gg)._b(new HSFun("F_fF",0,function(){return(F_fF)._ap([_cC])}),new HSCons((F_gX)._b(F_ep,_cD),new HSEOL()),new HSEOL());case false:var c157=exprEval((F_bg)._b(_cC));switch((c157)._t){case true:return(F_gg)._b(new HSFun("F_fH",0,function(){return(F_fH)._ap([_cC])}),new HSCons((F_gX)._b(F_bg,_cD),new HSEOL()),new HSEOL());case false:var c158=exprEval(F_gF);switch((c158)._t){case true:return new HSEOL();case false:return(F_gn)._b(F_fI)};throw ('X ('+this._n+') '+c158.toSource())};throw ('X ('+this._n+') '+c157.toSource())};throw ('X ('+this._n+') '+c156.toSource())};throw ('X ('+this._n+') '+c155.toSource())};throw ('X ('+this._n+') '+c154.toSource())};throw ('X ('+this._n+') '+c153.toSource())};throw ('X ('+this._n+') '+c152.toSource())}((c151)._f[0],(c151)._f[1])};throw ('X ('+this._n+') '+c151.toSource())}),F_gA=new HSFun("F_gA",3,function(_it,_iu,_iv){var c159=exprEval(_iv);switch((c159)._t){case 2:return new HSData(18,[]);case 3:return function(_iw,_ix){var c160=exprEval(_iw);return function(_iy,_iz){var c161=exprEval(((exprEval(_it))._f[1])._ap([_iu,_iy]));switch((c161)._t){case true:return new HSData(16,[_iz]);case false:return(F_gA)._b(_it,_iu,_ix)};throw ('X ('+this._n+') '+c161.toSource())}((c160)._f[0],(c160)._f[1])}((c159)._f[0],(c159)._f[1])};throw ('X ('+this._n+') '+c159.toSource())}),F_gB=new HSFun("F_gB",2,function(_ci,_cj){var c162=exprEval(_cj);switch((c162)._t){case 2:return new HSEOL();case 3:return function(_ck,_cl){return new HSCons((_ci)._ap([_ck]),(F_gB)._b(_ci,_cl))}((c162)._f[0],(c162)._f[1])};throw ('X ('+this._n+') '+c162.toSource())}),F_gC=new HSFun("F_gC",1,function(_jF){return(exprEval(_jF))._f[5]}),F_gD=new HSFun("F_gD",1,function(_eX){var c163=exprEval(_eX);switch((c163)._t){case true:return false;case false:return true};throw ('X ('+this._n+') '+c163.toSource())}),F_gE=new HSFun("F_gE",0,function(){return(F_gr)._ap([F_g1,false])}),F_gF=new HSFun("F_gF",0,function(){return true}),F_gG=new HSFun("F_gG",1,function(_j2){return(exprEval(_j2))._f[7]}),F_gH=new HSFun("F_gH",1,function(_jZ){return(exprEval(_jZ))._f[4]}),F_gI=new HSFun("F_gI",2,function(_eM,_eN){var c164=exprEval((F_gg)._b(F_f2,((F_gK)._b(_eM))._ap([_eN]),new HSEOL()));switch((c164)._t){case 2:return(F_gn)._b(F_f3);case 3:return function(_eS,_eT){var c165=exprEval(_eT);switch((c165)._t){case 2:return _eS;default:return(F_gn)._b(F_f4)};throw ('X ('+this._n+') '+c165.toSource())}((c164)._f[0],(c164)._f[1])};throw ('X ('+this._n+') '+c164.toSource())}),F_gJ=new HSFun("F_gJ",2,function(_dt,_du){var c166=exprEval(_dt);switch((c166)._t){case true:return(F_et)._ap([_du]);case false:return(F_es)._ap([_du])};throw ('X ('+this._n+') '+c166.toSource())}),F_gK=new HSFun("F_gK",1,function(_dH){return((exprEval(_dH))._f[0])._ap([0])}),F_gL=new HSFun("F_gL",1,function(_i4){return(exprEval(_i4))._f[0]}),F_gM=new HSFun("F_gM",1,function(_j0){return(exprEval(_j0))._f[5]}),F_gN=new HSFun("F_gN",1,function(_j7){return(exprEval(_j7))._f[3]}),F_gO=new HSFun("F_gO",0,function(){return(F_gp)._ap([new HSFun("F_go",0,function(){return(F_go)._ap([F_gb])}),new HSEOL()])}),F_gP=new HSFun("F_gP",2,function(a,b){exprEval(a);return b}),F_gQ=new HSFun("F_gQ",1,function(_ja){return(exprEval(_ja))._f[3]}),F_gR=new HSFun("F_gR",0,function(){return F_fW}),F_gS=new HSFun("F_gS",2,function(_eU,_eV){var c167=exprEval(_eU);switch((c167)._t){case true:return(F_fc)._ap([(F_fc)._ap([(F_fW)._ap([mkChar(41)]),_eV]),(F_fW)._ap([mkChar(40)])]);case false:return _eV};throw ('X ('+this._n+') '+c167.toSource())}),F_gT=new HSFun("F_gT",0,function(){return F_cG}),F_gU=new HSFun("F_gU",1,function(_i9){return(exprEval(_i9))._f[0]}),F_gV=new HSFun("F_gV",1,function(_jG){return(exprEval(_jG))._f[6]}),F_gW=new HSFun("F_gW",1,function(_ex){return(exprEval(_ex))._f[1]}),F_gX=new HSFun("F_gX",2,function(_ct,_cu){var c168=exprEval(_cu);switch((c168)._t){case 2:return new HSData((-7),[new HSEOL(),new HSEOL()]);case 3:return function(_cv,_cw){var c169=exprEval((_ct)._ap([_cv]));switch((c169)._t){case true:var _j=new HSFun("_j",0,function(){return(F_gX)._b(_ct,_cw)}),_v=new HSFun("_v",0,function(){return(exprEval(_j))._f[0]}),_w=new HSFun("_w",0,function(){return(exprEval(_j))._f[1]});return new HSData((-7),[new HSCons(_cv,_v),_w]);case false:var c170=exprEval(F_gF);switch((c170)._t){case true:return new HSData((-7),[new HSEOL(),_cu]);case false:return(F_gn)._b(F_ff)};throw ('X ('+this._n+') '+c170.toSource())};throw ('X ('+this._n+') '+c169.toSource())}((c168)._f[0],(c168)._f[1])};throw ('X ('+this._n+') '+c168.toSource())}),F_gY=new HSFun("F_gY",1,function(_eW){return(F_go)._ap([(exprEval(_eW))._f[4]])}),F_gZ=new HSFun("F_gZ",1,function(_i1){return(exprEval(_i1))._f[4]}),F_g0=new HSFun("F_g0",1,function(_j1){return(exprEval(_j1))._f[6]}),F_g1=new HSFun("F_g1",2,function(_cg,_ch){var c171=exprEval(_cg);switch((c171)._t){case true:return true;case false:return _ch};throw ('X ('+this._n+') '+c171.toSource())}),F_g2=new HSFun("F_g2",2,function(_y,_lb){return(F_5)._b(((exprEval(_lb))._f[7])._ap([0]),(F_gA)._b(F_c8,_y,(F_hc)._b(_lb)))}),F_g3=new HSFun("F_g3",2,function(_kR,_kS){var c172=exprEval(_kS);switch((c172)._t){case 2:return((exprEval(_kR))._f[7])._ap([0]);case 3:return function(_kT,_kU){return((exprEval(_kR))._f[3])._ap([((exprEval(_kR))._f[7])._ap([1]),(F_g3)._ap([_kR,_kU])])}((c172)._f[0],(c172)._f[1])};throw ('X ('+this._n+') '+c172.toSource())}),F_g4=new HSFun("F_g4",1,function(_x){return(exprEval(_x))._f[0]}),F_g5=new HSFun("F_g5",1,function(_x){return(exprEval(_x))._f[1]}),F_g6="Roman: Pattern match failure in function at 54:1-56:16.",F_g7="Roman: Pattern match failure in function at 38:1-43:55.",F_g8="",F_g9=new HSFun("F_g9",4,function(_kZ,_k0,_k1,_k2){var c173=exprEval(((exprEval(_k0))._f[1])._ap([_k1,_k2]));switch((c173)._t){case true:return((exprEval(_kZ))._f[4])._ap([_k2,_k1]);case false:var c174=exprEval(((exprEval(_k0))._f[4])._ap([_k1,_k2]));switch((c174)._t){case true:return((exprEval(_kZ))._f[3])._ap([_k2,_k1]);case false:return(F_gn)._b(F_g6)};throw ('X ('+this._n+') '+c174.toSource())};throw ('X ('+this._n+') '+c173.toSource())}),F_ha=new HSFun("F_ha",0,function(){return(F_fc)._ap([(F_fc)._ap([new HSFun("F_gB",0,function(){return(F_gB)._ap([F_2])}),new HSFun("F_hb",0,function(){return(F_hb)._ap([F_dF])})]),new HSFun("F_gr",0,function(){return(F_gr)._ap([new HSFun("F_g9",0,function(){return(F_g9)._ap([F_dF,F_d4])}),0])})])}),F_hb=new HSFun("F_hb",2,function(_kN,_kO){var c175=exprEval(_kO);switch((c175)._t){case 2:return new HSEOL();case 3:return function(_kP,_kQ){var _x=new HSFun("_x",0,function(){return(F_gX)._b(new HSFun("F_da",0,function(){return(F_da)._ap([_kP])}),_kO)}),_z=new HSFun("_z",0,function(){return(exprEval(_x))._f[0]}),_A=new HSFun("_A",0,function(){return(exprEval(_x))._f[1]});return new HSCons(((exprEval(_kN))._f[2])._ap([new HSFun("F_4",0,function(){return(F_4)._b((F_gA)._b(F_c8,_kP,(F_hc)._b(_kN)))}),(F_g3)._ap([_kN,_z])]),(F_hb)._b(_kN,_A))}((c175)._f[0],(c175)._f[1])};throw ('X ('+this._n+') '+c175.toSource())}),F_hc=new HSFun("F_hc",1,function(_kM){return new HSCons(new HSData((-7),[mkChar(73),((exprEval(_kM))._f[7])._ap([1])]),new HSCons(new HSData((-7),[mkChar(86),((exprEval(_kM))._f[7])._ap([5])]),new HSCons(new HSData((-7),[mkChar(88),((exprEval(_kM))._f[7])._ap([10])]),new HSCons(new HSData((-7),[mkChar(76),((exprEval(_kM))._f[7])._ap([50])]),new HSCons(new HSData((-7),[mkChar(67),((exprEval(_kM))._f[7])._ap([100])]),new HSCons(new HSData((-7),[mkChar(68),((exprEval(_kM))._f[7])._ap([500])]),new HSCons(new HSData((-7),[mkChar(77),((exprEval(_kM))._f[7])._ap([1000])]),new HSEOL())))))))}),F_hd=new HSFun("F_hd",0,function(){return new HSCons(new HSData((-7),[mkChar(86),mkChar(73)]),new HSCons(new HSData((-7),[mkChar(88),mkChar(73)]),new HSCons(new HSData((-7),[mkChar(76),mkChar(88)]),new HSCons(new HSData((-7),[mkChar(67),mkChar(88)]),new HSCons(new HSData((-7),[mkChar(68),mkChar(67)]),new HSCons(new HSData((-7),[mkChar(77),mkChar(67)]),new HSEOL()))))))}),F_he=new HSFun("F_he",4,function(_k3,_k4,_k5,_k6){var c176=exprEval(_k5);return function(_k7,_k8){var c177=exprEval(_k6);return function(_k9,_la){var _y=new HSFun("_y",0,function(){return(F_5)._b(mkChar(0),(F_gA)._b(F_c8,_k7,F_hd))}),c178=exprEval(((exprEval(_k4))._f[3])._ap([_k9,_k8]));switch((c178)._t){case true:return(F_he)._b(_k3,_k4,_k5,new HSData((-7),[((exprEval(_k3))._f[4])._ap([_k9,_k8]),new HSCons(_k7,_la)]));case false:var c179=exprEval(((exprEval(_k4))._f[3])._ap([((exprEval(_k3))._f[3])._ap([_k9,((F_g2)._ap([_y]))._ap([_k3])]),_k8]));switch((c179)._t){case true:return new HSData((-7),[((exprEval(_k3))._f[3])._ap([((exprEval(_k3))._f[4])._ap([_k9,_k8]),((F_g2)._ap([_y]))._ap([_k3])]),new HSCons(_k7,new HSCons(_y,_la))]);case false:var c180=exprEval(F_gF);switch((c180)._t){case true:return new HSData((-7),[_k9,_la]);case false:return(F_gn)._b(F_g7)};throw ('X ('+this._n+') '+c180.toSource())};throw ('X ('+this._n+') '+c179.toSource())};throw ('X ('+this._n+') '+c178.toSource())}((c177)._f[0],(c177)._f[1])}((c176)._f[0],(c176)._f[1])}),F_hf=new HSFun("F_hf",1,function(_lc){return((F_fc)._ap([F_gW,F_gO]))._ap([new HSFun("F_gr",0,function(){return(F_gr)._b(new HSFun("F_he",0,function(){return(F_he)._ap([F_dF,F_d4])}),new HSData((-7),[_lc,F_g8]),(F_hc)._b(F_dF))})])}),F_hg=new HSFun("F_hg",1,function(a){return Number(exprEval(a)).toString()}),F_hh=new HSFun("F_hh",2,function(_kq,_kr){return(F_cG)._b((F_hg)._ap([_kq]),_kr)}),F_hi="return Number(exprEval(a)).toString();",F_hj="return 0 - Number(exprEval(a));",F_hk="var ea = exprEval(a); if (ea>0) return 1; else if (ea<0) return -1; else return 0;",F_hl="return Math.abs(exprEval(a));",F_hm="return a;",F_hn="return a;",F_ho="return Number(exprEval(a)) < Number(exprEval(b));",F_hp="return Number(exprEval(a)) <= Number(exprEval(b));",F_hq="return Number(exprEval(a)) > Number(exprEval(b));",F_hr="return Number(exprEval(a)) >= Number(exprEval(b));",F_hs="return Number(exprEval(a)) !== Number(exprEval(b));",F_ht="return Number(exprEval(a)) === Number(exprEval(b));",F_hu="return 0 - Number(exprEval(a));",F_hv="return exprEval(a) * exprEval(b);",F_hw="return exprEval(a) - exprEval(b);",F_hx="return exprEval(a) + exprEval(b);",F_hy="return exprEval(a) % exprEval(b);",F_hz="(function(x,y){return (x - (x % y))/y;})(exprEval(a),exprEval(b));",F_hA="exprEval(a); return b;",F_hB="throw(\'E \' + exprEval(a).toString()); return undefined;",F_hC=new HSFun("F_hC",1,function(a){return Math.abs(exprEval(a))}),F_hD=new HSFun("F_hD",1,function(a){return a}),F_hE=new HSFun("F_hE",1,function(a){var ea=exprEval(a);if(ea>0){return 1}else if(ea<0){return -1}else return 0}),F_hF=new HSFun("F_hF",2,function(a,b){return exprEval(a)+exprEval(b)}),F_hG=new HSFun("F_hG",2,function(a,b){return Number(exprEval(a))===Number(exprEval(b))}),F_hH=new HSFun("F_hH",1,function(a){return a}),F_hI=new HSFun("F_hI",2,function(a,b){return Number(exprEval(a))>=Number(exprEval(b))}),F_hJ=new HSFun("F_hJ",2,function(a,b){return Number(exprEval(a))>Number(exprEval(b))}),F_hK=new HSFun("F_hK",2,function(a,b){return Number(exprEval(a))<=Number(exprEval(b))}),F_hL=new HSFun("F_hL",2,function(a,b){return Number(exprEval(a))<Number(exprEval(b))}),F_hM=new HSFun("F_hM",2,function(a,b){return exprEval(a)*exprEval(b)}),F_hN=new HSFun("F_hN",2,function(a,b){return Number(exprEval(a))!==Number(exprEval(b))}),F_hO=new HSFun("F_hO",1,function(a){return 0-Number(exprEval(a))}),F_hP=new HSFun("F_hP",2,function(a,b){(function(x,y){return(x-(x%y))/y})(exprEval(a),exprEval(b))}),F_hQ=new HSFun("F_hQ",2,function(_kF,_kG){var _C=new HSFun("_C",0,function(){return(F_hR)._b(_kF,_kG)}),_B=new HSFun("_B",0,function(){return(F_hP)._b(_kF,_kG)});return new HSData((-7),[_B,_C])}),F_hR=new HSFun("F_hR",2,function(a,b){return exprEval(a)%exprEval(b)}),F_hS=new HSFun("F_hS",2,function(a,b){return exprEval(a)-exprEval(b)});funIdx["Echo.main"]=F_cj
+ test/pminified/130_htojs2.js view
@@ -0,0 +1,14 @@+var conIdx={},funIdx={},strIdx={};Number.prototype._c=function(){return this};Number.prototype._r=false;Number.prototype._chr=false;Boolean.prototype._c=function(){return new HSData(this.valueOf()?true:false,[])};Boolean.prototype._r=true;String.prototype._c=function(){var cmeth=this._c;this._c=function(){throw ("B '"+this+"' blackhole: thunk reentered")};try{var res=consStr(this);this._r=true;this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};String.prototype._r=true;Array.prototype._c=function(){var cmeth=this._c;this._c=function(){throw ("B ["+this.toString()+"] blackhole: thunk reentered")};try{var res=consArr(this);this._r=true;this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};Array.prototype._r=true;Array.prototype._toArray=function(){return this};var consStr=function(s){if(s.length==0){return new HSEOL()}else{var hdc=mkChar(s.charCodeAt(0));return new HSCons(hdc,s.length>1?s.substring(1):consStr(""))}},consArr=function(ar){if(ar.length==0){return new HSEOL()}else return new HSCons(ar[0],ar.length>1?ar.slice(1):consArr([]))}+/* */+function mkChar(c){var n=new Number(c);n._chr=true;return n}+function HSCons(head,tail){this._r=false;this._c=function(){return this};this._t=conIdx['Prelude.:'];this._f=[head,tail]};HSCons.prototype.toString=function(){var evhead=exprEval(this._f[0]);if(evhead._chr==true){return(String.fromCharCode(evhead)+(exprEval(this._f[1])).toString())}else return this._toArray().toString()};HSCons.prototype._toArray=function(){return[exprEval(this._f[0])].concat(exprEval(this._f[1])._toArray())}+function HSEOL(){this._r=false;this._c=function(){return this};this._t=conIdx['Prelude.[]'];this._f=[];this.toString=function(){return""};this._toArray=function(){return[]}}+function HSFun(name,arity,body){this._n=name;this._r=(arity==0);this._x=arity;this._d=this;this._y=0;this._u=null;this._b=body};HSFun.prototype._c=function(){if(!this._r)return this;var cmeth=this._c;this._c=function(){throw ("B "+this._n+" blackhole: thunk reentered")};try{var res=this._b();this._c=function(){return res};return res}catch(e){this._c=cmeth;throw (e)}};HSFun.prototype._ap=function(targs){if(targs.length==0)return this;return new HSDly(this,this,targs)}+function HSDly(fun,up,targs){this._a=targs;this._n=fun._n;this._d=fun;this._u=up;this._y=targs.length+up._y;this._r=(this._y>=fun._x)};HSDly.prototype._c=function(){if(!this._r)return this;var cmeth=this._c;this._c=function(){throw ("B "+this._n+" blackhole: thunk reentered")};var cargs=this._a,stack=this._u;for(;stack._u;stack=stack._u)cargs=stack._a.concat(cargs);var res;try{if(cargs.length==this._d._x){res=this._d._b.apply(this._d,cargs);this._u=null;this._c=function(){return res}}else{var evd;if(this._d._x==0){evd=exprEval(this._d);this._a=cargs}else{var feed=cargs.slice(0,this._d._x),over=cargs.slice(this._d._x);evd=exprEval(this._d._ap(feed));this._a=over};this._n=evd._n;this._d=evd._d;this._u=evd;this._y=this._a.length+evd._y;this._r=(this._y>=this._d._x);res=this;this._c=cmeth};return res}catch(e){this._c=cmeth;throw (e)}};HSDly.prototype._ap=function(targs){if(targs.length==0)return this;return new HSDly(this._d,this,targs)}+/**/+function HSData(con,arrs){this._r=false;this._c=function(){return this};this._t=con;this._f=arrs}+function exprEval(e){for(var ex=e;ex!=undefined&&ex._r;ex=ex._c());return ex}+function cbrApply(func,thisp,args){if(func.apply){return func.apply(thisp,args)}else{var s="func(";for(var i=0;i<args.length;i++)s+=(i==0?"":",")+"args["+i+"]";s+=")";return eval(s)}}+/**/+function newXmlHttpRequest(){var xmlhttp;xmlhttp=null;if(window.XMLHttpRequest){xmlhttp=new XMLHttpRequest()}else if(window.ActiveXObject){xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}else throw "R XML HTTP Request not supported";return xmlhttp};conIdx["Data.Ratio.:%"]=(-4);conIdx["Echo.JS"]=(-5);conIdx["Prelude.()"]=(-6);conIdx["Prelude.(,)"]=(-7);conIdx["Prelude.(,,)"]=(-8);conIdx["Prelude.(,,,)"]=(-9);conIdx["Prelude.(,,,,,,,)"]=(-10);conIdx["Prelude.(,,,,,,,,)"]=(-11);conIdx["Prelude.:"]=3;conIdx["Prelude.EQ"]=13;conIdx["Prelude.False"]=false;conIdx["Prelude.GT"]=15;conIdx["Prelude.Just"]=16;conIdx["Prelude.LT"]=17;conIdx["Prelude.Nothing"]=18;conIdx["Prelude.True"]=true;conIdx["Prelude.[]"]=2;strIdx.F_0="Data.Char.isUpper";strIdx.F_1="Data.Char.lexLitChar";strIdx.F_2="Data.Char.toUpper";strIdx.F_4="Data.Maybe.fromJust";strIdx.F_5="Data.Maybe.fromMaybe";strIdx.F_6="Data.Ratio.%";strIdx.F_8="Data.Ratio.reduce";strIdx.F_9="Data._CharNumeric._LAMBDA409";strIdx.F_U="Data.Char.asciiTab";strIdx.F_V="Data.Char.intToDigit";strIdx.F_W="Data.Char.isAlpha";strIdx.F_X="Data.Char.isAlphaNum";strIdx.F_Y="Data.Char.isLower";strIdx.F_Z="Data.Char.isSpace";strIdx.F_b="Control.Monad.when";strIdx.F_b0="Echo._LAMBDA640";strIdx.F_b9="Echo._LAMBDA649";strIdx.F_bH="Echo._LAMBDA621";strIdx.F_bJ="Echo._LAMBDA623";strIdx.F_bS="Echo._LAMBDA632";strIdx.F_bT="Echo._LAMBDA633";strIdx.F_bU="Echo._LAMBDA634";strIdx.F_bV="Echo._LAMBDA635";strIdx.F_bW="Echo._LAMBDA636";strIdx.F_bX="Echo._LAMBDA637";strIdx.F_bY="Echo._LAMBDA638";strIdx.F_bZ="Echo._LAMBDA639";strIdx.F_ba="Data._CharNumeric._LAMBDA410";strIdx.F_bb="Data._CharNumeric._LAMBDA411";strIdx.F_be="Data._CharNumeric.chr";strIdx.F_bf="Data._CharNumeric.digitToInt";strIdx.F_bg="Data._CharNumeric.isDigit";strIdx.F_bh="Data._CharNumeric.isHexDigit";strIdx.F_bi="Data._CharNumeric.isOctDigit";strIdx.F_bj="Data._CharNumeric.nonnull";strIdx.F_bk="Data._CharNumeric.ord";strIdx.F_bl="Data._CharNumeric.readDec";strIdx.F_bm="Data._CharNumeric.readInt";strIdx.F_bn="Echo.Prelude.Monad.Echo.JS";strIdx.F_bo="Echo.Prelude.Monad.Echo.JS.>>";strIdx.F_bp="Echo.Prelude.Monad.Echo.JS.>>=";strIdx.F_bq="Echo.Prelude.Monad.Echo.JS.fail";strIdx.F_br="Echo.Prelude.Monad.Echo.JS.return";strIdx.F_c="Data.Char.Data.Char.Prelude.244.prefix";strIdx.F_c0="Prelude.Prelude.Enum.Prelude.Integer.enumFromThen";strIdx.F_c1="Prelude.Prelude.Enum.Prelude.Integer.enumFromThenTo";strIdx.F_c2="Prelude.Prelude.Enum.Prelude.Integer.enumFromTo";strIdx.F_c3="Prelude.Prelude.Enum.Prelude.Integer.fromEnum";strIdx.F_c4="Prelude.Prelude.Enum.Prelude.Integer.pred";strIdx.F_c5="Prelude.Prelude.Enum.Prelude.Integer.succ";strIdx.F_c6="Prelude.Prelude.Enum.Prelude.Integer.toEnum";strIdx.F_c7="Prelude.Prelude.Enum.Prelude.Ordering.fromEnum";strIdx.F_c8="Prelude.Prelude.Eq.Prelude.Char";strIdx.F_c9="Prelude.Prelude.Eq.Prelude.Char./=";strIdx.F_cA="Numeric.showIntAtBase";strIdx.F_cB="Numeric.showSigned";strIdx.F_cC="Prelude.$";strIdx.F_cD="Prelude.&&";strIdx.F_cE="Prelude.*";strIdx.F_cF="Prelude.+";strIdx.F_cG="Prelude.++";strIdx.F_cH="Prelude.-";strIdx.F_cI="Prelude..";strIdx.F_cJ="Prelude.<";strIdx.F_cK="Prelude.<=";strIdx.F_cL="Prelude.==";strIdx.F_cM="Prelude.>";strIdx.F_cN="Prelude.>=";strIdx.F_cO="Prelude.Prelude.Enum.Prelude.Char.fromEnum";strIdx.F_cP="Prelude.Prelude.Enum.Prelude.Int";strIdx.F_cQ="Prelude.Prelude.Enum.Prelude.Int.enumFrom";strIdx.F_cR="Prelude.Prelude.Enum.Prelude.Int.enumFromThen";strIdx.F_cS="Prelude.Prelude.Enum.Prelude.Int.enumFromThenTo";strIdx.F_cT="Prelude.Prelude.Enum.Prelude.Int.enumFromTo";strIdx.F_cU="Prelude.Prelude.Enum.Prelude.Int.fromEnum";strIdx.F_cV="Prelude.Prelude.Enum.Prelude.Int.pred";strIdx.F_cW="Prelude.Prelude.Enum.Prelude.Int.succ";strIdx.F_cX="Prelude.Prelude.Enum.Prelude.Int.toEnum";strIdx.F_cY="Prelude.Prelude.Enum.Prelude.Integer";strIdx.F_cZ="Prelude.Prelude.Enum.Prelude.Integer.enumFrom";strIdx.F_ca="Echo._LAMBDA650";strIdx.F_cb="Echo._LAMBDA651";strIdx.F_cc="Echo.asInt";strIdx.F_cd="Echo.asString";strIdx.F_ce="Echo.catchJS";strIdx.F_cf="Echo.getDocument";strIdx.F_cg="Echo.getProperty";strIdx.F_ch="Echo.getTime";strIdx.F_ci="Echo.inkey";strIdx.F_cj="Echo.main";strIdx.F_ck="Echo.regEventHandler";strIdx.F_cl="Echo.runMethod";strIdx.F_cm="Echo.setProperty";strIdx.F_cn="Numeric.Numeric.Prelude.413.read'";strIdx.F_co="Numeric.Numeric.Prelude.414.read''";strIdx.F_cq="Numeric._LAMBDA2002";strIdx.F_cr="Numeric._LAMBDA2003";strIdx.F_ct="Numeric._LAMBDA2057";strIdx.F_cu="Numeric._LAMBDA2058";strIdx.F_cv="Numeric._LAMBDA2059";strIdx.F_cw="Numeric._LAMBDA2060";strIdx.F_cx="Numeric.lexDigits";strIdx.F_cy="Numeric.readSigned";strIdx.F_cz="Numeric.showInt";strIdx.F_d="Data.Char.Data.Char.Prelude.245.lexEsc";strIdx.F_d0="Prelude.Prelude.Ord.Prelude.Char.compare";strIdx.F_d1="Prelude.Prelude.Ord.Prelude.Char.max";strIdx.F_d2="Prelude.Prelude.Ord.Prelude.Char.min";strIdx.F_d3="Prelude.Prelude.Ord.Prelude.Eq";strIdx.F_d4="Prelude.Prelude.Ord.Prelude.Int";strIdx.F_d5="Prelude.Prelude.Ord.Prelude.Int.<";strIdx.F_d6="Prelude.Prelude.Ord.Prelude.Int.<=";strIdx.F_d7="Prelude.Prelude.Ord.Prelude.Int.>";strIdx.F_d8="Prelude.Prelude.Ord.Prelude.Int.>=";strIdx.F_d9="Prelude.Prelude.Ord.Prelude.Int.compare";strIdx.F_dA="Prelude.Prelude.Integral.Prelude.Integer.quotRem";strIdx.F_dB="Prelude.Prelude.Integral.Prelude.Integer.rem";strIdx.F_dC="Prelude.Prelude.Integral.Prelude.Integer.toInteger";strIdx.F_dD="Prelude.Prelude.Integral.Prelude.Real";strIdx.F_dE="Prelude.Prelude.Num.Prelude.Eq";strIdx.F_dF="Prelude.Prelude.Num.Prelude.Int";strIdx.F_dG="Prelude.Prelude.Num.Prelude.Int.*";strIdx.F_dH="Prelude.Prelude.Num.Prelude.Int.+";strIdx.F_dI="Prelude.Prelude.Num.Prelude.Int.-";strIdx.F_dJ="Prelude.Prelude.Num.Prelude.Int.abs";strIdx.F_dK="Prelude.Prelude.Num.Prelude.Int.fromInteger";strIdx.F_dL="Prelude.Prelude.Num.Prelude.Int.negate";strIdx.F_dM="Prelude.Prelude.Num.Prelude.Int.signum";strIdx.F_dN="Prelude.Prelude.Num.Prelude.Integer";strIdx.F_dO="Prelude.Prelude.Num.Prelude.Integer.*";strIdx.F_dP="Prelude.Prelude.Num.Prelude.Integer.+";strIdx.F_dQ="Prelude.Prelude.Num.Prelude.Integer.-";strIdx.F_dR="Prelude.Prelude.Num.Prelude.Integer.abs";strIdx.F_dS="Prelude.Prelude.Num.Prelude.Integer.fromInteger";strIdx.F_dT="Prelude.Prelude.Num.Prelude.Integer.negate";strIdx.F_dU="Prelude.Prelude.Num.Prelude.Integer.signum";strIdx.F_dV="Prelude.Prelude.Ord.Prelude.Char";strIdx.F_dW="Prelude.Prelude.Ord.Prelude.Char.<";strIdx.F_dX="Prelude.Prelude.Ord.Prelude.Char.<=";strIdx.F_dY="Prelude.Prelude.Ord.Prelude.Char.>";strIdx.F_dZ="Prelude.Prelude.Ord.Prelude.Char.>=";strIdx.F_da="Prelude.Prelude.Eq.Prelude.Char.==";strIdx.F_db="Prelude.Prelude.Eq.Prelude.Int";strIdx.F_dc="Prelude.Prelude.Eq.Prelude.Int./=";strIdx.F_dd="Prelude.Prelude.Eq.Prelude.Int.==";strIdx.F_de="Prelude.Prelude.Eq.Prelude.Integer";strIdx.F_df="Prelude.Prelude.Eq.Prelude.Integer./=";strIdx.F_dg="Prelude.Prelude.Eq.Prelude.Integer.==";strIdx.F_dh="Prelude.Prelude.Eq.Prelude.Ordering";strIdx.F_di="Prelude.Prelude.Eq.Prelude.Ordering./=";strIdx.F_dj="Prelude.Prelude.Eq.Prelude.Ordering.==";strIdx.F_dk="Prelude.Prelude.Eq.Prelude.[]";strIdx.F_dl="Prelude.Prelude.Eq.Prelude.[]./=";strIdx.F_dm="Prelude.Prelude.Eq.Prelude.[].==";strIdx.F_dn="Prelude.Prelude.Integral.Prelude.Int";strIdx.F_do="Prelude.Prelude.Integral.Prelude.Int.div";strIdx.F_dp="Prelude.Prelude.Integral.Prelude.Int.divMod";strIdx.F_dq="Prelude.Prelude.Integral.Prelude.Int.mod";strIdx.F_dr="Prelude.Prelude.Integral.Prelude.Int.quot";strIdx.F_ds="Prelude.Prelude.Integral.Prelude.Int.quotRem";strIdx.F_dt="Prelude.Prelude.Integral.Prelude.Int.rem";strIdx.F_du="Prelude.Prelude.Integral.Prelude.Int.toInteger";strIdx.F_dv="Prelude.Prelude.Integral.Prelude.Integer";strIdx.F_dw="Prelude.Prelude.Integral.Prelude.Integer.div";strIdx.F_dx="Prelude.Prelude.Integral.Prelude.Integer.divMod";strIdx.F_dy="Prelude.Prelude.Integral.Prelude.Integer.mod";strIdx.F_dz="Prelude.Prelude.Integral.Prelude.Integer.quot";strIdx.F_e="Data.Char.Data.Char.Prelude.246.match";strIdx.F_e0="Prelude.Prelude._.divMod";strIdx.F_e1="Prelude.Prelude._.enumFromThenTo";strIdx.F_e2="Prelude.Prelude._.enumFromTo";strIdx.F_e3="Prelude.Prelude._.fail";strIdx.F_e4="Prelude.Prelude._.max";strIdx.F_e5="Prelude.Prelude._.min";strIdx.F_e6="Prelude.Prelude._.pred";strIdx.F_e7="Prelude.Prelude._.readList";strIdx.F_e8="Prelude.Prelude._.show";strIdx.F_e9="Prelude.Prelude._.showList";strIdx.F_eA="Prelude.Prelude.Read.Prelude.Int";strIdx.F_eB="Prelude.Prelude.Read.Prelude.Int.readList";strIdx.F_eC="Prelude.Prelude.Read.Prelude.Int.readsPrec";strIdx.F_eD="Prelude.Prelude.Read.Prelude.Integer.readsPrec";strIdx.F_eE="Prelude.Prelude.Real.Prelude.Int";strIdx.F_eF="Prelude.Prelude.Real.Prelude.Int.toRational";strIdx.F_eG="Prelude.Prelude.Real.Prelude.Integer";strIdx.F_eH="Prelude.Prelude.Real.Prelude.Integer.toRational";strIdx.F_eI="Prelude.Prelude.Real.Prelude.Num";strIdx.F_eJ="Prelude.Prelude.Real.Prelude.Ord";strIdx.F_eK="Prelude.Prelude.Show.Prelude.Int";strIdx.F_eL="Prelude.Prelude.Show.Prelude.Int.show";strIdx.F_eM="Prelude.Prelude.Show.Prelude.Int.showList";strIdx.F_eN="Prelude.Prelude.Show.Prelude.Int.showsPrec";strIdx.F_eO="Prelude.Prelude.Show.Prelude.Int.showsType";strIdx.F_eP="Prelude.Prelude.Show.Prelude.Integer";strIdx.F_eQ="Prelude.Prelude.Show.Prelude.Integer.show";strIdx.F_eR="Prelude.Prelude.Show.Prelude.Integer.showList";strIdx.F_eS="Prelude.Prelude.Show.Prelude.Integer.showsPrec";strIdx.F_eT="Prelude.Prelude.Show.Prelude.Integer.showsType";strIdx.F_eU="Prelude.Prelude._./=";strIdx.F_eV="Prelude.Prelude._.<";strIdx.F_eW="Prelude.Prelude._.>";strIdx.F_eX="Prelude.Prelude._.>=";strIdx.F_eY="Prelude.Prelude._.compare";strIdx.F_eZ="Prelude.Prelude._.div";strIdx.F_ea="Prelude.Prelude.Ord.Prelude.Int.max";strIdx.F_eb="Prelude.Prelude.Ord.Prelude.Int.min";strIdx.F_ec="Prelude.Prelude.Ord.Prelude.Integer";strIdx.F_ed="Prelude.Prelude.Ord.Prelude.Integer.<";strIdx.F_ee="Prelude.Prelude.Ord.Prelude.Integer.<=";strIdx.F_ef="Prelude.Prelude.Ord.Prelude.Integer.>";strIdx.F_eg="Prelude.Prelude.Ord.Prelude.Integer.>=";strIdx.F_eh="Prelude.Prelude.Ord.Prelude.Integer.compare";strIdx.F_ei="Prelude.Prelude.Ord.Prelude.Integer.max";strIdx.F_ej="Prelude.Prelude.Ord.Prelude.Integer.min";strIdx.F_ek="Prelude.Prelude.Prelude.1812.lexString";strIdx.F_el="Prelude.Prelude.Prelude.1813.lexStrItem";strIdx.F_em="Prelude.Prelude.Prelude.1837.isSingle";strIdx.F_en="Prelude.Prelude.Prelude.1838.isSym";strIdx.F_eo="Prelude.Prelude.Prelude.1839.isIdInit";strIdx.F_ep="Prelude.Prelude.Prelude.1840.isIdChar";strIdx.F_eq="Prelude.Prelude.Prelude.1841.lexFracExp";strIdx.F_er="Prelude.Prelude.Prelude.1842.lexExp";strIdx.F_es="Prelude.Prelude.Prelude.1899.optional";strIdx.F_et="Prelude.Prelude.Prelude.1900.mandatory";strIdx.F_eu="Prelude.Prelude.Prelude.1937.gcd'";strIdx.F_ev="Prelude.Prelude.Prelude.535.readl";strIdx.F_ew="Prelude.Prelude.Prelude.536.readl'";strIdx.F_ex="Prelude.Prelude.Prelude.580.showl";strIdx.F_ey="Prelude.Prelude.Prelude.890.ll";strIdx.F_ez="Prelude.Prelude.Prelude.Read.Prelude.Int.readsPrec'Id 3510";strIdx.F_f1="Prelude._LAMBDA27500";strIdx.F_f2="Prelude._LAMBDA27501";strIdx.F_f6="Prelude._LAMBDA27620";strIdx.F_f7="Prelude._LAMBDA27621";strIdx.F_f8="Prelude._LAMBDA27631";strIdx.F_f9="Prelude._LAMBDA27632";strIdx.F_fA="Prelude._LAMBDA26955";strIdx.F_fE="Prelude._LAMBDA26959";strIdx.F_fF="Prelude._LAMBDA26960";strIdx.F_fG="Prelude._LAMBDA26961";strIdx.F_fH="Prelude._LAMBDA26962";strIdx.F_fJ="Prelude._LAMBDA26964";strIdx.F_fK="Prelude._LAMBDA26965";strIdx.F_fL="Prelude._LAMBDA26966";strIdx.F_fM="Prelude._LAMBDA26999";strIdx.F_fN="Prelude._LAMBDA27000";strIdx.F_fO="Prelude._LAMBDA27001";strIdx.F_fP="Prelude._LAMBDA27002";strIdx.F_fQ="Prelude._LAMBDA27003";strIdx.F_fR="Prelude._LAMBDA27004";strIdx.F_fS="Prelude._LAMBDA27005";strIdx.F_fT="Prelude._LAMBDA27006";strIdx.F_fU="Prelude._LAMBDA27007";strIdx.F_fV="Prelude._LAMBDA27008";strIdx.F_fW="Prelude._LAMBDA27246";strIdx.F_fa="Prelude.Prelude._.succ";strIdx.F_fc="Prelude._LAMBDA26931";strIdx.F_fd="Prelude._LAMBDA26932";strIdx.F_fe="Prelude._LAMBDA26933";strIdx.F_fk="Prelude._LAMBDA26939";strIdx.F_fm="Prelude._LAMBDA26941";strIdx.F_fn="Prelude._LAMBDA26942";strIdx.F_fo="Prelude._LAMBDA26943";strIdx.F_fr="Prelude._LAMBDA26946";strIdx.F_fs="Prelude._LAMBDA26947";strIdx.F_fv="Prelude._LAMBDA26950";strIdx.F_fw="Prelude._LAMBDA26951";strIdx.F_fx="Prelude._LAMBDA26952";strIdx.F_fz="Prelude._LAMBDA26954";strIdx.F_g0="Prelude.toInteger";strIdx.F_g1="Prelude.||";strIdx.F_g2="Roman.Roman.Prelude.221.k";strIdx.F_g3="Roman.Roman.Prelude.228.length";strIdx.F_g4="Roman._LAMBDA480";strIdx.F_g5="Roman._LAMBDA481";strIdx.F_g9="Roman.fromNumeral";strIdx.F_gA="Prelude.lookup";strIdx.F_gB="Prelude.map";strIdx.F_gC="Prelude.negate";strIdx.F_gD="Prelude.not";strIdx.F_gE="Prelude.or";strIdx.F_gF="Prelude.otherwise";strIdx.F_gG="Prelude.quot";strIdx.F_gH="Prelude.quotRem";strIdx.F_gI="Prelude.read";strIdx.F_gJ="Prelude.readParen";strIdx.F_gK="Prelude.reads";strIdx.F_gL="Prelude.readsPrec";strIdx.F_gM="Prelude.rem";strIdx.F_gN="Prelude.return";strIdx.F_gO="Prelude.reverse";strIdx.F_gP="Prelude.seq";strIdx.F_gQ="Prelude.show";strIdx.F_gR="Prelude.showChar";strIdx.F_gS="Prelude.showParen";strIdx.F_gT="Prelude.showString";strIdx.F_gU="Prelude.showsPrec";strIdx.F_gV="Prelude.signum";strIdx.F_gW="Prelude.snd";strIdx.F_gX="Prelude.span";strIdx.F_gY="Prelude.subtract";strIdx.F_gZ="Prelude.toEnum";strIdx.F_gb="Prelude._LAMBDA27663";strIdx.F_gd="Prelude._enumFromToDecC";strIdx.F_ge="Prelude._enumFromToIncC";strIdx.F_gf="Prelude._filter";strIdx.F_gg="Prelude._foldr";strIdx.F_gh="Prelude.abs";strIdx.F_gi="Prelude.any";strIdx.F_gj="Prelude.compare";strIdx.F_gk="Prelude.divMod";strIdx.F_gl="Prelude.dropWhile";strIdx.F_gm="Prelude.elem";strIdx.F_gn="Prelude.error";strIdx.F_go="Prelude.flip";strIdx.F_gp="Prelude.foldl";strIdx.F_gq="Prelude.foldl1";strIdx.F_gr="Prelude.foldr";strIdx.F_gs="Prelude.fromEnum";strIdx.F_gt="Prelude.fromInteger";strIdx.F_gu="Prelude.fromIntegral";strIdx.F_gv="Prelude.fst";strIdx.F_gw="Prelude.gcd";strIdx.F_gx="Prelude.id";strIdx.F_gy="Prelude.length";strIdx.F_gz="Prelude.lex";strIdx.F_hC="YHC.Primitive.primIntAbs";strIdx.F_hD="YHC.Primitive.primIntFromInteger";strIdx.F_hE="YHC.Primitive.primIntSignum";strIdx.F_hF="YHC.Primitive.primIntegerAdd";strIdx.F_hG="YHC.Primitive.primIntegerEq";strIdx.F_hH="YHC.Primitive.primIntegerFromInt";strIdx.F_hI="YHC.Primitive.primIntegerGe";strIdx.F_hJ="YHC.Primitive.primIntegerGt";strIdx.F_hK="YHC.Primitive.primIntegerLe";strIdx.F_hL="YHC.Primitive.primIntegerLt";strIdx.F_hM="YHC.Primitive.primIntegerMul";strIdx.F_hN="YHC.Primitive.primIntegerNe";strIdx.F_hO="YHC.Primitive.primIntegerNeg";strIdx.F_hP="YHC.Primitive.primIntegerQuot";strIdx.F_hQ="YHC.Primitive.primIntegerQuotRem";strIdx.F_hR="YHC.Primitive.primIntegerRem";strIdx.F_hS="YHC.Primitive.primIntegerSub";strIdx.F_ha="Roman.fromRoman";strIdx.F_hb="Roman.maxmunch";strIdx.F_hc="Roman.numerals";strIdx.F_hd="Roman.subnums";strIdx.F_he="Roman.toNumeral";strIdx.F_hf="Roman.toRoman";strIdx.F_hg="StdOverlay.StdOverlay.Prelude.255.showInt";strIdx.F_hh="StdOverlay.StdOverlay.Prelude.256.showPosInt";strIdx.F_m="Data.Char._LAMBDA1026";strIdx.F_n="Data.Char._LAMBDA1027";var F_b=new HSFun("F_b",3,function(_lJ,_lK,_lL){var c1=exprEval(_lK);switch((c1)._t){case true:return _lL;case false:return((exprEval(_lJ))._f[3])._ap([new HSData((-6),[])])};throw ('X ('+this._n+') '+c1.toSource())}),F_c=new HSFun("F_c",2,function(_lZ,_l0){var c2=exprEval(_l0);return function(_l1,_l2){return new HSData((-7),[new HSCons(_lZ,_l1),_l2])}((c2)._f[0],(c2)._f[1])}),F_d=new HSFun("F_d",1,function(_l3){var c3=exprEval(_l3);switch((c3)._t){case 3:return function(_l4,_l5){var c4=exprEval(((F_gm)._b(F_c8,_l4))._ap([F_l]));switch((c4)._t){case true:return new HSCons(new HSData((-7),[new HSCons(_l4,new HSEOL()),_l5]),new HSEOL());case false:var c5=exprEval(_l4);switch((c5).valueOf()){case 94:var c6=exprEval(_l5);switch((c6)._t){case 3:return function(_l6,_l7){var c7=exprEval((F_cD)._b((F_dZ)._b(_l6,mkChar(64)),(Number(exprEval(_l6)))<=(Number(exprEval(mkChar(95))))));switch((c7)._t){case true:return new HSCons(new HSData((-7),[new HSCons(mkChar(94),new HSCons(_l6,new HSEOL())),_l7]),new HSEOL());case false:var c8=exprEval((F_bg)._b(_l4));switch((c8)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c9=exprEval((F_0)._b(_l4));switch((c9)._t){case true:var c10=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c10)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c10)._f[0],(c10)._f[1])};throw ('X ('+this._n+') '+c10.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c9.toSource())};throw ('X ('+this._n+') '+c8.toSource())};throw ('X ('+this._n+') '+c7.toSource())}((c6)._f[0],(c6)._f[1]);default:var c11=exprEval((F_bg)._b(_l4));switch((c11)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c12=exprEval((F_0)._b(_l4));switch((c12)._t){case true:var c13=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c13)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c13)._f[0],(c13)._f[1])};throw ('X ('+this._n+') '+c13.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c12.toSource())};throw ('X ('+this._n+') '+c11.toSource())};throw ('X ('+this._n+') '+c6.toSource());case 111:return new HSCons((F_c)._ap([mkChar(111),new HSFun("F_gX",0,function(){return(F_gX)._b(F_bi,_l5)})]),new HSEOL());case 120:return new HSCons((F_c)._ap([mkChar(120),new HSFun("F_gX",0,function(){return(F_gX)._b(F_bh,_l5)})]),new HSEOL());default:var c14=exprEval((F_bg)._b(_l4));switch((c14)._t){case true:return new HSCons((F_gX)._b(F_bg,_l3),new HSEOL());case false:var c15=exprEval((F_0)._b(_l4));switch((c15)._t){case true:var c16=exprEval((F_gg)._b(new HSFun("F_n",0,function(){return(F_n)._ap([_l3])}),new HSCons(F_o,(F_gB)._b(F_gW,F_U)),new HSEOL()));switch((c16)._t){case 2:return new HSEOL();case 3:return function(_ma,_mb){return new HSCons(_ma,new HSEOL())}((c16)._f[0],(c16)._f[1])};throw ('X ('+this._n+') '+c16.toSource());case false:return new HSEOL()};throw ('X ('+this._n+') '+c15.toSource())};throw ('X ('+this._n+') '+c14.toSource())};throw ('X ('+this._n+') '+c5.toSource())};throw ('X ('+this._n+') '+c4.toSource())}((c3)._f[0],(c3)._f[1]);default:return new HSEOL()};throw ('X ('+this._n+') '+c3.toSource())}),F_e=new HSFun("F_e",3,function(_lS,_lT,_lU){var c17=exprEval(_lT);switch((c17)._t){case 3:return function(_lV,_lW){var c18=exprEval(_lU);switch((c18)._t){case 3:return function(_lX,_lY){var c19=exprEval(((exprEval(_lS))._f[1])._ap([_lV,_lX]));switch((c19)._t){case true:return(F_e)._ap([_lS,_lW,_lY]);case false:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c19.toSource())}((c18)._f[0],(c18)._f[1]);default:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c18.toSource())}((c17)._f[0],(c17)._f[1]);default:return new HSData((-7),[_lT,_lU])};throw ('X ('+this._n+') '+c17.toSource())}),F_f="ESC",F_g="FS",F_h="GS",F_i="RS",F_j="US",F_k="SP",F_l="abfnrtv\\\"\'",F_m=new HSFun("F_m",3,function(_hd,_io,_iH){var c20=exprEval(_io);return function(_l8,_l9){var c21=exprEval(_l8);switch((c21)._t){case 2:return new HSCons(new HSData((-7),[_hd,_l9]),_iH);default:return _iH};throw ('X ('+this._n+') '+c21.toSource())}((c20)._f[0],(c20)._f[1])}),F_n=new HSFun("F_n",3,function(_l3,_hd,_he){return(F_gg)._b(new HSFun("F_m",0,function(){return(F_m)._ap([_hd])}),new HSCons((F_e)._ap([F_c8,_hd,_l3]),new HSEOL()),_he)}),F_o="DEL",F_p=" \u0009\u000a\u000d\u000c\u000b\xa0",F_q="Char.intToDigit: not a digit",F_r="Data.Char: Pattern match failure in function at 74:1-77:62.",F_s="Data.Char: Pattern match failure in function at 275:1-276:28.",F_t="NUL",F_u="SOH",F_v="STX",F_w="ETX",F_x="EOT",F_y="ENQ",F_z="ACK",F_A="BEL",F_B="BS",F_C="HT",F_D="LF",F_E="VT",F_F="FF",F_G="CR",F_H="SO",F_I="SI",F_J="DLE",F_K="DC1",F_L="DC2",F_M="DC3",F_N="DC4",F_O="NAK",F_P="SYN",F_Q="ETB",F_R="CAN",F_S="EM",F_T="SUB",F_U=new HSFun("F_U",0,function(){return new HSCons(new HSData((-7),[mkChar(0),F_t]),new HSCons(new HSData((-7),[mkChar(1),F_u]),new HSCons(new HSData((-7),[mkChar(2),F_v]),new HSCons(new HSData((-7),[mkChar(3),F_w]),new HSCons(new HSData((-7),[mkChar(4),F_x]),new HSCons(new HSData((-7),[mkChar(5),F_y]),new HSCons(new HSData((-7),[mkChar(6),F_z]),new HSCons(new HSData((-7),[mkChar(7),F_A]),new HSCons(new HSData((-7),[mkChar(8),F_B]),new HSCons(new HSData((-7),[mkChar(9),F_C]),new HSCons(new HSData((-7),[mkChar(10),F_D]),new HSCons(new HSData((-7),[mkChar(11),F_E]),new HSCons(new HSData((-7),[mkChar(12),F_F]),new HSCons(new HSData((-7),[mkChar(13),F_G]),new HSCons(new HSData((-7),[mkChar(14),F_H]),new HSCons(new HSData((-7),[mkChar(15),F_I]),new HSCons(new HSData((-7),[mkChar(16),F_J]),new HSCons(new HSData((-7),[mkChar(17),F_K]),new HSCons(new HSData((-7),[mkChar(18),F_L]),new HSCons(new HSData((-7),[mkChar(19),F_M]),new HSCons(new HSData((-7),[mkChar(20),F_N]),new HSCons(new HSData((-7),[mkChar(21),F_O]),new HSCons(new HSData((-7),[mkChar(22),F_P]),new HSCons(new HSData((-7),[mkChar(23),F_Q]),new HSCons(new HSData((-7),[mkChar(24),F_R]),new HSCons(new HSData((-7),[mkChar(25),F_S]),new HSCons(new HSData((-7),[mkChar(26),F_T]),new HSCons(new HSData((-7),[mkChar(27),F_f]),new HSCons(new HSData((-7),[mkChar(28),F_g]),new HSCons(new HSData((-7),[mkChar(29),F_h]),new HSCons(new HSData((-7),[mkChar(30),F_i]),new HSCons(new HSData((-7),[mkChar(31),F_j]),new HSCons(new HSData((-7),[mkChar(32),F_k]),new HSEOL())))))))))))))))))))))))))))))))))}),F_V=new HSFun("F_V",1,function(_mf){var c22=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(0),(Number(exprEval(_mf)))<=(9)));switch((c22)._t){case true:return(F_be)._ap([(exprEval((F_bk)._ap([mkChar(48)])))+(exprEval(_mf))]);case false:var c23=exprEval((F_cD)._b((Number(exprEval(_mf)))>=(10),(Number(exprEval(_mf)))<=(15)));switch((c23)._t){case true:return(F_be)._ap([(exprEval((exprEval((F_bk)._ap([mkChar(97)])))+(exprEval(_mf))))-(10)]);case false:var c24=exprEval(F_gF);switch((c24)._t){case true:return(F_gn)._b(F_q);case false:return(F_gn)._b(F_r)};throw ('X ('+this._n+') '+c24.toSource())};throw ('X ('+this._n+') '+c23.toSource())};throw ('X ('+this._n+') '+c22.toSource())}),F_W=new HSFun("F_W",1,function(_md){return(F_g1)._b((F_0)._b(_md),new HSFun("F_Y",0,function(){return(F_Y)._b(_md)}))}),F_X=new HSFun("F_X",1,function(_me){return(F_g1)._b((F_W)._b(_me),new HSFun("F_bg",0,function(){return(F_bg)._b(_me)}))}),F_Y=new HSFun("F_Y",1,function(_lM){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lM,mkChar(97)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(122))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lM,mkChar(223)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(246))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_lM,mkChar(248)),(Number(exprEval(_lM)))<=(Number(exprEval(mkChar(255)))))}))}))}),F_Z=new HSFun("F_Z",1,function(_mc){return((F_gm)._b(F_c8,_mc))._ap([F_p])}),F_0=new HSFun("F_0",1,function(_lO){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lO,mkChar(65)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(90))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_lO,mkChar(192)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(214))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_lO,mkChar(216)),(Number(exprEval(_lO)))<=(Number(exprEval(mkChar(222)))))}))}))}),F_1=new HSFun("F_1",1,function(_lP){var c25=exprEval(_lP);switch((c25)._t){case 2:return new HSEOL();case 3:return function(_lQ,_lR){var c26=exprEval(_lQ);switch((c26).valueOf()){case 92:return(F_gB)._b((F_c)._ap([mkChar(92)]),(F_d)._ap([_lR]));default:return new HSCons(new HSData((-7),[new HSCons(_lQ,new HSEOL()),_lR]),new HSEOL())};throw ('X ('+this._n+') '+c26.toSource())}((c25)._f[0],(c25)._f[1])};throw ('X ('+this._n+') '+c25.toSource())}),F_2=new HSFun("F_2",1,function(_lN){var c27=exprEval((F_Y)._b(_lN));switch((c27)._t){case true:return(exprEval((exprEval(_lN))-(exprEval(mkChar(97)))))+(exprEval(mkChar(65)));case false:var c28=exprEval(F_gF);switch((c28)._t){case true:return _lN;case false:return(F_gn)._b(F_s)};throw ('X ('+this._n+') '+c28.toSource())};throw ('X ('+this._n+') '+c27.toSource())}),F_3="Maybe.fromJust: Nothing",F_4=new HSFun("F_4",1,function(_kg){var c29=exprEval(_kg);switch((c29)._t){case 18:return(F_gn)._b(F_3);case 16:return(c29)._f[0]};throw ('X ('+this._n+') '+c29.toSource())}),F_5=new HSFun("F_5",2,function(_kd,_ke){var c30=exprEval(_ke);switch((c30)._t){case 18:return _kd;case 16:return(c30)._f[0]};throw ('X ('+this._n+') '+c30.toSource())}),F_6=new HSFun("F_6",3,function(_I,_J,_K){return(F_8)._b(_I,((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[2])._ap([_J,((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[6])._ap([_K])]),((exprEval((exprEval((exprEval(_I))._f[0]))._f[0]))._f[8])._ap([_K]))}),F_7="Ratio.%: zero denominator",F_8=new HSFun("F_8",3,function(_F,_G,_H){var _lf=new HSFun("_lf",0,function(){return _F}),_b=new HSFun("_b",0,function(){return(F_gw)._b(_lf,_G,_H)}),c31=exprEval(((exprEval((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[0]))._f[1])._ap([_H,((exprEval((exprEval((exprEval(_F))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c31)._t){case true:return(F_gn)._b(F_7);case false:return new HSData((-4),[((exprEval(_F))._f[7])._ap([_G,_b]),((exprEval(_F))._f[7])._ap([_H,_b])])};throw ('X ('+this._n+') '+c31.toSource())}),F_9=new HSFun("F_9",2,function(_ee,_ef){var c32=exprEval(_ee);return function(_kl,_km){var c33=exprEval(_kl);switch((c33)._t){case 3:return function(_kn,_ko){return new HSCons(new HSData((-7),[_kl,_km]),_ef)}((c33)._f[0],(c33)._f[1]);default:return _ef};throw ('X ('+this._n+') '+c33.toSource())}((c32)._f[0],(c32)._f[1])}),F_ba=new HSFun("F_ba",4,function(_kp,_kq,_ec,_ed){return((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[3])._ap([((exprEval((exprEval((exprEval(_kp))._f[0]))._f[0]))._f[2])._ap([_ec,_kq]),_ed])}),F_bb=new HSFun("F_bb",5,function(_kq,_kp,_ks,_c7,_dI){var c34=exprEval(_c7);return function(_ku,_kv){return new HSCons(new HSData((-7),[new HSFun("F_gq",0,function(){return(F_gq)._b(new HSFun("F_ba",0,function(){return(F_ba)._ap([_kp,_kq])}),(F_gB)._b((F_fc)._ap([_ks,(F_gu)._b(F_dn,new HSFun("F_eI",0,function(){return(exprEval((exprEval(_kp))._f[0]))._f[0]}))]),_ku))}),_kv]),_dI)}((c34)._f[0],(c34)._f[1])}),F_bc="Char.digitToInt: not a digit",F_bd="Data._CharNumeric: Pattern match failure in function at 22:1-26:64.",F_be=new HSFun("F_be",0,function(){return F_gx}),F_bf=new HSFun("F_bf",1,function(_ky){var c35=exprEval((F_bg)._b(_ky));switch((c35)._t){case true:return(exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(48)])));case false:var c36=exprEval((F_cD)._b((F_dZ)._b(_ky,mkChar(97)),(Number(exprEval(_ky)))<=(Number(exprEval(mkChar(102))))));switch((c36)._t){case true:return(exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(97)])))))+(10);case false:var c37=exprEval((F_cD)._b((F_dZ)._b(_ky,mkChar(65)),(Number(exprEval(_ky)))<=(Number(exprEval(mkChar(70))))));switch((c37)._t){case true:return(exprEval((exprEval((F_bk)._ap([_ky])))-(exprEval((F_bk)._ap([mkChar(65)])))))+(10);case false:var c38=exprEval(F_gF);switch((c38)._t){case true:return(F_gn)._b(F_bc);case false:return(F_gn)._b(F_bd)};throw ('X ('+this._n+') '+c38.toSource())};throw ('X ('+this._n+') '+c37.toSource())};throw ('X ('+this._n+') '+c36.toSource())};throw ('X ('+this._n+') '+c35.toSource())}),F_bg=new HSFun("F_bg",1,function(_kx){return(F_cD)._b((F_dZ)._b(_kx,mkChar(48)),(Number(exprEval(_kx)))<=(Number(exprEval(mkChar(57)))))}),F_bh=new HSFun("F_bh",1,function(_kw){return(F_g1)._b((F_cD)._b((F_dZ)._b(_kw,mkChar(48)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(57))))),new HSFun("F_g1",0,function(){return(F_g1)._b((F_cD)._b((F_dZ)._b(_kw,mkChar(65)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(70))))),new HSFun("F_cD",0,function(){return(F_cD)._b((F_dZ)._b(_kw,mkChar(97)),(Number(exprEval(_kw)))<=(Number(exprEval(mkChar(102)))))}))}))}),F_bi=new HSFun("F_bi",1,function(_kz){return(F_cD)._b((F_dZ)._b(_kz,mkChar(48)),(Number(exprEval(_kz)))<=(Number(exprEval(mkChar(55)))))}),F_bj=new HSFun("F_bj",2,function(_kj,_kk){return(F_gg)._b(F_9,new HSCons((F_gX)._b(_kj,_kk),new HSEOL()),new HSEOL())}),F_bk=new HSFun("F_bk",0,function(){return F_gx}),F_bl=new HSFun("F_bl",1,function(_kA){return(F_bm)._ap([_kA,((exprEval((exprEval((exprEval(_kA))._f[0]))._f[0]))._f[7])._ap([10]),F_bg,F_bf])}),F_bm=new HSFun("F_bm",5,function(_kp,_kq,_kr,_ks,_kt){return(F_gg)._b(new HSFun("F_bb",0,function(){return(F_bb)._ap([_kq,_kp,_ks])}),(F_bj)._b(_kr,_kt),new HSEOL())}),F_bn=new HSFun("F_bn",0,function(){return new HSData((-9),[F_bp,F_bo,F_bq,F_br])}),F_bo=new HSFun("F_bo",2,function(_lC,_lD){var c39=exprEval(_lC);return _lD}),F_bp=new HSFun("F_bp",2,function(_lF,_lG){var c40=exprEval(_lF);return function(_lH){return(_lG)._ap([_lH])}((c40)._f[0])}),F_bq=new HSFun("F_bq",1,function(_lI){return(F_gn)._b(_lI)}),F_br=new HSFun("F_br",1,function(_lB){return(F_gP)._b(_lB,new HSData((-5),[_lB]))}),F_bs="return new HSData(conIdx[\'Echo.JS\'],[document]);",F_bt="return new HSData(conIdx[\'Echo.JS\'],[exprEval(a)[exprEval(b).toString()]]);",F_bu="exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx[\'Echo.JS\'],[]);",F_bv="exprEval(a)[exprEval(b).toString()]=function(e){if(!e){e=window.event;}; return exprEval(exprEval(c)._ap([e]));}; return new HSData(conIdx[\'Echo.JS\'],[]);",F_bw="return new HSData(conIdx[\'Echo.JS\'],[new Number(exprEval(a))]);",F_bx="return new HSData(conIdx[\'Echo.JS\'],[new String(exprEval(a))]);",F_by="try {return exprEval(a);} catch(_e) {return exprEval(b)._ap([_e]);}",F_bz="return new HSData(conIdx[\'Echo.JS\'],[(new Date()).getTime()]);",F_bA="var a1=exprEval(a); return new HSData(conIdx[\'Echo.JS\'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())]);",F_bB="keyCode",F_bC="body",F_bD="createElement",F_bE="div",F_bF="value",F_bG="",F_bH=new HSFun("F_bH",1,function(v593){return(F_br)._b(F_bG)}),F_bI="",F_bJ=new HSFun("F_bJ",1,function(v594){return(F_br)._b(F_bI)}),F_bK=" ",F_bL=" ",F_bM=" ",F_bN=" ms",F_bO="innerHTML",F_bP="insertBefore",F_bQ="value",F_bR="",F_bS=new HSFun("F_bS",8,function(_et,_fK,_fO,_f8,_e2,_e3,_lz,_hc){var _kJ=new HSFun("_kJ",0,function(){return F_dF}),_c=new HSFun("_c",0,function(){return((exprEval(_kJ))._f[4])._ap([_hc,_et])}),_kL=new HSFun("_kL",0,function(){return F_eK}),_d=new HSFun("_d",0,function(){return(F_cG)._b(_fK,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bK,new HSFun("F_cG",0,function(){return(F_cG)._b(_fO,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bL,new HSFun("F_cG",0,function(){return(F_cG)._b(_f8,new HSFun("F_cG",0,function(){return(F_cG)._b(F_bM,new HSFun("F_cG",0,function(){return(F_cG)._b(((exprEval(_kL))._f[3])._ap([_c]),F_bN)}))}))}))}))}))}))});return(F_bo)._b((F_cm)._b(_e3,F_bO,_d),(F_bo)._b((F_cl)._b(_e2,F_bP,new HSCons(_e3,new HSCons(_lz,new HSEOL()))),(F_bo)._b((F_cm)._b(_lz,F_bQ,F_bR),(F_br)._b(new HSData((-6),[])))))}),F_bT=new HSFun("F_bT",7,function(_et,_fK,_fO,_e2,_e3,_lz,_f8){return(F_bp)._b((F_ch)._b(0),new HSFun("F_bS",0,function(){return(F_bS)._ap([_et,_fK,_fO,_f8,_e2,_e3,_lz])}))}),F_bU=new HSFun("F_bU",6,function(_et,_fK,_e2,_e3,_lz,_fO){return(F_bp)._b((F_ce)._b(new HSFun("F_cC",0,function(){return(F_cC)._b(F_br,new HSFun("F_hf",0,function(){return(F_hf)._b(new HSFun("F_gI",0,function(){return(F_gI)._b(F_eA,_fK)}))}))}),F_bJ),new HSFun("F_bT",0,function(){return(F_bT)._ap([_et,_fK,_fO,_e2,_e3,_lz])}))}),F_bV=new HSFun("F_bV",5,function(_et,_e2,_e3,_lz,_fK){return(F_bo)._b((F_cC)._b(new HSFun("F_b",0,function(){return(F_b)._ap([F_bn,(Number(exprEval((F_gy)._b(_fK))))>(0)])}),new HSFun("F_bp",0,function(){return(F_bp)._b((F_ce)._b(new HSFun("F_cC",0,function(){return(F_cC)._b(F_br,((F_fc)._ap([F_ha,F_eL]))._ap([_fK]))}),F_bH),new HSFun("F_bU",0,function(){return(F_bU)._ap([_et,_fK,_e2,_e3,_lz])}))})),(F_br)._b(new HSData((-6),[])))}),F_bW=new HSFun("F_bW",4,function(_et,_e2,_lz,_e3){return(F_bp)._b((F_bp)._b((F_cg)._b(_lz,F_bF),F_cd),new HSFun("F_bV",0,function(){return(F_bV)._ap([_et,_e2,_e3,_lz])}))}),F_bX=new HSFun("F_bX",4,function(_eY,_et,_lz,_e2){return(F_bp)._b((F_cl)._b(_eY,F_bD,new HSCons(F_bE,new HSEOL())),new HSFun("F_bW",0,function(){return(F_bW)._ap([_et,_e2,_lz])}))}),F_bY=new HSFun("F_bY",3,function(_et,_lz,_eY){return(F_bp)._b((F_cg)._b(_eY,F_bC),new HSFun("F_bX",0,function(){return(F_bX)._ap([_eY,_et,_lz])}))}),F_bZ=new HSFun("F_bZ",2,function(_lz,_et){return(F_bp)._b(F_cf,new HSFun("F_bY",0,function(){return(F_bY)._ap([_et,_lz])}))}),F_b0=new HSFun("F_b0",2,function(_lz,_eq){return(F_bo)._b((F_cC)._b(new HSFun("F_b",0,function(){return(F_b)._ap([F_bn,(Number(exprEval(_eq)))===(13)])}),new HSFun("F_bp",0,function(){return(F_bp)._b((F_ch)._b(0),new HSFun("F_bZ",0,function(){return(F_bZ)._ap([_lz])}))})),(F_br)._b(new HSData((-6),[])))}),F_b1="body",F_b2="createElement",F_b3="input",F_b4="id",F_b5="input-echo",F_b6="appendChild",F_b7="onkeypress",F_b8="focus",F_b9=new HSFun("F_b9",2,function(_io,_iH){return(F_bo)._b((F_cm)._b(_iH,F_b4,F_b5),(F_bo)._b((F_cl)._b(_io,F_b6,new HSCons(_iH,new HSEOL())),(F_bo)._b((F_ck)._b(_iH,F_b7,new HSFun("F_ci",0,function(){return(F_ci)._ap([_iH])})),(F_bo)._b((F_cl)._b(_iH,F_b8,new HSEOL()),(F_br)._b(new HSData((-6),[]))))))}),F_ca=new HSFun("F_ca",2,function(_ia,_io){return(F_bp)._b((F_cl)._b(_ia,F_b2,new HSCons(F_b3,new HSEOL())),new HSFun("F_b9",0,function(){return(F_b9)._ap([_io])}))}),F_cb=new HSFun("F_cb",1,function(_ia){return(F_bp)._b((F_cg)._b(_ia,F_b1),new HSFun("F_ca",0,function(){return(F_ca)._ap([_ia])}))}),F_cc=new HSFun("F_cc",1,function(a){return new HSData(conIdx['Echo.JS'],[new Number(exprEval(a))])}),F_cd=new HSFun("F_cd",1,function(a){return new HSData(conIdx['Echo.JS'],[new String(exprEval(a))])}),F_ce=new HSFun("F_ce",2,function(a,b){try{return exprEval(a)}catch(_e){return exprEval(b)._ap([_e])}}),F_cf=new HSFun("F_cf",0,function(){return new HSData(conIdx['Echo.JS'],[document])}),F_cg=new HSFun("F_cg",2,function(a,b){return new HSData(conIdx['Echo.JS'],[exprEval(a)[exprEval(b).toString()]])}),F_ch=new HSFun("F_ch",1,function(a){return new HSData(conIdx['Echo.JS'],[(new Date()).getTime()])}),F_ci=new HSFun("F_ci",2,function(_lz,_lA){return(F_bp)._b((F_bp)._b((F_cg)._b(_lA,F_bB),F_cc),new HSFun("F_b0",0,function(){return(F_b0)._ap([_lz])}))}),F_cj=new HSFun("F_cj",0,function(){return(F_bp)._b(F_cf,F_cb)}),F_ck=new HSFun("F_ck",3,function(a,b,c){exprEval(a)[exprEval(b).toString()]=function(e){if(!e)e=window.event;return exprEval(exprEval(c)._ap([e]))};return new HSData(conIdx['Echo.JS'],[])}),F_cl=new HSFun("F_cl",3,function(a,b,c){var a1=exprEval(a);return new HSData(conIdx['Echo.JS'],[cbrApply(a1[exprEval(b).toString()],a1,exprEval(c)._toArray())])}),F_cm=new HSFun("F_cm",3,function(a,b,c){exprEval(a)[exprEval(b).toString()]=exprEval(c);return new HSData(conIdx['Echo.JS'],[])}),F_cn=new HSFun("F_cn",3,function(_E,_bI,_bO){return(F_cG)._b(((F_co)._ap([_bI]))._ap([_bO]),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_cw",0,function(){return(F_cw)._ap([_E,_bI])}),(F_gz)._b(_bO),new HSEOL())}))}),F_co=new HSFun("F_co",2,function(_bI,_bJ){return(F_gg)._b(new HSFun("F_cu",0,function(){return(F_cu)._ap([_bI])}),(F_gz)._b(_bJ),new HSEOL())}),F_cp="Numeric.showIntAtBase: can\'t show negative numbers",F_cq=new HSFun("F_cq",1,function(_e){return(exprEval(_e))._f[0]}),F_cr=new HSFun("F_cr",1,function(_e){return(exprEval(_e))._f[1]}),F_cs="Numeric: Pattern match failure in function at 435:1-440:66.",F_ct=new HSFun("F_ct",3,function(_bL,_kJ,_kK){var c41=exprEval(_kJ);return function(_bM,_bN){var c42=exprEval(_bN);switch((c42)._t){case 2:return new HSCons(new HSData((-7),[_bM,_bL]),_kK);default:return _kK};throw ('X ('+this._n+') '+c42.toSource())}((c41)._f[0],(c41)._f[1])}),F_cu=new HSFun("F_cu",3,function(_bI,_kH,_kI){var c43=exprEval(_kH);return function(_bK,_bL){return(F_gg)._b(new HSFun("F_ct",0,function(){return(F_ct)._ap([_bL])}),(_bI)._ap([_bK]),_kI)}((c43)._f[0],(c43)._f[1])}),F_cv=new HSFun("F_cv",3,function(_E,_kD,_kE){var c44=exprEval(_kD);return function(_bT,_bU){return new HSCons(new HSData((-7),[((exprEval(_E))._f[5])._ap([_bT]),_bU]),_kE)}((c44)._f[0],(c44)._f[1])}),F_cw=new HSFun("F_cw",4,function(_E,_bI,_kB,_kC){var c45=exprEval(_kB);return function(_bP,_bQ){var c46=exprEval(_bP);switch((c46)._t){case 3:return function(_bR,_bS){var c47=exprEval(_bR);switch((c47).valueOf()){case 45:var c48=exprEval(_bS);switch((c48)._t){case 2:return(F_gg)._b(new HSFun("F_cv",0,function(){return(F_cv)._ap([_E])}),((F_co)._ap([_bI]))._ap([_bQ]),_kC);default:return _kC};throw ('X ('+this._n+') '+c48.toSource());default:return _kC};throw ('X ('+this._n+') '+c47.toSource())}((c46)._f[0],(c46)._f[1]);default:return _kC};throw ('X ('+this._n+') '+c46.toSource())}((c45)._f[0],(c45)._f[1])}),F_cx=new HSFun("F_cx",0,function(){return(F_bj)._ap([F_bg])}),F_cy=new HSFun("F_cy",2,function(_bH,_bI){var _E=new HSFun("_E",0,function(){return(exprEval(_bH))._f[0]});return(F_gJ)._b(false,new HSFun("F_cn",0,function(){return(F_cn)._ap([_E,_bI])}))}),F_cz=new HSFun("F_cz",1,function(_4){return(F_cA)._ap([_4,((exprEval((exprEval((exprEval(_4))._f[0]))._f[0]))._f[7])._ap([10]),F_V])}),F_cA=new HSFun("F_cA",5,function(_V,_W,_X,_Y,_Z){var c49=exprEval(((exprEval((exprEval((exprEval(_V))._f[0]))._f[1]))._f[1])._ap([_Y,((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c49)._t){case true:return(F_gn)._b(F_cp);case false:var c50=exprEval(F_gF);switch((c50)._t){case true:var _ld=new HSFun("_ld",0,function(){return _V}),_e=new HSFun("_e",0,function(){return((exprEval(_ld))._f[4])._ap([_Y,_W])}),_f=new HSFun("_f",0,function(){return(exprEval(_e))._f[0]}),_g=new HSFun("_g",0,function(){return(exprEval(_e))._f[1]}),_le=new HSFun("_le",0,function(){return _V}),_h=new HSFun("_h",0,function(){return new HSCons((_X)._ap([((F_gu)._b(_le,F_dF))._ap([_g])]),_Z)}),c51=exprEval(((exprEval((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[0]))._f[1])._ap([_f,((exprEval((exprEval((exprEval(_V))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c51)._t){case true:return _h;case false:return(F_cA)._b(_V,_W,_X,_f,_h)};throw ('X ('+this._n+') '+c51.toSource());case false:return(F_gn)._b(F_cs)};throw ('X ('+this._n+') '+c50.toSource())};throw ('X ('+this._n+') '+c49.toSource())}),F_cB=new HSFun("F_cB",4,function(_R,_S,_T,_U){var c52=exprEval(((exprEval((exprEval(_R))._f[1]))._f[1])._ap([_U,((exprEval((exprEval(_R))._f[0]))._f[7])._ap([0])]));switch((c52)._t){case true:return(F_gS)._b((Number(exprEval(_T)))>(6),(F_fc)._ap([(_S)._ap([((exprEval((exprEval(_R))._f[0]))._f[5])._ap([_U])]),(F_fW)._ap([mkChar(45)])]));case false:return(_S)._ap([_U])};throw ('X ('+this._n+') '+c52.toSource())}),F_cC=new HSFun("F_cC",2,function(_eK,_eL){return(_eK)._ap([_eL])}),F_cD=new HSFun("F_cD",2,function(_er,_es){var c53=exprEval(_er);switch((c53)._t){case true:return _es;case false:return false};throw ('X ('+this._n+') '+c53.toSource())}),F_cE=new HSFun("F_cE",1,function(_jC){return(exprEval(_jC))._f[2]}),F_cF=new HSFun("F_cF",1,function(_jD){return(exprEval(_jD))._f[3]}),F_cG=new HSFun("F_cG",2,function(_cp,_cq){var c54=exprEval(_cp);switch((c54)._t){case 2:return _cq;case 3:return function(_cr,_cs){return new HSCons(_cr,(F_cG)._b(_cs,_cq))}((c54)._f[0],(c54)._f[1])};throw ('X ('+this._n+') '+c54.toSource())}),F_cH=new HSFun("F_cH",1,function(_jE){return(exprEval(_jE))._f[4]}),F_cI=new HSFun("F_cI",2,function(_b9,_ca){return(F_fc)._ap([_ca,_b9])}),F_cJ=new HSFun("F_cJ",1,function(_jn){return(exprEval(_jn))._f[1]}),F_cK=new HSFun("F_cK",1,function(_jo){return(exprEval(_jo))._f[2]}),F_cL=new HSFun("F_cL",1,function(_jd){return(exprEval(_jd))._f[1]}),F_cM=new HSFun("F_cM",1,function(_jq){return(exprEval(_jq))._f[4]}),F_cN=new HSFun("F_cN",1,function(_jp){return(exprEval(_jp))._f[3]}),F_cO=new HSFun("F_cO",1,function(_f7){return _f7}),F_cP=new HSFun("F_cP",0,function(){return new HSData((-10),[F_cW,F_cV,F_cQ,F_cU,F_cX,F_cR,F_cT,F_cS])}),F_cQ=new HSFun("F_cQ",1,function(_hH){return new HSCons(_hH,(F_cQ)._b((exprEval(_hH))+(1)))}),F_cR=new HSFun("F_cR",2,function(_hF,_hG){return new HSCons(_hF,(F_cR)._b(_hG,(exprEval((2)*(exprEval(_hG))))-(exprEval(_hF))))}),F_cS=new HSFun("F_cS",3,function(_hK,_hL,_hM){return(F_e1)._b(F_cP,_hK,_hL,_hM)}),F_cT=new HSFun("F_cT",2,function(_hN,_hO){return(F_e2)._b(F_cP,_hN,_hO)}),F_cU=new HSFun("F_cU",1,function(_hI){return _hI}),F_cV=new HSFun("F_cV",1,function(_hP){return(F_e6)._b(F_cP,_hP)}),F_cW=new HSFun("F_cW",1,function(_hQ){return(F_fa)._b(F_cP,_hQ)}),F_cX=new HSFun("F_cX",1,function(_hJ){return _hJ}),F_cY=new HSFun("F_cY",0,function(){return new HSData((-10),[F_c5,F_c4,F_cZ,F_c3,F_c6,F_c0,F_c2,F_c1])}),F_cZ=new HSFun("F_cZ",1,function(_g2){return new HSCons(_g2,(F_cZ)._b((F_hF)._b(_g2,1)))}),F_c0=new HSFun("F_c0",2,function(_g0,_g1){return new HSCons(_g0,(F_c0)._b(_g1,(F_hF)._b((F_hM)._b(2,_g1),_g0)))}),F_c1=new HSFun("F_c1",3,function(_g7,_g8,_g9){return(F_e1)._b(F_cY,_g7,_g8,_g9)}),F_c2=new HSFun("F_c2",2,function(_ha,_hb){return(F_e2)._b(F_cY,_ha,_hb)}),F_c3=new HSFun("F_c3",1,function(_g3){return(F_hD)._b(_g3)}),F_c4=new HSFun("F_c4",1,function(_g5){return(F_hS)._b(_g5,1)}),F_c5=new HSFun("F_c5",1,function(_g6){return(F_hF)._b(_g6,1)}),F_c6=new HSFun("F_c6",1,function(_g4){return(F_hH)._b(_g4)}),F_c7=new HSFun("F_c7",1,function(_fq){var c55=exprEval(_fq);switch((c55)._t){case 17:return 0;case 13:return 1;case 15:return 2};throw ('X ('+this._n+') '+c55.toSource())}),F_c8=new HSFun("F_c8",0,function(){return new HSData((-7),[F_c9,F_da])}),F_c9=new HSFun("F_c9",2,function(_f5,_f6){return(F_eU)._b(F_c8,_f5,_f6)}),F_da=new HSFun("F_da",2,function(_f3,_f4){return(Number(exprEval(_f3)))===(Number(exprEval(_f4)))}),F_db=new HSFun("F_db",0,function(){return new HSData((-7),[F_dc,F_dd])}),F_dc=new HSFun("F_dc",2,function(_if,_ig){return(Number(exprEval(_if)))!==(Number(exprEval(_ig)))}),F_dd=new HSFun("F_dd",2,function(_ih,_ii){return(Number(exprEval(_ih)))===(Number(exprEval(_ii)))}),F_de=new HSFun("F_de",0,function(){return new HSData((-7),[F_df,F_dg])}),F_df=new HSFun("F_df",2,function(_gW,_gX){return(F_hN)._b(_gW,_gX)}),F_dg=new HSFun("F_dg",2,function(_gY,_gZ){return(F_hG)._b(_gY,_gZ)}),F_dh=new HSFun("F_dh",0,function(){return new HSData((-7),[F_di,F_dj])}),F_di=new HSFun("F_di",2,function(_fo,_fp){return(F_eU)._b(F_dh,_fo,_fp)}),F_dj=new HSFun("F_dj",2,function(_fj,_fk){return(Number(exprEval((F_c7)._b(_fj))))===(Number(exprEval((F_c7)._b(_fk))))}),F_dk=new HSFun("F_dk",1,function(_bW){return new HSData((-7),[new HSFun("F_dl",0,function(){return(F_dl)._ap([_bW])}),new HSFun("F_dm",0,function(){return(F_dm)._ap([_bW])})])}),F_dl=new HSFun("F_dl",3,function(_iP,_iQ,_iR){return(F_eU)._b(new HSFun("F_dk",0,function(){return(F_dk)._b(_iP)}),_iQ,_iR)}),F_dm=new HSFun("F_dm",3,function(_iI,_iJ,_iK){var c56=exprEval(_iJ);switch((c56)._t){case 2:var c57=exprEval(_iK);switch((c57)._t){case 2:return true;default:return false};throw ('X ('+this._n+') '+c57.toSource());case 3:return function(_iL,_iM){var c58=exprEval(_iK);switch((c58)._t){case 3:return function(_iN,_iO){return(F_cD)._b(((exprEval(_iI))._f[1])._ap([_iL,_iN]),new HSFun("F_dm",0,function(){return(F_dm)._b(_iI,_iM,_iO)}))}((c58)._f[0],(c58)._f[1]);default:return false};throw ('X ('+this._n+') '+c58.toSource())}((c56)._f[0],(c56)._f[1])};throw ('X ('+this._n+') '+c56.toSource())}),F_dn=new HSFun("F_dn",0,function(){return new HSData((-11),[F_eE,F_cP,F_dp,F_dq,F_ds,F_dt,F_du,F_dr,F_do])}),F_do=new HSFun("F_do",2,function(_hC,_hD){return(F_eZ)._b(F_dn,_hC,_hD)}),F_dp=new HSFun("F_dp",2,function(_hx,_hy){return(F_e0)._b(F_dn,_hx,_hy)}),F_dq=new HSFun("F_dq",2,function(_hp,_hq){var _k=new HSFun("_k",0,function(){return(exprEval(_hp))%(exprEval(_hq))}),c59=exprEval((Number(exprEval((F_hE)._b(_k))))===(Number(exprEval(NEG_W(exprEval((F_hE)._b(_hq)))))));switch((c59)._t){case true:return(exprEval(_k))+(exprEval(_hq));case false:return _k};throw ('X ('+this._n+') '+c59.toSource())}),F_dr=new HSFun("F_dr",2,function(_hv,_hw){return function(x,y){return(x-(x%y))/y}(Number(exprEval(_hv)),Number(exprEval(_hw)))}),F_ds=new HSFun("F_ds",2,function(_hr,_hs){return new HSData((-7),[function(x,y){return(x-(x%y))/y}(Number(exprEval(_hr)),Number(exprEval(_hs))),(exprEval(_hr))%(exprEval(_hs))])}),F_dt=new HSFun("F_dt",2,function(_ht,_hu){return(exprEval(_ht))%(exprEval(_hu))}),F_du=new HSFun("F_du",1,function(_ho){return(F_hH)._b(_ho)}),F_dv=new HSFun("F_dv",0,function(){return new HSData((-11),[F_eG,F_cY,F_dx,F_dy,F_dA,F_dB,F_dC,F_dz,F_dw])}),F_dw=new HSFun("F_dw",2,function(_gi,_gj){return(exprEval((F_dx)._b(_gi,_gj)))._f[0]}),F_dx=new HSFun("F_dx",2,function(_gv,_gw){return(F_e0)._b(F_dv,_gv,_gw)}),F_dy=new HSFun("F_dy",2,function(_gg,_gh){return(exprEval((F_dx)._b(_gg,_gh)))._f[1]}),F_dz=new HSFun("F_dz",2,function(_gm,_gn){return(F_hP)._b(_gm,_gn)}),F_dA=new HSFun("F_dA",2,function(_ge,_gf){return(F_hQ)._b(_ge,_gf)}),F_dB=new HSFun("F_dB",2,function(_gk,_gl){return(F_hR)._b(_gk,_gl)}),F_dC=new HSFun("F_dC",1,function(_gd){return _gd}),F_dD=new HSFun("F_dD",1,function(_jX){return(exprEval(_jX))._f[0]}),F_dE=new HSFun("F_dE",1,function(_jB){return(exprEval(_jB))._f[0]}),F_dF=new HSFun("F_dF",0,function(){return new HSData((-11),[F_db,F_eK,F_dG,F_dH,F_dI,F_dL,F_dM,F_dK,F_dJ])}),F_dG=new HSFun("F_dG",2,function(_hU,_hV){return(exprEval(_hU))*(exprEval(_hV))}),F_dH=new HSFun("F_dH",2,function(_hY,_hZ){return(exprEval(_hY))+(exprEval(_hZ))}),F_dI=new HSFun("F_dI",2,function(_hW,_hX){return(exprEval(_hW))-(exprEval(_hX))}),F_dJ=new HSFun("F_dJ",1,function(_hT){return(F_hC)._b(_hT)}),F_dK=new HSFun("F_dK",1,function(_hR){return(F_hD)._b(_hR)}),F_dL=new HSFun("F_dL",1,function(a){return 0-Number(exprEval(a))}),F_dM=new HSFun("F_dM",1,function(_hS){return(F_hE)._b(_hS)}),F_dN=new HSFun("F_dN",0,function(){return new HSData((-11),[F_de,F_eP,F_dO,F_dP,F_dQ,F_dT,F_dU,F_dS,F_dR])}),F_dO=new HSFun("F_dO",2,function(_gC,_gD){return(F_hM)._b(_gC,_gD)}),F_dP=new HSFun("F_dP",2,function(_gG,_gH){return(F_hF)._b(_gG,_gH)}),F_dQ=new HSFun("F_dQ",2,function(_gE,_gF){return(F_hS)._b(_gE,_gF)}),F_dR=new HSFun("F_dR",1,function(_gA){var c60=exprEval((F_hL)._b(_gA,0));switch((c60)._t){case true:return(F_hO)._b(_gA);case false:return _gA};throw ('X ('+this._n+') '+c60.toSource())}),F_dS=new HSFun("F_dS",1,function(_gy){return _gy}),F_dT=new HSFun("F_dT",1,function(_gB){return(F_hO)._b(_gB)}),F_dU=new HSFun("F_dU",1,function(_gz){var c61=exprEval((F_eh)._b(_gz,0));switch((c61)._t){case 17:return -1;case 13:return 0;case 15:return 1};throw ('X ('+this._n+') '+c61.toSource())}),F_dV=new HSFun("F_dV",0,function(){return new HSData((-10),[F_c8,F_dW,F_dX,F_dZ,F_dY,F_d0,F_d2,F_d1])}),F_dW=new HSFun("F_dW",2,function(_f1,_f2){return(F_eV)._b(F_dV,_f1,_f2)}),F_dX=new HSFun("F_dX",2,function(_fR,_fS){return(Number(exprEval(_fR)))<=(Number(exprEval(_fS)))}),F_dY=new HSFun("F_dY",2,function(_fX,_fY){return(F_eW)._b(F_dV,_fX,_fY)}),F_dZ=new HSFun("F_dZ",2,function(_fZ,_f0){return(F_eX)._b(F_dV,_fZ,_f0)}),F_d0=new HSFun("F_d0",2,function(_fP,_fQ){return(F_d9)._b(_fP,_fQ)}),F_d1=new HSFun("F_d1",2,function(_fV,_fW){return(F_e4)._b(F_dV,_fV,_fW)}),F_d2=new HSFun("F_d2",2,function(_fT,_fU){return(F_e5)._b(F_dV,_fT,_fU)}),F_d3=new HSFun("F_d3",1,function(_jm){return(exprEval(_jm))._f[0]}),F_d4=new HSFun("F_d4",0,function(){return new HSData((-10),[F_db,F_d5,F_d6,F_d8,F_d7,F_d9,F_eb,F_ea])}),F_d5=new HSFun("F_d5",2,function(_h6,_h7){return(Number(exprEval(_h6)))<(Number(exprEval(_h7)))}),F_d6=new HSFun("F_d6",2,function(_h4,_h5){return(Number(exprEval(_h4)))<=(Number(exprEval(_h5)))}),F_d7=new HSFun("F_d7",2,function(_h0,_h1){return(Number(exprEval(_h0)))>(Number(exprEval(_h1)))}),F_d8=new HSFun("F_d8",2,function(_h2,_h3){return(Number(exprEval(_h2)))>=(Number(exprEval(_h3)))}),F_d9=new HSFun("F_d9",2,function(_id,_ie){return(F_eY)._b(F_d4,_id,_ie)}),F_ea=new HSFun("F_ea",2,function(_ib,_ic){return(F_e4)._b(F_d4,_ib,_ic)}),F_eb=new HSFun("F_eb",2,function(_h8,_h9){return(F_e5)._b(F_d4,_h8,_h9)}),F_ec=new HSFun("F_ec",0,function(){return new HSData((-10),[F_de,F_ed,F_ee,F_eg,F_ef,F_eh,F_ej,F_ei])}),F_ed=new HSFun("F_ed",2,function(_gO,_gP){return(F_hL)._b(_gO,_gP)}),F_ee=new HSFun("F_ee",2,function(_gM,_gN){return(F_hK)._b(_gM,_gN)}),F_ef=new HSFun("F_ef",2,function(_gI,_gJ){return(F_hJ)._b(_gI,_gJ)}),F_eg=new HSFun("F_eg",2,function(_gK,_gL){return(F_hI)._b(_gK,_gL)}),F_eh=new HSFun("F_eh",2,function(_gU,_gV){return(F_eY)._b(F_ec,_gU,_gV)}),F_ei=new HSFun("F_ei",2,function(_gS,_gT){return(F_e4)._b(F_ec,_gS,_gT)}),F_ej=new HSFun("F_ej",2,function(_gQ,_gR){return(F_e5)._b(F_ec,_gQ,_gR)}),F_ek=new HSFun("F_ek",1,function(_cL){var c62=exprEval(_cL);switch((c62)._t){case 3:return function(_cM,_cN){var c63=exprEval(_cM);switch((c63).valueOf()){case 34:return new HSCons(new HSData((-7),[F_fl,_cN]),new HSEOL());default:return(F_gg)._b(F_fn,(F_el)._ap([_cL]),new HSEOL())};throw ('X ('+this._n+') '+c63.toSource())}((c62)._f[0],(c62)._f[1]);default:return(F_gg)._b(F_fn,(F_el)._ap([_cL]),new HSEOL())};throw ('X ('+this._n+') '+c62.toSource())}),F_el=new HSFun("F_el",1,function(_cE){var c64=exprEval(_cE);switch((c64)._t){case 3:return function(_cF,_cG){var c65=exprEval(_cF);switch((c65).valueOf()){case 92:var c66=exprEval(_cG);switch((c66)._t){case 3:return function(_cH,_cI){var c67=exprEval(_cH);switch((c67).valueOf()){case 38:return new HSCons(new HSData((-7),[F_fi,_cI]),new HSEOL());default:var c68=exprEval((F_Z)._b(_cH));switch((c68)._t){case true:return(F_gg)._b(F_fk,new HSCons((F_gl)._b(F_Z,_cI),new HSEOL()),new HSEOL());case false:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c68.toSource())};throw ('X ('+this._n+') '+c67.toSource())}((c66)._f[0],(c66)._f[1]);default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c66.toSource());default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c65.toSource())}((c64)._f[0],(c64)._f[1]);default:return(F_1)._b(_cE)};throw ('X ('+this._n+') '+c64.toSource())}),F_em=new HSFun("F_em",1,function(_dk){return((F_gm)._b(F_c8,_dk))._ap([F_fD])}),F_en=new HSFun("F_en",1,function(_dj){return((F_gm)._b(F_c8,_dj))._ap([F_fC])}),F_eo=new HSFun("F_eo",1,function(_di){return(F_g1)._b((F_W)._b(_di),(Number(exprEval(_di)))===(Number(exprEval(mkChar(95)))))}),F_ep=new HSFun("F_ep",1,function(_dh){return(F_g1)._b((F_X)._b(_dh),((F_gm)._b(F_c8,_dh))._ap([F_fB]))}),F_eq=new HSFun("F_eq",1,function(_c8){var c69=exprEval(_c8);switch((c69)._t){case 3:return function(_c9,_da){var c70=exprEval(_c9);switch((c70).valueOf()){case 46:var c71=exprEval(_da);switch((c71)._t){case 3:return function(_db,_dc){var c72=exprEval((F_bg)._b(_db));switch((c72)._t){case true:return(F_gg)._b(F_fA,(F_cx)._ap([new HSCons(_db,_dc)]),new HSEOL());case false:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c72.toSource())}((c71)._f[0],(c71)._f[1]);default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c71.toSource());default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c70.toSource())}((c69)._f[0],(c69)._f[1]);default:return(F_er)._ap([_c8])};throw ('X ('+this._n+') '+c69.toSource())}),F_er=new HSFun("F_er",1,function(_cY){var c73=exprEval(_cY);switch((c73)._t){case 3:return function(_cZ,_c0){var c74=exprEval(((F_gm)._b(F_c8,_cZ))._ap([F_ft]));switch((c74)._t){case true:return(F_cG)._b((F_gg)._b(new HSFun("F_fw",0,function(){return(F_fw)._ap([_cZ])}),new HSCons(_c0,new HSEOL()),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fx",0,function(){return(F_fx)._ap([_cZ])}),(F_cx)._ap([_c0]),new HSEOL())}));case false:return new HSCons(new HSData((-7),[F_fy,_cY]),new HSEOL())};throw ('X ('+this._n+') '+c74.toSource())}((c73)._f[0],(c73)._f[1]);default:return new HSCons(new HSData((-7),[F_fy,_cY]),new HSEOL())};throw ('X ('+this._n+') '+c73.toSource())}),F_es=new HSFun("F_es",2,function(_du,_dv){return(F_cG)._b((_du)._ap([_dv]),((F_et)._ap([_du]))._ap([_dv]))}),F_et=new HSFun("F_et",2,function(_du,_dw){return(F_gg)._b(new HSFun("F_fL",0,function(){return(F_fL)._ap([_du])}),(F_gz)._b(_dw),new HSEOL())}),F_eu=new HSFun("F_eu",3,function(_eD,_eE,_eF){var c75=exprEval(((exprEval((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eF,((exprEval((exprEval((exprEval(_eD))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c75)._t){case true:return _eE;case false:return(F_eu)._ap([_eD,_eF,((exprEval(_eD))._f[5])._ap([_eE,_eF])])};throw ('X ('+this._n+') '+c75.toSource())}),F_ev=new HSFun("F_ev",2,function(_dY,_dZ){return(F_cG)._b((F_gg)._b(F_fQ,(F_gz)._b(_dZ),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fS",0,function(){return(F_fS)._ap([_dY])}),((exprEval(_dY))._f[0])._ap([0,_dZ]),new HSEOL())}))}),F_ew=new HSFun("F_ew",2,function(_dK,_dL){return(F_cG)._b((F_gg)._b(F_fM,(F_gz)._b(_dL),new HSEOL()),new HSFun("F_gg",0,function(){return(F_gg)._b(new HSFun("F_fP",0,function(){return(F_fP)._ap([_dK])}),(F_gz)._b(_dL),new HSEOL())}))}),F_ex=new HSFun("F_ex",2,function(_ek,_el){var c76=exprEval(_el);switch((c76)._t){case 2:return(F_fW)._ap([mkChar(93)]);case 3:return function(_em,_en){return(F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_ek,_en]),((exprEval(_ek))._f[0])._ap([0,_em])]),(F_gT)._ap([F_fY])])}((c76)._f[0],(c76)._f[1])};throw ('X ('+this._n+') '+c76.toSource())}),F_ey=new HSFun("F_ey",2,function(_iD,_iE){var c77=exprEval(_iE);switch((c77)._t){case 2:return _iD;case 3:return function(_iF,_iG){var _u=new HSFun("_u",0,function(){return(exprEval(_iD))+(1)});return(F_gP)._b(_u,(F_ey)._ap([_u,_iG]))}((c77)._f[0],(c77)._f[1])};throw ('X ('+this._n+') '+c77.toSource())}),F_ez=new HSFun("F_ez",3,function(_hg,_hh,_hi){return(F_gB)._b(new HSFun("F_f8",0,function(){return(F_f8)._ap([_hg])}),((F_eD)._b(_hh))._ap([_hi]))}),F_eA=new HSFun("F_eA",0,function(){return new HSData((-7),[F_eC,F_eB])}),F_eB=new HSFun("F_eB",0,function(){return(F_e7)._b(F_eA)}),F_eC=new HSFun("F_eC",1,function(_hf){return(F_f9)._ap([_hf])}),F_eD=new HSFun("F_eD",1,function(v25828){return(F_cy)._b(F_eG,new HSFun("F_bl",0,function(){return(F_bl)._b(F_dv)}))}),F_eE=new HSFun("F_eE",0,function(){return new HSData((-8),[F_dF,F_d4,F_eF])}),F_eF=new HSFun("F_eF",1,function(_hE){return(F_6)._b(F_dv,(F_hH)._b(_hE),1)}),F_eG=new HSFun("F_eG",0,function(){return new HSData((-8),[F_dN,F_ec,F_eH])}),F_eH=new HSFun("F_eH",1,function(_gx){return(F_6)._b(F_dv,_gx,1)}),F_eI=new HSFun("F_eI",1,function(_jM){return(exprEval(_jM))._f[0]}),F_eJ=new HSFun("F_eJ",1,function(_jN){return(exprEval(_jN))._f[1]}),F_eK=new HSFun("F_eK",0,function(){return new HSData((-9),[F_eN,F_eO,F_eM,F_eL])}),F_eL=new HSFun("F_eL",1,function(_hn){return(F_e8)._b(F_eK,_hn)}),F_eM=new HSFun("F_eM",1,function(_hm){return(F_e9)._b(F_eK,_hm)}),F_eN=new HSFun("F_eN",2,function(_kn,_ko){var c78=exprEval((Number(exprEval(_ko)))<(0));switch((c78)._t){case true:return(F_gS)._b((Number(exprEval(_kn)))>(6),(F_fc)._ap([(F_hh)._ap([new HSFun("F_dL",0,function(){return(F_dL)._b(_ko)})]),(F_fW)._ap([mkChar(45)])]));case false:return(F_hh)._ap([_ko])};throw ('X ('+this._n+') '+c78.toSource())}),F_eO=new HSFun("F_eO",1,function(v26141){return(F_gT)._ap([F_ga])}),F_eP=new HSFun("F_eP",0,function(){return new HSData((-9),[F_eS,F_eT,F_eR,F_eQ])}),F_eQ=new HSFun("F_eQ",1,function(_gc){return(F_e8)._b(F_eP,_gc)}),F_eR=new HSFun("F_eR",1,function(_gb){return(F_e9)._b(F_eP,_gb)}),F_eS=new HSFun("F_eS",2,function(_f9,_ga){return(F_cB)._b(F_eG,new HSFun("F_cz",0,function(){return(F_cz)._b(F_dv)}),_f9,_ga)}),F_eT=new HSFun("F_eT",1,function(v25823){return(F_gT)._ap([F_f5])}),F_eU=new HSFun("F_eU",3,function(_fl,_fm,_fn){return(F_gD)._b(((exprEval(_fl))._f[1])._ap([_fm,_fn]))}),F_eV=new HSFun("F_eV",3,function(_fg,_fh,_fi){return(F_dj)._b(((exprEval(_fg))._f[5])._ap([_fh,_fi]),new HSData(17,[]))}),F_eW=new HSFun("F_eW",3,function(_fa,_fb,_fc){return(F_dj)._b(((exprEval(_fa))._f[5])._ap([_fb,_fc]),new HSData(15,[]))}),F_eX=new HSFun("F_eX",3,function(_fd,_fe,_ff){return(F_di)._b(((exprEval(_fd))._f[5])._ap([_fe,_ff]),new HSData(17,[]))}),F_eY=new HSFun("F_eY",3,function(_fL,_fM,_fN){var c79=exprEval(((exprEval((exprEval(_fL))._f[0]))._f[1])._ap([_fM,_fN]));switch((c79)._t){case true:return new HSData(13,[]);case false:var c80=exprEval(((exprEval(_fL))._f[2])._ap([_fM,_fN]));switch((c80)._t){case true:return new HSData(17,[]);case false:return new HSData(15,[])};throw ('X ('+this._n+') '+c80.toSource())};throw ('X ('+this._n+') '+c79.toSource())}),F_eZ=new HSFun("F_eZ",3,function(_hz,_hA,_hB){return(exprEval(((exprEval(_hz))._f[2])._ap([_hA,_hB])))._f[0]}),F_e0=new HSFun("F_e0",3,function(_go,_gp,_gq){var _Q=new HSFun("_Q",0,function(){return _go}),_r=new HSFun("_r",0,function(){return((exprEval(_Q))._f[4])._ap([_gp,_gq])}),_i=new HSFun("_i",0,function(){return _r}),_s=new HSFun("_s",0,function(){return(exprEval(_i))._f[0]}),_t=new HSFun("_t",0,function(){return(exprEval(_i))._f[1]}),c81=exprEval(((exprEval((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[0]))._f[1])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_t]),((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[5])._ap([((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[6])._ap([_gq])])]));switch((c81)._t){case true:return new HSData((-7),[((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[4])._ap([_s,((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[7])._ap([1])]),((exprEval((exprEval((exprEval(_go))._f[0]))._f[0]))._f[3])._ap([_t,_gq])]);case false:return _r};throw ('X ('+this._n+') '+c81.toSource())}),F_e1=new HSFun("F_e1",4,function(_fz,_fA,_fB,_fC){var _L=new HSFun("_L",0,function(){return _fz}),_o=new HSFun("_o",0,function(){return((exprEval(_L))._f[3])._ap([_fB])}),_M=new HSFun("_M",0,function(){return _fz}),_n=new HSFun("_n",0,function(){return((exprEval(_M))._f[3])._ap([_fA])}),_q=new HSFun("_q",0,function(){return(exprEval(_o))-(exprEval(_n))}),_N=new HSFun("_N",0,function(){return _fz}),_p=new HSFun("_p",0,function(){return((exprEval(_N))._f[3])._ap([_fC])}),c82=exprEval((Number(exprEval(_q)))>=(0));switch((c82)._t){case true:return(F_ge)._b(_fz,_n,_q,_p);case false:return(F_gd)._b(_fz,_n,_q,_p)};throw ('X ('+this._n+') '+c82.toSource())}),F_e2=new HSFun("F_e2",3,function(_fD,_fE,_fF){var _O=new HSFun("_O",0,function(){return _fD}),_m=new HSFun("_m",0,function(){return((exprEval(_O))._f[3])._ap([_fF])}),_P=new HSFun("_P",0,function(){return _fD}),_l=new HSFun("_l",0,function(){return((exprEval(_P))._f[3])._ap([_fE])}),c83=exprEval((F_d9)._b(_l,_m));switch((c83)._t){case 17:return(F_ge)._b(_fD,_l,1,_m);case 13:return new HSCons(_fE,new HSEOL());case 15:return new HSEOL()};throw ('X ('+this._n+') '+c83.toSource())}),F_e3=new HSFun("F_e3",2,function(v25368,_e1){return(F_gn)._b(_e1)}),F_e4=new HSFun("F_e4",3,function(_e7,_e8,_e9){var c84=exprEval(((exprEval(_e7))._f[3])._ap([_e8,_e9]));switch((c84)._t){case true:return _e8;case false:return _e9};throw ('X ('+this._n+') '+c84.toSource())}),F_e5=new HSFun("F_e5",3,function(_e4,_e5,_e6){var c85=exprEval(((exprEval(_e4))._f[2])._ap([_e5,_e6]));switch((c85)._t){case true:return _e5;case false:return _e6};throw ('X ('+this._n+') '+c85.toSource())}),F_e6=new HSFun("F_e6",2,function(_fG,_fH){return((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs",0,function(){return(exprEval(_fG))._f[3]}),((F_gY)._b(F_dF))._ap([1])]),(exprEval(_fG))._f[4]]))._ap([_fH])}),F_e7=new HSFun("F_e7",1,function(_dJ){return(F_gJ)._b(false,new HSFun("F_fV",0,function(){return(F_fV)._ap([_dJ])}))}),F_e8=new HSFun("F_e8",2,function(_eo,_ep){return((exprEval(_eo))._f[0])._ap([0,_ep,F_fZ])}),F_e9=new HSFun("F_e9",2,function(_eg,_eh){var c86=exprEval(_eh);switch((c86)._t){case 2:return(F_gT)._ap([F_fX]);case 3:return function(_ei,_ej){return(F_fc)._ap([(F_fc)._ap([(F_ex)._ap([_eg,_ej]),((exprEval(_eg))._f[0])._ap([0,_ei])]),(F_fW)._ap([mkChar(91)])])}((c86)._f[0],(c86)._f[1])};throw ('X ('+this._n+') '+c86.toSource())}),F_fa=new HSFun("F_fa",2,function(_fI,_fJ){return((F_fc)._ap([(F_fc)._ap([new HSFun("F_gs",0,function(){return(exprEval(_fI))._f[3]}),new HSFun("F_go",0,function(){return(F_go)._ap([F_dH,1])})]),(exprEval(_fI))._f[4]]))._ap([_fJ])}),F_fb="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 592:1-594:31.",F_fc=new HSFun("F_fc",3,function(_ca,_b9,_bV){return(_b9)._ap([(_ca)._ap([_bV])])}),F_fd=new HSFun("F_fd",1,function(_j){return(exprEval(_j))._f[0]}),F_fe=new HSFun("F_fe",1,function(_j){return(exprEval(_j))._f[1]}),F_ff="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 736:1-738:32.",F_fg="",F_fh="",F_fi="\\&",F_fj="\\&",F_fk=new HSFun("F_fk",2,function(_bb,_bc){var c87=exprEval(_bb);switch((c87)._t){case 3:return function(_cJ,_cK){var c88=exprEval(_cJ);switch((c88).valueOf()){case 92:return new HSCons(new HSData((-7),[F_fj,_cK]),_bc);default:return _bc};throw ('X ('+this._n+') '+c88.toSource())}((c87)._f[0],(c87)._f[1]);default:return _bc};throw ('X ('+this._n+') '+c87.toSource())}),F_fl="\"",F_fm=new HSFun("F_fm",3,function(_cO,_9,_ba){var c89=exprEval(_9);return function(_cQ,_cR){return new HSCons(new HSData((-7),[new HSFun("F_cG",0,function(){return(F_cG)._b(_cO,_cQ)}),_cR]),_ba)}((c89)._f[0],(c89)._f[1])}),F_fn=new HSFun("F_fn",2,function(_7,_8){var c90=exprEval(_7);return function(_cO,_cP){return(F_gg)._b(new HSFun("F_fm",0,function(){return(F_fm)._ap([_cO])}),(F_ek)._ap([_cP]),_8)}((c90)._f[0],(c90)._f[1])}),F_fo=new HSFun("F_fo",2,function(_bd,_be){var c91=exprEval(_bd);return function(_cS,_cT){return new HSCons(new HSData((-7),[new HSCons(mkChar(34),_cS),_cT]),_be)}((c91)._f[0],(c91)._f[1])}),F_fp="\'",F_fq="\'",F_fr=new HSFun("F_fr",3,function(_cU,_cX,_j8){return new HSCons(new HSData((-7),[new HSCons(mkChar(39),(F_cG)._b(_cU,F_fq)),_cX]),_j8)}),F_fs=new HSFun("F_fs",2,function(_5,_6){var c92=exprEval(_5);return function(_cU,_cV){var c93=exprEval(_cV);switch((c93)._t){case 3:return function(_cW,_cX){var c94=exprEval(_cW);switch((c94).valueOf()){case 39:return(F_gf)._b((F_dl)._b(F_c8,_cU,F_fp),new HSFun("F_fr",0,function(){return(F_fr)._ap([_cU,_cX])}),_6);default:return _6};throw ('X ('+this._n+') '+c94.toSource())}((c93)._f[0],(c93)._f[1]);default:return _6};throw ('X ('+this._n+') '+c93.toSource())}((c92)._f[0],(c92)._f[1])}),F_ft="eE",F_fu="+-",F_fv=new HSFun("F_fv",4,function(_cZ,_c1,_bl,_bm){var c95=exprEval(_bl);return function(_c3,_c4){return new HSCons(new HSData((-7),[new HSCons(_cZ,new HSCons(_c1,_c3)),_c4]),_bm)}((c95)._f[0],(c95)._f[1])}),F_fw=new HSFun("F_fw",3,function(_cZ,_bj,_bk){var c96=exprEval(_bj);switch((c96)._t){case 3:return function(_c1,_c2){return(F_gf)._b(((F_gm)._b(F_c8,_c1))._ap([F_fu]),new HSFun("F_gg",0,function(){return(F_gg)._ap([new HSFun("F_fv",0,function(){return(F_fv)._ap([_cZ,_c1])}),(F_cx)._ap([_c2])])}),_bk)}((c96)._f[0],(c96)._f[1]);default:return _bk};throw ('X ('+this._n+') '+c96.toSource())}),F_fx=new HSFun("F_fx",3,function(_cZ,_bn,_bo){var c97=exprEval(_bn);return function(_c5,_c6){return new HSCons(new HSData((-7),[new HSCons(_cZ,_c5),_c6]),_bo)}((c97)._f[0],(c97)._f[1])}),F_fy="",F_fz=new HSFun("F_fz",3,function(_dd,_bh,_bi){var c98=exprEval(_bh);return function(_df,_dg){return new HSCons(new HSData((-7),[new HSCons(mkChar(46),(F_cG)._b(_dd,_df)),_dg]),_bi)}((c98)._f[0],(c98)._f[1])}),F_fA=new HSFun("F_fA",2,function(_bf,_bg){var c99=exprEval(_bf);return function(_dd,_de){return(F_gg)._b(new HSFun("F_fz",0,function(){return(F_fz)._ap([_dd])}),(F_er)._ap([_de]),_bg)}((c99)._f[0],(c99)._f[1])}),F_fB="_\'",F_fC="!@#$%&*+./<=>\u003f\\^|:-~",F_fD=",;()[]{}`",F_fE=new HSFun("F_fE",3,function(_cC,_bp,_bq){var c100=exprEval(_bp);return function(_dl,_dm){return new HSCons(new HSData((-7),[new HSCons(_cC,_dl),_dm]),_bq)}((c100)._f[0],(c100)._f[1])}),F_fF=new HSFun("F_fF",3,function(_cC,_br,_bs){var c101=exprEval(_br);return function(_dn,_do){return new HSCons(new HSData((-7),[new HSCons(_cC,_dn),_do]),_bs)}((c101)._f[0],(c101)._f[1])}),F_fG=new HSFun("F_fG",4,function(_cC,_dp,_bv,_bw){var c102=exprEval(_bv);return function(_dr,_ds){return new HSCons(new HSData((-7),[new HSCons(_cC,(F_cG)._b(_dp,_dr)),_ds]),_bw)}((c102)._f[0],(c102)._f[1])}),F_fH=new HSFun("F_fH",3,function(_cC,_bt,_bu){var c103=exprEval(_bt);return function(_dp,_dq){return(F_gg)._b(new HSFun("F_fG",0,function(){return(F_fG)._ap([_cC,_dp])}),(F_eq)._ap([_dq]),_bu)}((c103)._f[0],(c103)._f[1])}),F_fI="Prelude:/winshare/src/yhc/src/packages/yhc-base-1.0/Prelude.hs: Pattern match failure in function at 1664:1-1701:35.",F_fJ=new HSFun("F_fJ",3,function(_dB,_bF,_bG){var c104=exprEval(_bF);return function(_dD,_dE){var c105=exprEval(_dD);switch((c105)._t){case 3:return function(_dF,_dG){var c106=exprEval(_dF);switch((c106).valueOf()){case 41:var c107=exprEval(_dG);switch((c107)._t){case 2:return new HSCons(new HSData((-7),[_dB,_dE]),_bG);default:return _bG};throw ('X ('+this._n+') '+c107.toSource());default:return _bG};throw ('X ('+this._n+') '+c106.toSource())}((c105)._f[0],(c105)._f[1]);default:return _bG};throw ('X ('+this._n+') '+c105.toSource())}((c104)._f[0],(c104)._f[1])}),F_fK=new HSFun("F_fK",2,function(_bD,_bE){var c108=exprEval(_bD);return function(_dB,_dC){return(F_gg)._b(new HSFun("F_fJ",0,function(){return(F_fJ)._ap([_dB])}),(F_gz)._b(_dC),_bE)}((c108)._f[0],(c108)._f[1])}),F_fL=new HSFun("F_fL",3,function(_du,_bB,_bC){var c109=exprEval(_bB);return function(_dx,_dy){var c110=exprEval(_dx);switch((c110)._t){case 3:return function(_dz,_dA){var c111=exprEval(_dz);switch((c111).valueOf()){case 40:var c112=exprEval(_dA);switch((c112)._t){case 2:return(F_gg)._b(F_fK,((F_es)._ap([_du]))._ap([_dy]),_bC);default:return _bC};throw ('X ('+this._n+') '+c112.toSource());default:return _bC};throw ('X ('+this._n+') '+c111.toSource())}((c110)._f[0],(c110)._f[1]);default:return _bC};throw ('X ('+this._n+') '+c110.toSource())}((c109)._f[0],(c109)._f[1])}),F_fM=new HSFun("F_fM",2,function(_lm,_ln){var c113=exprEval(_lm);return function(_dM,_dN){var c114=exprEval(_dM);switch((c114)._t){case 3:return function(_dO,_dP){var c115=exprEval(_dO);switch((c115).valueOf()){case 93:var c116=exprEval(_dP);switch((c116)._t){case 2:return new HSCons(new HSData((-7),[new HSEOL(),_dN]),_ln);default:return _ln};throw ('X ('+this._n+') '+c116.toSource());default:return _ln};throw ('X ('+this._n+') '+c115.toSource())}((c114)._f[0],(c114)._f[1]);default:return _ln};throw ('X ('+this._n+') '+c114.toSource())}((c113)._f[0],(c113)._f[1])}),F_fN=new HSFun("F_fN",3,function(_dU,_ls,_lt){var c117=exprEval(_ls);return function(_dW,_dX){return new HSCons(new HSData((-7),[new HSCons(_dU,_dW),_dX]),_lt)}((c117)._f[0],(c117)._f[1])}),F_fO=new HSFun("F_fO",3,function(_dK,_lq,_lr){var c118=exprEval(_lq);return function(_dU,_dV){return(F_gg)._b(new HSFun("F_fN",0,function(){return(F_fN)._ap([_dU])}),(F_ew)._ap([_dK,_dV]),_lr)}((c118)._f[0],(c118)._f[1])}),F_fP=new HSFun("F_fP",3,function(_dK,_lo,_lp){var c119=exprEval(_lo);return function(_dQ,_dR){var c120=exprEval(_dQ);switch((c120)._t){case 3:return function(_dS,_dT){var c121=exprEval(_dS);switch((c121).valueOf()){case 44:var c122=exprEval(_dT);switch((c122)._t){case 2:return(F_gg)._b(new HSFun("F_fO",0,function(){return(F_fO)._ap([_dK])}),((exprEval(_dK))._f[0])._ap([0,_dR]),_lp);default:return _lp};throw ('X ('+this._n+') '+c122.toSource());default:return _lp};throw ('X ('+this._n+') '+c121.toSource())}((c120)._f[0],(c120)._f[1]);default:return _lp};throw ('X ('+this._n+') '+c120.toSource())}((c119)._f[0],(c119)._f[1])}),F_fQ=new HSFun("F_fQ",2,function(_lg,_lh){var c123=exprEval(_lg);return function(_d0,_d1){var c124=exprEval(_d0);switch((c124)._t){case 3:return function(_d2,_d3){var c125=exprEval(_d2);switch((c125).valueOf()){case 93:var c126=exprEval(_d3);switch((c126)._t){case 2:return new HSCons(new HSData((-7),[new HSEOL(),_d1]),_lh);default:return _lh};throw ('X ('+this._n+') '+c126.toSource());default:return _lh};throw ('X ('+this._n+') '+c125.toSource())}((c124)._f[0],(c124)._f[1]);default:return _lh};throw ('X ('+this._n+') '+c124.toSource())}((c123)._f[0],(c123)._f[1])}),F_fR=new HSFun("F_fR",3,function(_d4,_lk,_ll){var c127=exprEval(_lk);return function(_d6,_d7){return new HSCons(new HSData((-7),[new HSCons(_d4,_d6),_d7]),_ll)}((c127)._f[0],(c127)._f[1])}),F_fS=new HSFun("F_fS",3,function(_dY,_li,_lj){var c128=exprEval(_li);return function(_d4,_d5){return(F_gg)._b(new HSFun("F_fR",0,function(){return(F_fR)._ap([_d4])}),(F_ew)._ap([_dY,_d5]),_lj)}((c128)._f[0],(c128)._f[1])}),F_fT=new HSFun("F_fT",2,function(_lx,_ly){return new HSCons(_lx,_ly)}),F_fU=new HSFun("F_fU",3,function(_dJ,_lv,_lw){var c129=exprEval(_lv);return function(_d8,_d9){var c130=exprEval(_d8);switch((c130)._t){case 3:return function(_ea,_eb){var c131=exprEval(_ea);switch((c131).valueOf()){case 91:var c132=exprEval(_eb);switch((c132)._t){case 2:return(F_gg)._b(F_fT,(F_ev)._ap([_dJ,_d9]),_lw);default:return _lw};throw ('X ('+this._n+') '+c132.toSource());default:return _lw};throw ('X ('+this._n+') '+c131.toSource())}((c130)._f[0],(c130)._f[1]);default:return _lw};throw ('X ('+this._n+') '+c130.toSource())}((c129)._f[0],(c129)._f[1])}),F_fV=new HSFun("F_fV",2,function(_dJ,_lu){return(F_gg)._b(new HSFun("F_fU",0,function(){return(F_fU)._ap([_dJ])}),(F_gz)._b(_lu),new HSEOL())}),F_fW=new HSFun("F_fW",2,function(_ka,_j9){return new HSCons(_ka,_j9)}),F_fX="[]",F_fY=",",F_fZ="",F_f0="Prelude.gcd: gcd 0 0 is undefined.",F_f1=new HSFun("F_f1",3,function(_eO,_bz,_bA){var c133=exprEval(_bz);return function(_eQ,_eR){var c134=exprEval(_eQ);switch((c134)._t){case 2:var c135=exprEval(_eR);switch((c135)._t){case 2:return new HSCons(_eO,_bA);default:return _bA};throw ('X ('+this._n+') '+c135.toSource());default:return _bA};throw ('X ('+this._n+') '+c134.toSource())}((c133)._f[0],(c133)._f[1])}),F_f2=new HSFun("F_f2",2,function(_bx,_by){var c136=exprEval(_bx);return function(_eO,_eP){return(F_gg)._b(new HSFun("F_f1",0,function(){return(F_f1)._ap([_eO])}),(F_gz)._b(_eP),_by)}((c136)._f[0],(c136)._f[1])}),F_f3="Prelude.read: no parse",F_f4="Prelude.read: ambiguous parse",F_f5="Integer",F_f6=new HSFun("F_f6",1,function(_i){return(exprEval(_i))._f[0]}),F_f7=new HSFun("F_f7",1,function(_i){return(exprEval(_i))._f[1]}),F_f8=new HSFun("F_f8",2,function(_hg,_hj){var c137=exprEval(_hj);return function(_hk,_hl){return new HSData((-7),[((exprEval(_hg))._f[7])._ap([_hk]),_hl])}((c137)._f[0],(c137)._f[1])}),F_f9=new HSFun("F_f9",2,function(_hf,_ki){return(F_ez)._ap([F_dF,_hf,_ki])}),F_ga="Int",F_gb=new HSFun("F_gb",2,function(_kc,_kb){return new HSCons(_kc,_kb)}),F_gc="PreludeList.foldl1: empty list",F_gd=new HSFun("F_gd",4,function(_fv,_fw,_fx,_fy){var c138=exprEval((F_d9)._b(_fw,_fy));switch((c138)._t){case 17:return new HSEOL();case 13:return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]),new HSEOL());case 15:return new HSCons(((exprEval(_fv))._f[4])._ap([_fw]),(F_gd)._b(_fv,(exprEval(_fw))+(exprEval(_fx)),_fx,_fy))};throw ('X ('+this._n+') '+c138.toSource())}),F_ge=new HSFun("F_ge",4,function(_fr,_fs,_ft,_fu){var c139=exprEval((F_d9)._b(_fs,_fu));switch((c139)._t){case 17:return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]),(F_ge)._b(_fr,(exprEval(_fs))+(exprEval(_ft)),_ft,_fu));case 13:return new HSCons(((exprEval(_fr))._f[4])._ap([_fs]),new HSEOL());case 15:return new HSEOL()};throw ('X ('+this._n+') '+c139.toSource())}),F_gf=new HSFun("F_gf",3,function(_b6,_b7,_b8){var c140=exprEval(_b6);switch((c140)._t){case true:return(_b7)._ap([_b8]);case false:return _b8};throw ('X ('+this._n+') '+c140.toSource())}),F_gg=new HSFun("F_gg",3,function(_bX,_bY,_bZ){var c141=exprEval(_bY);switch((c141)._t){case 2:return _bZ;case 3:return function(_b0,_b1){return(_bX)._ap([_b0,new HSFun("F_gg",0,function(){return(F_gg)._b(_bX,_b1,_bZ)})])}((c141)._f[0],(c141)._f[1])};throw ('X ('+this._n+') '+c141.toSource())}),F_gh=new HSFun("F_gh",1,function(_jI){return(exprEval(_jI))._f[8]}),F_gi=new HSFun("F_gi",1,function(_cm){return(F_fc)._ap([new HSFun("F_gB",0,function(){return(F_gB)._ap([_cm])}),F_gE])}),F_gj=new HSFun("F_gj",1,function(_jr){return(exprEval(_jr))._f[5]}),F_gk=new HSFun("F_gk",1,function(_jY){return(exprEval(_jY))._f[2]}),F_gl=new HSFun("F_gl",2,function(_b2,_b3){var c142=exprEval(_b3);switch((c142)._t){case 2:return new HSEOL();case 3:return function(_b4,_b5){var c143=exprEval((_b2)._ap([_b4]));switch((c143)._t){case true:return(F_gl)._b(_b2,_b5);case false:var c144=exprEval(F_gF);switch((c144)._t){case true:return _b3;case false:return(F_gn)._b(F_fb)};throw ('X ('+this._n+') '+c144.toSource())};throw ('X ('+this._n+') '+c143.toSource())}((c142)._f[0],(c142)._f[1])};throw ('X ('+this._n+') '+c142.toSource())}),F_gm=new HSFun("F_gm",2,function(_cn,_co){return(F_gi)._b(((exprEval(_cn))._f[1])._ap([_co]))}),F_gn=new HSFun("F_gn",1,function(a){throw ('E '+exprEval(a).toString());return undefined}),F_go=new HSFun("F_go",3,function(_eH,_eI,_eJ){return(_eH)._ap([_eJ,_eI])}),F_gp=new HSFun("F_gp",3,function(_ij,_ik,_il){var c145=exprEval(_il);switch((c145)._t){case 2:return _ik;case 3:return function(_im,_in){return(F_gp)._b(_ij,(_ij)._ap([_ik,_im]),_in)}((c145)._f[0],(c145)._f[1])};throw ('X ('+this._n+') '+c145.toSource())}),F_gq=new HSFun("F_gq",2,function(_ip,_iq){var c146=exprEval(_iq);switch((c146)._t){case 2:return(F_gn)._b(F_gc);case 3:return function(_ir,_is){return(F_gp)._b(_ip,_ir,_is)}((c146)._f[0],(c146)._f[1])};throw ('X ('+this._n+') '+c146.toSource())}),F_gr=new HSFun("F_gr",3,function(_cb,_cc,_cd){var c147=exprEval(_cd);switch((c147)._t){case 2:return _cc;case 3:return function(_ce,_cf){return(_cb)._ap([_ce,new HSFun("F_gr",0,function(){return(F_gr)._b(_cb,_cc,_cf)})])}((c147)._f[0],(c147)._f[1])};throw ('X ('+this._n+') '+c147.toSource())}),F_gs=new HSFun("F_gs",1,function(_i0){return(exprEval(_i0))._f[3]}),F_gt=new HSFun("F_gt",1,function(_jH){return(exprEval(_jH))._f[7]}),F_gu=new HSFun("F_gu",2,function(_eZ,_e0){return(F_fc)._ap([new HSFun("F_g0",0,function(){return(exprEval(_eZ))._f[6]}),(exprEval(_e0))._f[7]])}),F_gv=new HSFun("F_gv",1,function(_eu){return(exprEval(_eu))._f[0]}),F_gw=new HSFun("F_gw",3,function(_eA,_eB,_eC){var c148=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eB,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c148)._t){case true:var c149=exprEval(((exprEval((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[0]))._f[1])._ap([_eC,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[7])._ap([0])]));switch((c149)._t){case true:return(F_gn)._b(F_f0);case false:return(F_eu)._ap([_eA,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]),((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])])};throw ('X ('+this._n+') '+c149.toSource());case false:return(F_eu)._ap([_eA,((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eB]),((exprEval((exprEval((exprEval(_eA))._f[0]))._f[0]))._f[8])._ap([_eC])])};throw ('X ('+this._n+') '+c148.toSource())}),F_gx=new HSFun("F_gx",1,function(_eG){return _eG}),F_gy=new HSFun("F_gy",1,function(_iA){var c150=exprEval(_iA);switch((c150)._t){case 2:return 0;case 3:return function(_iB,_iC){return(F_ey)._ap([1,_iC])}((c150)._f[0],(c150)._f[1])};throw ('X ('+this._n+') '+c150.toSource())}),F_gz=new HSFun("F_gz",1,function(_cB){var c151=exprEval(_cB);switch((c151)._t){case 2:return new HSCons(new HSData((-7),[F_fg,F_fh]),new HSEOL());case 3:return function(_cC,_cD){var c152=exprEval((F_Z)._b(_cC));switch((c152)._t){case true:return(F_gz)._b((F_gl)._b(F_Z,_cD));case false:var c153=exprEval(_cC);switch((c153).valueOf()){case 34:return(F_gg)._b(F_fo,(F_ek)._ap([_cD]),new HSEOL());case 39:return(F_gg)._b(F_fs,(F_1)._b(_cD),new HSEOL());default:var c154=exprEval((F_em)._ap([_cC]));switch((c154)._t){case true:return new HSCons(new HSData((-7),[new HSCons(_cC,new HSEOL()),_cD]),new HSEOL());case false:var c155=exprEval((F_en)._ap([_cC]));switch((c155)._t){case true:return(F_gg)._b(new HSFun("F_fE",0,function(){return(F_fE)._ap([_cC])}),new HSCons((F_gX)._b(F_en,_cD),new HSEOL()),new HSEOL());case false:var c156=exprEval((F_eo)._ap([_cC]));switch((c156)._t){case true:return(F_gg)._b(new HSFun("F_fF",0,function(){return(F_fF)._ap([_cC])}),new HSCons((F_gX)._b(F_ep,_cD),new HSEOL()),new HSEOL());case false:var c157=exprEval((F_bg)._b(_cC));switch((c157)._t){case true:return(F_gg)._b(new HSFun("F_fH",0,function(){return(F_fH)._ap([_cC])}),new HSCons((F_gX)._b(F_bg,_cD),new HSEOL()),new HSEOL());case false:var c158=exprEval(F_gF);switch((c158)._t){case true:return new HSEOL();case false:return(F_gn)._b(F_fI)};throw ('X ('+this._n+') '+c158.toSource())};throw ('X ('+this._n+') '+c157.toSource())};throw ('X ('+this._n+') '+c156.toSource())};throw ('X ('+this._n+') '+c155.toSource())};throw ('X ('+this._n+') '+c154.toSource())};throw ('X ('+this._n+') '+c153.toSource())};throw ('X ('+this._n+') '+c152.toSource())}((c151)._f[0],(c151)._f[1])};throw ('X ('+this._n+') '+c151.toSource())}),F_gA=new HSFun("F_gA",3,function(_it,_iu,_iv){var c159=exprEval(_iv);switch((c159)._t){case 2:return new HSData(18,[]);case 3:return function(_iw,_ix){var c160=exprEval(_iw);return function(_iy,_iz){var c161=exprEval(((exprEval(_it))._f[1])._ap([_iu,_iy]));switch((c161)._t){case true:return new HSData(16,[_iz]);case false:return(F_gA)._b(_it,_iu,_ix)};throw ('X ('+this._n+') '+c161.toSource())}((c160)._f[0],(c160)._f[1])}((c159)._f[0],(c159)._f[1])};throw ('X ('+this._n+') '+c159.toSource())}),F_gB=new HSFun("F_gB",2,function(_ci,_cj){var c162=exprEval(_cj);switch((c162)._t){case 2:return new HSEOL();case 3:return function(_ck,_cl){return new HSCons((_ci)._ap([_ck]),(F_gB)._b(_ci,_cl))}((c162)._f[0],(c162)._f[1])};throw ('X ('+this._n+') '+c162.toSource())}),F_gC=new HSFun("F_gC",1,function(_jF){return(exprEval(_jF))._f[5]}),F_gD=new HSFun("F_gD",1,function(_eX){var c163=exprEval(_eX);switch((c163)._t){case true:return false;case false:return true};throw ('X ('+this._n+') '+c163.toSource())}),F_gE=new HSFun("F_gE",0,function(){return(F_gr)._ap([F_g1,false])}),F_gF=new HSFun("F_gF",0,function(){return true}),F_gG=new HSFun("F_gG",1,function(_j2){return(exprEval(_j2))._f[7]}),F_gH=new HSFun("F_gH",1,function(_jZ){return(exprEval(_jZ))._f[4]}),F_gI=new HSFun("F_gI",2,function(_eM,_eN){var c164=exprEval((F_gg)._b(F_f2,((F_gK)._b(_eM))._ap([_eN]),new HSEOL()));switch((c164)._t){case 2:return(F_gn)._b(F_f3);case 3:return function(_eS,_eT){var c165=exprEval(_eT);switch((c165)._t){case 2:return _eS;default:return(F_gn)._b(F_f4)};throw ('X ('+this._n+') '+c165.toSource())}((c164)._f[0],(c164)._f[1])};throw ('X ('+this._n+') '+c164.toSource())}),F_gJ=new HSFun("F_gJ",2,function(_dt,_du){var c166=exprEval(_dt);switch((c166)._t){case true:return(F_et)._ap([_du]);case false:return(F_es)._ap([_du])};throw ('X ('+this._n+') '+c166.toSource())}),F_gK=new HSFun("F_gK",1,function(_dH){return((exprEval(_dH))._f[0])._ap([0])}),F_gL=new HSFun("F_gL",1,function(_i4){return(exprEval(_i4))._f[0]}),F_gM=new HSFun("F_gM",1,function(_j0){return(exprEval(_j0))._f[5]}),F_gN=new HSFun("F_gN",1,function(_j7){return(exprEval(_j7))._f[3]}),F_gO=new HSFun("F_gO",0,function(){return(F_gp)._ap([new HSFun("F_go",0,function(){return(F_go)._ap([F_gb])}),new HSEOL()])}),F_gP=new HSFun("F_gP",2,function(a,b){exprEval(a);return b}),F_gQ=new HSFun("F_gQ",1,function(_ja){return(exprEval(_ja))._f[3]}),F_gR=new HSFun("F_gR",0,function(){return F_fW}),F_gS=new HSFun("F_gS",2,function(_eU,_eV){var c167=exprEval(_eU);switch((c167)._t){case true:return(F_fc)._ap([(F_fc)._ap([(F_fW)._ap([mkChar(41)]),_eV]),(F_fW)._ap([mkChar(40)])]);case false:return _eV};throw ('X ('+this._n+') '+c167.toSource())}),F_gT=new HSFun("F_gT",0,function(){return F_cG}),F_gU=new HSFun("F_gU",1,function(_i9){return(exprEval(_i9))._f[0]}),F_gV=new HSFun("F_gV",1,function(_jG){return(exprEval(_jG))._f[6]}),F_gW=new HSFun("F_gW",1,function(_ex){return(exprEval(_ex))._f[1]}),F_gX=new HSFun("F_gX",2,function(_ct,_cu){var c168=exprEval(_cu);switch((c168)._t){case 2:return new HSData((-7),[new HSEOL(),new HSEOL()]);case 3:return function(_cv,_cw){var c169=exprEval((_ct)._ap([_cv]));switch((c169)._t){case true:var _j=new HSFun("_j",0,function(){return(F_gX)._b(_ct,_cw)}),_v=new HSFun("_v",0,function(){return(exprEval(_j))._f[0]}),_w=new HSFun("_w",0,function(){return(exprEval(_j))._f[1]});return new HSData((-7),[new HSCons(_cv,_v),_w]);case false:var c170=exprEval(F_gF);switch((c170)._t){case true:return new HSData((-7),[new HSEOL(),_cu]);case false:return(F_gn)._b(F_ff)};throw ('X ('+this._n+') '+c170.toSource())};throw ('X ('+this._n+') '+c169.toSource())}((c168)._f[0],(c168)._f[1])};throw ('X ('+this._n+') '+c168.toSource())}),F_gY=new HSFun("F_gY",1,function(_eW){return(F_go)._ap([(exprEval(_eW))._f[4]])}),F_gZ=new HSFun("F_gZ",1,function(_i1){return(exprEval(_i1))._f[4]}),F_g0=new HSFun("F_g0",1,function(_j1){return(exprEval(_j1))._f[6]}),F_g1=new HSFun("F_g1",2,function(_cg,_ch){var c171=exprEval(_cg);switch((c171)._t){case true:return true;case false:return _ch};throw ('X ('+this._n+') '+c171.toSource())}),F_g2=new HSFun("F_g2",2,function(_y,_lb){return(F_5)._b(((exprEval(_lb))._f[7])._ap([0]),(F_gA)._b(F_c8,_y,(F_hc)._b(_lb)))}),F_g3=new HSFun("F_g3",2,function(_kR,_kS){var c172=exprEval(_kS);switch((c172)._t){case 2:return((exprEval(_kR))._f[7])._ap([0]);case 3:return function(_kT,_kU){return((exprEval(_kR))._f[3])._ap([((exprEval(_kR))._f[7])._ap([1]),(F_g3)._ap([_kR,_kU])])}((c172)._f[0],(c172)._f[1])};throw ('X ('+this._n+') '+c172.toSource())}),F_g4=new HSFun("F_g4",1,function(_x){return(exprEval(_x))._f[0]}),F_g5=new HSFun("F_g5",1,function(_x){return(exprEval(_x))._f[1]}),F_g6="Roman: Pattern match failure in function at 54:1-56:16.",F_g7="Roman: Pattern match failure in function at 38:1-43:55.",F_g8="",F_g9=new HSFun("F_g9",4,function(_kZ,_k0,_k1,_k2){var c173=exprEval(((exprEval(_k0))._f[1])._ap([_k1,_k2]));switch((c173)._t){case true:return((exprEval(_kZ))._f[4])._ap([_k2,_k1]);case false:var c174=exprEval(((exprEval(_k0))._f[4])._ap([_k1,_k2]));switch((c174)._t){case true:return((exprEval(_kZ))._f[3])._ap([_k2,_k1]);case false:return(F_gn)._b(F_g6)};throw ('X ('+this._n+') '+c174.toSource())};throw ('X ('+this._n+') '+c173.toSource())}),F_ha=new HSFun("F_ha",0,function(){return(F_fc)._ap([(F_fc)._ap([new HSFun("F_gB",0,function(){return(F_gB)._ap([F_2])}),new HSFun("F_hb",0,function(){return(F_hb)._ap([F_dF])})]),new HSFun("F_gr",0,function(){return(F_gr)._ap([new HSFun("F_g9",0,function(){return(F_g9)._ap([F_dF,F_d4])}),0])})])}),F_hb=new HSFun("F_hb",2,function(_kN,_kO){var c175=exprEval(_kO);switch((c175)._t){case 2:return new HSEOL();case 3:return function(_kP,_kQ){var _x=new HSFun("_x",0,function(){return(F_gX)._b(new HSFun("F_da",0,function(){return(F_da)._ap([_kP])}),_kO)}),_z=new HSFun("_z",0,function(){return(exprEval(_x))._f[0]}),_A=new HSFun("_A",0,function(){return(exprEval(_x))._f[1]});return new HSCons(((exprEval(_kN))._f[2])._ap([new HSFun("F_4",0,function(){return(F_4)._b((F_gA)._b(F_c8,_kP,(F_hc)._b(_kN)))}),(F_g3)._ap([_kN,_z])]),(F_hb)._b(_kN,_A))}((c175)._f[0],(c175)._f[1])};throw ('X ('+this._n+') '+c175.toSource())}),F_hc=new HSFun("F_hc",1,function(_kM){return new HSCons(new HSData((-7),[mkChar(73),((exprEval(_kM))._f[7])._ap([1])]),new HSCons(new HSData((-7),[mkChar(86),((exprEval(_kM))._f[7])._ap([5])]),new HSCons(new HSData((-7),[mkChar(88),((exprEval(_kM))._f[7])._ap([10])]),new HSCons(new HSData((-7),[mkChar(76),((exprEval(_kM))._f[7])._ap([50])]),new HSCons(new HSData((-7),[mkChar(67),((exprEval(_kM))._f[7])._ap([100])]),new HSCons(new HSData((-7),[mkChar(68),((exprEval(_kM))._f[7])._ap([500])]),new HSCons(new HSData((-7),[mkChar(77),((exprEval(_kM))._f[7])._ap([1000])]),new HSEOL())))))))}),F_hd=new HSFun("F_hd",0,function(){return new HSCons(new HSData((-7),[mkChar(86),mkChar(73)]),new HSCons(new HSData((-7),[mkChar(88),mkChar(73)]),new HSCons(new HSData((-7),[mkChar(76),mkChar(88)]),new HSCons(new HSData((-7),[mkChar(67),mkChar(88)]),new HSCons(new HSData((-7),[mkChar(68),mkChar(67)]),new HSCons(new HSData((-7),[mkChar(77),mkChar(67)]),new HSEOL()))))))}),F_he=new HSFun("F_he",4,function(_k3,_k4,_k5,_k6){var c176=exprEval(_k5);return function(_k7,_k8){var c177=exprEval(_k6);return function(_k9,_la){var _y=new HSFun("_y",0,function(){return(F_5)._b(mkChar(0),(F_gA)._b(F_c8,_k7,F_hd))}),c178=exprEval(((exprEval(_k4))._f[3])._ap([_k9,_k8]));switch((c178)._t){case true:return(F_he)._b(_k3,_k4,_k5,new HSData((-7),[((exprEval(_k3))._f[4])._ap([_k9,_k8]),new HSCons(_k7,_la)]));case false:var c179=exprEval(((exprEval(_k4))._f[3])._ap([((exprEval(_k3))._f[3])._ap([_k9,((F_g2)._ap([_y]))._ap([_k3])]),_k8]));switch((c179)._t){case true:return new HSData((-7),[((exprEval(_k3))._f[3])._ap([((exprEval(_k3))._f[4])._ap([_k9,_k8]),((F_g2)._ap([_y]))._ap([_k3])]),new HSCons(_k7,new HSCons(_y,_la))]);case false:var c180=exprEval(F_gF);switch((c180)._t){case true:return new HSData((-7),[_k9,_la]);case false:return(F_gn)._b(F_g7)};throw ('X ('+this._n+') '+c180.toSource())};throw ('X ('+this._n+') '+c179.toSource())};throw ('X ('+this._n+') '+c178.toSource())}((c177)._f[0],(c177)._f[1])}((c176)._f[0],(c176)._f[1])}),F_hf=new HSFun("F_hf",1,function(_lc){return((F_fc)._ap([F_gW,F_gO]))._ap([new HSFun("F_gr",0,function(){return(F_gr)._b(new HSFun("F_he",0,function(){return(F_he)._ap([F_dF,F_d4])}),new HSData((-7),[_lc,F_g8]),(F_hc)._b(F_dF))})])}),F_hg=new HSFun("F_hg",1,function(a){return Number(exprEval(a)).toString()}),F_hh=new HSFun("F_hh",2,function(_kq,_kr){return(F_cG)._b((F_hg)._ap([_kq]),_kr)}),F_hi="return Number(exprEval(a)).toString();",F_hj="return 0 - Number(exprEval(a));",F_hk="var ea = exprEval(a); if (ea>0) return 1; else if (ea<0) return -1; else return 0;",F_hl="return Math.abs(exprEval(a));",F_hm="return a;",F_hn="return a;",F_ho="return Number(exprEval(a)) < Number(exprEval(b));",F_hp="return Number(exprEval(a)) <= Number(exprEval(b));",F_hq="return Number(exprEval(a)) > Number(exprEval(b));",F_hr="return Number(exprEval(a)) >= Number(exprEval(b));",F_hs="return Number(exprEval(a)) !== Number(exprEval(b));",F_ht="return Number(exprEval(a)) === Number(exprEval(b));",F_hu="return 0 - Number(exprEval(a));",F_hv="return exprEval(a) * exprEval(b);",F_hw="return exprEval(a) - exprEval(b);",F_hx="return exprEval(a) + exprEval(b);",F_hy="return exprEval(a) % exprEval(b);",F_hz="(function(x,y){return (x - (x % y))/y;})(exprEval(a),exprEval(b));",F_hA="exprEval(a); return b;",F_hB="throw(\'E \' + exprEval(a).toString()); return undefined;",F_hC=new HSFun("F_hC",1,function(a){return Math.abs(exprEval(a))}),F_hD=new HSFun("F_hD",1,function(a){return a}),F_hE=new HSFun("F_hE",1,function(a){var ea=exprEval(a);if(ea>0){return 1}else if(ea<0){return -1}else return 0}),F_hF=new HSFun("F_hF",2,function(a,b){return exprEval(a)+exprEval(b)}),F_hG=new HSFun("F_hG",2,function(a,b){return Number(exprEval(a))===Number(exprEval(b))}),F_hH=new HSFun("F_hH",1,function(a){return a}),F_hI=new HSFun("F_hI",2,function(a,b){return Number(exprEval(a))>=Number(exprEval(b))}),F_hJ=new HSFun("F_hJ",2,function(a,b){return Number(exprEval(a))>Number(exprEval(b))}),F_hK=new HSFun("F_hK",2,function(a,b){return Number(exprEval(a))<=Number(exprEval(b))}),F_hL=new HSFun("F_hL",2,function(a,b){return Number(exprEval(a))<Number(exprEval(b))}),F_hM=new HSFun("F_hM",2,function(a,b){return exprEval(a)*exprEval(b)}),F_hN=new HSFun("F_hN",2,function(a,b){return Number(exprEval(a))!==Number(exprEval(b))}),F_hO=new HSFun("F_hO",1,function(a){return 0-Number(exprEval(a))}),F_hP=new HSFun("F_hP",2,function(a,b){(function(x,y){return(x-(x%y))/y})(exprEval(a),exprEval(b))}),F_hQ=new HSFun("F_hQ",2,function(_kF,_kG){var _C=new HSFun("_C",0,function(){return(F_hR)._b(_kF,_kG)}),_B=new HSFun("_B",0,function(){return(F_hP)._b(_kF,_kG)});return new HSData((-7),[_B,_C])}),F_hR=new HSFun("F_hR",2,function(a,b){return exprEval(a)%exprEval(b)}),F_hS=new HSFun("F_hS",2,function(a,b){return exprEval(a)-exprEval(b)});funIdx["Echo.main"]=F_cj+*/
+ test/pminified/130s.js view
@@ -0,0 +1,2 @@+Parse error: Missing function identifier in file 'foo' on line 3+
+ test/pminified/14_labelled_stmts.js view
@@ -0,0 +1,1 @@+i=0;bob:i=0;i=0;bob:if(x);{do{t}while(t);t};if(t){do{t}while(t);t};switch(i){case"x":case LEFT_CURLY:if(t){do{t}while(t);t}}
+ test/pminified/15_literals.js view
@@ -0,0 +1,1 @@+const GLOBAL=this;var tokens=["END","\n",";"],opTypeNames={'\n':"NEWLINE",';':"SEMICOLON",',':"COMMA"},assignOps=['|','^','&','<<','>>','>>>','+','-','*','/','%']
+ test/pminified/16_literals.js view
@@ -0,0 +1,3 @@+const GLOBAL=this;var tokens=["END","\n",";"],opTypeNames={'\n':"NEWLINE",';':"SEMICOLON",',':"COMMA"},assignOps=['|','^','&','<<','>>','>>>','+','-','*','/','%']+function eval(s){a=-1};var global={NaN:NaN,Infinity:Infinity,undefined:undefined,snarf:snarf,evaluate:evaluate,load:function load(s){if(typeof s!="string")return s;evaluate(snarf(s),s,1)},print:print,version:null}+function eval(s){}
+ test/pminified/1_simple.js view
@@ -0,0 +1,1 @@+"abfnrtv\\\"\'"
+ test/pminified/20_statements.js view
@@ -0,0 +1,2 @@+t=1+b;t?'1':'b';if(getValue){execute}else execute;for(i=0;i<=5;i++)x+=i;for(var i=0;i<n;i++)this[i]=1+v;var sumOfDivisors=new ExprArray(n+1,1);for(var i=0;i<j;i++){if(i>0)consts+=", ";var t=tokens[i]};for(var i=0,j=tokens.length;i<j;i++){if(i>0)consts+=", ";var t=tokens[i]};for(i=0;;i++)x+=i;for(x in bob);+function f(){if(typeof s!="string")return;while(--n>=0)s+=t;var a,f,i,j,r,s,t,u,v;(x.stmtStack.length>1)?STATEMENT_FORM:DECLARED_FORM;n2=new Node(t);while(1){if(tt==DEFAULT){n.defaultIndex=n.cases.length}else n2.caseLabel=Expression(t,x,COLON);break;n=new Node(t);t.mustMatch(LEFT_PAREN);n.discriminant=Expression(t,x);t.mustMatch(RIGHT_PAREN);n.cases=[];n.defaultIndex=-1;x.stmtStack.push(n);t.mustMatch(LEFT_CURLY);while((tt=t.get())!=RIGHT_CURLY){switch(tt){case DEFAULT:if(n.defaultIndex>=0)throw t.newSyntaxError("More than one switch default");case CASE:n2=new Node(t);if(tt==DEFAULT){n.defaultIndex=n.cases.length}else n2.caseLabel=Expression(t,x,COLON);break;default:throw t.newSyntaxError("Invalid switch case")};t.mustMatch(COLON);n2.statements=new Node(t,BLOCK);while((tt=t.peek())!=CASE&&tt!=DEFAULT&&tt!=RIGHT_CURLY)n2.statements.push(Statement(t,x));n.cases.push(n2)};x.stmtStack.pop();return n;do{try{execute(n.body,x)}catch(e if e==BREAK&&x.target==n){break}catch(e if e==CONTINUE&&x.target==n){continue}}while(getValue(execute(n.condition,x)));break}}
+ test/pminified/25_trycatch.js view
@@ -0,0 +1,1 @@+try{print("hello")}catch(bob){};try{}finally{};try{}catch(bob){};try{}catch(bob if 1==0){};try{adddlert("Welcome guest!")}catch(err){txt="There was an error on this page.\n\n";txt+="Error description: "+err.description+"\n\n";txt+="Click OK to continue.\n\n";alert(txt)};try{execute(parse(s),x2)}catch(e if e==THROW){x.result=x2.result;throw e}finally{ExecutionContext.current=x};while(1)try{execute(n.body,x)}catch(e if e==BREAK&&x.target==n){break}catch(e if e==CONTINUE&&x.target==n){continue};n.update&&getValue(execute(n.update,x))
+ test/pminified/40_functions.js view
@@ -0,0 +1,6 @@+function bob(){}+function bob(a,b){}+function bob(a,b){a=1}+function ExprArray(n,v){for(var i=0;i<n;i++)this[i]=""+v}+function Hello(){ExprArray(1,1)};Reference.prototype.toString=function(){return this.node.getSource()}+function getValue(v){if(v instanceof Reference){if(!v.base)throw new ReferenceError(v.propertyName+" is not defined",v.node.filename,v.node.lineno);return v.base[v.propertyName]};return v}
+ test/pminified/41_functions.js view
@@ -0,0 +1,2 @@+Parse error: Missing function identifier in file 'foo' on line 1+
+ test/pminified/5_comments.js view
@@ -0,0 +1,3 @@+function bob(){}+function bill(){i=2+function mary(){var currentConstructor=this.constructor,methodName=null}}
+ test/pminified/67_bob.js view
@@ -0,0 +1,1 @@+function x(){var token;while(this.lookahead){--this.lookahead;this.tokenIndex=(this.tokenIndex+1)&3;token=this.tokens[this.tokenIndex];if(token.type!=NEWLINE||this.scanNewlines)return token.type};for(;;){var input=this.input,match=(this.scanNewlines?/^[ \t]+/:/^\s+/)(input);if(match){var spaces=match[0];this.cursor+=spaces.length;var newlines=spaces.match(/\n/g);if(newlines)this.lineno+=newlines.length;input=this.input};if(!(match=/^\/(?:\*(?:.|\n)*?\*\/|\/.*)/(input)))break;var comment=match[0];this.cursor+=comment.length;newlines=comment.match(/\n/g);if(newlines)this.lineno+=newlines.length};this.tokenIndex=(this.tokenIndex+1)&3;token=this.tokens[this.tokenIndex];if(!token)this.tokens[this.tokenIndex]=token={};if(!input)return token.type=END;if((match=fpRegExp(input))){token.type=NUMBER;token.value=parseFloat(match[0])}else if((match=/^0[xX][\da-fA-F]+|^0[0-7]*|^\d+/(input))){token.type=NUMBER;token.value=parseInt(match[0])}else if((match=/^\w+/(input))){var id=match[0];token.type=keywords[id]||IDENTIFIER;token.value=id}else if((match=/^"(?:\\.|[^"])*"|^'(?:[^']|\\.)*'/(input))){token.type=STRING;token.value=eval(match[0])};if(this.scanOperand&&(match=/^\/((?:\\.|[^\/])+)\/([gi]*)/(input))){token.type=REGEXP;token.value=new RegExp(match[1],match[2])};token.start=this.cursor;this.cursor+=match[0].length;token.end=this.cursor;token.lineno=this.lineno;return token.type}
+ test/pminified/errorline13.js view
@@ -0,0 +1,2 @@+Parse error: Missing operand in file 'foo' on line 13+
+ test/pminified/fn.js view
@@ -0,0 +1,1 @@+var global={NaN:NaN,Infinity:Infinity,undefined:undefined,eval:function eval(s){a=-1}}