packages feed

hjsmin 0.1.4.7 → 0.2.1

raw patch · 89 files changed

Files

− README.markdown
@@ -1,72 +0,0 @@-hjsmin-======--[![Build Status](https://secure.travis-ci.org/alanz/hjsmin.png?branch=master)](http://travis-ci.org/alanz/hjsmin)--Haskell implementation of a javascript minifier--It is intended to be used in conjunction with Hamlet, part of Yesod.--As such, much of the structure of the package is shamelessly copied from Hamlet.--See http://github.com/snoyberg/hamlet---How to build---------------Library:--cabal clean && cabal configure && cabal build--Tests:--cabal clean && cabal configure -fbuildtests && cabal build--Running the tests--./dist/build/runtests/runtests--Changes----------0.1.4.7 - remove upper bounds in cabal file--0.1.4.6 - relax upper bound in optparse-applicative--0.1.4.5 - relax upper bound in text to support 1.1-        - introduce CLI wrapper for minifying files from the-          commandline, courtesy of @CodeBlock--0.1.4.4 - relax upper bound in text to support 1.0--0.1.4.3 - make sure all missing cases are covered--0.1.4.2 - minify octal literals too--0.1.4.1 - Bump upper bound for containers to < 0.6 for the tests as well as the library--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--0.1.1 - Fixed problem with missing space after 'new' keyword, in issue #8.--0.1.0 - Major update to work with language-javascript 0.5.1. All changes should be internal.-        Update of build process to make use of Cabal testing support, and Travis CI.--0.0.15 - Fix GHC 7.4.1 compile compatibility. Patch accepted from github.com/luite--0.0.14 - Allow unicode characters in comments--0.0.13 - Error in parsing numbers with zeros before decimal point--0.0.12 - Worked in Michael Snoyman's fix for unicode output--0.0.11 - Worked in language-javascript 0.4.*, with source locations in the AST-         Worked in processing of property get/set in object literals-0.0.10 - Removed attoparsec dependency and historical Parse/Token--
+ Readme.md view
@@ -0,0 +1,36 @@+hjsmin+======++[![Build Status](https://secure.travis-ci.org/erikd/hjsmin.png?branch=master)](http://travis-ci.org/erikd/hjsmin)++Haskell implementation of a command line javascript minifier.++The executable generated from this package simply does command line parsing+before handing the off the minification process to the [language-javascript]+package which also does the rendering.+++How to build+------------++	cabal clean && cabal configure && cabal build++Tests+-----++There are currently no tests, because all the heavy lifting is done by+[language-javascript].+++Reporting Bugs+--------------++Bugs like failing to parse certain chunks of Javascript or errors in the+minification process should be reported on the [language-javascript] issue+tracker.++Bugs about failure to handle command line paramters should be reported on the+[hjsmin] issue tracker.++[hjsmin]: https://github.com/erikd/hjsmin+[language-javascript]: https://github.com/erikd/language-javascript
− TODO.txt
@@ -1,91 +0,0 @@-Testing:--The following Lint has a strict parser-  http://www.javascriptlint.com/online_lint.php--This one does not-  http://www.jslint.com/-------Language reference https://developer.mozilla.org/en/JavaScript/Reference-http://msdn.microsoft.com/en-us/library/ttyab5c8.aspx----- --Look at --  http://dean.edwards.name/download/#packer--  http://code.google.com/p/minify/--Examples of parsers--  JSon parser in Parsec-    http://snippets.dzone.com/posts/show/3660--GOLD Parser, using the Javascript.grm from-http://www.devincook.com/GOLDParser/grammars/index.htm--http://oss.org.cn/ossdocs/web/js/js20/formal/parser-grammar.html------------------------------ Generate output using standard pretty print library, so it can be-  used with various backends---- Sort out semicolon insertion, as per http://oss.org.cn/ossdocs/web/js/js20/rationale/syntax.html-  Also: http://inimino.org/~inimino/blog/javascript_semicolons--  Grammatical Semicolon Insertion--    Semicolons before a closing } and the end of the program are-    optional in both JavaScript 1.5 and 2.0. In addition, the-    JavaScript 2.0 parser allows semicolons to be omitted before the-    else of an if-else statement and before the while of a do-while-    statement.--  Line-Break Semicolon Insertion--    If the first through the nth tokens of a JavaScript program form-    are grammatically valid but the first through the n+1st tokens are-    not and there is a line break between the nth tokens and the n+1st-    tokens, then the parser tries to parse the program again after-    inserting a VirtualSemicolon token between the nth and the n+1st-    tokens.--- remove un-needed semicolons in pretty printer--- put in tests for all cases of elementList---- Look at "in" keyword, as used : if (x in list) {}----------------Integrating language-haskell.--------------------------------Baseline before starting, on my laptop (intel Core2 Duo SU7300)--$ time ./dist/build/runtests/runtests--real	0m1.625s-user	0m1.616s-sys	0m0.016s--Baseline 2010-12-20, after getting all tests to pass at last--real	0m0.209s-user	0m0.196s-sys	0m0.004s--After working in unicode, in language-javascript-0.0.3 [2010-12-28]--real	0m0.236s-user	0m0.224s-sys	0m0.012s----EOF
− Text/Jasmine.hs
@@ -1,54 +0,0 @@-module Text.Jasmine-    (-      minify-    , minifym-    , minifyBb-    , minifyFile-    ) where----import Text.Jasmine.Parse-import Language.JavaScript.Parser (readJs, parse, JSNode(..))-import Text.Jasmine.Pretty-import qualified Blaze.ByteString.Builder as BB-import qualified Data.ByteString.Lazy as LB-import qualified Data.ByteString.Lazy.Char8 as S8-import Data.Text.Lazy (unpack)-import Data.Text.Lazy.Encoding (decodeUtf8With)-import Data.Text.Encoding.Error (lenientDecode)--minifym :: LB.ByteString -> Either String LB.ByteString-minifym s = case parse' s of-             Left msg -> Left (show msg)-             Right p  -> Right $ BB.toLazyByteString $ renderJS p--minifyBb :: LB.ByteString -> Either String BB.Builder-minifyBb s = case parse' s  of-             Left msg -> Left (show msg)-             Right p  -> Right (renderJS p)--minify :: LB.ByteString -> LB.ByteString---minify s = BB.toLazyByteString $ renderJS $ readJs s-minify s = BB.toLazyByteString $ renderJS $ readJs (lbToStr s)--_minify' :: LB.ByteString -> BB.Builder-_minify' s = renderJS $ readJs (lbToStr s)--minifyFile :: FilePath -> IO LB.ByteString-minifyFile filename =-  do-     x <- LB.readFile (filename)-     return $ minify x----parse' :: S8.ByteString -> Either ParseError JSNode-parse'-  :: S8.ByteString -> Either String JSNode-parse' input = parse (lbToStr input) "src"--lbToStr :: S8.ByteString -> [Char]-lbToStr = unpack . decodeUtf8With lenientDecode--_strToLb :: String -> S8.ByteString-_strToLb str = S8.pack str----- EOF
− Text/Jasmine/Pretty.hs
@@ -1,393 +0,0 @@-module Text.Jasmine.Pretty-    (-    renderJS-    ) where--import Data.Char--- import Data.List-import Data.Monoid (Monoid, mappend, mempty, mconcat)-import Language.JavaScript.Parser (JSNode(..),Node(..),tokenPosnEmpty)-import qualified Blaze.ByteString.Builder as BB-import qualified Blaze.ByteString.Builder.Char.Utf8 as BS-import qualified Data.ByteString.Lazy as LB---- ------------------------------------------------------------------------ Pretty printer stuff via blaze-builder--(<>) :: BB.Builder -> BB.Builder -> BB.Builder-(<>) a b = mappend a b--(<+>) :: BB.Builder -> BB.Builder -> BB.Builder-(<+>) a b = mconcat [a, (text " "), b]--hcat :: (Monoid a) => [a] -> a-hcat xs = mconcat xs--empty :: BB.Builder-empty = mempty--text :: String -> BB.Builder-text s = BS.fromString s--char :: Char -> BB.Builder-char c = BS.fromChar c---- comma :: BB.Builder--- comma = BS.fromChar ','---- punctuate :: a -> [a] -> [a]--- punctuate p xs = intersperse p xs---- -----------------------------------------------------------------------renderJS :: JSNode -> BB.Builder-renderJS (NN node    ) = rn node-renderJS (NT node _ _) = rn node--rn :: Node -> BB.Builder---rn (JSEmpty l)             = (renderJS l)---- Terminals-rn (JSIdentifier s)        = text s-rn (JSDecimal i)           = text i-rn (JSOctal o)             = text o--rn (JSLiteral "new")       = (text "new ")-rn (JSLiteral l)           = (text l)--rn (JSHexInteger i)        = (text $ show i) -- TODO: need to tweak this-rn (JSStringLiteral s l)   = empty <> (char s) <> (text l) <> (char s)-rn (JSRegEx s)             = (text s)---- Non Terminals-rn (JSOperator x)          = renderJS x-rn (JSExpression xs)       = rJS xs-----rn (JSSourceElements xs)   = rJS (fixSourceElements $ map fixBlock xs)----rn (JSSourceElementsTop xs)= rJS (fixTop $ map fixBlock $ fixSourceElements xs)-rn (JSSourceElementsTop xs)= rJS (fixTop $ fixSourceElements $ map fixBlock xs)-----rn (JSFunction s p xs)     = (text "function") <+> (renderJS s) <> (text "(") <> (rJS p) <> (text ")") <> (renderJS xs)-rn (JSFunction _f s _lb p _rb x) = (text "function") <+> (renderJS s) <> (text "(") <> (rJS p) <> (text ")") <> (renderJS $ fixFnBlock x)---- rn (JSFunctionBody xs)     = (text "{") <> (rJS xs) <> (text "}")----rn (JSFunctionExpression [] p xs) = (text "function")             <> (text "(") <> (rJS p) <> (text ")") <> (renderJS xs)---rn (JSFunctionExpression  s p xs) = (text "function") <+> (rJS s) <> (text "(") <> (rJS p) <> (text ")") <> (renderJS xs)-rn (JSFunctionExpression _f [] _lb p _rb x) = (text "function")             <> (text "(") <> (rJS p) <> (text ")") <> (renderJS $ fixFnBlock x)-rn (JSFunctionExpression _f s  _lb p _rb x) = (text "function") <+> (rJS s) <> (text "(") <> (rJS p) <> (text ")") <> (renderJS $ fixFnBlock x)----rn (JSArguments xs ) = (text "(") <> (rJSList $ map fixLiterals xs) <> (text ")")-rn (JSArguments _lb xs _rb) = (text "(") <> (rJS $ fixLiterals xs) <> (text ")")--rn (JSBlock lb xs rb)            = (rJS lb) <> (rJS xs) <> (rJS rb)----rn (JSIf _i _lb c _rb [(NT (JSLiteral ";") _ _)] [])   = (text "if") <> (text "(") <> (renderJS c) <> (text ")")--rn (JSIf _i _lb c _rb t                          [])   = (text "if") <> (text "(") <> (renderJS c) <> (text ")")-                                                          <> (rJS $ fixSourceElements $ map fixBlock t)--rn (JSIf _i _lb c _rb t [_e,(NT (JSLiteral ";") _ _)]) = (text "if") <> (text "(") <> (renderJS c) <> (text ")")-                                                         <> (rJS $ fixIfBlock t) <> (text "else")-rn (JSIf _i _lb c _rb t [_e,e])                        = (text "if") <> (text "(") <> (renderJS c) <> (text ")")-                                                         <> (rJS $ fixIfElse $ fixSourceElements t)-                                                         <> (text "else") <> (spaceOrBlock $ fixBlock e)-rn (JSIf _i _lb _c _rb _t                      _xs)    = error $ "malformed JSIf, else clause should be either [] or [else,expr]"-----rn (JSMemberDot xs _d y)          = (rJS $ fixLiterals xs) <> (text ".") <> (renderJS y)-rn (JSMemberSquare xs _lb x _rb)  = (rJS $ fixLiterals xs) <> (text "[") <> (renderJS x) <> (text "]")-rn (JSUnary l _s )                = text l-rn (JSArrayLiteral _lb xs _rb)    = (text "[") <> (rJS xs) <> (text "]")--rn (JSBreak _b [] _as)           = (text "break") -- <> (renderJS as)-rn (JSBreak _b is _as)           = (text "break") <+> (rJS $ fixSourceElements $ map fixFnBlock is) -- <> (renderJS as)--rn (JSCallExpression "()" _os xs _cs) = (rJS xs)-rn (JSCallExpression   t  _os xs _cs) = (char $ head t) <> (rJS xs) <> (if ((length t) > 1) then (char $ last t) else empty)----- No space between 'case' and string literal. TODO: what about expression in parentheses?---rn (JSCase (JSExpression [JSStringLiteral sepa s]) xs) = (text "case") <> (renderJS (JSStringLiteral sepa s))-rn (JSCase _ca (NN (JSExpression [(NT (JSStringLiteral sepa s) s1 c1)])) _c xs) =-  (text "case") <> (renderJS (NT (JSStringLiteral sepa s) s1 c1)) <> (char ':') <> (rJS $ fixSourceElements $ map fixFnBlock xs)--rn (JSCase _ca e _c xs)           = (text "case") <+> (renderJS e) <> (char ':') <> (rJS $ fixSourceElements $ map fixFnBlock xs) -- <> (text ";");---rn (JSCatch _c _lb i [] _rb s)  = (text "catch") <> (char '(') <> (renderJS i) <>  (char ')') <> (renderJS $ fixFnBlock s)-rn (JSCatch _c _lb i  c _rb s)  = (text "catch") <> (char '(') <> (renderJS i) <>-                                  (text " if ") <> (rJS $ tail c) <> (char ')') <> (renderJS $ fixFnBlock s)--rn (JSContinue _c is _as)  = (text "continue") <> (rJS is) -- <> (char ';')-rn (JSDefault _d _c xs)    = (text "default") <> (char ':') <> (rJS $ fixSourceElements xs)--rn (JSDoWhile _d s _w _lb e _rb _as)     = (text "do") <> (renderJS $ fixFnBlock s) <> (text "while") <> (char '(') <> (renderJS e) <> (char ')') -- <> (renderJS as)-----rn (JSElementList xs)      = rJS xs---rn (JSElision xs)          = (char ',') <> (rJS xs)-rn (JSElision x)          = renderJS x--rn (JSExpressionBinary o e1 _op e2) = (rJS e1) <> (text o) <> (rJS e2)-rn (JSExpressionParen _lp e _rp)    = (char '(') <> (renderJS e) <> (char ')')-rn (JSExpressionPostfix o e _op)    = (rJS e) <> (text o)-rn (JSExpressionTernary c _q v1 _c v2) = (rJS c) <> (char '?') <> (rJS v1) <> (char ':') <> (rJS v2)-rn (JSFinally _f b)                    = (text "finally") <> (renderJS $ fixFnBlock b)--rn (JSFor _f _lb e1 _s1 e2 _s2 e3 _rb s) = (text "for") <> (char '(') <> (rJS e1) <> (char ';')-                                         <> (rJS e2) <> (char ';') <> (rJS e3) <> (char ')') <> (renderJS $ fixBlock s)--rn (JSForIn _f _lb e1 _i e2 _rb s)       = (text "for") <> (char '(') <> (rJS e1) <+> (text "in")-                                         <+> (renderJS e2) <> (char ')') <> (renderJS $ fixBlock s)-rn (JSForVar _f _lb _v e1 _s1 e2 _s3 e3 _rb s) = (text "for") <> (char '(') <> (text "var") <+> (rJS e1) <> (char ';')-                                         <> (rJS e2) <> (char ';') <> (rJS e3) <> (char ')') <> (renderJS $ fixBlock s)-rn (JSForVarIn _f _lb _v e1 _i e2 _rb s) = (text "for") <> (char '(') <> (text "var") <+> (renderJS e1) <+> (text "in")-                                         <+> (renderJS e2) <> (char ')') <> (renderJS $ fixBlock s)--rn (JSLabelled l _c v)           = (renderJS l) <> (text ":") <> (rJS $ fixSourceElements [fixBlock v])--rn (JSObjectLiteral _lb xs _rb)  = (text "{") <> (rJS xs) <> (text "}")-rn (JSPropertyAccessor s n _lb1 ps _rb1 b) = (renderJS s) <+> (renderJS n) <> (char '(') <> (rJS ps) <> (text ")") <> (renderJS $ fixFnBlock b)-rn (JSPropertyNameandValue n _c vs) = (renderJS n) <> (text ":") <> (rJS vs)--rn (JSReturn _r []                         _as) = (text "return")-rn (JSReturn _r [(NT (JSLiteral ";") _ _)] _as) = (text "return;++foobar+will_never_happen++") -- ++AZ++ get rid of this-rn (JSReturn _r xs                         _as) = (text "return") <> (if (spaceNeeded xs) then (text " ") else (empty)) <> (rJS $ fixSourceElements xs) -- <> (renderJS as)--rn (JSThrow _t e)                 = (text "throw") <+> (renderJS $ fixBlock e)--rn (JSSwitch _s _lb e _rb x)     = (text "switch") <> (char '(') <> (renderJS e) <> (char ')') <> (renderJS $ fixFnBlock x)--rn (JSTry _t e xs)               = (text "try") <> (renderJS $ fixFnBlock e) <> (rJS xs)--rn (JSVarDecl i [])              = (renderJS i)-rn (JSVarDecl i xs)              = (renderJS i) <> (rJS xs)--rn (JSVariables kw xs _as)       = (renderJS kw) <+> (rJS xs)--rn (JSWhile _w _lb e _rb (NT (JSLiteral ";") _ _)) = (text "while") <> (char '(') <> (renderJS e) <> (char ')') -- <> (renderJS s)-rn (JSWhile _w _lb e _rb s)                        = (text "while") <> (char '(') <> (renderJS e) <> (char ')') <> (renderJS $ fixFnBlock s)--rn (JSWith _w _lb e _rb s)                  = (text "with") <> (char '(') <> (renderJS e) <> (char ')') <> (rJS s)---- Helper functions-rJS :: [JSNode] -> BB.Builder-rJS xs = hcat $ map renderJS xs---- commaList :: [JSNode] -> BB.Builder--- commaList [] = empty--- commaList xs = rJS xs--extractNode :: JSNode -> Node-extractNode (NT x _ _) = x-extractNode (NN x    ) = x----commaListList :: [[JSNode]] -> BB.Builder---commaListList xs = (hcat $ punctuate comma $ map rJS xs)---- toDoc :: [JSNode] -> [BB.Builder]--- toDoc xs = map renderJS xs--spaceOrBlock :: JSNode -> BB.Builder-spaceOrBlock (NN (JSBlock lb xs rb)) = rn (JSBlock lb xs rb)---spaceOrBlock (NN (JSStatementBlock lb xs rb)) = rn (JSStatementBlock lb xs rb)-spaceOrBlock x            = (text " ") <> (renderJS x)---{---TODO: Collapse this into JSLiteral ";"--JSStatementBlock (JSStatementList [JSStatementBlock (JSStatementList [])])--}--- ------------------------------------------------------------------ Utility stuff---fixTop :: [JSNode] -> [JSNode]-fixTop [] = []-fixTop xs = if (n == (JSLiteral ";")) then (init xs) else (xs)-  where-    n = extractNode $ last xs--{---- The "new" literal always need a space after it-fixNew :: [JSNode] -> [JSNode]-fixNew []                               = []-fixNew ((NT (JSLiteral "new") p cs):xs) = (NT (JSLiteral "new ") p cs) : fixNew xs-fixNew (x                          :xs) = x                            : fixNew xs--}---- Fix semicolons in output of sourceelements and statementlist--fixSourceElements :: [JSNode] -> [JSNode]-fixSourceElements xs = fixSemis $ myFix xs--myFix :: [JSNode] -> [JSNode]-myFix []      = []----- Sort out empty IF statements---myFix ((NN (JSIf i lb c rb  (NN (JSStatementBlock _lb (NN (JSStatementList []) ) _rb) ) e)):xs) = (NN (JSIf i lb c rb (NT (JSLiteral "") tokenPosnEmpty []) e) ) : myFix (xs)--myFix [x]     = [x]--myFix (x:(NN (JSFunction v1 v2 v3 v4 v5 v6) ):xs)  = x : (NT (JSLiteral "\n") tokenPosnEmpty []) : myFix ((NN (JSFunction v1 v2 v3 v4 v5 v6) ) : xs)---- Messy way, but it works, until the 3rd element arrives ..--- TODO: JSStatementBlock.  Damn.-myFix ((NN (JSExpression x) ):(NN (JSExpression y) ):xs) = (NN (JSExpression x) ):(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSExpression y) ):xs)-myFix ((NN (JSExpression x) ):(NN (JSBlock l y r) ):xs)  = (NN (JSExpression x) ):(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSBlock l y r) ):xs)-myFix ((NN (JSBlock x1 x2 x3) )     :(NN (JSBlock y1 y2 y3) ):xs)      = (NN (JSBlock x1 x2 x3) )     :(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSBlock y1 y2 y3) ):xs)-myFix ((NN (JSBlock x1 x2 x3) )     :(NN (JSExpression y) ):xs) = (NN (JSBlock x1 x2 x3) )     :(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSExpression y) ):xs)---- myFix ((NN (JSExpression x) ):(NN (JSStatementBlock y1 y2 y3) ):xs)      =---   (NN (JSExpression x) ):(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSStatementBlock y1 y2 y3) ):xs)--- myFix ((NN (JSStatementBlock x1 x2 x3) )     :(NN (JSStatementBlock y1 y2 y3) ):xs)      =---   (NN (JSStatementBlock x1 x2 x3) )     :(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSStatementBlock y1 y2 y3) ):xs)--- myFix ((NN (JSStatementBlock x1 x2 x3) )     :(NN (JSExpression y) ):xs) =---   (NN (JSStatementBlock x1 x2 x3) )     :(NT (JSLiteral ";") tokenPosnEmpty []):myFix ((NN (JSExpression y) ):xs)---- Merge adjacent variable declarations, but only of the same type-myFix ((NN (JSVariables t1 x1s a1) ):(NT (JSLiteral l) s2 c2):(NN (JSVariables t2 x2s a2) ):xs)-  | extractNode t1 == extractNode t2 = myFix ((NN (JSVariables t1 (x1s++[(NT (JSLiteral ",") tokenPosnEmpty [])]++x2s) a2) ):xs)-  | otherwise = (NN (JSVariables t1 x1s a1) ):myFix ((NT (JSLiteral l) s2 c2):(NN (JSVariables t2 x2s a2) ):xs)--myFix ((NN (JSVariables t1 x1s a1) ):(NN (JSVariables t2 x2s a2) ):xs)-  | extractNode t1 == extractNode t2 = myFix ((NN (JSVariables t1 (x1s++[(NT (JSLiteral ",") tokenPosnEmpty [])]++x2s) a2) ):xs)-  | otherwise = (NN (JSVariables t1 x1s a1) ):myFix ((NN (JSVariables t2 x2s a2) ):xs)---- Merge adjacent semi colons-myFix ((NT (JSLiteral ";") s1 c1):(NT (JSLiteral ";") _s2 _c2):xs)  = myFix ((NT (JSLiteral ";") s1 c1):xs)-myFix ((NT (JSLiteral ";") s1 c1):(NT (JSLiteral "" ) _s2 _c2):xs)  = myFix ((NT (JSLiteral "" ) s1 c1):xs)---myFix (x:xs)  = x : myFix xs---- Merge strings split over lines and using "+"-fixLiterals :: [JSNode] -> [JSNode]-fixLiterals [] = []--- Old version-fixLiterals ((NT (JSStringLiteral d1 s1) ss1 c1):(NN (JSExpressionBinary "+" [(NT (JSStringLiteral d2 s2) ss2 c2)] op r) ):xs)-       | d1 == d2 = fixLiterals ((NT (JSStringLiteral d1 (s1++s2)) ss1 c1):(r++xs))-       | otherwise = (NT (JSStringLiteral d1 s1) ss1 c1):fixLiterals ((NN (JSExpressionBinary "+" [(NT (JSStringLiteral d2 s2) ss2 c2)] op r) ):xs)--fixLiterals ((NN (JSExpressionBinary "+" [(NT (JSStringLiteral d1 s1) ss2 c2)] o1 [(NT (JSStringLiteral d2 s2) ss3 c3)]) ):xs)-       | d1 == d2 = fixLiterals ((NT (JSStringLiteral d1 (s1++s2)) ss2 c2):xs)-       | otherwise = (NN (JSExpressionBinary "+" [(NT (JSStringLiteral d1 s1) ss2 c2)] o1 [(NT (JSStringLiteral d2 s2) ss3 c3)]) ):fixLiterals xs--fixLiterals (x:xs) = x:fixLiterals xs---- Sort out Semicolons-fixSemis :: [JSNode] -> [JSNode]---fixSemis xs = fixSemis' $ filter (\x -> x /= JSLiteral ";" && x /= JSLiteral "") xs-fixSemis xs = fixSemis' $ stripSemis xs--stripSemis :: [JSNode] -> [JSNode]-stripSemis xs = filter (\x -> (extractNode x) /= JSLiteral ";" && (extractNode x) /= JSLiteral "") xs--fixSemis' :: [JSNode] -> [JSNode]-fixSemis' [] = []-fixSemis' [(NN (JSContinue c [(NT (JSLiteral ";") _ _)] as) )] = [(NN (JSContinue c [] as) )]-fixSemis' [x] = [x]--fixSemis' ((NN (JSIf i lb c rb [NN (JSBlock [NT (JSLiteral "{") p1 cs1] [] [NT (JSLiteral "}") p2 cs2])] []) ):xs)  =-           (NN (JSIf i lb c rb [NN (JSBlock [NT (JSLiteral "{") p1 cs1] [] [NT (JSLiteral "}") p2 cs2])] []) ):(fixSemis' xs)--fixSemis' ((NN (JSIf i lb c rb [(NT (JSLiteral ";") s1 c1)] []) ):xs)  =-           (NN (JSIf i lb c rb [(NT (JSLiteral ";") s1 c1)] []) ):(fixSemis' xs)--fixSemis' ((NN (JSIf i lb c rb [(NN (JSReturn r [(NT (JSLiteral ";") s1 c1)] as) )] e) ):xs)  =-           (NN (JSIf i lb c rb [(NN (JSReturn r [(NT (JSLiteral ";") s1 c1)] as) )] e) ):(fixSemis' xs)--fixSemis' ((NN (JSIf i lb c rb [(NN (JSContinue co [(NT (JSLiteral ";") s1 c1)] as) )] e) ):xs)    =-           (NN (JSIf i lb c rb [(NN (JSContinue co [(NT (JSLiteral ";") s1 c1)] as) )] e) ):(fixSemis' xs)--fixSemis' (x:(NT (JSLiteral "\n") s1 c1):xs) = x:(NT (JSLiteral "\n") s1 c1):(fixSemis' xs) -- TODO: is this needed?--fixSemis' ((NN (JSCase ca1 e1 c1 [] ) ):(NN (JSCase ca2 e2 c2 x) ):xs) =-           (NN (JSCase ca1 e1 c1 [] ) ):fixSemis' ((NN (JSCase ca2 e2 c2 x) ):xs)--fixSemis' (x:xs) = x:(NT (JSLiteral ";") tokenPosnEmpty []):fixSemis' xs--fixIfElse :: [JSNode] -> [JSNode]-fixIfElse [(NN (JSBlock lb xs rb))] = [(NN (JSBlock lb (fixSourceElements xs) rb))]-fixIfElse [x] = [(NN (JSBlock [(NT (JSLiteral "{") tokenPosnEmpty [])] (fixSourceElements [x]) [(NT (JSLiteral "}") tokenPosnEmpty [])]))]-fixIfElse xs = xs--fixFnBlock :: JSNode -> JSNode--- fixFnBlock (NN (JSBlock lb [] rb)) = (NT (JSLiteral ";") tokenPosnEmpty [])-fixFnBlock (NN (JSBlock lb xs rb)) = (NN (JSBlock lb (fixSourceElements xs) rb))-fixFnBlock x = fixBlock x--fixIfBlock :: [JSNode] -> [JSNode]-fixIfBlock xs =-  case xs' of-    [(NT (JSLiteral ";") _p _cs)]   -> [] -- rely on fixSemis to add this again [(NT (JSLiteral ";") p cs)]-    [(NN (JSBlock _lb [] _rb))]     -> [] -- rely on fixSemis to add this again [(NT (JSLiteral ";") tokenPosnEmpty [])]-    -- [(NN (JSBlock lb [y] rb))]    -> [fixBlock y]-    [(NN (JSBlock lb x2s rb))]    -> [(NN (JSBlock lb ((fixSourceElements $ map fixBlock x2s)) rb))]-    [x]                           -> fixSourceElements [x]-    []                            -> []-    xs''                          -> fixSourceElements xs''-  where xs' = stripSemis xs---- Remove extraneous braces around blocks-fixBlock :: JSNode -> JSNode--fixBlock (NN (JSBlock lb xs rb)) =-  case xs' of-    []  -> (NT (JSLiteral ";") tokenPosnEmpty [])-    -- [(NN (JSExpression [y]))] -> fixBlock (NN (JSExpression [y]))-    -- [(NN (JSExpression xs))]  -> (NN (JSBlock lb (fixSourceElements $ map fixBlock xs') rb))-    [x] -> fixBlock x-    _   -> (NN (JSBlock lb (fixSourceElements $ map fixBlock xs') rb))-  where xs' = stripSemis xs--fixBlock x = x---- A space is needed if this expression starts with an identifier etc, but not if with a '('-spaceNeeded :: [JSNode] -> Bool-spaceNeeded xs =-  let-   -- str = show $ rJS xs-    str = LB.unpack $ BB.toLazyByteString $ rJS xs-  in-   head str /= (fromIntegral $ ord '(')---- ------------------------------------------------------------------------ Test stuff--_r :: JSNode -> [Char]-_r js = map (\x -> chr (fromIntegral x)) $ LB.unpack $ BB.toLazyByteString $ renderJS js----readJs "{{{}}}"-_case0 :: JSNode-_case0 = undefined ------ readJs "if(x){}{a=2}"-_case1 :: JSNode-_case1 = undefined ----_case11 :: [JSNode]-_case11 = undefined -- [NN (JSIf (NN (JSExpression [NS (JSIdentifier "x") (SpanPoint {span_filename = "", span_row = 1, span_column = 4})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 4})) (NN (JSStatementBlock (NN (JSStatementList []) (SpanPoint {span_filename = "", span_row = 1, span_column = 6}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 6}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 1}),NN (JSStatementBlock (NN (JSStatementList [NS (JSExpression [NS (JSIdentifier "a") (SpanPoint {span_filename = "", span_row = 1, span_column = 9}),NS (JSOperator "=") (SpanPoint {span_filename = "", span_row = 1, span_column = 10}),NS (JSDecimal "2") (SpanPoint {span_filename = "", span_row = 1, span_column = 11})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 9})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 9}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 8})]--_case12 :: JSNode-_case12 = undefined -- (NN (JSIf (NN (JSExpression [NS (JSIdentifier "x") (SpanPoint {span_filename = "", span_row = 1, span_column = 4})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 4})) (NT (JSLiteral "") (SpanPoint {span_filename = "", span_row = 1, span_column = 6}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 6}))---- readJs "bob:if(x){}\n{a}"-_case2 :: JSNode-_case2 = undefined -- NS (JSSourceElementsTop [NS (JSLabelled (NS (JSIdentifier "bob") (SpanPoint {span_filename = "", span_row = 1, span_column = 1})) (NN (JSIf (NN (JSExpression [NS (JSIdentifier "x") (SpanPoint {span_filename = "", span_row = 1, span_column = 8})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 8})) (NN (JSStatementBlock (NN (JSStatementList []) (SpanPoint {span_filename = "", span_row = 1, span_column = 10}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 10}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 5}))) (SpanPoint {span_filename = "", span_row = 1, span_column = 1}),NN (JSStatementBlock (NN (JSStatementList [NS (JSExpression [NS (JSIdentifier "a") (SpanPoint {span_filename = "", span_row = 2, span_column = 2})]) (SpanPoint {span_filename = "", span_row = 2, span_column = 2})]) (SpanPoint {span_filename = "", span_row = 2, span_column = 2}))) (SpanPoint {span_filename = "", span_row = 2, span_column = 1})]) (SpanPoint {span_filename = "", span_row = 1, span_column = 1})---- readJs "switch(i){case 1:1;case 2:2}"---- EOF-
− buildall.sh
@@ -1,5 +0,0 @@-#!/bin/sh--# do a clean build of all, including the tests-#cabal clean && cabal configure -fbuildtests && cabal build && cabal haddock-cabal clean && cabal configure --enable-tests && cabal build && cabal test && cabal haddock
hjsmin.cabal view
@@ -1,66 +1,69 @@ name:            hjsmin-version:         0.1.4.7+version:         0.2.1 license:         BSD3 license-file:    LICENSE author:          Alan Zimmerman <alan.zimm@gmail.com>-maintainer:      Alan Zimmerman <alan.zimm@gmail.com>+maintainer:      Erik de Castro Lopo <erikd@mega-nerd.com> synopsis:        Haskell implementation of a javascript minifier description:    Reduces size of javascript files by stripping out extraneous whitespace and    other syntactic elements, without changing the semantics. category:        Web stability:       unstable-cabal-version:   >= 1.9.2+cabal-version:   >= 1.10 build-type:      Simple-homepage:        http://github.com/alanz/hjsmin-bug-reports:     http://github.com/alanz/hjsmin/issues+homepage:        http://github.com/erikd/hjsmin+bug-reports:     http://github.com/erikd/hjsmin/issues  Extra-source-files:-   TODO.txt- , README.markdown- , buildall.sh- , test/pminified/*.js- , test/parsingonly/*.js+  Readme.md+  test/cli/core/runner+  test/cli/empty-input/run+  test/cli/minimal-input/run   library-    build-depends:   base                >= 4-                   , bytestring          >= 0.9-                   , blaze-builder       >= 0.2-                   , text                >= 0.8-                   , containers          >= 0.2-                   , language-javascript >= 0.5.1-    exposed-modules: Text.Jasmine-    other-modules:   Text.Jasmine.Pretty-    ghc-options:     -Wall+  default-language:     Haskell2010+  ghc-options:          -Wall+  hs-source-dirs:       src -executable hjsmin-  main-is:             hjsmin.hs+  exposed-modules:      Text.Jasmine +  build-depends:        base                    >= 4.9          && < 5+                      , bytestring              >= 0.11+                      , language-javascript     >= 0.6          && < 0.8+                      , text                    >= 2+++executable hjsmin+  default-language:     Haskell2010   ghc-options:         -Wall -threaded-  build-depends:   base                 >= 4       && < 5-                 , bytestring           >= 0.9-                 , blaze-builder        >= 0.2-                 , text                 >= 0.8-                 , containers           >= 0.2-                 , language-javascript  >= 0.5.1-                 , optparse-applicative >= 0.7+  hs-source-dirs:       src main+  main-is:              hjsmin.hs -Test-Suite test-hjsmin-  Type: exitcode-stdio-1.0-  Main-is: runtests.hs-  build-depends: Cabal >= 1.9.2-                 , QuickCheck >= 2-                 , HUnit-                 , test-framework-                 , test-framework-hunit-                 , base                >= 4       && < 5-                 , bytestring          >= 0.9-                 , blaze-builder       >= 0.2-                 , text                >= 0.8-                 , containers          >= 0.2-                 , language-javascript >= 0.5.4+  -- Need this here because the library and the executable have the same name.+  other-modules:        Text.Jasmine +  build-depends:        base+                      , bytestring+                      , language-javascript+                      , optparse-applicative    >= 0.7+                      , text++test-suite test-cli+  type:                 exitcode-stdio-1.0+  ghc-options:          -Wall -fwarn-tabs+  default-language:     Haskell2010+  hs-source-dirs:       test+  main-is:              test-cli.hs++  build-depends:        base+                      , directory+                      , extra+                      , filepath+                      , process+                      , unix+ source-repository head   type:     git-  location: git://github.com/alanz/hjsmin.git+  location: https://github.com/erikd/hjsmin.git
− hjsmin.hs
@@ -1,36 +0,0 @@-module Main where--import qualified Data.ByteString.Lazy as B-import qualified Data.ByteString.Lazy.Char8 as C8-import Options.Applicative-import Text.Jasmine--data Options = Options {-    inputFile :: String-  , outputFile :: Maybe String-  }--options :: Parser Options-options = Options -      <$> argument str (metavar "INPUT_FILE"-                     <> help "The unminified, original JavaScript file")-      <*> optional (-            strOption (long "output-file"-                    <> short 'o'-                    <> metavar "OUTPUT_FILE"-                    <> help "The minified output file. Default: stdout"))--main :: IO ()-main = execParser opts >>= minify'-  where-    opts = info (helper <*> options)-      ( fullDesc-     <> progDesc "Minify JavaScript files."-     <> header "hjsmin - a simple command-line interface to the 'hjsmin' library" )--minify' :: Options -> IO ()-minify' o = do-  minified <- minifyFile (inputFile o)-  case outputFile o of-    Nothing -> C8.putStrLn $ minified-    Just f  -> B.writeFile f minified
+ main/hjsmin.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE CPP #-}++#include "cabal_macros.h"++import qualified Data.ByteString.Lazy.Char8 as LBS+import           Options.Applicative (Parser, ParserInfo, ParserPrefs)+import qualified Options.Applicative as Opt+import           Text.Jasmine (minify)++import           System.IO (hPutStrLn, stderr)+import           System.Exit (exitFailure)++data Command+  = Process FilePath (Maybe FilePath)++main :: IO ()+main =+  Opt.customExecParser p opts >>= processFile+  where+    opts :: ParserInfo Command+    opts = Opt.info (Opt.helper <*> pVersion <*> pProcess)+      ( Opt.fullDesc+      <> Opt.header "hjsmin - Haskell implementation of a Javascript and JSON minifier"+      )++    p :: ParserPrefs+    p = Opt.prefs Opt.showHelpOnEmpty++pVersion :: Parser (a -> a)+pVersion =+  Opt.infoOption versionString+    (  Opt.long "version"+    <> Opt.short 'v'+    <> Opt.help "Print the version and exit"+    )++pProcess :: Parser Command+pProcess =+  Process <$> pInputFile <*> pMaybeOutputFile+  where+    pInputFile =+      Opt.strOption+        (  Opt.long "input"+        <> Opt.short 'i'+        <> Opt.metavar "INPUT_FILE"+        <> Opt.help "The original JavaScript file"+        )++    pMaybeOutputFile =+      Opt.optional $ Opt.strOption+        (  Opt.long "output"+        <> Opt.short 'o'+        <> Opt.metavar "OUTPUT_FILE"+        <> Opt.help "The minified output file. Default: stdout"+        )+++processFile :: Command -> IO ()+processFile (Process inputFile outputFile) = do+  lbs <- LBS.readFile inputFile+  if LBS.null lbs+    then emptyFileError+    else do+      let minified = minify lbs+      case outputFile of+        Nothing -> LBS.putStrLn minified+        Just f  -> LBS.writeFile f minified+  where+    emptyFileError = do+      hPutStrLn stderr $ "Error: input file '" ++ inputFile ++ "' is empty."+      exitFailure+++versionString :: String+versionString =+  concat+    [ "hjsmin version ", VERSION_hjsmin+    , " (using language-javascript version ", VERSION_language_javascript, ")"+    ]
− runtests.hs
@@ -1,370 +0,0 @@-module Main where--import Test.Framework (defaultMain, testGroup, Test)-import Test.Framework.Providers.HUnit-import Test.HUnit hiding (Test)--import Data.Char-import Text.Jasmine-import Language.JavaScript.Parser-import Text.Jasmine.Pretty-import qualified Data.ByteString.Lazy as LB-import qualified Data.Text as T-import qualified Data.Text.Encoding as E--main :: IO ()-main = defaultMain [testSuite,testSuiteMin,testSuiteFiles,testSuiteFilesUnminified]--testSuite :: Test-testSuite = testGroup "Text.Jasmine.Parse"-    [-      testCase "helloWorld"       caseHelloWorld-    , testCase "helloWorld2"      caseHelloWorld2-    , testCase "simpleAssignment" caseSimpleAssignment-    , testCase "emptyFor"         caseEmptyFor-    , testCase "fullFor"          caseFullFor-    , testCase "forVarFull"       caseForVarFull-    , testCase "ifelse1"          caseIfElse1-    , testCase "ifelse2"          caseIfElse2-    , testCase "0_f.js"           case0_f-    , testCase "01_semi1.js"      case01_semi1-    , testCase "min_100_animals"  case_min_100_animals-    , testCase "mergeStrings"     caseMergeStrings-    , testCase "TrailingCommas"   caseTrailingCommas-    , testCase "GetSet"           caseGetSet-    , testCase "Unicode"          caseUnicode-    , testCase "Issue3"           caseIssue3-    , testCase "Issue4"           caseIssue4-    , testCase "Switch1"          caseSwitch1-    , testCase "If1"              caseIf1-    , testCase "If2"              caseIf2-    , testCase "If3"              caseIf3-    , testCase "BootstrapDropdown" caseBootstrapDropdown-    , testCase "Issue8"           caseIssue8-    , testCase "Issue9"           caseIssue9-    , testCase "Issue14"          caseIssue14-    ]--testSuiteMin :: Test-testSuiteMin = testGroup "Text.Jasmine.Pretty Min"-    [ testCase "helloWorld"       caseMinHelloWorld-    , testCase "helloWorld2"      caseMinHelloWorld2-    , testCase "simpleAssignment" caseMinSimpleAssignment-    , testCase "ifelse1"          caseMinIfElse1-    , testCase "ifelse2"          caseMinIfElse2-    , testCase "0_f.js"           caseMin0_f-    , testCase "01_semi1.js"      caseMin01_semi1-    , testCase "min_100_animals"  caseMin_min_100_animals-    , testCase "minNestedSquare"  caseMinNestedSquare-    , testCase "minMergeStrings"  caseMinMergeStrings-    , testCase "EitherLeft"       caseEitherLeft-    , testCase "EitherRight"      caseEitherRight-    , testCase "TrailingCommas"   caseMinTrailingCommas-    , testCase "GetSet"           caseMinGetSet-    , testCase "Unicode"          caseMinUnicode-    , testCase "MinIssue3"        caseMinIssue3-    , testCase "MinIssue4"        caseMinIssue4-    , testCase "MinSwitch1"       caseMinSwitch1-    , testCase "MinIf1"           caseMinIf1-    , testCase "MinIf2"           caseMinIf2-    , testCase "MinIf3"           caseMinIf3-    , testCase "MinBootstrapDropdown" caseMinBootstrapDropdown-    , testCase "MinIssue8"        caseMinIssue8-    , testCase "MinIssue9"        caseMinIssue9-    , testCase "MinIssue14"       caseMinIssue14--    ]--testSuiteFiles :: Test-testSuiteFiles = testGroup "Text.Jasmine.Pretty files"-  [ testCase "00_f.js"          (testFile "./test/pminified/00_f.js")-  , testCase "01_semi1.js"      (testFile "./test/pminified/01_semi1.js")-  , testCase "02_sm.js"         (testFile "./test/pminified/02_sm.js")-  , testCase "03_sm.js"         (testFile "./test/pminified/03_sm.js")-  , testCase "04_if.js"         (testFile "./test/pminified/04_if.js")-  , testCase "05_comments_simple.js" (testFile "./test/pminified/05_comments_simple.js")-  , testCase "05_regex.js"      (testFile "./test/pminified/05_regex.js")-  , testCase "06_callexpr.js"   (testFile "./test/pminified/06_callexpr.js")-  , testCase "06_newexpr.js"    (testFile "./test/pminified/06_newexpr.js")-  , testCase "06_var.js"        (testFile "./test/pminified/06_var.js")-  , testCase "07_expr.js"       (testFile "./test/pminified/07_expr.js")-  , testCase "10_switch.js"     (testFile "./test/pminified/10_switch.js")-  , testCase "14_labelled_stmts.js" (testFile "./test/pminified/14_labelled_stmts.js")-  , testCase "15_literals.js"   (testFile "./test/pminified/15_literals.js")-  , testCase "16_literals.js"   (testFile "./test/pminified/16_literals.js")-  , testCase "20_statements.js" (testFile "./test/pminified/20_statements.js")-  , testCase "25_trycatch.js"   (testFile "./test/pminified/25_trycatch.js")-  , testCase "40_functions.js"  (testFile "./test/pminified/40_functions.js")-  , testCase "67_bob.js"        (testFile "./test/pminified/67_bob.js")-  , testCase "110_perfect.js"   (testFile "./test/pminified/110_perfect.js")-  , testCase "120_js.js"        (testFile "./test/pminified/120_js.js")-  , testCase "121_jsdefs.js"    (testFile "./test/pminified/121_jsdefs.js")-  , testCase "122_jsexec.js"    (testFile "./test/pminified/122_jsexec.js")-  , testCase "122_jsexec2.js"   (testFile "./test/pminified/122_jsexec2.js")-  , testCase "122_jsexec3.js"   (testFile "./test/pminified/122_jsexec3.js")-  -- , testCase "123_jsparse.js"   (testFile "./test/pminified/123_jsparse.js")-       -- TODO: something strange here, assigning code block to variable?-       -- See http://msdn.microsoft.com/en-us/library/77kz8hy0.aspx, get/set keywords for object accessors--  --, testCase "130_htojs2.js"     (testFile "./test/parsingonly/130_htojs2.js")-  --, testCase ""     (testFile "./test/pminified/")-  ]--testSuiteFilesUnminified :: Test-testSuiteFilesUnminified = testGroup "Text.Jasmine.Pretty filesUnminified"-  [ testCase "00_f.js"          (testFileUnminified "00_f.js")-  , testCase "01_semi1.js"      (testFileUnminified "01_semi1.js")-  , testCase "02_sm.js"         (testFileUnminified "02_sm.js")-  , testCase "03_sm.js"         (testFileUnminified "03_sm.js")-  , testCase "04_if.js"         (testFileUnminified "04_if.js")-  , testCase "05_comments_simple.js" (testFileUnminified "05_comments_simple.js")-  , testCase "05_regex.js"      (testFileUnminified "05_regex.js")-  , testCase "06_callexpr.js"   (testFileUnminified "06_callexpr.js")-  , testCase "06_newexpr.js"    (testFileUnminified "06_newexpr.js")-  , testCase "06_var.js"        (testFileUnminified "06_var.js")-  , testCase "07_expr.js"       (testFileUnminified "07_expr.js")-  , testCase "10_switch.js"     (testFileUnminified "10_switch.js")-  , testCase "14_labelled_stmts.js" (testFileUnminified "14_labelled_stmts.js")-  , testCase "15_literals.js"   (testFileUnminified "15_literals.js")-  , testCase "16_literals.js"   (testFileUnminified "16_literals.js")-  , testCase "20_statements.js" (testFileUnminified "20_statements.js")-  , testCase "25_trycatch.js"   (testFileUnminified "25_trycatch.js")-  , testCase "40_functions.js"  (testFileUnminified "40_functions.js")-  , testCase "67_bob.js"        (testFileUnminified "67_bob.js")-  , testCase "110_perfect.js"   (testFileUnminified "110_perfect.js")-  , testCase "120_js.js"        (testFileUnminified "120_js.js")-  , testCase "121_jsdefs.js"    (testFileUnminified "121_jsdefs.js")-  , testCase "122_jsexec.js"    (testFileUnminified "122_jsexec.js")--  --, testCase "122_jsexec2.js"   (testFileUnminified "122_jsexec2.js")-  ]--srcHelloWorld = "function Hello(a) {}"-caseHelloWorld =-  "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"Hello\") [JSIdentifier \"a\"] (JSBlock ([])),JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcHelloWorld)-caseMinHelloWorld =-  -- "function Hello(a){}" @=? (minify (U.fromString srcHelloWorld))-  testMinify "function Hello(a){}" srcHelloWorld--srcHelloWorld2 = "function Hello(a) {b=1}"-caseHelloWorld2 =-  "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"Hello\") [JSIdentifier \"a\"] (JSBlock ([JSExpression [JSIdentifier \"b\",JSOperator JSLiteral \"=\",JSDecimal \"1\"]])),JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcHelloWorld2)-caseMinHelloWorld2 =-  -- "function Hello(a){b=1}" @=? (minify (U.fromString srcHelloWorld2))-  testMinify "function Hello(a){b=1}" srcHelloWorld2--srcSimpleAssignment = "a=1;"-caseSimpleAssignment =-  "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"a\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcSimpleAssignment)-caseMinSimpleAssignment =-  testMinify "a=1" srcSimpleAssignment--srcEmptyFor = "for (i = 0;;){}"-caseEmptyFor =-  "Right (JSSourceElementsTop [JSFor [JSExpression [JSIdentifier \"i\",JSOperator JSLiteral \"=\",JSDecimal \"0\"]] [] [] (JSBlock ([])),JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcEmptyFor)-srcFullFor = "for (i = 0;i<10;i++){}"-caseFullFor =-  "Right (JSSourceElementsTop [JSFor [JSExpression [JSIdentifier \"i\",JSOperator JSLiteral \"=\",JSDecimal \"0\"]] [JSExpression [JSExpressionBinary \"<\" [JSIdentifier \"i\"] [JSDecimal \"10\"]]] [JSExpression [JSExpressionPostfix \"++\" [JSIdentifier \"i\"]]] (JSBlock ([])),JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcFullFor)--srcForVarFull = "for(var i=0,j=tokens.length;i<j;i++){}"-caseForVarFull =-  "Right (JSSourceElementsTop [JSForVar [JSVarDecl (JSIdentifier \"i\") [JSLiteral \"=\",JSDecimal \"0\"],JSLiteral \",\",JSVarDecl (JSIdentifier \"j\") [JSLiteral \"=\",JSMemberDot [JSIdentifier \"tokens\"] (JSIdentifier \"length\")]] [JSExpression [JSExpressionBinary \"<\" [JSIdentifier \"i\"] [JSIdentifier \"j\"]]] [JSExpression [JSExpressionPostfix \"++\" [JSIdentifier \"i\"]]] (JSBlock ([])),JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcForVarFull)--srcIfElse1 = "if(a){b=1}else c=2";-caseIfElse1 =-   "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"a\"]) ([JSBlock ([JSExpression [JSIdentifier \"b\",JSOperator JSLiteral \"=\",JSDecimal \"1\"]])]) ([JSLiteral \"else\",JSExpression [JSIdentifier \"c\",JSOperator JSLiteral \"=\",JSDecimal \"2\"]]),JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcIfElse1)-caseMinIfElse1 =-  testMinify "if(a){b=1}else c=2" srcIfElse1--srcIfElse2 = "if(a){b=1}else {c=2;d=4}";-caseIfElse2 =-  "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"a\"]) ([JSBlock ([JSExpression [JSIdentifier \"b\",JSOperator JSLiteral \"=\",JSDecimal \"1\"]])]) ([JSLiteral \"else\",JSBlock ([JSExpression [JSIdentifier \"c\",JSOperator JSLiteral \"=\",JSDecimal \"2\"],JSLiteral \";\",JSExpression [JSIdentifier \"d\",JSOperator JSLiteral \"=\",JSDecimal \"4\"]])]),JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcIfElse2)-caseMinIfElse2 =-  testMinify "if(a){b=1}else{c=2;d=4}" srcIfElse2--src0_f = "function Hello(a) {ExprArray(1,1);}"-case0_f =-   "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"Hello\") [JSIdentifier \"a\"] (JSBlock ([JSExpression [JSIdentifier \"ExprArray\",JSArguments [JSDecimal \"1\",JSLiteral \",\",JSDecimal \"1\"]],JSLiteral \";\"])),JSLiteral \"\"])"-  -- @=? (show $ parseString program src0_f)-  @=? (showStrippedMaybe $ parseProgram src0_f)-caseMin0_f =-  testMinify "function Hello(a){ExprArray(1,1)}" src0_f--src01_semi1 = (-    "{zero.one1;zero}\n"++-    "one1\n"++-    "two;three\n"++-    "{{}} four;\n"++-    "// five\n"++-    "five")-case01_semi1 =-  "Right (JSSourceElementsTop [JSBlock ([JSExpression [JSMemberDot [JSIdentifier \"zero\"] (JSIdentifier \"one1\")],JSLiteral \";\",JSExpression [JSIdentifier \"zero\"]]),JSExpression [JSIdentifier \"one1\"],JSExpression [JSIdentifier \"two\"],JSLiteral \";\",JSExpression [JSIdentifier \"three\"],JSBlock ([JSBlock ([])]),JSExpression [JSIdentifier \"four\"],JSLiteral \";\",JSExpression [JSIdentifier \"five\"],JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram src01_semi1)-caseMin01_semi1 =-  testMinify "{zero.one1;zero};one1;two;three;four;five" src01_semi1--src_min_100_animals = "function Animal(name){if(!name)throw new Error('Must specify an animal name');this.name=name};Animal.prototype.toString=function(){return this.name};o=new Animal(\"bob\");o.toString()==\"bob\""-case_min_100_animals =-  "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"Animal\") [JSIdentifier \"name\"] (JSBlock ([JSIf (JSExpression [JSUnary \"!\",JSIdentifier \"name\"]) ([JSThrow (JSExpression [JSLiteral \"new\",JSIdentifier \"Error\",JSArguments [JSStringLiteral '\\'' \"Must specify an animal name\"]]),JSLiteral \";\"]) ([]),JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"name\"),JSOperator JSLiteral \"=\",JSIdentifier \"name\"]])),JSLiteral \";\",JSExpression [JSMemberDot [JSMemberDot [JSIdentifier \"Animal\"] (JSIdentifier \"prototype\")] (JSIdentifier \"toString\"),JSOperator JSLiteral \"=\",JSFunctionExpression [] [] (JSBlock ([JSReturn [JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"name\")]] JSLiteral \"\"]))],JSLiteral \";\",JSExpression [JSIdentifier \"o\",JSOperator JSLiteral \"=\",JSLiteral \"new\",JSIdentifier \"Animal\",JSArguments [JSStringLiteral '\"' \"bob\"]],JSLiteral \";\",JSExpression [JSExpressionBinary \"==\" [JSMemberDot [JSIdentifier \"o\"] (JSIdentifier \"toString\"),JSArguments []] [JSStringLiteral '\"' \"bob\"]],JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram src_min_100_animals)-caseMin_min_100_animals =-  testMinify src_min_100_animals src_min_100_animals--srcMergeStrings = "throw new TypeError(\"Function.prototype.apply called on\"+\" uncallable object\");"-caseMergeStrings =-  "Right (JSSourceElementsTop [JSThrow (JSExpression [JSLiteral \"new\",JSIdentifier \"TypeError\",JSArguments [JSExpressionBinary \"+\" [JSStringLiteral '\"' \"Function.prototype.apply called on\"] [JSStringLiteral '\"' \" uncallable object\"]]]),JSLiteral \";\",JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcMergeStrings)-caseMinMergeStrings =-  testMinify "throw new TypeError(\"Function.prototype.apply called on uncallable object\")" srcMergeStrings--srcNestedSquare = "this.cursor+=match[0].length;"-caseNestedSquare =-  "Right (JSSourceElementsTop [JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"cursor\"),JSOperator \"+=\",JSMemberDot [JSMemberSquare [JSIdentifier \"match\"] (JSExpression [JSDecimal \"0\"])] (JSIdentifier \"length\")],JSLiteral \";\"])"-  @=? (showStrippedMaybe $ parseProgram srcNestedSquare)-caseMinNestedSquare =-  testMinify "this.cursor+=match[0].length" srcNestedSquare--caseEitherLeft  =-  -- Left "UnexpectedToken (MulToken {token_span = (AlexPn 2 1 3,'=',\"*SYNTAX*ERROR*\")})"-  -- Left "\"MulToken {token_span = TokenPn 2 1 3, token_comment = [NoComment]}\""-  Left "\"MulToken {token_span = TokenPn 2 1 3, token_comment = [NoComment]}\""-  @=? minifym (LB.fromChunks [(E.encodeUtf8 $ T.pack "a=*SYNTAX*ERROR*")])--caseEitherRight  =-  Right (LB.fromChunks [(E.encodeUtf8 $ T.pack "a=\"no syntax error\"")]) @=? minifym (LB.fromChunks [(E.encodeUtf8 $ T.pack "a=\"no syntax error\";")])--srcTrailingCommas = "x={a:1,};y=[d,e,];"-caseTrailingCommas =-  "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"a\") [JSDecimal \"1\"],JSLiteral \",\"]],JSLiteral \";\",JSExpression [JSIdentifier \"y\",JSOperator JSLiteral \"=\",JSArrayLiteral [JSIdentifier \"d\",JSElision JSLiteral \",\",JSIdentifier \"e\",JSLiteral \",\"]],JSLiteral \";\",JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcTrailingCommas)-caseMinTrailingCommas =-  testMinify "x={a:1,};y=[d,e,]" srcTrailingCommas--srcGetSet = "x={get foo() {return 1},set foo(a) {x=a}}"-caseGetSet =-  "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSObjectLiteral [JSPropertyAccessor NT (JSLiteral \"get\") (TokenPn 3 1 4) [NoComment] (JSIdentifier \"foo\") [] (JSBlock ([JSReturn [JSExpression [JSDecimal \"1\"]] JSLiteral \"\"])),JSLiteral \",\",JSPropertyAccessor NT (JSLiteral \"set\") (TokenPn 24 1 25) [NoComment] (JSIdentifier \"foo\") [JSIdentifier \"a\"] (JSBlock ([JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSIdentifier \"a\"]]))]],JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcGetSet)-caseMinGetSet =-  testMinify "x={get foo(){return 1},set foo(a){x=a}}" srcGetSet--srcUnicode = "var x = \"שלום\";"-caseUnicode =-  "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"x\") [JSLiteral \"=\",JSStringLiteral '\"' \"\\1513\\1500\\1493\\1501\"]],JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcUnicode)-caseMinUnicode =-  testMinify "var x=\"שלום\"" srcUnicode--srcIssue3 = "var myLatlng = new google.maps.LatLng(56.8379100, 60.5806664);"-caseIssue3 =-  "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"myLatlng\") [JSLiteral \"=\",JSLiteral \"new\",JSMemberDot [JSMemberDot [JSIdentifier \"google\"] (JSIdentifier \"maps\")] (JSIdentifier \"LatLng\"),JSArguments [JSDecimal \"56.8379100\",JSLiteral \",\",JSDecimal \"60.5806664\"]]],JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcIssue3)-caseMinIssue3 =-  testMinify "var myLatlng=new google.maps.LatLng(56.8379100,60.5806664)" srcIssue3--srcIssue4 = "/* * geolocation. пытаемся определить свое местоположение * если не получается то используем defaultLocation * @Param {object} map экземпляр карты * @Param {object LatLng} defaultLocation Координаты центра по умолчанию * @Param {function} callbackAfterLocation Фу-ия которая вызывается после * геолокации. Т.к запрос геолокации асинхронен */x"-caseIssue4 =-  "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\"],JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcIssue4)-caseMinIssue4 =-  testMinify "x" srcIssue4--srcSwitch1 = "switch(i){case 1:1;case 2:2}"-caseSwitch1 =-   "Right (JSSourceElementsTop [JSSwitch (JSExpression [JSIdentifier \"i\"]) JSBlock ([JSCase (JSExpression [JSDecimal \"1\"]) ([JSExpression [JSDecimal \"1\"],JSLiteral \";\"]),JSCase (JSExpression [JSDecimal \"2\"]) ([JSExpression [JSDecimal \"2\"]])]),JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcSwitch1)-caseMinSwitch1 =-  testMinify "switch(i){case 1:1;case 2:2}" srcSwitch1--srcIf1="if(i>0)consts+=\", \";var t=tokens[i];"-caseIf1 =-  "Right (JSSourceElementsTop [JSIf (JSExpression [JSExpressionBinary \">\" [JSIdentifier \"i\"] [JSDecimal \"0\"]]) ([JSExpression [JSIdentifier \"consts\",JSOperator JSLiteral \"+=\",JSStringLiteral '\"' \", \"],JSLiteral \";\"]) ([]),JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"t\") [JSLiteral \"=\",JSMemberSquare [JSIdentifier \"tokens\"] (JSExpression [JSIdentifier \"i\"])]],JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcIf1)-caseMinIf1 =-  testMinify "if(i>0)consts+=\", \";var t=tokens[i]" srcIf1--srcIf2 = "if (getValue)\n   execute;\nelse {\n   execute;\n}"-caseIf2 =-  "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"getValue\"]) ([JSExpression [JSIdentifier \"execute\"],JSLiteral \";\"]) ([JSLiteral \"else\",JSBlock ([JSExpression [JSIdentifier \"execute\"],JSLiteral \";\"])]),JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcIf2)-caseMinIf2 =-  testMinify "if(getValue){execute}else execute" srcIf2--srcIf3 = "if(getValue){execute}else execute"-caseIf3 =-  "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"getValue\"]) ([JSExpression [JSIdentifier \"execute\"],JSLiteral \";\"]) ([JSLiteral \"else\",JSBlock ([JSExpression [JSIdentifier \"execute\"],JSLiteral \";\"])]),JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcIf2)-caseMinIf3 =-  testMinify "if(getValue){execute}else execute" srcIf3--srcBootstrapDropdown = "clearMenus()\n!isActive && $parent.toggleClass('open')"-caseBootstrapDropdown =-  "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"clearMenus\",JSArguments []],JSExpression [JSExpressionBinary \"&&\" [JSUnary \"!\",JSIdentifier \"isActive\"] [JSMemberDot [JSIdentifier \"$parent\"] (JSIdentifier \"toggleClass\"),JSArguments [JSStringLiteral '\\'' \"open\"]]],JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcBootstrapDropdown)-caseMinBootstrapDropdown =-  testMinify "clearMenus();!isActive&&$parent.toggleClass('open')" srcBootstrapDropdown---srcIssue8 = "(function(){new nicEditor({fullPanel:true}).panelInstance('h4')})();"-caseIssue8 =-  "Right (JSSourceElementsTop [JSExpression [JSExpressionParen (JSExpression [JSFunctionExpression [] [] (JSBlock ([JSExpression [JSMemberDot [JSLiteral \"new\",JSIdentifier \"nicEditor\",JSArguments [JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"fullPanel\") [JSLiteral \"true\"]]]] (JSIdentifier \"panelInstance\"),JSArguments [JSStringLiteral '\\'' \"h4\"]]]))]),JSArguments []],JSLiteral \";\",JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcIssue8)-caseMinIssue8 =-  testMinify "(function(){new nicEditor({fullPanel:true}).panelInstance('h4')})()" srcIssue8--srcIssue9 = "var x = [new friend(5)];"-caseIssue9 =-  "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"x\") [JSLiteral \"=\",JSArrayLiteral [JSLiteral \"new\",JSIdentifier \"friend\",JSArguments [JSDecimal \"5\"]]]],JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcIssue9)-caseMinIssue9 =-  testMinify "var x=[new friend(5)]" srcIssue9---srcIssue14 = "var settings = {start : new Date(2012, 01, 27)};"-caseIssue14 =-  "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"settings\") [JSLiteral \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"start\") [JSLiteral \"new\",JSIdentifier \"Date\",JSArguments [JSDecimal \"2012\",JSLiteral \",\",JSOctal \"01\",JSLiteral \",\",JSDecimal \"27\"]]]]],JSLiteral \"\"])"-  @=? (showStrippedMaybe $ parseProgram srcIssue14)-caseMinIssue14 =-  testMinify "var settings={start:new Date(2012,01,27)}" srcIssue14----- ------------------------------------------------------------------------ utilities----testMinify expected src = (LB.fromChunks [(U.fromString expected)])  @=? (minify (U.fromString src))-testMinify expected src = (LB.fromChunks [(E.encodeUtf8 $ T.pack expected)])  @=? (minify $ LB.fromChunks [(E.encodeUtf8 $ T.pack src)])--testFile :: FilePath -> IO ()-testFile filename =-  do-     x <- readFile (filename)-     let x' = trim x-     -- x' @=? (minify (U.fromString x')  )-     testMinify x' x'---testFileUnminified :: FilePath -> IO ()-testFileUnminified filename =-  do-     x <- readFile ("./test/pminified/" ++ filename)-     y <- readFile ("./test/parsingonly/" ++ filename)-     let x' = trim x-     -- x' @=? (minify (U.fromString y))-     testMinify x' y---trim      :: String -> String-trim      = f . f-   where f = reverse . dropWhile isSpace---- For language-javascript-parseProgram src = parse src "src"---- EOF
+ src/Text/Jasmine.hs view
@@ -0,0 +1,52 @@+module Text.Jasmine+    ( minify+    , minifym+    , minifyBb+    , minifyFile+    ) where++import           Data.ByteString.Builder (Builder)+import qualified Data.ByteString.Builder as Builder+import qualified Data.ByteString.Lazy.Char8 as LBS+import           Data.Text.Lazy (unpack)+import           Data.Text.Lazy.Encoding (decodeUtf8With)+import           Data.Text.Encoding.Error (lenientDecode)++import           Language.JavaScript.Parser (readJs, parse, JSAST)+import           Language.JavaScript.Pretty.Printer (renderJS)+import           Language.JavaScript.Process.Minify (minifyJS)++++minifym :: LBS.ByteString -> Either String LBS.ByteString+minifym s =+  case myParse s of+    Left msg -> Left (show msg)+    Right p  -> Right $ Builder.toLazyByteString $ renderJS $ minifyJS p+++minifyBb :: LBS.ByteString -> Either String Builder+minifyBb s =+  case myParse s  of+    Left msg -> Left (show msg)+    Right p  -> Right (renderJS $ minifyJS p)+++minify :: LBS.ByteString -> LBS.ByteString+minify =+  Builder.toLazyByteString . renderJS . minifyJS . readJs . lbToStr+++minifyFile :: FilePath -> IO LBS.ByteString+minifyFile filename =+  minify <$> LBS.readFile filename+++myParse :: LBS.ByteString -> Either String JSAST+myParse input =+  parse (lbToStr input) "src"+++lbToStr :: LBS.ByteString -> String+lbToStr =+  unpack . decodeUtf8With lenientDecode
+ test/cli/core/runner view
@@ -0,0 +1,74 @@+if test -d dist-newstyle ; then+    HJSMIN=$(find dist-newstyle -type f -name hjsmin)+elif test -d ../dist-newstyle ; then+    HJSMIN=$(find ../dist-newstyle -type f -name hjsmin)+    fi++echo+echo $HJSMIN+echo++DIFF=${USE_DIFF:-diff -u}++colourReset='\e[0m'+colourGreen='\e[0;32m'+colourRed='\e[0;31m'+colourYellow='\e[0;33m'++testname=$(basename $(dirname $0))++# Failure is the default!+RESULT="FAILED"++type "$HJSMIN" > /dev/null 2>&1 || {+    echo "No hjsmin executable specified on command line or on path."+    exit 1+}++ROOT=$(dirname "$0")/../../..+ROOT=$(cd "$ROOT" > /dev/null 2>&1 && pwd)+TMP=${ROOT}/tmp+TEST=${TMP}/test/$$+mkdir -p ${TEST}++cleanup () {+    echo "Cleaning up (${TEST})"+    rm -rf "${TEST}"+    echo ${RESULT}+    echo+}++trap cleanup EXIT++banner () {+    echo "${colourYellow}== $* ==${colourReset}"+    echo "== Running in ${TEST} =="+}++assert_file_exists () {+    if test ! -f "$1" ; then+        echo "Output file '$1' is missing."+        fail_test+    fi+}++pass_test () {+    RESULT="${colourGreen}PASSED [ ${testname} ]${colourReset}"+    exit 0+}+++fail_test () {+    RESULT="${colourRed}FAILED [ ${testname} ]${colourReset}"+    exit 1+}++sort_diff () {+    EXP="$1"+    ACTUAL="$2"+    EXPECTED_SORTED=${OUTPUT_DIR}/sort_diff.expected.$(basename $EXP)+    ACTUAL_SORTED=${OUTPUT_DIR}/sort_diff.actual.$(basename $ACTUAL)+    sort ${EXP} > ${EXPECTED_SORTED}+    sort ${ACTUAL} > ${ACTUAL_SORTED}+    diff ${EXPECTED_SORTED} ${ACTUAL_SORTED}+}
+ test/cli/empty-input/run view
@@ -0,0 +1,27 @@+#!/bin/sh -eu++. $(dirname $0)/../core/runner++testname="empty-input"++banner "${testname}"+#----------++OUTPUT_DIR=${TEST}++mkdir -p ${OUTPUT_DIR}++INPUT_FILE=${OUTPUT_DIR}/empty+OUTPUT_FILE=${OUTPUT_DIR}/output++# Create a zero length file+touch ${INPUT_FILE}++retcode=0+${HJSMIN} --input ${INPUT_FILE} --output ${OUTPUT_FILE} 2>/dev/null || retcode=1++if test ${retcode} -eq 0 ; then+  fail_test+else+  pass_test+fi
+ test/cli/minimal-input/run view
@@ -0,0 +1,27 @@+#!/bin/sh -eu++. $(dirname $0)/../core/runner++testname="minimal-input"++banner "${testname}"+#----------++OUTPUT_DIR=${TEST}++mkdir -p ${OUTPUT_DIR}++INPUT_FILE=${OUTPUT_DIR}/empty+OUTPUT_FILE=${OUTPUT_DIR}/output++# Create a minimal file+echo '{}' > ${INPUT_FILE}++retcode=0+${HJSMIN} --input ${INPUT_FILE} --output ${OUTPUT_FILE} || retcode=1++if test ${retcode} -eq 0 ; then+  pass_test+else+  fail_test+fi
− test/parsingonly/00_f.js
@@ -1,4 +0,0 @@-function Hello(a)
-{
-	ExprArray(1,1);
-}
− test/parsingonly/01_semi1.js
@@ -1,6 +0,0 @@-{zero.one1;zero}
-one1
-two;three
-{{}} four;
-// five
-five
− test/parsingonly/02_semicolon.js
@@ -1,13 +0,0 @@-// 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
@@ -1,8 +0,0 @@-{zero}
-one1;two
-{three
-four;five;
-{
-six;{seven;}
-}
-}
− test/parsingonly/03_sm.js
@@ -1,11 +0,0 @@-// A comment
-a=b+z; // t=s;
-b;
-{
-/* Multi line 
-
-*/
-c;
-}
-
-
− test/parsingonly/04_if.js
@@ -1,3 +0,0 @@-{
-	a = f ? e : g;
-}
− test/parsingonly/05_comments_simple.js
@@ -1,10 +0,0 @@-// A coment
-a+1;
-
-/*
-
-b+1;
-
-*/
-
-{}
− test/parsingonly/05_regex.js
@@ -1,24 +0,0 @@-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
@@ -1,7 +0,0 @@-{
-{}{}{{}}    
-{  }
-}
-
-
-  
− test/parsingonly/06_callexpr.js
@@ -1,8 +0,0 @@-// 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
@@ -1,4 +0,0 @@-new bob;
-new bob(1)
-new bob()(1,2)
-bob[1](1,2)
− test/parsingonly/06_var.js
@@ -1,7 +0,0 @@-// 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
@@ -1,14 +0,0 @@-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
@@ -1,2 +0,0 @@-1 + 2;
-
− test/parsingonly/101_inheritance.js
@@ -1,122 +0,0 @@-/* 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
@@ -1,38 +0,0 @@-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
@@ -1,39 +0,0 @@-// 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
@@ -1,73 +0,0 @@-/* ***** 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
@@ -1,171 +0,0 @@-/* ***** 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
@@ -1,946 +0,0 @@-/* ***** 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
@@ -1,946 +0,0 @@-/* ***** 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
@@ -1,997 +0,0 @@-/* 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
@@ -1,2725 +0,0 @@-// 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
@@ -1,85 +0,0 @@-//++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
@@ -1,4 +0,0 @@-//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
@@ -1,33 +0,0 @@-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
@@ -1,16 +0,0 @@-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
@@ -1,43 +0,0 @@-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
@@ -1,1 +0,0 @@-"abfnrtv\\\"\'";
− test/parsingonly/20_statements.js
@@ -1,116 +0,0 @@-
-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
@@ -1,52 +0,0 @@-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
@@ -1,31 +0,0 @@-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
@@ -1,1 +0,0 @@-function(){}()
− test/parsingonly/5_comments.js
@@ -1,21 +0,0 @@-// 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
@@ -1,68 +0,0 @@-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
@@ -1,13 +0,0 @@-// Test to make sure we're handling comment lines correctly as part of line number tracking
-/*
-
-*/
-1+1;
-x;
-
-
-
-
-//
-//
-+
− test/parsingonly/fn.js
@@ -1,8 +0,0 @@-
-var global = {
-    NaN: NaN, Infinity: Infinity, undefined: undefined,
-
-    eval: function eval(s) {
-	a=-1;
-	}
-};
− test/pminified/00_f.js
@@ -1,1 +0,0 @@-function Hello(a){ExprArray(1,1)}
− test/pminified/01_semi1.js
@@ -1,1 +0,0 @@-{zero.one1;zero};one1;two;three;four;five
− test/pminified/02_semicolon.js
@@ -1,2 +0,0 @@-Parse error: Invalid return in file 'foo' on line 6-
− test/pminified/02_sm.js
@@ -1,1 +0,0 @@-zero;one1;two;{three;four;five;{six;seven}}
− test/pminified/03_sm.js
@@ -1,1 +0,0 @@-a=b+z;b;c
− test/pminified/04_if.js
@@ -1,1 +0,0 @@-a=f?e:g
− test/pminified/05_comments_simple.js
@@ -1,1 +0,0 @@-a+1
− test/pminified/05_regex.js
@@ -1,1 +0,0 @@-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
@@ -1,1 +0,0 @@-
− test/pminified/06_callexpr.js
@@ -1,1 +0,0 @@-bob();bob(1)(2,3);bob().mary;bob()[1];bob(11)[2][3];bob(mary())
− test/pminified/06_newexpr.js
@@ -1,1 +0,0 @@-new bob;new bob(1);new bob()(1,2);bob[1](1,2)
− test/pminified/06_var.js
@@ -1,1 +0,0 @@-for(i=0;;)var t=1
− test/pminified/07_expr.js
@@ -1,1 +0,0 @@-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
@@ -1,5 +0,0 @@-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
@@ -1,2 +0,0 @@-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
@@ -1,2 +0,0 @@-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
@@ -1,1 +0,0 @@-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
@@ -1,1 +0,0 @@-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
@@ -1,15 +0,0 @@-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
@@ -1,1 +0,0 @@-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
@@ -1,2 +0,0 @@-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
@@ -1,16 +0,0 @@-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
@@ -1,10 +0,0 @@-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
@@ -1,14 +0,0 @@-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
@@ -1,2 +0,0 @@-Parse error: Missing function identifier in file 'foo' on line 3-
− test/pminified/14_labelled_stmts.js
@@ -1,1 +0,0 @@-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
@@ -1,1 +0,0 @@-const GLOBAL=this;var tokens=["END","\n",";"],opTypeNames={'\n':"NEWLINE",';':"SEMICOLON",',':"COMMA"},assignOps=['|','^','&','<<','>>','>>>','+','-','*','/','%']
− test/pminified/16_literals.js
@@ -1,3 +0,0 @@-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
@@ -1,1 +0,0 @@-"abfnrtv\\\"\'"
− test/pminified/20_statements.js
@@ -1,2 +0,0 @@-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
@@ -1,1 +0,0 @@-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
@@ -1,6 +0,0 @@-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
@@ -1,2 +0,0 @@-Parse error: Missing function identifier in file 'foo' on line 1-
− test/pminified/5_comments.js
@@ -1,3 +0,0 @@-function bob(){}-function bill(){i=2-function mary(){var currentConstructor=this.constructor,methodName=null}}
− test/pminified/67_bob.js
@@ -1,1 +0,0 @@-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
@@ -1,2 +0,0 @@-Parse error: Missing operand in file 'foo' on line 13-
− test/pminified/fn.js
@@ -1,1 +0,0 @@-var global={NaN:NaN,Infinity:Infinity,undefined:undefined,eval:function eval(s){a=-1}}
+ test/test-cli.hs view
@@ -0,0 +1,57 @@+{-# LANGUAGE MultiWayIf #-}++import           Control.Monad (foldM, forM)+import           Control.Monad.Extra (concatMapM)++import           System.Directory (canonicalizePath, getCurrentDirectory, listDirectory)+import           System.Environment (setEnv)+import           System.FilePath (takeFileName, (</>))+import           System.Exit (ExitCode (..), exitFailure, exitSuccess)+import           System.Posix.Files (getFileStatus, isDirectory, isRegularFile)+import           System.Process (rawSystem)+import           System.IO (BufferMode (..))+import qualified System.IO as IO++main :: IO ()+main = do+  IO.hSetBuffering IO.stdout LineBuffering+  IO.hSetBuffering IO.stderr LineBuffering++  cwd <- getCurrentDirectory+  topdir <- canonicalizePath $ cwd </> "dist-newstyle"++  -- Set an environment variable for all the exectuables we want to test.+  setExecutableEnvVar "HJSMIN" topdir "hjsmin"++  tests <- filter (`notElem` ["core", "data"]) <$> listDirectory "test/cli/"+  res <- forM tests $ \ t -> rawSystem ("test/cli/" ++ t ++ "/run") []+  if all (== ExitSuccess) res+    then exitSuccess+    else exitFailure+++setExecutableEnvVar :: String -> FilePath -> FilePath -> IO ()+setExecutableEnvVar envName startDir target = do+  xs <- listDirectoryRecursive startDir+  case filter match xs of+    [] -> error "Unable to find hjsmin binary"+    [x] -> setEnv envName x+    _ -> error $ "Multiple binaries: " ++ show xs+ where+  match :: FilePath -> Bool+  match fp = takeFileName fp == target++listDirectoryRecursive :: FilePath -> IO [FilePath]+listDirectoryRecursive fpath = do+  xs <- fmap (fpath </>) <$> listDirectory fpath+  (files, dirs) <- foldM partitioner ([], []) xs+  rest <- concatMapM listDirectoryRecursive (dirs :: [FilePath])+  pure $ files ++ rest+ where+  partitioner :: ([FilePath], [FilePath]) -> FilePath -> IO ([FilePath], [FilePath])+  partitioner (files, dirs) fp = do+    st <- getFileStatus fp+    if+      | isRegularFile st -> pure (fp : files, dirs)+      | isDirectory st -> pure (files, fp : dirs)+      | otherwise -> pure (files, dirs)