diff --git a/Idris/AbsSyntax.lhs b/Idris/AbsSyntax.lhs
--- a/Idris/AbsSyntax.lhs
+++ b/Idris/AbsSyntax.lhs
@@ -45,6 +45,7 @@
 >           | Params [(Id, RawTerm)] [Decl] -- default implicit args
 >           | DoUsing Id Id [Decl] -- bind and return names
 >           | Idiom Id Id [Decl] -- pure and ap names
+>           | Namespace Id [Decl] -- bind and return names
 >           | CLib String | CInclude String
 >           | Fixity String Fixity Int
 >           | Transform RawTerm RawTerm
@@ -59,8 +60,17 @@
 Functions may be exported to C, if they have a simple type (no polymorphism, no dependencies).
 
 > data CGFlag = NoCG | CGEval | CExport String | Inline | CGSpec [(Id, Int)]
+>             | Vis Visibility
 >    deriving (Show, Eq)
 
+Public: Name, type and definition visible globally
+Abstract: Only name and type visible (i.e. no constructors, or definition)
+  outside the namespace.
+Private: Nothing visible outside the namespace.
+
+> data Visibility = Public | Private | Abstract
+>    deriving (Show, Eq)
+
 User defined operators have associativity and precedence
 
 > data Fixity = LeftAssoc | RightAssoc | NonAssoc
@@ -89,6 +99,7 @@
 >                | PParams [(Id, RawTerm)] [ParseDecl]
 >                | PDoUsing (Id, Id) [ParseDecl]
 >                | PIdiom (Id, Id) [ParseDecl]
+>                | PNamespace Id [ParseDecl]
 >                | PSyntax Id [Id] RawTerm 
 >    deriving Show
 
@@ -127,6 +138,11 @@
 >                   Success d ->
 >                       cds ((DoUsing ub ur d):rds) fwds ds
 >                   failure -> failure
+>         cds rds fwds ((PNamespace ns pds):ds) = 
+>                case (cds [] [] pds) of
+>                   Success d ->
+>                       cds ((Namespace ns d):rds) fwds ds
+>                   failure -> failure
 >         cds rds fwds ((PIdiom (up,ua) pds):ds) = 
 >                case (cds [] [] pds) of
 >                   Success d ->
@@ -236,7 +252,7 @@
 >              | RIdiom RawTerm
 >              | RPure RawTerm -- a term to apply normally inside idiom brackets
 >              | RRefl
->              | RError String -- Hackety. Found an error in processing, report when you can.
+>              | RError String Int String -- Hackety. Found an error in processing, report when you can.
 >    deriving (Show, Eq)
 
 > data RBinder = Pi Plicit Laziness RawTerm
@@ -530,7 +546,7 @@
 they'll never be inferrable at the call site. (Not done this. Not convinced.) ]]
 
 > addImpl :: Ctxt IvorFun -> RawTerm -> (RawTerm, Int) 
-> addImpl = addImpl' True [] [] Nothing
+> addImpl = addImpl' True [] [] []
 
 > addImplWith :: Implicit -> Ctxt IvorFun -> RawTerm -> (RawTerm, Int) 
 > addImplWith (Imp using params paramnames ns) = addImpl' True using params ns
@@ -547,7 +563,7 @@
 Need to do it twice, in case the first pass added names in the indices
 (from using)
 
-> addImpl' :: Bool -> [(Id, RawTerm)] -> [(Id, RawTerm)] -> Maybe Id -> Ctxt IvorFun -> 
+> addImpl' :: Bool -> [(Id, RawTerm)] -> [(Id, RawTerm)] -> [Id] -> Ctxt IvorFun -> 
 >             RawTerm -> (RawTerm, Int) 
 > addImpl' pi using params namespace ctxt raw' 
 >             = let raw = parambind params raw'
@@ -650,29 +666,51 @@
 > data Implicit = Imp { impUsing :: [(Id, RawTerm)], -- 'using'
 >                       params :: [(Id, RawTerm)], -- extra params
 >                       paramNames :: [(Id, [Id])], -- functions and params in the current block
->                       thisNamespace :: Maybe Id
+>                       thisNamespace :: [Id]
 >                     }
 
-> noImplicit = Imp [] [] [] Nothing
+> noImplicit = Imp [] [] [] []
 
 > addUsing :: Implicit -> Implicit -> Implicit
-> addUsing (Imp a b pns ns) (Imp a' b' pns' ns') 
->              = Imp (a++a') (b++b') (pns++pns') (mplus ns ns')
+> addUsing (Imp a b pns ns) (Imp a' b' pns' ns') -- ns always == ns'
+>              = Imp (a++a') (b++b') (pns++pns') ns
 
 > addParams :: Implicit -> [(Id, RawTerm)] -> Implicit
 > addParams (Imp a b pns ns) newps = Imp a (b++newps) pns ns
 
+> addNS :: Implicit -> Id -> Implicit
+> addNS (Imp a b pns ns) n = Imp a b pns (n:ns)
+
+> fullName :: Implicit -> Id -> Id
+> fullName imp n = mkName (thisNamespace imp) n
+
 > addParamName :: Implicit -> Id -> Implicit
 > addParamName imp@(Imp u ps pns ns) n
 >     = case lookup n pns of
 >          Just _ -> imp
 >          Nothing -> Imp u ps ((n, (map fst ps)):pns) ns
 
-> defDo = UI (UN "bind") 2
->            (UN "IOReturn") 1 -- IO monad
->            (UN "IOReturn") 1 -- IO applicative
->            (UN "ioApp") 2 
+> bindName = ioname "bind"
+> ibindName = ioname "ibind"
+> retName = ioname "ret"
+> ioretName = ioname "IOReturn"
+> iodoName = ioname "IODo"
+> ioliftName = ioname "IOLift"
+> applyName = ioname "apply"
 
+> bindNamei = toIvorName bindName
+> ibindNamei = toIvorName ibindName
+> retNamei = toIvorName retName
+> ioretNamei = toIvorName ioretName
+> iodoNamei = toIvorName iodoName
+> ioliftNamei = toIvorName ioliftName
+> applyNamei = toIvorName applyName
+
+> ioname n = NS [UN "IO"] (UN n)
+> ionamei n = toIvorName (ioname n)
+
+> defDo = UI bindName 2 retName 1 retName 1 applyName 2
+
 > toIvor :: UndoInfo -> Id -> RawTerm -> ViewTerm
 > toIvor ui fname tm = evalState (toIvorS tm) (0,1)
 >   where
@@ -733,7 +771,7 @@
 >                              toIvorS tm'
 >     toIvorS (RPure t) = toIvorS t
 >     toIvorS RRefl = return $ apply (Name Unknown (name "refl")) [Placeholder]
->     toIvorS (RError x) = error x
+>     toIvorS (RError f l x) = error (f ++ ":" ++ show l ++ ":" ++ x)
 >     mkName (UN n) i = UN (n++"_"++show i)
 >     mkName (MN n j) i = MN (n++"_"++show i) j
 
@@ -775,11 +813,17 @@
 >                     mkApp f l (RVar f l fulln)
 >                               ((mkImplicitArgs 
 >                                (map fst (fst (getBinders ty []))) imp ex) ++ pargs)
->                   _ -> RVar f l n -- FIXME: report error if ambiguous name
+>                   Left err@(Ambiguous _ _) -> RError f l (show err)
+>                   Left err@(WrongNamespace _ _) -> RError f l (show err)
+>                   Right (_, fulln) -> RVar f l fulln
+>                   _ -> RVar f l n
 >           ap ex (RExpVar f l n)
 >               = case ctxtLookupName ctxt (thisNamespace using) n of
 >                   Right (IvorFun _ (Just ty) imp _ _ _ _, fulln) -> RVar f l fulln
->                   _ -> RVar f l n -- FIXME: report error if ambiguous name
+>                   Left err@(Ambiguous _ _) -> RError f l (show err)
+>                   Left err@(WrongNamespace _ _) -> RError f l (show err)
+>                   Right (_, fulln) -> RVar f l fulln
+>                   _ -> RVar f l n
 >           ap ex (RAppImp file line n f a) = (ap ((toIvorName n,(ap [] a)):ex) f)
 >           ap ex (RApp file line f a) = (RApp file line (ap ex f) (ap [] a))
 >           ap ex (RBind n (Pi p l ty) sc)
@@ -794,7 +838,7 @@
 >                   (RUserInfix file line _ op l r) ->
 >                       ap ex (RApp file line 
 >                              (RApp file line (RVar file line (useropFn op)) l) r)
->                   (RError x) -> RError x
+>                   (RError f l x) -> RError f l x
 >           ap ex (RDo ds) = RDo (map apdo ds)
 >           ap ex (RIdiom tm) = RIdiom (ap [] tm)
 >           ap ex (RPure tm) = RPure (ap [] tm)
@@ -875,7 +919,7 @@
 >               mkApp file line (RVar file line pure)
 >                     ((take pureImpl (repeat RPlaceholder)) ++ [x])
 
-> testCtxt = addEntry newCtxt Nothing (UN "Vect") undefined
+> testCtxt = addEntry newCtxt [] (UN "Vect") undefined
 
 > dump :: Ctxt IvorFun -> String
 > dump ctxt = concat $ map dumpFn (ctxtAlist ctxt)
@@ -918,7 +962,7 @@
 >     unI (Name _ v) [x,y]
 >         | Just op <- getOp v allOps = RInfix "[val]" 0 op x y
 >     unI (Name _ v) args 
->        = case ctxtLookup ctxt Nothing (mkRName v) of
+>        = case ctxtLookup ctxt [] (mkRName v) of
 >            Right fdata -> mkImpApp "[val]" 0 (implicitArgs fdata) 
 >                                   (argNames (ivorFType fdata)) (RVar "[val]" 0 (mkRName v)) args
 >            _ -> unwind (RVar "[val]" 0 (mkRName v)) args
@@ -1063,9 +1107,9 @@
 >                               prec (op2:out) opstk op1
 >                             else 
 >                               (op1:op2:opstk, reverse out)
->                   (Nothing, Nothing) -> (opstk, OTm (RError (f1 ++ ":" ++ show l1 ++ ":unknown operators " ++ show o1 ++ " and " ++ show o2)):out)
->                   (Nothing, _) -> (opstk, OTm (RError (f1 ++ ":" ++ show l1 ++ ":unknown operator " ++ show o1)):out)
->                   (_, Nothing) -> (opstk, OTm (RError (f2 ++ ":" ++ show l2 ++ ":unknown operator " ++ show o2)):out)
+>                   (Nothing, Nothing) -> (opstk, OTm (RError f1 l1 (":unknown operators " ++ show o1 ++ " and " ++ show o2)):out)
+>                   (Nothing, _) -> (opstk, OTm (RError f1 l1 (":unknown operator " ++ show o1)):out)
+>                   (_, Nothing) -> (opstk, OTm (RError f2 l2 (":unknown operator " ++ show o2)):out)
 >          prec out opstk op1 = (op1:opstk, reverse out)
 
 > shunt ops stk (OpenB:toks) = shunt ops (OpenB:stk) toks
@@ -1104,9 +1148,9 @@
 >     case (lookup opl ops, lookup opr ops) of
 >       (Just (assocl, precl), Just (assocr, precr)) ->
 >         doFix assocl precl assocr precr a opl b opr c
->       (Nothing, Nothing) -> RError $ file ++ ":" ++ show line ++ ":unknown operators " ++ show opl ++ " and " ++ show opr
->       (Nothing, _) -> RError $ file ++ ":" ++ show line ++ ":unknown operator " ++ show opl
->       (_, Nothing) -> RError $ file ++ ":" ++ show line ++ ":unknown operator " ++ show opr
+>       (Nothing, Nothing) -> RError file line $ ":unknown operators " ++ show opl ++ " and " ++ show opr
+>       (Nothing, _) -> RError file line (":unknown operator " ++ show opl)
+>       (_, Nothing) -> RError file line (":unknown operator " ++ show opr)
 >  where
 >    doFix al pl ar pr a opl b opr c 
 >          | pr > pl = mkOp False opl (fixFix' ops a) (fixFix' ops (mkOp False opr b c))
@@ -1120,7 +1164,7 @@
 >                    = fixFix ops $ mkOp False opr (mkOp True opl a b) c
 >          | pr == pl && al == RightAssoc && ar == RightAssoc
 >                    = fixFix ops $ mkOp False opl a (mkOp True opr b c)
->          | otherwise = RError $ file ++ ":" ++ show line ++ ":ambiguous operators, please add brackets"
+>          | otherwise = RError file line $ ":ambiguous operators, please add brackets"
 
 >    mkOp t op l r = RUserInfix file line t op l r
 
diff --git a/Idris/Compiler.lhs b/Idris/Compiler.lhs
--- a/Idris/Compiler.lhs
+++ b/Idris/Compiler.lhs
@@ -1,5 +1,3 @@
-> {-# OPTIONS_GHC -fglasgow-exts #-}
-
 > module Idris.Compiler(comp, addTransforms) where
 
 > import Idris.AbsSyntax
@@ -151,6 +149,7 @@
 > quotename [] = ""
 > quotename ('[':cs) = "_OB_"++quotename cs
 > quotename (']':cs) = "_CB_"++quotename cs
+> quotename ('.':cs) = "_NS_"++quotename cs
 > quotename (c:cs) = c:(quotename cs)
 
 > writeDef :: Handle -> Bool -> (Name, Bool, SCFun) -> IO ()
@@ -158,7 +157,7 @@
 >   when (gen || elem SCInline scopts) $ hPutStr h "%inline "
 >   when (elem SCStrict scopts) $ hPutStr h "%strict "
 >   maybe (return ()) (\ c -> hPutStrLn h ("export " ++ show c ++ " ")) (getEName scopts)
->   hPutStrLn h (show n ++ " (" ++ list args ++ ") -> Any = \n" ++
+>   hPutStrLn h (quotename (show n) ++ " (" ++ list args ++ ") -> Any = \n" ++
 >                writeSC n erasure def)
 >    where list [] = ""
 >          list [a] = quotename (show a) ++ " : Any"
@@ -177,9 +176,9 @@
 >   writeSC' (SVar n) = quotename (show n)
 >   writeSC' (SCon n i) = writeCon n i ++ "()"
 >   writeSC' (SApp (SCon n i) (fn:args:[]))
->     | n == name "Foreign" = writeFCall fn erasure args fname
+>     | n == ionamei "Foreign" = writeFCall fn erasure args fname
 >   writeSC' (SApp (SCon n i) (_:args))
->     | n == name "WhileAcc" = writeCon n i ++ "(" ++ list args ++ ")"
+>     | n == ionamei "WhileAcc" = writeCon n i ++ "(" ++ list args ++ ")"
 >   writeSC' (SApp (SCon n i) args) = writeCon n i ++ "(" ++ list args ++ ")"
 
 Fork is a special case, because its argument needs to be evaluated lazily
@@ -260,18 +259,18 @@
 
 > writeCon :: Name -> Int -> String
 > writeCon n i
->   | n == name "PutStr" = "__epic_putStr"
->   | n == name "GetStr" = "__epic_readStr"
->   | n == name "NewRef" = "__epic_newRef"
->   | n == name "ReadRef" = "__epic_readRef"
->   | n == name "WriteRef" = "__epic_writeRef"
->   | n == name "NewLock" = "__epic_newLock"
->   | n == name "DoLock" = "__epic_doLock"
->   | n == name "DoUnlock" = "__epic_doUnlock"
->   | n == name "Fork" = "__epic_fork"
->   | n == name "Within" = "__epic_within"
->   | n == name "While" = "%while"
->   | n == name "WhileAcc" = "%while"
+>   | n == ionamei "PutStr" = "__epic_putStr"
+>   | n == ionamei "GetStr" = "__epic_readStr"
+>   | n == ionamei "NewRef" = "__epic_newRef"
+>   | n == ionamei "ReadRef" = "__epic_readRef"
+>   | n == ionamei "WriteRef" = "__epic_writeRef"
+>   | n == ionamei "NewLock" = "__epic_newLock"
+>   | n == ionamei "DoLock" = "__epic_doLock"
+>   | n == ionamei "DoUnlock" = "__epic_doUnlock"
+>   | n == ionamei "Fork" = "__epic_fork"
+>   | n == ionamei "Within" = "__epic_within"
+>   | n == ionamei "While" = "%while"
+>   | n == ionamei "WhileAcc" = "%while"
 >   | otherwise = "Con " ++ show i
 
 > writeOp Concat l r = "__epic_append(" ++ l ++", " ++ r ++")"
diff --git a/Idris/ConTrans.lhs b/Idris/ConTrans.lhs
--- a/Idris/ConTrans.lhs
+++ b/Idris/ConTrans.lhs
@@ -297,6 +297,7 @@
 >            = getPlPos (filter (plArg args args' r') acc) ps ps'
 >      getPlPos acc (_:ps) (_:ps')
 >            = getPlPos acc ps ps'
+>      getPlPos acc p p' = error $ "getPlPos : " ++ show (n,acc,p,p')
 
 >      plArg args args' r' x 
 >            = x<length args && args!!x == Placeholder && recGuard x n r' (namesIn (args'!!x))
diff --git a/Idris/Context.lhs b/Idris/Context.lhs
--- a/Idris/Context.lhs
+++ b/Idris/Context.lhs
@@ -1,20 +1,42 @@
 > module Idris.Context(Ctxt, Id(..), addEntry, ctxtLookup, ctxtLookupName,
->                      ctxtAlist, newCtxt, appCtxt, alistCtxt) where
+>                      ctxtAlist, newCtxt, appCtxt, alistCtxt, mkName,
+>                      Err(..)) where
 
 > import Data.List
 > import qualified Data.Map as Map
+> import Control.Monad.Error
+
+> import Data.Binary
+> import Data.Typeable
+> import Control.Monad
+
 > import Char
 
 > import Debug.Trace
 
-> data Id = UN String | MN String Int | NS Id Id
+> data Id = UN String | MN String Int | NS [Id] Id -- NS is decorated name
 >    deriving (Eq, Ord)
 
 > instance Show Id where
 >     show (UN s) = s
 >     show (MN s i) = "__" ++ s ++ "_" ++ show i
->     show (NS ns n) = show ns ++ "." ++ show n
+>     show (NS ns n) = showSep ns ++ show n
+>       where showSep ns = concat (map ((++".").show) ns)
 
+> instance Binary Id where
+>     put (UN x) = do put (0 :: Word8)
+>                     put x
+>     put (MN x i) = do put (1 :: Word8)
+>                       put x; put i
+>     put (NS n i) = do put (2 :: Word8)
+>                       put n; put i
+
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> liftM UN get
+>                1 -> liftM2 MN get get
+>                2 -> liftM2 NS get get
+
 > type Dict k v = Map.Map k v
 
 Lifted this lot out since I had to change for backwards compatibility. 
@@ -38,27 +60,123 @@
 
 FIXME: Needs to be a map from names to all possibilities, which are then disambiguated.
 
-> type Ctxt a = Dict (Maybe Id) [(Id, a)]
+ type Ctxt a = Dict [Id] [(Id, a)]
 
-> type Err = String
+We keep a context as an alist *and* a Dict. This is because we want to retain
+ordering, have multiple entries, append *and* have fast lookup. Rather than
+have a cleverer data structure, this is an easy way.
 
-> addEntry :: Ctxt a -> Maybe Id -> Id -> a -> Ctxt a
+> data Ctxt a = Ctxt {
+>                 alist :: [(Id, a)], -- for retaining ordering
+>                 cdict :: Dict Id [(Id, a)] 
+>               }
+
+> instance Binary a => Binary (Ctxt a) where
+>     put (Ctxt a b) = do put a; put b
+>     get = liftM2 Ctxt get get
+
+> data Err = NoName Id
+>          | Ambiguous Id [Id]
+>          | WrongNamespace Id [Id]
+>          | OtherErr String
+
+> instance Show Err where
+>     show (NoName n) = "No such name " ++ show n
+>     show (Ambiguous n xs) = "Ambiguous name " ++ show n ++ " " ++ show xs 
+>     show (WrongNamespace n ns) = show n ++ " not defined in namespace " ++ show (NS ns (UN ""))
+
+> instance Error Err where
+>     noMsg = OtherErr "Unknown error"
+>     strMsg s = OtherErr s
+
+All operations are passed a [Id], which is the namespace we are currently in.
+[] is the outermost namespace. 
+
+> mkName :: [Id] -> Id -> Id
+> mkName [] name = name
+> mkName ns name@(NS ns' x) = name
+> mkName ns x = NS ns x
+
+> lastName :: Id -> Id
+> lastName (NS ns i) = lastName i
+> lastName x = x
+
+> globalNS :: Id -> Bool
+> globalNS (NS [] _) = True
+> globalNS (NS _ _) = False
+> globalNS _ = True
+
+> currentNS :: [Id] -> Id -> Bool
+> currentNS ns (NS ns' _) = ns == ns'
+> currentNS _ _ = True -- used as a global name, okay if not ambiguous
+
+> getNS :: Id -> [Id]
+> getNS (NS n _) = n
+> getNS x = [x]
+
+> addToD :: Dict Id [(Id,a)] -> Id -> a -> Dict Id [(Id, a)]
+> addToD d n v = case dictLookup (lastName n) d of
+>                  Nothing -> dictInsert (lastName n) [(n,v)] d
+>                  Just nvs -> case lookup n nvs of
+>                     Nothing -> dictInsert (lastName n) ((n,v):nvs) d
+>                     Just _ -> dictInsert (lastName n) ((n,v):(dropN n nvs)) d
+>   where dropN n [] = []
+>         dropN n ((n',v):xs) | n == n' = xs
+>                             | otherwise = (n',v):(dropN n xs)
+
+If the root of the given name n appears multiple times in the dictionary,
+then only return a value if it's an exact match, otherwise issue an 
+ambiguous name error
+
+> lookupD :: Dict Id [(Id,a)] -> [Id] -> Id -> Either Err (a, Id) 
+> lookupD d ns n = case dictLookup (lastName n) d of
+>                 Nothing -> Left (NoName n)
+>                 Just [] -> Left (NoName n)
+>                 Just [(n',v)] -> if (n==n' || currentNS ns n) then Right (v, n')
+>                                    else Left (WrongNamespace (lastName n)
+>                                                              (getNS n))
+>                 Just xs -> case lookup n xs of
+>                              Just v -> Right (v, n)
+>                              Nothing -> Left (Ambiguous n (map fst xs))
+
+> addEntry :: Ctxt a -> [Id] -> Id -> a -> Ctxt a
+> addEntry (Ctxt ca cd) ns name val 
+>    = let name' = mkName ns name in
+>          Ctxt ((name', val):ca) (addToD cd name' val)
+
+> ctxtLookupName :: (Show a) => Ctxt a -> [Id] -> Id -> Either Err (a, Id)
+> ctxtLookupName (Ctxt _ d) ns n = lookupD d ns (mkName ns n)
+
+> ctxtLookup :: (Show a) => Ctxt a -> [Id] -> Id -> Either Err a
+> ctxtLookup ctxt namespace k = case ctxtLookupName ctxt namespace k of
+>                                 Right (x, k) -> Right x
+>                                 Left err -> Left err
+
+> ctxtAlist :: Ctxt a -> [(Id,a)]
+> ctxtAlist (Ctxt ca _) = reverse ca
+
+> alistCtxt :: [(Id, a)] -> Ctxt a
+> alistCtxt a = Ctxt a (mkD dictEmpty a) where
+>     mkD acc [] = acc
+>     mkD acc ((n,v):ns) = mkD (addToD acc n v) ns
+
+> newCtxt = Ctxt [] dictEmpty
+
+> appCtxt :: Ctxt a -> Ctxt a -> Ctxt a
+> appCtxt (Ctxt l _)  (Ctxt r _) = alistCtxt (l++r)
+
+
+> {-
+> addEntry :: Ctxt a -> [Id] -> Id -> a -> Ctxt a
 > addEntry ctxt using k v = let vs = cnames using ctxt in
 >                               dictInsert using ((k,v):vs) ctxt
 
 If name is fully qualified, just look in the right namespace.
 Otherwise, first look in current namespace, then in global namespace.
 
-> ctxtLookupName :: (Show a) => Ctxt a -> Maybe Id -> Id -> Either Err (a, Id)
-> ctxtLookupName ctxt namespace (NS ns k) = undefined -- not implemented yet
-> ctxtLookupName ctxt Nothing k
->         = case lookup k (cnames Nothing ctxt) of
->                    Just v -> Right (v, k)
->                    _ -> Left "No such var"
-> ctxtLookupName ctxt ns@(Just namespace) k
->         = case lookup k (cnames ns ctxt) of
->             Just v -> Right (v, NS namespace k)
->             _ -> case lookup k (cnames Nothing ctxt) of
+> ctxtLookupName :: (Show a) => Ctxt a -> [Id] -> Id -> Either Err (a, Id)
+> ctxtLookupName ctxt [] k
+>         = case lookup k (cnames [] ctxt) of
 >                    Just v -> Right (v, k)
 >                    _ -> Left "No such var"
 
@@ -66,7 +184,7 @@
 >                      Just vs -> vs
 >                      _ -> []
 
-> ctxtLookup :: (Show a) => Ctxt a -> Maybe Id -> Id -> Either Err a
+> ctxtLookup :: (Show a) => Ctxt a -> [Id] -> Id -> Either Err a
 > ctxtLookup ctxt namespace k = case ctxtLookupName ctxt namespace k of
 >                                 Right (x, k) -> Right x
 >                                 Left err -> Left err
@@ -76,7 +194,7 @@
 
 > alistCtxt :: [(Id, a)] -> Ctxt a
 > alistCtxt [] = newCtxt
-> alistCtxt ((x,y):xs) = addEntry (alistCtxt xs) Nothing x y
+> alistCtxt ((x,y):xs) = addEntry (alistCtxt xs) [] x y
 
 > newCtxt = dictEmpty
 
@@ -85,6 +203,7 @@
 >   where app' [] = dictEmpty
 >         app' (n:ns) = let bothnames = (cnames n xs ++ cnames n ys) in
 >                           dictInsert n bothnames (app' ns)
+> -}
 
 We need to keep insertion order, because when we add to ivor, we'd better insert them in
 dependency order.
diff --git a/Idris/LambdaLift.lhs b/Idris/LambdaLift.lhs
--- a/Idris/LambdaLift.lhs
+++ b/Idris/LambdaLift.lhs
@@ -202,7 +202,7 @@
 
 > scFun :: Context -> IdrisState -> Id -> [Name] -> SimpleCase -> SCFun
 > scFun ctxt ist fn args lifted = SCFun mkOpts args (toSC ctxt ist lifted)
->    where mkOpts' = do ifn <- ctxtLookup (idris_context ist) Nothing fn
+>    where mkOpts' = do ifn <- ctxtLookup (idris_context ist) [] fn
 >                       let decl = rawDecl ifn
 >                       let opts = if (null (lazyArgs ifn)) 
 >                                    then [SCStrict] else []
@@ -280,7 +280,7 @@
 
 > scapply ist (SVar n) args
 >         = let raw = idris_context ist in
->           case ctxtLookup raw Nothing (fromIvorName n) of
+>           case ctxtLookup raw [] (fromIvorName n) of
 >             Left _ -> SApp (SVar n) args
 >             Right ifn -> let ia = implicitArgs ifn
 >                              lz = lazyArgs ifn 
@@ -288,7 +288,7 @@
 >                              SApp (SVar n) args'
 > scapply ist (SCon n i) args
 >         = let raw = idris_context ist in
->           case ctxtLookup raw Nothing (fromIvorName n) of
+>           case ctxtLookup raw [] (fromIvorName n) of
 >             Left _ -> SApp (SCon n i) args
 >             Right ifn -> let ia = implicitArgs ifn
 >                              lz = lazyArgs ifn 
diff --git a/Idris/Latex.lhs b/Idris/Latex.lhs
--- a/Idris/Latex.lhs
+++ b/Idris/Latex.lhs
@@ -12,7 +12,7 @@
 >                      _ -> latexDefs ds
 
 > latexDump :: Ctxt IvorFun -> [(Id,String)] -> Id -> IO ()
-> latexDump ctxt defs nm = case ctxtLookup ctxt Nothing nm of
+> latexDump ctxt defs nm = case ctxtLookup ctxt [] nm of
 >                            Right fn -> putStrLn $ latex ctxt defs fn
 >                            Left _ -> do putStrLn "No such name"
 >                                         return ()
@@ -24,13 +24,13 @@
 >     latex ctxt defs n 
 >         = case lookup n (defs++ldefs) of
 >             Just l -> l
->             Nothing -> case ctxtLookup ctxt Nothing n of
+>             Nothing -> case ctxtLookup ctxt [] n of
 >                          Right (IvorFun _ _ _ _ d _ _) -> ty d (show n)
 >                          Left _ -> "\\VV{" ++ show n ++ "}"
 >         where ty (DataDecl _) n = "\\TC{" ++ n ++ "}"          
 >               ty Constructor n = "\\DC{" ++ n ++ "}"
 >               ty _ n = "\\FN{" ++ n ++ "}"
->               ldefs = case ctxtLookup ctxt Nothing (MN "latex" 0) of
+>               ldefs = case ctxtLookup ctxt [] (MN "latex" 0) of
 >                         Right (IvorFun _ _ _ _ (LatexDefs ds) _ _) -> ds
 >                         Left _ -> []
 
diff --git a/Idris/Lexer.hs b/Idris/Lexer.hs
--- a/Idris/Lexer.hs
+++ b/Idris/Lexer.hs
@@ -51,6 +51,7 @@
 
 data Token
       = TokenName Id
+      | TokenNSep
       | TokenInfixName String
       | TokenBrackName Id
       | TokenString String
@@ -126,6 +127,9 @@
       | TokenInclude
       | TokenModule
       | TokenNamespace
+      | TokenPublic
+      | TokenPrivate
+      | TokenAbstract
       | TokenImport
       | TokenExport
       | TokenInline
@@ -258,7 +262,7 @@
           failP (fn++":"++show line++":Unterminated character constant")
                        cs fn line ops
 
-isAllowed c = isAlpha c || isDigit c || c `elem` "_\'?#"
+isAllowed c = isAlpha c || isDigit c || c `elem` "_\'?#."
 
 lexVar cont cs =
    case span isAllowed cs of
@@ -269,6 +273,9 @@
       ("idiom",rest) -> cont TokenIdiom rest
       ("params",rest) -> cont TokenParams rest
       ("namespace",rest) -> cont TokenNamespace rest
+      ("public",rest) -> cont TokenPublic rest
+      ("private",rest) -> cont TokenPrivate rest
+      ("abstract",rest) -> cont TokenAbstract rest
       ("module",rest) -> cont TokenModule rest
       ("import",rest) -> cont TokenImport rest
       ("export",rest) -> cont TokenExport rest
@@ -390,7 +397,16 @@
       (thing,rest) -> cont (TokenMetavar (UN thing)) rest
 
 mkname :: String -> Token
-mkname c = TokenName (UN c)
+mkname c = TokenName (mkNS c)
+
+mkNS c = let xs = mkNS' [] [] c in
+            case xs of
+              [x] -> UN x
+              (x:xs) -> NS (map UN (reverse xs)) (UN x)
+ where
+  mkNS' acc wds [] = reverse acc:wds
+  mkNS' acc wds ('.':cs) = mkNS' [] (reverse acc:wds) cs
+  mkNS' acc wds (c:cs) = mkNS' (c:acc) wds cs
 
 getstr :: String -> Maybe (String,String,Int)
 getstr cs = case getstr' "" cs 0 of
diff --git a/Idris/MakeTerm.lhs b/Idris/MakeTerm.lhs
--- a/Idris/MakeTerm.lhs
+++ b/Idris/MakeTerm.lhs
@@ -22,7 +22,7 @@
 >           extCtxt = addEntry ctxt (thisNamespace using) n (IvorFun Nothing (Just ity) 
 >                                       imp Nothing decl flags (getLazy ty))
 >           pclauses = map (mkPat extCtxt imp) clauses in
->       IvorFun (Just (toIvorName n)) 
+>       IvorFun (Just (toIvorName (fullName using n))) 
 >                   (Just (Annotation (FileLoc file line) ity)) imp 
 >                   (Just (PattDef (Patterns pclauses))) decl flags (getLazy ty)
 >   where mkPat ectx imp (id,(RawClause lhs rhs)) 
@@ -59,26 +59,33 @@
 > mif opt ctxt acc using' ui uo ((Params newps decls):ds)
 >         = let (acc', uo') = (mif opt ctxt acc (addParams using' newps) ui uo decls) in
 >               mif opt ctxt acc' using' ui uo' ds
+> mif opt ctxt acc using' ui uo ((Namespace n decls):ds)
+>         = let (acc', uo') = (mif opt ctxt acc (addNS using' n) ui uo decls) in
+>               mif opt ctxt acc' using' ui uo' ds
 > mif opt ctxt acc using ui@(UI _ _ _ _ p pi r ri) uo ((DoUsing bind ret decls):ds)
 >         = let (acc', uo') = (mif opt ctxt acc using ui' uo decls) in
 >              mif opt ctxt acc' using ui uo' ds
->    where ui' = let bimpl = case ctxtLookup (appCtxt ctxt acc) (thisNamespace using) bind of
->                              Right i -> implicitArgs i
->                              _ -> error $ "Can't find " ++ show bind -- 0
->                    rimpl = case ctxtLookup (appCtxt ctxt acc) (thisNamespace using) ret of
->                              Right i -> implicitArgs i
->                              _ -> error $ "Can't find " ++ show ret -- 0
->                     in UI bind bimpl ret rimpl p pi r ri
+>    where ui' = let (bimpl, bfull) 
+>                       = case ctxtLookupName (appCtxt ctxt acc) (thisNamespace using) bind of
+>                              Right (i, bfull) -> (implicitArgs i, bfull)
+>                              Left err -> error (show err)
+>                    (rimpl, rfull)
+>                       = case ctxtLookupName (appCtxt ctxt acc) (thisNamespace using) ret of
+>                              Right (i, rfull) -> (implicitArgs i, rfull)
+>                              Left err -> error (show err)
+>                     in UI bfull bimpl rfull rimpl p pi r ri
 > mif opt ctxt acc using ui@(UI b bi r ri _ _ _ _) uo ((Idiom pure ap decls):ds)
 >         = let (acc', uo') = (mif opt ctxt acc using ui' uo decls) in
 >             mif opt ctxt acc' using ui uo' ds
->    where ui' = let pureImpl = case ctxtLookup (appCtxt ctxt acc) (thisNamespace using) pure of
->                              Right i -> implicitArgs i
->                              _ -> 0
->                    apImpl = case ctxtLookup (appCtxt ctxt acc) (thisNamespace using) ap of
->                              Right i -> implicitArgs i
->                              _ -> 0
->                     in UI b bi r ri pure pureImpl ap apImpl
+>    where ui' = let (pureImpl, pfull) 
+>                      = case ctxtLookupName (appCtxt ctxt acc) (thisNamespace using) pure of
+>                              Right (i, pfull) -> (implicitArgs i, pfull)
+>                              Left err -> error (show err)
+>                    (apImpl, afull) 
+>                      = case ctxtLookupName (appCtxt ctxt acc) (thisNamespace using) ap of
+>                              Right (i, afull) -> (implicitArgs i, afull)
+>                              Left err -> error (show err)
+>                     in UI b bi r ri pfull pureImpl afull apImpl
 > mif opt ctxt acc using' ui uo (decl@(Fun f flags):ds) 
 >         = let using = addParamName using' (funId f)
 >               fn = makeIvorFun using ui uo (appCtxt ctxt acc) decl f flags in
@@ -89,7 +96,7 @@
 >            (rty, imp) = addImplWith using (appCtxt ctxt acc) ty
 >            ity = makeIvorTerm using ui uo n (appCtxt ctxt acc) rty in
 >            mif opt ctxt (addEntry acc (thisNamespace using) n 
->                         (IvorFun (Just (toIvorName n)) 
+>                         (IvorFun (Just (toIvorName (fullName using n))) 
 >                            (Just (Annotation (FileLoc file line) ity))
 >                              imp (Just Later) decl flags (getLazy ty))) using ui uo ds
 > mif opt ctxt acc using' ui uo (decl@(DataDecl d):ds) 
@@ -100,7 +107,7 @@
 >         = let (itmraw, imp) = addImplWith using (appCtxt ctxt acc) tm
 >               itm = makeIvorTerm using ui uo n (appCtxt ctxt acc) itmraw in
 >               mif opt ctxt (addEntry acc (thisNamespace using) n 
->                   (IvorFun (Just (toIvorName n)) Nothing imp 
+>                   (IvorFun (Just (toIvorName (fullName using n))) Nothing imp 
 >                            (Just (SimpleDef itm)) decl flags [])) using ui uo ds
 >     | otherwise = let (f,l) = getFileLine tm in
 >                       mif opt ctxt (addEntry acc (thisNamespace using) n 
@@ -137,11 +144,11 @@
 >          Left _ -> -- add the script and process the type later, should
 >                    -- be a metavariable
 >             mif opt ctxt (addEntry acc (thisNamespace using) n
->               (IvorFun (Just (toIvorName n)) Nothing 0 (Just (IProof scr)) decl [] [])) 
+>               (IvorFun (Just (toIvorName (fullName using n))) Nothing 0 (Just (IProof scr)) decl [] [])) 
 >                  using ui uo ds
 >          Right (IvorFun _ (Just ty) imp _ _ _ _) -> 
 >             mif opt ctxt (addEntry acc (thisNamespace using) n
->               (IvorFun (Just (toIvorName n)) (Just ty) imp (Just (IProof scr)) decl [] []))
+>               (IvorFun (Just (toIvorName (fullName using n))) (Just ty) imp (Just (IProof scr)) decl [] []))
 >                   using ui uo ds
 
 Just pass these on to epic to do the right thing
@@ -164,17 +171,17 @@
 >     let (tyraw, imp) = addImplWith using (appCtxt ctxt acc) tty
 >         tytm = Annotation (FileLoc f l) $ makeIvorTerm using ui uo tid (appCtxt ctxt acc) tyraw 
 >         acc' = addEntry acc (thisNamespace using) tid 
->                   (IvorFun (Just (toIvorName tid)) (Just tytm) imp (Just LataDef) decl [] []) in
+>                   (IvorFun (Just (toIvorName (fullName using tid))) (Just tytm) imp (Just LataDef) decl [] []) in
 >         mif opt ctxt acc' using ui uo ds
 > addDataEntries opt ctxt acc decl (Datatype tid tty cons u e f l) using ui uo ds = 
 >     let (tyraw, imp) = addImplWith using (appCtxt ctxt acc) tty
 >         tytm = Annotation (FileLoc f l) $ makeIvorTerm using ui uo tid (appCtxt ctxt acc) tyraw
 >         acctmp = addEntry (appCtxt ctxt acc) (thisNamespace using) tid 
->                     (IvorFun (Just (toIvorName tid)) (Just tytm) imp Nothing decl [] [])
+>                     (IvorFun (Just (toIvorName (fullName using tid))) (Just tytm) imp Nothing decl [] [])
 >         ddef = makeInductive acctmp tid (getBinders tytm []) cons 
 >                    (addUsing using (Imp u [] [] (thisNamespace using))) ui uo []
 >         acc' = addEntry acc (thisNamespace using) tid 
->                   (IvorFun (Just (toIvorName tid)) (Just tytm) imp 
+>                   (IvorFun (Just (toIvorName (fullName using tid))) (Just tytm) imp 
 >                              (Just (DataDef ddef (not (elem NoElim e)))) decl [] []) in
 >         addConEntries opt ctxt acc' cons u using ui uo ds f l
 
@@ -184,12 +191,12 @@
 >                  [(Id,RawTerm)] -> Implicit ->
 >                  UndoInfo -> UserOps -> [(Name, ViewTerm)] -> Inductive
 > makeInductive ctxt tid (indices, tty) [] using ui uo acc
->        = Inductive (toIvorName tid) [] indices tty (reverse acc)
+>        = Inductive (toIvorName (fullName using tid)) [] indices tty (reverse acc)
 > makeInductive ctxt cdec indices ((cid, cty):cs) using ui uo acc
 >        = let (tyraw, imp) = addImplWith using ctxt cty
 >              tytm = makeIvorTerm using ui uo cdec ctxt tyraw in
 >              makeInductive ctxt cdec
->                            indices cs using ui uo (((toIvorName cid),tytm):acc)
+>                            indices cs using ui uo (((toIvorName (fullName using cid)),tytm):acc)
 
 Examine an inductive definition; any index position which does not
 change across the structure becomes a parameter.
@@ -263,7 +270,7 @@
 >           (tyraw, imp) = addImplWith (addUsing (Imp u [] [] (thisNamespace using)) using) (appCtxt ctxt acc) ty
 >           tytm = Annotation (FileLoc f l) $ makeIvorTerm using ui uo cid (appCtxt ctxt acc) tyraw
 >           acc' = addEntry acc (thisNamespace using) cid 
->                      (IvorFun (Just (toIvorName cid)) (Just tytm) (imp+length (params using')) (Just IDataCon) Constructor [] (getLazy ty)) in
+>                      (IvorFun (Just (toIvorName (fullName using cid))) (Just tytm) (imp+length (params using')) (Just IDataCon) Constructor [] (getLazy ty)) in
 >           addConEntries opt ctxt acc' cs u using ui uo ds f l
 
 Add definitions to the Ivor Context. Return the new context and a list
diff --git a/Idris/PMComp.lhs b/Idris/PMComp.lhs
--- a/Idris/PMComp.lhs
+++ b/Idris/PMComp.lhs
@@ -342,8 +342,8 @@
 > deIO erase t = deIO' t where
 
 >  deIO' (App (App (App (App (Name _ bind) _) _) v) k)
->      | bind == (name "bind") || 
->        bind == (name "ibind") || bind == (name "ibinda")
+>      | bind == bindNamei || 
+>        bind == ibindNamei
 >           = do i <- get
 >                put (i+1)
 >                v' <- deIO' v
@@ -357,16 +357,16 @@
 >                return $ Let (bname i) Star -- type irrelevant
 >                             v (quickSimpl (App k (Name Unknown (bname i))))
 >  deIO' (App (App (Name _ ret) _) a) -- (without forcing)
->      | (not erase) && ret == (name "IOReturn") = deIO' a
+>      | (not erase) && ret == ioretNamei = deIO' a
 >  deIO' (App (Name _ ret) a) -- (with forcing)
->      | erase && ret == (name "IOReturn") = deIO' a
+>      | erase && ret == ioretNamei = deIO' a
 >  deIO' (App (App (Name _ upio) _) a)
 >      | upio == (name "unsafePerformIO") = deIO' a
 >  deIO' (App (App (Name _ iolift) _) io)
->      | iolift == (name "IOLift")  -- Just skip this
+>      | iolift == ioliftNamei  -- Just skip this
 >         = deIO' io
 >  deIO' (App (App (App (Name _ iodo) _) c) k) -- (without forcing)
->      | (not erase) && iodo == (name "IODo") 
+>      | (not erase) && iodo == iodoNamei
 >         = do k' <- deIO' k
 >              c' <- deIO' c
 >              i <- get
@@ -375,7 +375,7 @@
 >                         (App (App (Name Unknown (name "__effect")) Placeholder) c')
 >                            (quickSimpl (App k' (Name Unknown (bname i))))
 >  deIO' (App (App (Name _ iodo) c) k) -- (with forcing)
->      | erase && iodo == (name "IODo") 
+>      | erase && iodo == iodoNamei
 >         = do k' <- deIO' k
 >              c' <- deIO' c
 >              i <- get
diff --git a/Idris/Parser.y b/Idris/Parser.y
--- a/Idris/Parser.y
+++ b/Idris/Parser.y
@@ -94,6 +94,10 @@
       using           { TokenUsing }
       idiom           { TokenIdiom }
       params          { TokenParams }
+      namespace       { TokenNamespace }
+      public          { TokenPublic }
+      private         { TokenPrivate }
+      abstract        { TokenAbstract }
       noelim          { TokenNoElim }
       collapsible     { TokenCollapsible }
       where           { TokenWhere }
@@ -195,6 +199,7 @@
            | DoUsing '{' Program '}' { PDoUsing $1 $3 } 
            | Idiom '{' Program '}' { PIdiom $1 $3 }
            | Params '{' Program '}' { PParams $1 $3 }
+           | Namespace '{' Program '}' { PNamespace $1 $3 }
            | Transform { RealDecl $1 }
            | syntax Name NamesS '=' Term ';' { PSyntax $2 $3 $5 }
            | cinclude string { RealDecl (CInclude $2) }
@@ -219,6 +224,12 @@
          | '|' WithTerm WithP Term '{' Functions '}'
               { WithClause RPlaceholder [$2] $3 $4 $6 }
 
+Visibility :: { CGFlag }
+Visibility : public { Vis Public }
+           | private { Vis Private }
+           | abstract { Vis Abstract }
+           | { Vis Public }
+
 WithP :: { Bool }
 WithP : with { False }
       | with proof { True }
@@ -238,9 +249,13 @@
           | Function { [$1] }
 
 Flags :: { [CGFlag] }
-Flags : { [] }
-      | Flag Flags { $1 ++ $2 }
+Flags : FlagList { $1 }
+      | '[' FlagList ']' { $2 }
 
+FlagList :: { [CGFlag] }
+FlagList : { [] }
+      | Flag FlagList { $1 ++ $2 }
+
 Flag :: { [CGFlag] }
 Flag : nocg { [NoCG] }
      | eval { [CGEval, Inline] }
@@ -589,6 +604,9 @@
 Params :: { [(Id, RawTerm)] }
        : params '(' UseList ')' { $3 }
 
+Namespace :: { Id }
+          : namespace Name { $2 }
+
 UseList :: { [(Id, RawTerm)] }
         : Name ':' Type { [($1, $3)] }
         | Name ':' Type ',' UseList { ($1,$3):$5 }
@@ -685,6 +703,9 @@
         pi imps decls ((Idiom b r ds):xs)
             = do (ds',imps') <- pi imps [] ds
                  pi imps' (decls++[Idiom b r ds']) xs
+        pi imps decls ((Namespace n ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Namespace n ds']) xs
         pi imps decls (x:xs) = pi imps (decls++[x]) xs
         pi imps decls [] = return (decls, imps)
 
diff --git a/Idris/Serialise.lhs b/Idris/Serialise.lhs
new file mode 100644
--- /dev/null
+++ b/Idris/Serialise.lhs
@@ -0,0 +1,382 @@
+> {-# OPTIONS_GHC -fglasgow-exts #-}
+
+Binary instances for idris data structures, and saving and loading 
+typechecked forms to disk.
+
+> module Idris.Serialise where
+
+> import Idris.AbsSyntax
+> import Idris.ConTrans
+> import Ivor.ViewTerm
+> import Ivor.TT
+
+> import Data.Binary
+> import Data.Typeable
+> import Control.Monad
+
+> instance Binary ViewTerm where
+>     put (Name t x) = do put (0 :: Word8)
+>                         put t; put x
+>     put (App f a) = do put (1 :: Word8)
+>                        put f; put a
+>     put (Lambda v ty sc) = do put (2 :: Word8)
+>                               put v; put ty; put sc
+>     put (Forall v ty sc) = do put (3 :: Word8)
+>                               put v; put ty; put sc
+>     put (Let n v ty sc) = do put (4 :: Word8)
+>                              put n; put v; put ty; put sc
+>     put Star = put (5 :: Word8)
+>     put Placeholder = put (6 :: Word8)
+>     put (Annotation a t) = do put (7 :: Word8)
+>                               put a; put t
+>     put (Metavar m) = do put (8 :: Word8)
+>                          put m
+>     put (Constant c) = case cast c :: Maybe String of
+>                          Just v -> do put (9 :: Word8)
+>                                       put v
+>                          Nothing -> case cast c :: Maybe Int of
+>                            Just v -> do put (10 :: Word8)
+>                                         put v
+>                            Nothing -> fail "Unknown constant type"
+
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> liftM2 Name get get
+>                1 -> liftM2 App get get
+>                2 -> liftM3 Lambda get get get
+>                3 -> liftM3 Forall get get get
+>                4 -> liftM4 Let get get get get
+>                5 -> return Star
+>                6 -> return Placeholder
+>                7 -> liftM2 Annotation get get
+>                8 -> liftM Metavar get
+>                9 -> do s <- get
+>                        return (Constant (s :: String))
+>                10 -> do i <- get
+>                         return (Constant (i :: Int))
+
+
+> instance Binary RBinder where
+>     put (Pi p l r) = do put (0 :: Word8)
+>                         put p; put l; put r
+>     put (Lam t) = do put (1 :: Word8); put t
+>     put (RLet t ty) = do put (2 :: Word8); put t; put ty
+
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> liftM3 Pi get get get
+>                1 -> liftM Lam get
+>                2 -> liftM2 RLet get get
+
+> instance Binary Op where
+>     put x = put (fromEnum x)
+>     get = do t <- get
+>              return (toEnum t)
+
+> instance Binary Plicit where
+>     put x = put (fromEnum x)
+>     get = do t <- get
+>              return (toEnum t)
+
+> instance Binary Fixity where
+>     put x = put (fromEnum x)
+>     get = do t <- get
+>              return (toEnum t)
+
+> instance Binary Opt where
+>     put x = put (fromEnum x)
+>     get = do t <- get
+>              return (toEnum t)
+
+> instance Binary TyOpt where
+>     put x = put (fromEnum x)
+>     get = do t <- get
+>              return (toEnum t)
+
+> instance Binary Laziness where
+>     put x = put (fromEnum x)
+>     get = do t <- get
+>              return (toEnum t)
+
+> instance Binary Do where
+>     put (DoBinding f l i t y) = do put (0 :: Word8)
+>                                    put f; put l; put i; put t; put y
+>     put (DoLet a b c d e) = do put (1 :: Word8)
+>                                put a; put b; put c; put d; put e
+>     put (DoExp a b c) = do put (2 :: Word8); put a; put b; put c
+
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> liftM5 DoBinding get get get get get
+>                1 -> liftM5 DoLet get get get get get
+>                2 -> liftM3 DoExp get get get
+
+> instance Binary RawTerm where
+>     put (RVar a b c) = do put (0 :: Word8); put a; put b; put c
+>     put (RExpVar a b c) = do put (1 :: Word8); put a; put b; put c
+>     put (RApp a b c d) = do put (2 :: Word8); put a; put b; put c; put d
+>     put (RAppImp a b c d e) 
+>        = do put (3 :: Word8); put a; put b; put c; put d; put e
+>     put (RBind a b c) = do put (4 :: Word8); put a; put b; put c
+>     put (RConst a b c) = do put (5 :: Word8); put a; put b; put c
+>     put RPlaceholder = put (6 :: Word8)
+>     put (RMetavar i) = do put (7 :: Word8); put i
+>     put (RInfix a b c d e) 
+>        = do put (8 :: Word8); put a; put b; put c; put d; put e
+>     put (RUserInfix a b c d e f) 
+>        = do put (9 :: Word8); put a; put b; put c; put d; put e; put f
+>     put (RDo xs) = do put (10 :: Word8); put xs
+>     put (RReturn a b) = do put (11 :: Word8); put a; put b
+>     put (RIdiom i) = do put (12 :: Word8); put i
+>     put (RPure i) = do put (13 :: Word8); put i
+>     put RRefl = do put (14 :: Word8)
+>     put (RError f l i) = do put (15 :: Word8); put f; put l; put i
+
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> liftM3 RVar get get get
+>                1 -> liftM3 RExpVar get get get
+>                2 -> liftM4 RApp get get get get
+>                3 -> liftM5 RAppImp get get get get get
+>                4 -> liftM3 RBind get get get
+>                5 -> liftM3 RConst get get get
+>                6 -> return RPlaceholder
+>                7 -> liftM RMetavar get
+>                8 -> liftM5 RInfix get get get get get
+>                9 -> do a <- get; b <- get; c <- get; d <- get; e <- get;
+>                        f <- get;
+>                        return $ RUserInfix a b c d e f
+>                10 -> liftM RDo get
+>                11 -> liftM2 RReturn get get
+>                12 -> liftM RIdiom get
+>                13 -> liftM RPure get
+>                14 -> return RRefl
+>                15 -> liftM3 RError get get get
+
+> instance Binary Constant where
+>     put (Num i) = do put (0 :: Word8); put i
+>     put (Str i) = do put (1 :: Word8); put i
+>     put (Bo b) = do put (2 :: Word8); put b
+>     put (Ch c) = do put (3 :: Word8); put c
+>     put (Fl f) = do put (4 :: Word8); put f
+>     put TYPE = put (5 :: Word8)
+>     put StringType = put (6 :: Word8)
+>     put IntType = put (7 :: Word8)
+>     put FloatType = put (8 :: Word8)
+>     put CharType = put (9 :: Word8)
+>     put PtrType = put (10 :: Word8)
+>     put (Builtin i) = do put (11 :: Word8); put i
+
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> liftM Num get
+>                1 -> liftM Str get
+>                2 -> liftM Bo get
+>                3 -> liftM Ch get
+>                4 -> liftM Fl get
+>                5 -> return TYPE
+>                6 -> return StringType
+>                7 -> return IntType
+>                8 -> return FloatType
+>                9 -> return CharType
+>                10 -> return PtrType
+>                11 -> liftM Builtin get
+
+> instance Binary TransData where
+>     put (Force a b c d e f) = do put (0 :: Word8)
+>                                  put a; put b; put c; put d; put e; put f
+>     put (Collapse a b c d) = do put (1 :: Word8)
+>                                 put a; put b; put c; put d
+>     put (Drop a b c d) = do put (2 :: Word8)
+>                             put a; put b; put c; put d
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> do a <- get; b <- get; c <- get; d <- get;
+>                        e <- get; f <- get;
+>                        return (Force a b c d e f)
+>                1 -> liftM4 Collapse get get get get
+>                2 -> liftM4 Drop get get get get
+
+> instance Binary Transform where
+>     put (Trans n _ a) = do put n; put a
+>     get = do n <- get; a <- get
+>              let trans = case a of
+>                            Nothing -> Nothing
+>                            Just a' -> Just (rebuildTrans a')
+>              return (Trans n trans a)
+
+> instance Binary UserOps where
+>     put (UO ds ts f) = do put ds; put ts; put f
+>     get = do ds <- get; ts <- get; f <- get;
+>              return (UO ds ts f)
+
+> instance Binary IvorFun where
+>     put (IvorFun a b c d e f g) = 
+>         do put a; put b; put c; put d; put e; put f; put g;
+>     get = do a <- get; b <- get; c <- get; d <- get; e <- get; f <- get; g <- get
+>              return (IvorFun a b c d e f g)
+
+> instance Binary CGFlag where
+>     put NoCG = put (0 :: Word8)
+>     put CGEval = put (1 :: Word8)
+>     put (CExport s) = do put (2 :: Word8); put s
+>     put Inline = put (3 :: Word8)
+>     put (CGSpec x) = do put (4 :: Word8); put x
+
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> return NoCG
+>                1 -> return CGEval
+>                2 -> liftM CExport get
+>                3 -> return Inline
+>                4 -> liftM CGSpec get
+
+> instance Binary Decl where
+>     put (DataDecl d) = do put (0 :: Word8); put d
+>     put (Fwd a b c) = do put (1 :: Word8); put a; put b; put c
+>     put (Fun a b) = do put (2 :: Word8); put a; put b
+>     put (TermDef a b c) = do put (3 :: Word8); put a; put b; put c
+>     put Constructor = put (4 :: Word8)
+>     put (Prf d) = do put (5 :: Word8); put d
+>     put (LatexDefs d) = do put (6 :: Word8); put d
+>     put (Using a b) = do put (7 :: Word8); put a; put b
+>     put (Params a b) = do put (8 :: Word8); put a; put b
+>     put (DoUsing a b c) = do put (9 :: Word8); put a; put b; put c
+>     put (Idiom a b c) = do put (10 :: Word8); put a; put b; put c
+>     put (CLib d) = do put (11 :: Word8); put d
+>     put (CInclude d) = do put (12 :: Word8); put d
+>     put (Fixity a b c) = do put (13 :: Word8); put a; put b; put c
+>     put (Transform a b) = do put (14 :: Word8); put a; put b
+>     put (Freeze a) = do put (15 :: Word8); put a
+
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> liftM DataDecl get
+>                1 -> liftM3 Fwd get get get
+>                2 -> liftM2 Fun get get
+>                3 -> liftM3 TermDef get get get
+>                4 -> return Constructor
+>                5 -> liftM Prf get
+>                6 -> liftM LatexDefs get
+>                7 -> liftM2 Using get get
+>                8 -> liftM2 Params get get
+>                9 -> liftM3 DoUsing get get get
+>                10 -> liftM3 Idiom get get get
+>                11 -> liftM CLib get
+>                12 -> liftM CInclude get
+>                13 -> liftM3 Fixity get get get
+>                14 -> liftM2 Transform get get
+>                15 -> liftM Freeze get
+
+> instance Binary Datatype where
+>     put (Datatype a b c d e f g) = do put (0 :: Word8)
+>                                       put a; put b; put c; put d; put e;
+>                                       put f; put g;
+>     put (Latatype a b c d) = do put (1 :: Word8)
+>                                 put a; put b; put c; put d
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> do a <- get; b <- get; c <- get; d <- get;
+>                        e <- get; f <- get; g <- get;
+>                        return (Datatype a b c d e f g)
+>                1 -> liftM4 Latatype get get get get
+
+> instance Binary Function where
+>     put (Function a b c d e) = do put a; put b; put c; put d; put e
+>     get = liftM5 Function get get get get get
+
+> instance Binary Proof where
+>     put (Proof a b c) = do put a; put b; put c
+>     get = liftM3 Proof get get get
+
+> instance Binary RawClause where
+>     put (RawClause a b) = do put (0 :: Word8); put a; put b
+>     put (RawWithClause a b c d) = do put (0 :: Word8); put a; put b; put c; put d
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> liftM2 RawClause get get
+>                1 -> liftM4 RawWithClause get get get get
+
+> instance Binary Patterns where
+>     put (Patterns p) = put p
+>     get = liftM Patterns get
+
+> instance Binary PClause where
+>     put (PClause a b c) = do put (0 :: Word8); put a; put b; put c
+>     put (PWithClause a b c d) = do put (0 :: Word8); put a; put b; put c; put d
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> liftM3 PClause get get get
+>                1 -> liftM4 PWithClause get get get get
+
+> instance Binary Inductive where
+>     put (Inductive a b c d e) = do put a; put b; put c; put d; put e
+>     get = liftM5 Inductive get get get get get
+
+> instance Binary ITactic where
+>     put (Intro a) = do put (0 :: Word8); put a
+>     put (Refine a) = do put (1 :: Word8); put a
+>     put (Generalise a) = do put (2 :: Word8); put a
+>     put ReflP = put (3 :: Word8)
+>     put (Induction a) = do put (4 :: Word8); put a
+>     put (Fill a) = do put (5 :: Word8); put a
+>     put Trivial = put (6 :: Word8)
+>     put (Idris.AbsSyntax.Case a) = do put (7 :: Word8); put a
+>     put (Rewrite a b c) = do put (8 :: Word8); put a; put b; put c
+>     put (Unfold a) = do put (9 :: Word8); put a
+>     put Compute = put (10 :: Word8)
+>     put (Equiv a) = do put (11 :: Word8); put a
+>     put (Believe a) = do put (12 :: Word8); put a
+>     put (Use a) = do put (13 :: Word8); put a
+>     put (Decide a) = do put (14 :: Word8); put a
+>     put (RunTactic a) = do put (15 :: Word8); put a
+>     put Qed = put (16 :: Word8)
+
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> liftM Intro get
+>                1 -> liftM Refine get
+>                2 -> liftM Generalise get
+>                3 -> return ReflP
+>                4 -> liftM Induction get
+>                5 -> liftM Fill get
+>                6 -> return Trivial
+>                7 -> liftM Idris.AbsSyntax.Case get
+>                8 -> liftM3 Rewrite get get get
+>                9 -> liftM Unfold get
+>                10 -> return Compute
+>                11 -> liftM Equiv get
+>                12 -> liftM Believe get
+>                13 -> liftM Use get
+>                14 -> liftM Decide get
+>                15 -> liftM RunTactic get
+>                16 -> return Qed
+
+> instance Binary IvorDef where
+>     put (PattDef ps) = do put (0 :: Word8); put ps
+>     put ITyCon = put (1 :: Word8)
+>     put IDataCon = put (2 :: Word8)
+>     put (SimpleDef t) = do put (3 :: Word8); put t
+>     put (DataDef a b) = do put (4 :: Word8); put a; put b
+>     put (IProof ts) = do put (5 :: Word8); put ts
+>     put Later = put (6 :: Word8)
+>     put LataDef = put (7 :: Word8)
+
+>     get = do tag <- getWord8
+>              case tag of
+>                0 -> liftM PattDef get
+>                1 -> return ITyCon
+>                2 -> return IDataCon
+>                3 -> liftM SimpleDef get
+>                4 -> liftM2 DataDef get get
+>                5 -> liftM IProof get
+>                6 -> return Later
+>                7 -> return LataDef
+
+> instance Binary IdrisState where
+>     put (IState a b c d e f g) 
+>        = do put a; put b; put c; put d; put e; put f; put g
+>     get = do a <- get; b <- get; c <- get;
+>              d <- get; e <- get; f <- get; g <- get
+>              return (IState a b c d e f g)
+
diff --git a/Main.lhs b/Main.lhs
--- a/Main.lhs
+++ b/Main.lhs
@@ -282,7 +282,7 @@
 >                               return Quit
 >                        Just (':':command) -> 
 >                            do addHistory (':':command)
->                               runCommand (words command) commands
+>                               runCommand' (words command) commands
 >                        Just exprinput -> 
 >                            do termInput' raw fixes ctxt exprinput
 >                               addHistory exprinput
@@ -307,7 +307,10 @@
 >      termInput' r f c inp = handle handler $ termInput True r f c inp
 >         where handler StackOverflow = putStrLn "Stack overflow"
 >               handler UserInterrupt = putStrLn "Interrupted"
->               handler e             = throwIO e
+>               handler e             = print e -- throwIO e
+>      runCommand' w c = handle handler $ runCommand w c
+>         where handler e = do print (e :: IOError)
+>                              return Continue
 
 > termInput runio raw uo ctxt tm 
 >         = case getTerm tm of
diff --git a/dist/build/Idris/Parser.hs b/dist/build/Idris/Parser.hs
--- a/dist/build/Idris/Parser.hs
+++ b/dist/build/Idris/Parser.hs
@@ -1,3582 +1,3675 @@
-{-# OPTIONS -fglasgow-exts -cpp #-}
--- -*-Haskell-*-
-{-# OPTIONS_GHC -fglasgow-exts #-}
-
-module Idris.Parser where
-
-import Data.Char
-import Ivor.TT
-import System.IO.Unsafe
-import List
-import Control.Monad
-
-import Idris.AbsSyntax
-import Idris.Lexer
-import Idris.Lib
-
-import Debug.Trace
-#if __GLASGOW_HASKELL__ >= 503
-import Data.Array
-#else
-import Array
-#endif
-#if __GLASGOW_HASKELL__ >= 503
-import GHC.Exts
-#else
-import GlaExts
-#endif
-
--- parser produced by Happy Version 1.18.2
-
-newtype HappyAbsSyn t66 = HappyAbsSyn HappyAny
-#if __GLASGOW_HASKELL__ >= 607
-type HappyAny = GHC.Exts.Any
-#else
-type HappyAny = forall a . a
-#endif
-happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t66)
-happyIn6 x = unsafeCoerce# x
-{-# INLINE happyIn6 #-}
-happyOut6 :: (HappyAbsSyn t66) -> ([ParseDecl])
-happyOut6 x = unsafeCoerce# x
-{-# INLINE happyOut6 #-}
-happyIn7 :: (ParseDecl) -> (HappyAbsSyn t66)
-happyIn7 x = unsafeCoerce# x
-{-# INLINE happyIn7 #-}
-happyOut7 :: (HappyAbsSyn t66) -> (ParseDecl)
-happyOut7 x = unsafeCoerce# x
-{-# INLINE happyOut7 #-}
-happyIn8 :: (Decl) -> (HappyAbsSyn t66)
-happyIn8 x = unsafeCoerce# x
-{-# INLINE happyIn8 #-}
-happyOut8 :: (HappyAbsSyn t66) -> (Decl)
-happyOut8 x = unsafeCoerce# x
-{-# INLINE happyOut8 #-}
-happyIn9 :: (ParseDecl) -> (HappyAbsSyn t66)
-happyIn9 x = unsafeCoerce# x
-{-# INLINE happyIn9 #-}
-happyOut9 :: (HappyAbsSyn t66) -> (ParseDecl)
-happyOut9 x = unsafeCoerce# x
-{-# INLINE happyOut9 #-}
-happyIn10 :: (Bool) -> (HappyAbsSyn t66)
-happyIn10 x = unsafeCoerce# x
-{-# INLINE happyIn10 #-}
-happyOut10 :: (HappyAbsSyn t66) -> (Bool)
-happyOut10 x = unsafeCoerce# x
-{-# INLINE happyOut10 #-}
-happyIn11 :: ([RawTerm]) -> (HappyAbsSyn t66)
-happyIn11 x = unsafeCoerce# x
-{-# INLINE happyIn11 #-}
-happyOut11 :: (HappyAbsSyn t66) -> ([RawTerm])
-happyOut11 x = unsafeCoerce# x
-{-# INLINE happyOut11 #-}
-happyIn12 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn12 x = unsafeCoerce# x
-{-# INLINE happyIn12 #-}
-happyOut12 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut12 x = unsafeCoerce# x
-{-# INLINE happyOut12 #-}
-happyIn13 :: ([ParseDecl]) -> (HappyAbsSyn t66)
-happyIn13 x = unsafeCoerce# x
-{-# INLINE happyIn13 #-}
-happyOut13 :: (HappyAbsSyn t66) -> ([ParseDecl])
-happyOut13 x = unsafeCoerce# x
-{-# INLINE happyOut13 #-}
-happyIn14 :: ([CGFlag]) -> (HappyAbsSyn t66)
-happyIn14 x = unsafeCoerce# x
-{-# INLINE happyIn14 #-}
-happyOut14 :: (HappyAbsSyn t66) -> ([CGFlag])
-happyOut14 x = unsafeCoerce# x
-{-# INLINE happyOut14 #-}
-happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t66)
-happyIn15 x = unsafeCoerce# x
-{-# INLINE happyIn15 #-}
-happyOut15 :: (HappyAbsSyn t66) -> ([CGFlag])
-happyOut15 x = unsafeCoerce# x
-{-# INLINE happyOut15 #-}
-happyIn16 :: ([Decl]) -> (HappyAbsSyn t66)
-happyIn16 x = unsafeCoerce# x
-{-# INLINE happyIn16 #-}
-happyOut16 :: (HappyAbsSyn t66) -> ([Decl])
-happyOut16 x = unsafeCoerce# x
-{-# INLINE happyOut16 #-}
-happyIn17 :: ([String]) -> (HappyAbsSyn t66)
-happyIn17 x = unsafeCoerce# x
-{-# INLINE happyIn17 #-}
-happyOut17 :: (HappyAbsSyn t66) -> ([String])
-happyOut17 x = unsafeCoerce# x
-{-# INLINE happyOut17 #-}
-happyIn18 :: (String) -> (HappyAbsSyn t66)
-happyIn18 x = unsafeCoerce# x
-{-# INLINE happyIn18 #-}
-happyOut18 :: (HappyAbsSyn t66) -> (String)
-happyOut18 x = unsafeCoerce# x
-{-# INLINE happyOut18 #-}
-happyIn19 :: (Fixity) -> (HappyAbsSyn t66)
-happyIn19 x = unsafeCoerce# x
-{-# INLINE happyIn19 #-}
-happyOut19 :: (HappyAbsSyn t66) -> (Fixity)
-happyOut19 x = unsafeCoerce# x
-{-# INLINE happyOut19 #-}
-happyIn20 :: (Decl) -> (HappyAbsSyn t66)
-happyIn20 x = unsafeCoerce# x
-{-# INLINE happyIn20 #-}
-happyOut20 :: (HappyAbsSyn t66) -> (Decl)
-happyOut20 x = unsafeCoerce# x
-{-# INLINE happyOut20 #-}
-happyIn21 :: ([(Id,String)]) -> (HappyAbsSyn t66)
-happyIn21 x = unsafeCoerce# x
-{-# INLINE happyIn21 #-}
-happyOut21 :: (HappyAbsSyn t66) -> ([(Id,String)])
-happyOut21 x = unsafeCoerce# x
-{-# INLINE happyOut21 #-}
-happyIn22 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t66)
-happyIn22 x = unsafeCoerce# x
-{-# INLINE happyIn22 #-}
-happyOut22 :: (HappyAbsSyn t66) -> ((Id, [(RawTerm, Maybe Id)]))
-happyOut22 x = unsafeCoerce# x
-{-# INLINE happyOut22 #-}
-happyIn23 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t66)
-happyIn23 x = unsafeCoerce# x
-{-# INLINE happyIn23 #-}
-happyOut23 :: (HappyAbsSyn t66) -> ([(RawTerm,Maybe Id)])
-happyOut23 x = unsafeCoerce# x
-{-# INLINE happyOut23 #-}
-happyIn24 :: (Datatype) -> (HappyAbsSyn t66)
-happyIn24 x = unsafeCoerce# x
-{-# INLINE happyIn24 #-}
-happyOut24 :: (HappyAbsSyn t66) -> (Datatype)
-happyOut24 x = unsafeCoerce# x
-{-# INLINE happyOut24 #-}
-happyIn25 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t66)
-happyIn25 x = unsafeCoerce# x
-{-# INLINE happyIn25 #-}
-happyOut25 :: (HappyAbsSyn t66) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
-happyOut25 x = unsafeCoerce# x
-{-# INLINE happyOut25 #-}
-happyIn26 :: ([TyOpt]) -> (HappyAbsSyn t66)
-happyIn26 x = unsafeCoerce# x
-{-# INLINE happyIn26 #-}
-happyOut26 :: (HappyAbsSyn t66) -> ([TyOpt])
-happyOut26 x = unsafeCoerce# x
-{-# INLINE happyOut26 #-}
-happyIn27 :: ([TyOpt]) -> (HappyAbsSyn t66)
-happyIn27 x = unsafeCoerce# x
-{-# INLINE happyIn27 #-}
-happyOut27 :: (HappyAbsSyn t66) -> ([TyOpt])
-happyOut27 x = unsafeCoerce# x
-{-# INLINE happyOut27 #-}
-happyIn28 :: (TyOpt) -> (HappyAbsSyn t66)
-happyIn28 x = unsafeCoerce# x
-{-# INLINE happyIn28 #-}
-happyOut28 :: (HappyAbsSyn t66) -> (TyOpt)
-happyOut28 x = unsafeCoerce# x
-{-# INLINE happyOut28 #-}
-happyIn29 :: (Id) -> (HappyAbsSyn t66)
-happyIn29 x = unsafeCoerce# x
-{-# INLINE happyIn29 #-}
-happyOut29 :: (HappyAbsSyn t66) -> (Id)
-happyOut29 x = unsafeCoerce# x
-{-# INLINE happyOut29 #-}
-happyIn30 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn30 x = unsafeCoerce# x
-{-# INLINE happyIn30 #-}
-happyOut30 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut30 x = unsafeCoerce# x
-{-# INLINE happyOut30 #-}
-happyIn31 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn31 x = unsafeCoerce# x
-{-# INLINE happyIn31 #-}
-happyOut31 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut31 x = unsafeCoerce# x
-{-# INLINE happyOut31 #-}
-happyIn32 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn32 x = unsafeCoerce# x
-{-# INLINE happyIn32 #-}
-happyOut32 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut32 x = unsafeCoerce# x
-{-# INLINE happyOut32 #-}
-happyIn33 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn33 x = unsafeCoerce# x
-{-# INLINE happyIn33 #-}
-happyOut33 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut33 x = unsafeCoerce# x
-{-# INLINE happyOut33 #-}
-happyIn34 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn34 x = unsafeCoerce# x
-{-# INLINE happyIn34 #-}
-happyOut34 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut34 x = unsafeCoerce# x
-{-# INLINE happyOut34 #-}
-happyIn35 :: ([Id]) -> (HappyAbsSyn t66)
-happyIn35 x = unsafeCoerce# x
-{-# INLINE happyIn35 #-}
-happyOut35 :: (HappyAbsSyn t66) -> ([Id])
-happyOut35 x = unsafeCoerce# x
-{-# INLINE happyOut35 #-}
-happyIn36 :: ([(Id, Int)]) -> (HappyAbsSyn t66)
-happyIn36 x = unsafeCoerce# x
-{-# INLINE happyIn36 #-}
-happyOut36 :: (HappyAbsSyn t66) -> ([(Id, Int)])
-happyOut36 x = unsafeCoerce# x
-{-# INLINE happyOut36 #-}
-happyIn37 :: ([Id]) -> (HappyAbsSyn t66)
-happyIn37 x = unsafeCoerce# x
-{-# INLINE happyIn37 #-}
-happyOut37 :: (HappyAbsSyn t66) -> ([Id])
-happyOut37 x = unsafeCoerce# x
-{-# INLINE happyOut37 #-}
-happyIn38 :: ([Id]) -> (HappyAbsSyn t66)
-happyIn38 x = unsafeCoerce# x
-{-# INLINE happyIn38 #-}
-happyOut38 :: (HappyAbsSyn t66) -> ([Id])
-happyOut38 x = unsafeCoerce# x
-{-# INLINE happyOut38 #-}
-happyIn39 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn39 x = unsafeCoerce# x
-{-# INLINE happyIn39 #-}
-happyOut39 :: (HappyAbsSyn t66) -> ([(Id, RawTerm, RawTerm)])
-happyOut39 x = unsafeCoerce# x
-{-# INLINE happyOut39 #-}
-happyIn40 :: ((Id, RawTerm)) -> (HappyAbsSyn t66)
-happyIn40 x = unsafeCoerce# x
-{-# INLINE happyIn40 #-}
-happyOut40 :: (HappyAbsSyn t66) -> ((Id, RawTerm))
-happyOut40 x = unsafeCoerce# x
-{-# INLINE happyOut40 #-}
-happyIn41 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn41 x = unsafeCoerce# x
-{-# INLINE happyIn41 #-}
-happyOut41 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut41 x = unsafeCoerce# x
-{-# INLINE happyOut41 #-}
-happyIn42 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn42 x = unsafeCoerce# x
-{-# INLINE happyIn42 #-}
-happyOut42 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut42 x = unsafeCoerce# x
-{-# INLINE happyOut42 #-}
-happyIn43 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn43 x = unsafeCoerce# x
-{-# INLINE happyIn43 #-}
-happyOut43 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut43 x = unsafeCoerce# x
-{-# INLINE happyOut43 #-}
-happyIn44 :: (String) -> (HappyAbsSyn t66)
-happyIn44 x = unsafeCoerce# x
-{-# INLINE happyIn44 #-}
-happyOut44 :: (HappyAbsSyn t66) -> (String)
-happyOut44 x = unsafeCoerce# x
-{-# INLINE happyOut44 #-}
-happyIn45 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn45 x = unsafeCoerce# x
-{-# INLINE happyIn45 #-}
-happyOut45 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut45 x = unsafeCoerce# x
-{-# INLINE happyOut45 #-}
-happyIn46 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn46 x = unsafeCoerce# x
-{-# INLINE happyIn46 #-}
-happyOut46 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut46 x = unsafeCoerce# x
-{-# INLINE happyOut46 #-}
-happyIn47 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn47 x = unsafeCoerce# x
-{-# INLINE happyIn47 #-}
-happyOut47 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut47 x = unsafeCoerce# x
-{-# INLINE happyOut47 #-}
-happyIn48 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn48 x = unsafeCoerce# x
-{-# INLINE happyIn48 #-}
-happyOut48 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut48 x = unsafeCoerce# x
-{-# INLINE happyOut48 #-}
-happyIn49 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn49 x = unsafeCoerce# x
-{-# INLINE happyIn49 #-}
-happyOut49 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut49 x = unsafeCoerce# x
-{-# INLINE happyOut49 #-}
-happyIn50 :: ([RawTerm]) -> (HappyAbsSyn t66)
-happyIn50 x = unsafeCoerce# x
-{-# INLINE happyIn50 #-}
-happyOut50 :: (HappyAbsSyn t66) -> ([RawTerm])
-happyOut50 x = unsafeCoerce# x
-{-# INLINE happyOut50 #-}
-happyIn51 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn51 x = unsafeCoerce# x
-{-# INLINE happyIn51 #-}
-happyOut51 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut51 x = unsafeCoerce# x
-{-# INLINE happyOut51 #-}
-happyIn52 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn52 x = unsafeCoerce# x
-{-# INLINE happyIn52 #-}
-happyOut52 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut52 x = unsafeCoerce# x
-{-# INLINE happyOut52 #-}
-happyIn53 :: ([RawTerm]) -> (HappyAbsSyn t66)
-happyIn53 x = unsafeCoerce# x
-{-# INLINE happyIn53 #-}
-happyOut53 :: (HappyAbsSyn t66) -> ([RawTerm])
-happyOut53 x = unsafeCoerce# x
-{-# INLINE happyOut53 #-}
-happyIn54 :: ([Do]) -> (HappyAbsSyn t66)
-happyIn54 x = unsafeCoerce# x
-{-# INLINE happyIn54 #-}
-happyOut54 :: (HappyAbsSyn t66) -> ([Do])
-happyOut54 x = unsafeCoerce# x
-{-# INLINE happyOut54 #-}
-happyIn55 :: ([Do]) -> (HappyAbsSyn t66)
-happyIn55 x = unsafeCoerce# x
-{-# INLINE happyIn55 #-}
-happyOut55 :: (HappyAbsSyn t66) -> ([Do])
-happyOut55 x = unsafeCoerce# x
-{-# INLINE happyOut55 #-}
-happyIn56 :: (Do) -> (HappyAbsSyn t66)
-happyIn56 x = unsafeCoerce# x
-{-# INLINE happyIn56 #-}
-happyOut56 :: (HappyAbsSyn t66) -> (Do)
-happyOut56 x = unsafeCoerce# x
-{-# INLINE happyOut56 #-}
-happyIn57 :: (Constant) -> (HappyAbsSyn t66)
-happyIn57 x = unsafeCoerce# x
-{-# INLINE happyIn57 #-}
-happyOut57 :: (HappyAbsSyn t66) -> (Constant)
-happyOut57 x = unsafeCoerce# x
-{-# INLINE happyOut57 #-}
-happyIn58 :: ([RawTerm]) -> (HappyAbsSyn t66)
-happyIn58 x = unsafeCoerce# x
-{-# INLINE happyIn58 #-}
-happyOut58 :: (HappyAbsSyn t66) -> ([RawTerm])
-happyOut58 x = unsafeCoerce# x
-{-# INLINE happyOut58 #-}
-happyIn59 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t66)
-happyIn59 x = unsafeCoerce# x
-{-# INLINE happyIn59 #-}
-happyOut59 :: (HappyAbsSyn t66) -> ((RawTerm, [(Id, RawTerm)]))
-happyOut59 x = unsafeCoerce# x
-{-# INLINE happyOut59 #-}
-happyIn60 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn60 x = unsafeCoerce# x
-{-# INLINE happyIn60 #-}
-happyOut60 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut60 x = unsafeCoerce# x
-{-# INLINE happyOut60 #-}
-happyIn61 :: ((Id,Id)) -> (HappyAbsSyn t66)
-happyIn61 x = unsafeCoerce# x
-{-# INLINE happyIn61 #-}
-happyOut61 :: (HappyAbsSyn t66) -> ((Id,Id))
-happyOut61 x = unsafeCoerce# x
-{-# INLINE happyOut61 #-}
-happyIn62 :: ((Id,Id)) -> (HappyAbsSyn t66)
-happyIn62 x = unsafeCoerce# x
-{-# INLINE happyIn62 #-}
-happyOut62 :: (HappyAbsSyn t66) -> ((Id,Id))
-happyOut62 x = unsafeCoerce# x
-{-# INLINE happyOut62 #-}
-happyIn63 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn63 x = unsafeCoerce# x
-{-# INLINE happyIn63 #-}
-happyOut63 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut63 x = unsafeCoerce# x
-{-# INLINE happyOut63 #-}
-happyIn64 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn64 x = unsafeCoerce# x
-{-# INLINE happyIn64 #-}
-happyOut64 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut64 x = unsafeCoerce# x
-{-# INLINE happyOut64 #-}
-happyIn65 :: ([Id]) -> (HappyAbsSyn t66)
-happyIn65 x = unsafeCoerce# x
-{-# INLINE happyIn65 #-}
-happyOut65 :: (HappyAbsSyn t66) -> ([Id])
-happyOut65 x = unsafeCoerce# x
-{-# INLINE happyOut65 #-}
-happyIn66 :: t66 -> (HappyAbsSyn t66)
-happyIn66 x = unsafeCoerce# x
-{-# INLINE happyIn66 #-}
-happyOut66 :: (HappyAbsSyn t66) -> t66
-happyOut66 x = unsafeCoerce# x
-{-# INLINE happyOut66 #-}
-happyIn67 :: ([ConParse]) -> (HappyAbsSyn t66)
-happyIn67 x = unsafeCoerce# x
-{-# INLINE happyIn67 #-}
-happyOut67 :: (HappyAbsSyn t66) -> ([ConParse])
-happyOut67 x = unsafeCoerce# x
-{-# INLINE happyOut67 #-}
-happyIn68 :: (ConParse) -> (HappyAbsSyn t66)
-happyIn68 x = unsafeCoerce# x
-{-# INLINE happyIn68 #-}
-happyOut68 :: (HappyAbsSyn t66) -> (ConParse)
-happyOut68 x = unsafeCoerce# x
-{-# INLINE happyOut68 #-}
-happyIn69 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn69 x = unsafeCoerce# x
-{-# INLINE happyIn69 #-}
-happyOut69 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut69 x = unsafeCoerce# x
-{-# INLINE happyOut69 #-}
-happyIn70 :: (ITactic) -> (HappyAbsSyn t66)
-happyIn70 x = unsafeCoerce# x
-{-# INLINE happyIn70 #-}
-happyOut70 :: (HappyAbsSyn t66) -> (ITactic)
-happyOut70 x = unsafeCoerce# x
-{-# INLINE happyOut70 #-}
-happyIn71 :: ([ITactic]) -> (HappyAbsSyn t66)
-happyIn71 x = unsafeCoerce# x
-{-# INLINE happyIn71 #-}
-happyOut71 :: (HappyAbsSyn t66) -> ([ITactic])
-happyOut71 x = unsafeCoerce# x
-{-# INLINE happyOut71 #-}
-happyIn72 :: ([ITactic]) -> (HappyAbsSyn t66)
-happyIn72 x = unsafeCoerce# x
-{-# INLINE happyIn72 #-}
-happyOut72 :: (HappyAbsSyn t66) -> ([ITactic])
-happyOut72 x = unsafeCoerce# x
-{-# INLINE happyOut72 #-}
-happyIn73 :: (LineNumber) -> (HappyAbsSyn t66)
-happyIn73 x = unsafeCoerce# x
-{-# INLINE happyIn73 #-}
-happyOut73 :: (HappyAbsSyn t66) -> (LineNumber)
-happyOut73 x = unsafeCoerce# x
-{-# INLINE happyOut73 #-}
-happyIn74 :: (String) -> (HappyAbsSyn t66)
-happyIn74 x = unsafeCoerce# x
-{-# INLINE happyIn74 #-}
-happyOut74 :: (HappyAbsSyn t66) -> (String)
-happyOut74 x = unsafeCoerce# x
-{-# INLINE happyOut74 #-}
-happyIn75 :: (Fixities) -> (HappyAbsSyn t66)
-happyIn75 x = unsafeCoerce# x
-{-# INLINE happyIn75 #-}
-happyOut75 :: (HappyAbsSyn t66) -> (Fixities)
-happyOut75 x = unsafeCoerce# x
-{-# INLINE happyOut75 #-}
-happyInTok :: (Token) -> (HappyAbsSyn t66)
-happyInTok x = unsafeCoerce# x
-{-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn t66) -> (Token)
-happyOutTok x = unsafeCoerce# x
-{-# INLINE happyOutTok #-}
-
-
-happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\x16\x00\x21\x05\x57\x0d\x00\x00\x20\x04\x6e\x01\x6e\x01\x21\x05\x00\x00\x3b\x03\xea\x02\x00\x00\x6e\x01\x00\x00\x21\x05\x21\x05\x00\x00\x21\x05\x21\x05\x21\x05\x21\x05\x00\x00\x00\x00\x00\x00\x85\x01\x00\x00\x00\x00\x00\x00\x00\x00\x61\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x01\xfd\x08\x48\x02\x21\x05\x21\x05\x06\x08\x21\x05\x00\x00\x6e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x05\x00\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x21\x05\x5b\x00\x1f\x04\x01\x00\x00\x00\x00\x00\x01\x00\x57\x04\x00\x00\x6f\x04\x00\x00\xf5\x01\x5b\x04\x5a\x04\x58\x04\x56\x04\x39\x09\xd1\x01\x4a\x04\x00\x00\x00\x00\x00\x00\x4b\x04\x49\x04\x48\x04\x5b\x00\x53\x04\x1b\x04\x43\x04\x51\x04\x21\x05\x50\x04\x46\x04\x00\x00\x00\x00\x1e\x04\x3d\x04\x5b\x00\x28\x04\x3c\x04\x5b\x00\x5b\x00\x5b\x00\x5b\x00\x5b\x00\x12\x02\x32\x04\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x13\x00\x00\x00\x00\x00\x99\x02\x00\x00\x00\x00\x00\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\x00\x00\xca\x07\x37\x04\xfc\xff\xe3\x08\x2d\x04\x77\x00\x39\x09\xd1\x01\x00\x00\x00\x00\x30\x04\xe4\x03\x14\x02\x00\x00\x26\x04\xd0\x04\x00\x00\x00\x00\x27\x04\x00\x00\x27\x04\x00\x00\xaa\x05\xa3\x08\xfa\x01\x4e\x04\x7f\x04\x1a\x04\x7f\x04\x7f\x04\x18\x04\x13\x04\x7f\x04\x7f\x04\x9e\x01\x67\x00\x00\x00\x7f\x04\xa6\x08\x5b\x00\x19\x04\xf3\x03\x00\x00\x06\x08\x0c\x04\x00\x00\x7f\x04\xfe\x03\x7f\x04\x7f\x04\x7f\x04\x7f\x04\x7f\x04\x00\x00\x78\x01\x5f\x01\x51\x01\x4f\x01\x42\x01\x1a\x01\x00\x00\x18\x01\x7f\x04\xf1\x00\x7f\x04\xb8\x00\x00\x00\xf6\x03\x00\x00\x5b\x00\x41\x00\x07\x00\x00\x00\x17\x04\x17\x04\x17\x04\x17\x04\x17\x04\x00\x00\x7f\x04\x17\x04\x06\x08\x00\x00\x00\x00\x00\x00\x7f\x04\xf5\x03\xfd\x08\x0f\x04\x07\x04\xe8\x03\xbe\x01\xfc\x03\x20\x01\xfa\x03\xd2\x08\xfd\x08\x00\x00\xfd\x08\xf7\x03\x00\x00\x22\x06\x00\x00\x22\x06\x00\x00\x22\x06\x00\x00\x22\x06\x00\x00\x7f\x04\x00\x00\x7f\x04\x7f\x04\x7f\x04\x7f\x04\x7f\x04\xfb\x03\x00\x00\x00\x00\x7f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xff\x22\x06\xee\x03\x2e\x04\x5b\x00\xe6\x03\x00\x00\xdd\x03\xdd\x03\xe3\x03\xf4\x03\xda\x03\xef\x03\xdd\x03\xdd\x03\xdd\x03\xa3\x03\x57\x0d\xed\x03\x50\x01\x0c\x00\xd0\x03\xca\x07\xdd\x03\x00\x00\x00\x00\xe1\x03\xdc\x03\xdb\x03\xd7\x03\x00\x00\x00\x00\x4c\x04\xe0\x03\x00\x00\x00\x00\xdd\x03\xdd\x03\xdd\x03\x00\x00\xd4\x03\xc1\x03\x00\x00\x00\x00\x84\x01\xde\x03\xce\x03\xb2\x03\xc8\x03\x5b\x00\xb1\x03\x01\x00\x5b\x00\xbd\x03\xad\x03\x00\x00\xdd\x03\x29\x0a\xc7\x03\x00\x00\xa4\x03\x00\x00\xdd\x03\x00\x00\x00\x00\x5b\x00\x00\x00\xe3\x08\x00\x00\x5b\x00\x5b\x00\xa8\x03\xe3\x08\x00\x00\x00\x00\x12\x02\x00\x00\x41\x05\x3f\x05\x11\x05\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x04\x00\x00\x5b\x00\x00\x00\x8f\x00\xc3\x03\x00\x00\x00\x00\x00\x00\xb6\x03\xa9\x03\xfd\x08\xaf\x03\xa6\x03\x00\x00\x5b\x03\xb5\x01\xc0\x04\x00\x00\xd1\x01\x00\x00\xdd\x03\x9b\x00\xb3\x01\xdd\x03\x93\x03\x00\x00\x00\x00\x00\x00\x68\x03\x69\x08\x00\x00\x42\x08\xe6\x05\x00\x00\xfd\x08\x00\x00\xac\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x03\x00\x00\x99\x03\x00\x00\x06\x08\x00\x00\x89\x03\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x08\xfd\x08\x84\x03\xe3\x08\x5b\x00\x70\x03\xe3\x08\x0c\x00\x5b\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x08\x42\x08\x42\x08\x42\x08\x42\x08\x42\x08\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x08\x00\x00\x02\x00\xfd\x08\x04\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x07\x00\x00\x52\x07\x00\x00\x16\x07\x00\x00\xda\x06\x97\x03\x95\x03\x94\x03\x92\x03\x8f\x03\x65\x00\x00\x00\x00\x00\xdd\x03\x9e\x06\x77\x03\x22\x06\xdd\x03\xcf\x00\x00\x00\x99\x00\x8d\x03\x82\x03\x00\x00\x57\x0d\x0c\x00\x60\x03\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x06\x00\x00\x99\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\xf8\xff\x00\x00\x26\x06\x7c\x03\x75\x03\x00\x00\x00\x00\x56\x03\x6f\x03\x0a\x03\x5b\x00\x51\x03\x00\x00\x5b\x00\x6e\x03\x00\x00\x00\x00\x5b\x00\x00\x00\x5b\x00\x00\x00\x06\x08\x00\x00\x00\x00\xe3\x08\x00\x00\x35\x03\x00\x00\x00\x00\x00\x00\x5b\x00\x99\x00\x67\x03\x00\x00\x00\x00\x00\x00\x6b\x03\xaa\x00\x64\x03\xe3\x08\x00\x00\x5b\x00\x00\x00\x58\x03\x5b\x00\x66\x03\x00\x00\xdd\x03\x00\x00\x22\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x03\x3a\x03\x50\x03\x00\x00\x00\x00\x00\x00\xcf\x00\xea\x05\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x03\x00\x00\x00\x00\x33\x03\x5b\x00\x00\x00\x00\x00\x00\x00\x42\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x69\x08\x8c\x03\x00\x00\xae\x05\x00\x00\x00\x00\x00\x00\x72\x05\x3f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x0c\x0a\x49\x0d\x0f\x03\x00\x00\x00\x00\xa2\x01\x3e\x03\x38\x0d\x00\x00\x27\x0d\x16\x0d\x00\x00\x3d\x03\x00\x00\x05\x0d\xf4\x0c\x00\x00\xe3\x0c\xd2\x0c\xc1\x0c\xb0\x0c\x00\x00\x00\x00\x09\x03\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x01\x35\x08\xc2\x01\x9f\x0c\x8e\x0c\x7a\x0d\x7d\x0c\x00\x00\x31\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x0c\x00\x00\x03\x03\x02\x03\x00\x00\x01\x03\x5b\x0c\x54\x01\x00\x00\xef\x09\x00\x00\x00\x00\xdc\x09\x00\x00\x00\x00\x38\x03\x00\x00\xf0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x2b\x03\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x0f\x01\x00\x00\x00\x00\x69\x01\x48\x00\x19\x03\x21\x00\x18\x03\x3d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x03\xe7\x02\x1c\x01\x00\x00\xe5\x02\x70\x05\x00\x00\xe4\x02\xe2\x02\xbf\x09\xac\x09\x8f\x09\x7c\x09\x00\x00\x28\x0a\x00\x00\x00\x00\x73\x0d\x00\x00\xf0\x02\x33\x00\x18\x02\x00\x00\x00\x00\xfe\x02\x00\x00\x14\x01\xe1\x02\xda\x02\x14\x07\xd7\x02\xd5\x02\x0c\x01\xd3\x02\x07\x01\x00\x00\x06\x01\x06\x01\x40\x01\x93\x00\x39\x0c\x00\x00\x28\x0c\x17\x0c\x00\x00\x00\x00\xd9\x03\x88\x03\x05\x01\x00\x00\x00\x00\x06\x0c\x92\x04\x19\x02\xcf\x02\x00\x00\xcd\x02\x68\x0d\x00\x00\xcb\x02\xf5\x0b\xc4\x02\xe4\x0b\xd3\x0b\xc2\x0b\xb1\x0b\xa0\x0b\xc3\x02\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\x00\x00\xff\x00\x8f\x0b\xff\x00\x7e\x0b\xff\x00\x00\x00\x00\x00\x00\x00\x7f\x01\xff\x00\xff\x00\x00\x00\xfe\x00\xf5\x00\xf4\x00\xe9\x00\xe7\x00\xc1\x02\x6d\x0b\xd5\x00\x59\x0d\xbf\x02\xba\x02\x00\x00\x5c\x0b\x00\x00\xf9\x07\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\xc8\x00\xfe\x05\x00\x00\x6e\x05\x00\x00\xb9\x02\xab\x00\xb8\x02\xa3\x00\xa4\x02\x9e\x00\xb3\x02\x9d\x00\xb1\x02\x37\x03\x00\x00\xe6\x02\x4b\x0b\x3a\x0b\x44\x02\x95\x02\x00\x00\x00\x00\xa8\x02\x29\x0b\xa3\x02\x9d\x02\x9c\x02\x00\x00\x00\x00\xd1\x00\x95\x00\x00\x00\xd8\x06\xbd\x00\x00\x00\x00\x00\x18\x0b\x07\x0b\x00\x00\x00\x00\x00\x00\xd9\x02\xf6\x0a\xe5\x0a\xd4\x0a\x00\x00\xcf\x01\xb0\x02\x10\x02\x00\x00\x00\x00\x0a\x0a\xc3\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x02\x97\x02\x94\x00\x00\x00\x94\x02\x93\x02\xb2\x0a\xa1\x0a\x90\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x00\x00\x42\x09\xbe\x02\x00\x00\x00\x00\x00\x00\x7f\x0a\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x0a\x00\x00\x00\x00\xbd\x02\x00\x00\xbd\x07\x8f\x02\x0a\x00\x43\x00\x00\x00\x81\x07\x83\x02\x82\x02\xc9\x01\x00\x00\x94\x00\x94\x00\x94\x00\x00\x00\x00\x00\x80\x02\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x00\x7b\x02\x7c\x01\x60\x02\xc1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x04\x00\x00\x00\x00\x00\x00\x94\x00\x03\x00\x94\x00\x00\x00\x4b\x01\x00\x00\x5d\x0a\x94\x00\x94\x00\x4c\x0a\x35\x02\x00\x00\x00\x00\x7a\x02\x00\x00\x4d\x0d\x00\x00\x4d\x0d\x94\x00\x74\x02\xb2\x02\x72\x02\x94\x00\x00\x00\x70\x02\x6f\x02\x6d\x02\x6a\x02\x68\x02\x67\x02\x63\x02\x00\x00\x62\x02\x00\x00\x4c\x02\x36\x09\x5f\x02\x00\x00\x52\x02\x00\x00\x51\x02\x00\x00\x61\x02\xe9\x01\x00\x00\x45\x07\xab\x01\x00\x00\x09\x07\x00\x00\x60\x00\x94\x00\x4b\x02\x4a\x02\x00\x00\x47\x02\x94\x00\x00\x00\x46\x02\x43\x02\x42\x02\x41\x02\x40\x02\x00\x00\x2e\x08\x2e\x08\x2e\x08\x2e\x08\x2e\x08\x2e\x08\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x02\x00\x00\x00\x00\x0e\x02\x00\x00\x00\x00\x3e\x02\x32\x02\x29\x02\x21\x02\x00\x00\x2e\x08\x00\x00\x2e\x08\x00\x00\x2e\x08\x00\x00\x2e\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x01\x3b\x0a\x2e\x08\x00\x00\x6c\x00\xc8\x07\x4b\x00\x00\x00\x2c\x02\x00\x00\x00\x00\x00\x00\x63\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x1e\x02\x00\x00\x1c\x02\xf9\x08\x05\x02\x0b\x02\x00\x00\x00\x00\x00\x00\xf7\x01\xef\x01\xd6\x01\xa5\x01\x8a\x06\x00\x00\x00\x00\x00\x00\xdb\x01\x00\x00\x00\x00\x4b\x00\xcd\x01\x00\x00\x00\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x37\x00\x00\x00\xf2\x07\x00\x00\x00\x00\xcd\x06\x9d\x01\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x01\x56\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x06\x00\x00\x2f\x00\x17\x01\x00\x00\xf9\xff\x0b\x00\x91\x01\x8c\x07\x00\x00\x05\x00\x6f\x01\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x01\x00\x00\x00\x00\x00\x00\x36\x01\x00\x00\x25\x01\xf7\xff\x04\x08\xce\x00\x00\x00\x5e\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x01\x1c\x00\x00\x00\xec\xff\x04\x08\x60\x06\xd5\xff\x04\x08\x00\x00\x00\x00\x00\x00\x04\x08\x00\x00\x00\x00\xc5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\x39\xff\x00\x00\x00\x00\x00\x00\x00\x00\x27\xff\x00\x00\x00\x00\x24\xff\x00\x00\x00\x00\x1f\xff\x00\x00\x1d\xff\x00\x00\x00\x00\x1a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x15\xff\x14\xff\x0f\xff\x0f\xff\xa5\xff\x8a\xff\x58\xff\x59\xff\xac\xff\x57\xff\x5c\xff\x0f\xff\xb5\xff\x41\xff\x43\xff\x3f\xff\x42\xff\x40\xff\x63\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xff\x00\x00\x49\xff\x48\xff\x47\xff\x4a\xff\x45\xff\x46\xff\x44\xff\x4b\xff\x00\x00\x60\xff\x0f\xff\x0f\xff\x00\x00\x0f\xff\x00\x00\x00\x00\x00\x00\x39\xff\xf0\xff\xf8\xff\x39\xff\x00\x00\xf6\xff\xe0\xff\xf7\xff\xc3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\xff\xc8\xff\xca\xff\xc9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\xee\xff\x0f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\xcd\xff\xcc\xff\xcb\xff\x00\x00\x0f\xff\x0f\xff\xde\xff\x0f\xff\x00\x00\xaf\xff\x0f\xff\x0f\xff\x39\xff\x39\xff\x39\xff\x39\xff\xc4\xff\xc3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x7a\xff\x00\x00\x0f\xff\x10\xff\x7a\xff\x00\x00\x10\xff\x10\xff\x0f\xff\x0f\xff\x0f\xff\x64\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x00\x00\x00\x00\xce\xff\xcd\xff\x7c\xff\x7b\xff\x0f\xff\x0f\xff\x0f\xff\x00\x00\x6b\xff\x00\x00\x00\x00\x00\x00\x7a\xff\x00\x00\x10\xff\x00\x00\x00\x00\x10\xff\x00\x00\x0f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x1e\xff\x0f\xff\x00\x00\x0f\xff\x00\x00\x0f\xff\x26\xff\x9e\xff\x28\xff\x00\x00\x0f\xff\x0f\xff\x67\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x10\xff\x00\x00\x0f\xff\x00\x00\x0f\xff\x0f\xff\x61\xff\x00\x00\xa3\xff\x00\x00\x00\x00\x00\x00\xa0\xff\x0f\xff\x00\x00\x00\x00\x00\x00\x0f\xff\x00\x00\xab\xff\x00\x00\x00\x00\x10\xff\x0f\xff\x10\xff\x0f\xff\x10\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x65\xff\x0f\xff\x7c\xff\x7b\xff\x0f\xff\x0f\xff\x00\x00\x5b\xff\x0f\xff\x00\x00\x10\xff\x10\xff\x10\xff\x5f\xff\x5e\xff\x0f\xff\x0f\xff\x00\x00\x4f\xff\x00\x00\x00\x00\x66\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\xe0\xff\x00\x00\x00\x00\x00\x00\xe3\xff\x00\x00\x78\xff\xd9\xff\x75\xff\x98\xff\xc3\xff\x00\x00\xea\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x10\xff\x10\xff\x0f\xff\x00\x00\x10\xff\x10\xff\x00\x00\x00\x00\x00\x00\xb4\xff\x00\x00\xb9\xff\xb7\xff\xb6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xff\x00\x00\x39\xff\x00\x00\x00\x00\x00\x00\xf5\xff\x00\x00\x0f\xff\x00\x00\xc7\xff\x00\x00\xf9\xff\x00\x00\x95\xff\x35\xff\x00\x00\x38\xff\x00\x00\x0f\xff\x32\xff\x2e\xff\x00\x00\x00\x00\x0f\xff\x0f\xff\x00\x00\xba\xff\x0f\xff\x0f\xff\x0f\xff\xb1\xff\xb0\xff\x0f\xff\xdd\xff\x00\x00\xae\xff\xad\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\x0f\xff\x0f\xff\x00\x00\x0f\xff\xd9\xff\x00\x00\xd3\xff\xd7\xff\xd6\xff\xd4\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\x0f\xff\x0f\xff\x0f\xff\xe1\xff\x00\x00\xd1\xff\x00\x00\x0f\xff\x0f\xff\x00\x00\x7a\xff\x50\xff\x52\xff\x10\xff\x00\x00\xa8\xff\x62\xff\x90\xff\x0f\xff\x10\xff\x00\x00\x10\xff\x0f\xff\x53\xff\x10\xff\x10\xff\x10\xff\x10\xff\x10\xff\x10\xff\x10\xff\x00\x00\x10\xff\x00\x00\x10\xff\x00\x00\x0f\xff\x74\xff\x0f\xff\x6e\xff\x0f\xff\x71\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\xff\x00\x00\x0f\xff\x10\xff\x10\xff\xaa\xff\x10\xff\x0f\xff\x92\xff\x10\xff\x10\xff\x10\xff\x10\xff\x10\xff\x9d\xff\x8b\xff\x8e\xff\x8c\xff\x8d\xff\x8f\xff\x88\xff\xa9\xff\x89\xff\xa2\xff\x9f\xff\x00\x00\xa1\xff\x79\xff\x00\x00\x69\xff\x68\xff\x0f\xff\x10\xff\x10\xff\x10\xff\xb3\xff\x00\x00\x80\xff\x00\x00\x7f\xff\x00\x00\x5a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xff\x0f\xff\x00\x00\x00\x00\x00\x00\x0f\xff\x00\x00\x0f\xff\xcf\xff\x00\x00\x00\x00\x00\x00\x13\xff\x12\xff\x77\xff\x00\x00\x00\x00\xd2\xff\xd8\xff\x10\xff\x97\xff\x10\xff\xc3\xff\x10\xff\x00\x00\xe6\xff\x00\x00\xb8\xff\x10\xff\x10\xff\x39\xff\x0f\xff\x3e\xff\x00\x00\x2d\xff\x31\xff\x10\xff\x34\xff\x00\x00\x0f\xff\x00\x00\xc6\xff\xec\xff\x00\x00\x00\x00\xef\xff\x36\xff\x00\x00\xbf\xff\x2e\xff\xbe\xff\x3e\xff\x2a\xff\x2b\xff\x00\x00\x10\xff\x00\x00\xbd\xff\xbc\xff\x3b\xff\x00\x00\xda\xff\x00\x00\xdc\xff\xc0\xff\xc1\xff\x00\x00\x9b\xff\x00\x00\x00\x00\x11\xff\x00\x00\x0f\xff\x00\x00\x00\x00\x0f\xff\x10\xff\x00\x00\x4c\xff\x0f\xff\x10\xff\x0f\xff\x82\xff\x7e\xff\x83\xff\x86\xff\x84\xff\x85\xff\x87\xff\x7d\xff\x81\xff\xb2\xff\x6d\xff\x6c\xff\x10\xff\x73\xff\x72\xff\x00\x00\x10\xff\x56\xff\x10\xff\x0f\xff\x00\x00\x10\xff\x93\xff\x0f\xff\x10\xff\x00\x00\x76\xff\xd5\xff\x9c\xff\x00\x00\xeb\xff\xe4\xff\xdb\xff\x00\x00\x3c\xff\x3a\xff\x29\xff\x3d\xff\x2c\xff\x33\xff\x37\xff\xc5\xff\xe5\xff\x9a\xff\x00\x00\x0f\xff\xe7\xff\x10\xff\xa4\xff\x00\x00\x10\xff\x00\x00\x6a\xff\x70\xff\x4e\xff\x00\x00\x00\x00\xe9\xff\x10\xff\x99\xff\xe8\xff\x51\xff\x4d\xff"#
-
-happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x11\x00\x01\x00\x0b\x00\x02\x00\x0a\x00\x02\x00\x17\x00\x43\x00\x02\x00\x03\x00\x08\x00\x09\x00\x0c\x00\x02\x00\x13\x00\x17\x00\x10\x00\x0b\x00\x11\x00\x13\x00\x25\x00\x03\x00\x01\x00\x43\x00\x22\x00\x21\x00\x2b\x00\x20\x00\x2d\x00\x2e\x00\x0c\x00\x30\x00\x17\x00\x0c\x00\x33\x00\x1d\x00\x22\x00\x10\x00\x22\x00\x26\x00\x22\x00\x23\x00\x27\x00\x31\x00\x22\x00\x27\x00\x43\x00\x2e\x00\x41\x00\x2e\x00\x20\x00\x21\x00\x2e\x00\x17\x00\x3f\x00\x17\x00\x06\x00\x2e\x00\x44\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x02\x00\x03\x00\x3b\x00\x17\x00\x44\x00\x47\x00\x44\x00\x17\x00\x18\x00\x0b\x00\x4c\x00\x17\x00\x44\x00\x4f\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x45\x00\x3a\x00\x17\x00\x3a\x00\x01\x00\x47\x00\x1d\x00\x17\x00\x44\x00\x2e\x00\x4c\x00\x22\x00\x23\x00\x4f\x00\x33\x00\x02\x00\x27\x00\x02\x00\x69\x00\x10\x00\x06\x00\x22\x00\x6d\x00\x2e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x3d\x00\x3e\x00\x11\x00\x17\x00\x11\x00\x72\x00\x1a\x00\x02\x00\x03\x00\x17\x00\x18\x00\x69\x00\x3d\x00\x3e\x00\x3a\x00\x6d\x00\x0b\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x13\x00\x11\x00\x12\x00\x13\x00\x17\x00\x22\x00\x44\x00\x17\x00\x43\x00\x19\x00\x2e\x00\x2e\x00\x2e\x00\x1d\x00\x20\x00\x21\x00\x33\x00\x01\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x17\x00\x44\x00\x20\x00\x21\x00\x0c\x00\x0b\x00\x2e\x00\x2f\x00\x10\x00\x20\x00\x35\x00\x11\x00\x12\x00\x13\x00\x05\x00\x44\x00\x3b\x00\x17\x00\x72\x00\x19\x00\x22\x00\x22\x00\x22\x00\x1d\x00\x26\x00\x02\x00\x03\x00\x45\x00\x22\x00\x23\x00\x22\x00\x22\x00\x26\x00\x27\x00\x0b\x00\x01\x00\x22\x00\x4d\x00\x4e\x00\x45\x00\x2e\x00\x2f\x00\x52\x00\x53\x00\x22\x00\x55\x00\x0c\x00\x26\x00\x02\x00\x03\x00\x10\x00\x17\x00\x1d\x00\x13\x00\x44\x00\x44\x00\x44\x00\x22\x00\x23\x00\x4d\x00\x4e\x00\x21\x00\x27\x00\x44\x00\x44\x00\x44\x00\x6a\x00\x6b\x00\x6c\x00\x2e\x00\x44\x00\x4d\x00\x4e\x00\x22\x00\x72\x00\x1d\x00\x52\x00\x53\x00\x44\x00\x55\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x22\x00\x27\x00\x6a\x00\x6b\x00\x6c\x00\x0b\x00\x2e\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x6a\x00\x6b\x00\x6c\x00\x0f\x00\x22\x00\x47\x00\x22\x00\x44\x00\x72\x00\x1d\x00\x4c\x00\x17\x00\x43\x00\x4f\x00\x22\x00\x23\x00\x44\x00\x22\x00\x22\x00\x27\x00\x44\x00\x02\x00\x03\x00\x02\x00\x03\x00\x0f\x00\x2e\x00\x22\x00\x22\x00\x02\x00\x0b\x00\x55\x00\x0b\x00\x17\x00\x22\x00\x22\x00\x22\x00\x72\x00\x44\x00\x69\x00\x44\x00\x22\x00\x27\x00\x6d\x00\x11\x00\x6f\x00\x70\x00\x71\x00\x1d\x00\x22\x00\x1d\x00\x44\x00\x44\x00\x22\x00\x23\x00\x22\x00\x23\x00\x22\x00\x27\x00\x20\x00\x27\x00\x44\x00\x44\x00\x02\x00\x03\x00\x2e\x00\x27\x00\x2e\x00\x44\x00\x44\x00\x44\x00\x44\x00\x0b\x00\x2e\x00\x03\x00\x44\x00\x02\x00\x03\x00\x02\x00\x03\x00\x22\x00\x0b\x00\x0c\x00\x44\x00\x03\x00\x0b\x00\x44\x00\x0b\x00\x07\x00\x12\x00\x1d\x00\x44\x00\x02\x00\x03\x00\x72\x00\x22\x00\x23\x00\x10\x00\x27\x00\x43\x00\x27\x00\x0b\x00\x17\x00\x1d\x00\x17\x00\x1d\x00\x01\x00\x2e\x00\x22\x00\x23\x00\x22\x00\x23\x00\x21\x00\x27\x00\x44\x00\x27\x00\x43\x00\x02\x00\x03\x00\x1d\x00\x2e\x00\x10\x00\x2e\x00\x17\x00\x22\x00\x23\x00\x0b\x00\x44\x00\x01\x00\x27\x00\x02\x00\x03\x00\x20\x00\x72\x00\x17\x00\x72\x00\x2e\x00\x0a\x00\x0b\x00\x17\x00\x17\x00\x1e\x00\x17\x00\x10\x00\x1d\x00\x17\x00\x1e\x00\x1e\x00\x1d\x00\x22\x00\x23\x00\x1d\x00\x4d\x00\x4e\x00\x27\x00\x02\x00\x03\x00\x1d\x00\x40\x00\x20\x00\x42\x00\x2e\x00\x22\x00\x23\x00\x0b\x00\x0c\x00\x0d\x00\x27\x00\x17\x00\x43\x00\x11\x00\x1a\x00\x13\x00\x43\x00\x2e\x00\x72\x00\x02\x00\x03\x00\x02\x00\x03\x00\x17\x00\x6a\x00\x6b\x00\x6c\x00\x17\x00\x20\x00\x1d\x00\x0b\x00\x72\x00\x17\x00\x72\x00\x26\x00\x27\x00\x1b\x00\x1c\x00\x0a\x00\x08\x00\x09\x00\x0d\x00\x2e\x00\x2f\x00\x0c\x00\x31\x00\x1d\x00\x72\x00\x1d\x00\x02\x00\x43\x00\x22\x00\x23\x00\x22\x00\x23\x00\x17\x00\x27\x00\x19\x00\x27\x00\x3f\x00\x15\x00\x16\x00\x43\x00\x2e\x00\x44\x00\x2e\x00\x17\x00\x23\x00\x24\x00\x25\x00\x26\x00\x44\x00\x72\x00\x4d\x00\x4e\x00\x2b\x00\x1d\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x22\x00\x23\x00\x33\x00\x01\x00\x72\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x17\x00\x18\x00\x4d\x00\x4e\x00\x0a\x00\x10\x00\x53\x00\x0d\x00\x6a\x00\x6b\x00\x6c\x00\x16\x00\x36\x00\x18\x00\x03\x00\x40\x00\x1b\x00\x42\x00\x07\x00\x2a\x00\x2b\x00\x2c\x00\x02\x00\x03\x00\x08\x00\x09\x00\x25\x00\x10\x00\x33\x00\x28\x00\x43\x00\x6a\x00\x6b\x00\x6c\x00\x17\x00\x0b\x00\x0c\x00\x17\x00\x18\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x03\x00\x17\x00\x1d\x00\x43\x00\x07\x00\x1b\x00\x1c\x00\x22\x00\x23\x00\x2a\x00\x2b\x00\x43\x00\x27\x00\x10\x00\x44\x00\x49\x00\x4a\x00\x4b\x00\x33\x00\x2e\x00\x17\x00\x4f\x00\x50\x00\x17\x00\x18\x00\x43\x00\x01\x00\x02\x00\x56\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x15\x00\x16\x00\x42\x00\x43\x00\x0e\x00\x0f\x00\x10\x00\x2a\x00\x2b\x00\x17\x00\x27\x00\x19\x00\x16\x00\x43\x00\x18\x00\x43\x00\x33\x00\x1b\x00\x43\x00\x1d\x00\x52\x00\x23\x00\x24\x00\x25\x00\x22\x00\x23\x00\x43\x00\x25\x00\x26\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x2e\x00\x33\x00\x17\x00\x18\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x44\x00\x43\x00\x43\x00\x43\x00\x43\x00\x14\x00\x44\x00\x43\x00\x43\x00\x2a\x00\x2b\x00\x43\x00\x43\x00\x43\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x33\x00\x44\x00\x44\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x02\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x44\x00\x44\x00\x43\x00\x43\x00\x0e\x00\x0f\x00\x10\x00\x43\x00\x43\x00\x17\x00\x43\x00\x19\x00\x16\x00\x43\x00\x18\x00\x43\x00\x43\x00\x1b\x00\x43\x00\x1d\x00\x43\x00\x23\x00\x24\x00\x25\x00\x22\x00\x23\x00\x43\x00\x25\x00\x44\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x44\x00\x30\x00\x44\x00\x44\x00\x33\x00\x17\x00\x18\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x44\x00\x17\x00\x17\x00\x43\x00\x43\x00\x28\x00\x44\x00\x43\x00\x43\x00\x2a\x00\x2b\x00\x05\x00\x43\x00\x43\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x33\x00\x43\x00\x43\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x44\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x04\x00\x44\x00\x27\x00\x44\x00\x0e\x00\x0f\x00\x10\x00\x43\x00\x43\x00\x17\x00\x44\x00\x19\x00\x16\x00\x27\x00\x18\x00\x44\x00\x43\x00\x1b\x00\x43\x00\x1d\x00\x44\x00\x23\x00\x24\x00\x25\x00\x02\x00\x03\x00\x43\x00\x25\x00\x43\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x0b\x00\x30\x00\x44\x00\x43\x00\x33\x00\x43\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x43\x00\x27\x00\x44\x00\x1d\x00\x44\x00\x44\x00\x44\x00\x44\x00\x22\x00\x23\x00\x04\x00\x17\x00\x17\x00\x27\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x17\x00\x0c\x00\x2e\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x05\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x44\x00\x44\x00\x44\x00\x17\x00\x0e\x00\x0f\x00\x10\x00\x44\x00\x44\x00\x17\x00\x40\x00\x19\x00\x16\x00\x13\x00\x18\x00\x17\x00\x17\x00\x1b\x00\x15\x00\x1d\x00\x26\x00\x23\x00\x24\x00\x25\x00\x02\x00\x03\x00\x15\x00\x25\x00\x11\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x0b\x00\x30\x00\x2e\x00\x03\x00\x33\x00\x13\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x11\x00\x0b\x00\x26\x00\x1d\x00\x44\x00\x13\x00\x44\x00\x26\x00\x22\x00\x23\x00\x11\x00\x11\x00\x0c\x00\x27\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x0b\x00\x14\x00\x2e\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x2e\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x14\x00\x20\x00\x0b\x00\x31\x00\x0e\x00\x0f\x00\x10\x00\x0a\x00\x2e\x00\x17\x00\x11\x00\x19\x00\x16\x00\x11\x00\x18\x00\x11\x00\x11\x00\x1b\x00\x11\x00\x1d\x00\x11\x00\x23\x00\x24\x00\x25\x00\x02\x00\x03\x00\x11\x00\x25\x00\x2e\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x2e\x00\x30\x00\x13\x00\x0b\x00\x33\x00\x13\x00\x11\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x10\x00\x04\x00\x20\x00\x1d\x00\x26\x00\x04\x00\x44\x00\x20\x00\x22\x00\x23\x00\x13\x00\x20\x00\x26\x00\x27\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x26\x00\x11\x00\x2e\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x11\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x26\x00\x0a\x00\x15\x00\x13\x00\x0e\x00\x0f\x00\x10\x00\x13\x00\x13\x00\x17\x00\x11\x00\x19\x00\x16\x00\x13\x00\x18\x00\x26\x00\x0a\x00\x1b\x00\x56\x00\x1d\x00\x0c\x00\x23\x00\x24\x00\x25\x00\x0b\x00\x26\x00\x13\x00\x25\x00\x20\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x0d\x00\x30\x00\x13\x00\x11\x00\x33\x00\x11\x00\x26\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x31\x00\x11\x00\x0a\x00\x03\x00\x26\x00\x26\x00\x44\x00\x20\x00\x13\x00\x02\x00\x03\x00\x2f\x00\x0a\x00\x11\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x11\x00\x03\x00\x11\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x0a\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x10\x00\x55\x00\x0a\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x12\x00\x22\x00\x23\x00\x0b\x00\x11\x00\x16\x00\x27\x00\x18\x00\x0b\x00\x0b\x00\x1b\x00\x04\x00\x1d\x00\x2e\x00\x2f\x00\x02\x00\x03\x00\x02\x00\x03\x00\x01\x00\x25\x00\x04\x00\x12\x00\x28\x00\x04\x00\x10\x00\x10\x00\x3f\x00\x10\x00\x05\x00\x11\x00\x14\x00\x11\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x12\x00\x1d\x00\x12\x00\x1d\x00\x12\x00\x12\x00\x22\x00\x23\x00\x22\x00\x23\x00\x26\x00\x27\x00\x26\x00\x27\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x2e\x00\x0c\x00\x2e\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x20\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x72\x00\x72\x00\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x0c\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x17\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x1c\x00\xff\xff\x13\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x1d\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x22\x00\x23\x00\xff\xff\x02\x00\x03\x00\x27\x00\x33\x00\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x2e\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x01\x00\x12\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x16\x00\x27\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x2e\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x1d\x00\xff\xff\x2a\x00\x2b\x00\xff\xff\x22\x00\x23\x00\xff\xff\x02\x00\x03\x00\x27\x00\x33\x00\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x2e\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x01\x00\x12\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x16\x00\x27\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x2e\x00\xff\xff\x02\x00\x03\x00\x02\x00\x03\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x0b\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x1d\x00\xff\xff\x1d\x00\xff\xff\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x2e\x00\xff\xff\x2e\x00\x4f\x00\x50\x00\x51\x00\x01\x00\xff\xff\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0c\x00\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x17\x00\x18\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x2a\x00\x2b\x00\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x33\x00\xff\xff\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x19\x00\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x19\x00\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x02\x00\x03\x00\xff\xff\x01\x00\x2a\x00\x2b\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x33\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\xff\xff\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x17\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x25\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x16\x00\x2b\x00\x18\x00\x2d\x00\x2e\x00\x1b\x00\x30\x00\xff\xff\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x11\x00\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x11\x00\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x11\x00\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\xff\xff\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x11\x00\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\xff\xff\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x17\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x25\x00\xff\xff\x4f\x00\x50\x00\x17\x00\x16\x00\x2b\x00\x18\x00\x2d\x00\x2e\x00\x1b\x00\x30\x00\x2a\x00\x2b\x00\x33\x00\x34\x00\xff\xff\xff\xff\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x17\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x25\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x16\x00\x2b\x00\x18\x00\x2d\x00\x2e\x00\x1b\x00\x30\x00\x2a\x00\x2b\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x33\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x25\x00\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x02\x00\x03\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x0f\x00\x10\x00\xff\xff\x4f\x00\x50\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\x1d\x00\xff\xff\x22\x00\x23\x00\xff\xff\x22\x00\x23\x00\x27\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x11\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x4a\x00\x4b\x00\x0f\x00\x10\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x2e\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\x25\x00\xff\xff\x11\x00\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x25\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x4a\x00\x4b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x4a\x00\x4b\x00\x10\x00\xff\xff\xff\xff\x0a\x00\x17\x00\xff\xff\x0d\x00\x0e\x00\x18\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\x25\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x17\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x17\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\x11\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x17\x00\xff\xff\x17\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\x11\x00\x30\x00\xff\xff\xff\xff\x33\x00\xff\xff\x17\x00\xff\xff\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x25\x00\xff\xff\xff\xff\x27\x00\xff\xff\x17\x00\x2b\x00\x19\x00\x2d\x00\x2e\x00\x2e\x00\x30\x00\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\x17\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\x17\x00\xff\xff\x25\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x2e\x00\x2b\x00\x30\x00\x2d\x00\x2e\x00\x33\x00\x30\x00\x25\x00\x17\x00\x33\x00\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\x17\x00\x18\x00\x33\x00\x25\x00\xff\xff\xff\xff\xff\xff\x17\x00\x1f\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x29\x00\x2a\x00\x2b\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\x33\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
-
-happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\x7f\x00\x22\x00\x03\x02\xe1\x00\xd8\x00\xe1\x00\x17\x00\x57\x02\xaf\x00\xb0\x00\xd3\x01\x5c\x01\x50\x00\xe1\x00\x14\x01\x8a\x00\x51\x00\x20\xff\x75\xff\xfc\xff\x1b\x00\xb0\x00\x22\x00\x52\x02\xac\x00\x31\x02\x1c\x00\x15\x01\x80\x00\x1e\x00\xdf\xff\x1f\x00\x42\x01\x50\x00\x20\x00\xb1\x00\xac\x00\x51\x00\xac\x00\x75\xff\xb2\x00\xb3\x00\x93\x01\x7a\xff\xac\x00\xb4\x00\x54\x02\xe3\x00\x81\x00\xe3\x00\xdf\xff\xdf\xff\xb5\x00\x2a\x01\x56\x00\x2a\x01\x09\x01\xe3\x00\x4d\x02\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xaf\x00\xb0\x00\xec\x01\x34\x02\xad\x00\x59\x00\x2d\x02\x73\x00\x74\x00\x22\xff\x5a\x00\xe9\x01\x30\x02\x5b\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xdf\xff\x42\x02\xe9\x01\x2b\x01\x22\x00\x59\x00\xb1\x00\x2a\x01\x55\x02\x75\x00\x5a\x00\xb2\x00\xb3\x00\x5b\x00\x76\x00\xe1\x00\xb4\x00\xe1\x00\x5c\x00\x51\x00\x72\x00\xac\x00\x5d\x00\xb5\x00\x5e\x00\x5f\x00\x60\x00\xfc\xff\x41\x02\xeb\x01\x1b\x02\xa8\x00\xe2\x00\x20\xff\xaf\x01\xaf\x00\xb0\x00\x73\x00\x74\x00\x5c\x00\xea\x01\xeb\x01\x2d\x01\x5d\x00\xa7\xff\x5e\x00\x5f\x00\x60\x00\xfc\xff\x41\x01\xa7\xff\xa7\xff\xa7\xff\x42\x01\xac\x00\xad\x00\xa7\xff\x49\x02\xa7\xff\xe3\x00\x75\x00\xe3\x00\xb1\x00\x0c\x01\x0d\x01\x76\x00\x22\x00\xb2\x00\xb3\x00\xaf\x00\xb0\x00\xa7\xff\xb4\x00\x2e\x01\x4a\x02\x23\x01\x24\x01\x50\x00\xa6\xff\xb5\x00\xa7\xff\x51\x00\x3c\x01\x43\x01\xa6\xff\xa6\xff\xa6\xff\x38\x02\x15\x02\x44\x01\xa6\xff\x22\xff\xa6\xff\xac\x00\xac\x00\xac\x00\xb1\x00\xec\x00\xaf\x00\xb0\x00\x0e\x01\xb2\x00\xb3\x00\xac\x00\xac\x00\xa6\xff\xb4\x00\x25\xff\x22\x00\xac\x00\xa7\xff\xa7\xff\x0e\x01\xb5\x00\xa6\xff\xa7\xff\xa7\xff\xac\x00\xa7\xff\x50\x00\x39\x02\xaf\x00\xb0\x00\x51\x00\x71\x01\xb1\x00\xfc\xff\xad\x00\xad\x00\x74\x01\xb2\x00\xb3\x00\x5e\x01\x5f\x01\x8b\x00\xb4\x00\x2b\x02\x83\x01\x85\x01\xa7\xff\xa7\xff\xa7\xff\xb5\x00\x87\x01\xa6\xff\xa6\xff\xac\x00\xa7\xff\xb1\x00\xa6\xff\xa6\xff\x89\x01\xa6\xff\xb2\x00\xb3\x00\xaf\x00\xb0\x00\x14\x02\xb4\x00\xac\x00\x75\x01\x60\x01\x61\x01\x62\x01\x23\xff\xb5\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xa6\xff\xa6\xff\xa6\xff\x44\x02\xac\x00\x59\x00\xac\x00\xad\x00\xa6\xff\xb1\x00\x5a\x00\x33\x01\x4b\x02\x5b\x00\xb2\x00\xb3\x00\xb5\x00\xac\x00\xac\x00\xb4\x00\x9e\x01\xaf\x00\xb0\x00\xaf\x00\xb0\x00\x32\x01\xb5\x00\xac\x00\xac\x00\xe1\x00\x21\xff\x94\xff\x1c\xff\x33\x01\xe3\x00\xac\x00\xac\x00\x25\xff\xa1\x01\x5c\x00\xa2\x01\xac\x00\xf4\x00\x5d\x00\x91\x01\x5e\x00\x5f\x00\x60\x00\xb1\x00\xac\x00\xb1\x00\xa3\x01\xa4\x01\xb2\x00\xb3\x00\xb2\x00\xb3\x00\xe3\x00\xb4\x00\x92\x01\xb4\x00\xa5\x01\xad\x00\xaf\x00\xb0\x00\xb5\x00\x93\x01\xb5\x00\xe4\x00\xad\x00\xf8\x00\x20\x01\x1b\xff\xe3\x00\x8f\x00\xfa\x00\xaf\x00\xb0\x00\xaf\x00\xb0\x00\xac\x00\xd1\x01\x08\x01\xad\x00\x06\x02\x19\xff\x33\x02\x18\xff\x3b\x02\x90\x00\xb1\x00\xe4\x00\xaf\x00\xb0\x00\x23\xff\xb2\x00\xb3\x00\x48\x00\xf4\x00\x4e\x02\xb4\x00\x17\xff\x8a\x00\xb1\x00\x4a\x00\xb1\x00\x22\x00\xb5\x00\xb2\x00\xb3\x00\xb2\x00\xb3\x00\x8b\x00\xb4\x00\xad\x00\xb4\x00\x4f\x02\xaf\x00\xb0\x00\xb1\x00\xb5\x00\x51\x00\xb5\x00\x2e\x01\xb2\x00\xb3\x00\x16\xff\xb5\x00\x22\x00\xb4\x00\xaf\x00\xb0\x00\x2f\x01\x21\xff\x0c\x02\x1c\xff\xb5\x00\x46\x01\x47\x01\x0c\x02\x0c\x02\x56\x02\xc3\x00\x51\x00\xb1\x00\xc3\x00\x46\x02\x0d\x02\xdd\x01\xb2\x00\xb3\x00\xa6\x01\x5e\x01\x5f\x01\xb4\x00\x6f\xff\xb0\x00\xb1\x00\x64\x01\x48\x01\x0f\x02\xb5\x00\xb2\x00\xb3\x00\x6f\xff\x6f\xff\x6f\xff\xb4\x00\xa8\x00\x2a\x02\x6f\xff\xa9\x00\x6f\xff\x2c\x02\xb5\x00\x1b\xff\xaf\x00\xb0\x00\xaf\x00\xb0\x00\xc3\x00\x60\x01\x61\x01\x62\x01\x3c\x02\x6f\xff\xc4\x00\xd9\xff\x19\xff\xd8\x00\x18\xff\x6f\xff\x6f\xff\xb2\x01\xda\x00\x95\x01\xdb\x01\x5c\x01\x7a\xff\x6f\xff\x6f\xff\x6d\x00\x6f\xff\xb1\x00\x17\xff\xb1\x00\x6f\x00\x2f\x02\xb2\x00\xb3\x00\xb2\x00\xb3\x00\x98\x00\xb4\x00\x99\x00\xb4\x00\x6f\xff\xe4\x01\x26\x01\x3e\x02\xb5\x00\x6f\xff\xb5\x00\xf5\x01\x19\x00\x1a\x00\x1b\x00\x9a\x00\x00\x02\x16\xff\x6f\xff\x6f\xff\x1c\x00\x70\x00\x1d\x00\x1e\x00\x9b\x00\x1f\x00\x71\x00\x72\x00\x20\x00\x22\x00\xff\xff\x83\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x84\x00\x73\x00\xa2\x00\x5e\x01\x5f\x01\xd8\x00\x2b\x00\xd0\x01\x7a\xff\x6f\xff\x6f\xff\x6f\xff\x2c\x00\x01\x02\x2d\x00\x06\x02\x64\x01\x2e\x00\x65\x01\x07\x02\xb5\x01\xa4\x00\xb6\x01\xaf\x00\xb0\x00\x5b\x01\x5c\x01\x30\x00\x48\x00\x76\x00\x31\x00\xf9\x01\x60\x01\x61\x01\x62\x01\x4a\x00\x07\x01\x08\x01\x73\x00\xa2\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x06\x02\xd8\x00\xb1\x00\x03\x02\x12\x02\xd9\x00\xda\x00\xb2\x00\xb3\x00\x28\x02\xa4\x00\x04\x02\xb4\x00\x48\x00\x19\x02\x3b\x00\x3c\x00\x3d\x00\x76\x00\xb5\x00\x4a\x00\x3e\x00\x3f\x00\x73\x00\xa2\x00\x08\x02\x22\x00\x9d\x00\x85\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x25\x01\x26\x01\x28\x01\x29\x01\x29\x00\x2a\x00\x2b\x00\x29\x02\xa4\x00\x17\x00\xcd\x01\x7d\x01\x2c\x00\x0a\x02\x2d\x00\x0b\x02\x76\x00\x2e\x00\x24\x02\x9e\x00\x05\x01\x19\x00\x1a\x00\x1b\x00\x9f\x00\xa0\x00\x25\x02\x30\x00\xa1\x00\x1c\x00\x31\x00\x1d\x00\x1e\x00\x7e\x01\x1f\x00\x26\x02\xa2\x00\x20\x00\x73\x00\xa2\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x27\x02\xa7\x01\xa8\x01\xa9\x01\xaa\x01\x6b\x00\x7f\x01\xab\x01\xac\x01\xb7\x01\xa4\x00\xad\x01\xae\x01\xbc\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x76\x00\xb8\x01\xb9\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x6f\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xba\x01\xdc\x01\xbe\x01\xc0\x01\x29\x00\x2a\x00\x2b\x00\xc1\x01\xc2\x01\x17\x00\xc3\x01\xc9\x00\x2c\x00\xc4\x01\x2d\x00\xc5\x01\xc6\x01\x2e\x00\xc7\x01\x9e\x00\xc9\x01\x19\x00\x1a\x00\x1b\x00\x71\x00\x72\x00\xcc\x01\x30\x00\xde\x01\x1c\x00\x31\x00\x1d\x00\x1e\x00\xe0\x01\x1f\x00\xe5\x01\xe6\x01\x20\x00\x73\x00\xa2\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xed\x01\xef\x01\x39\x01\x4d\x01\x4e\x01\x62\x01\x7c\x01\x52\x01\x53\x01\xc8\x01\xa4\x00\x6a\x01\x76\x01\x77\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x76\x00\x78\x01\x86\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x7a\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x0a\x01\x82\x01\xd6\x00\x84\x01\x29\x00\x2a\x00\x2b\x00\x88\x01\x8a\x01\x17\x00\x9b\x01\xcd\x00\x2c\x00\x02\x01\x2d\x00\x9c\x01\xa0\x01\x2e\x00\xc8\x00\x2f\x00\xce\x00\x19\x00\x1a\x00\x1b\x00\xaf\x00\xb0\x00\xd1\x00\x30\x00\xd4\x00\x1c\x00\x31\x00\x1d\x00\x1e\x00\xf7\x01\x1f\x00\xf9\x00\xfb\x00\x20\x00\xfc\x00\xbf\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x03\x01\x06\x01\x1b\x01\xb1\x00\x1c\x01\x1f\x01\x80\x01\x20\x01\xb2\x00\xb3\x00\x21\x01\x29\x01\x2c\x01\xb4\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x67\x00\x6d\x00\xb5\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x85\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x8d\x00\x90\x00\x91\x00\x93\x00\x29\x00\x2a\x00\x2b\x00\xaa\x00\xb5\x00\x17\x00\x04\x00\xd0\x00\x2c\x00\x59\x02\x2d\x00\xbc\x00\xc2\x00\x2e\x00\x46\x02\x2f\x00\x48\x02\x19\x00\x1a\x00\x1b\x00\xaf\x00\xb0\x00\x49\x02\x30\x00\x51\x02\x1c\x00\x31\x00\x1d\x00\x1e\x00\xd5\x01\x1f\x00\xe3\x00\x00\x00\x20\x00\x33\x02\xc1\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x37\x02\x3a\x02\xf5\x01\xb1\x00\x3e\x02\x3b\x02\x81\x01\xf9\x01\xb2\x00\xb3\x00\x44\x02\xf8\x01\xfb\x01\xb4\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xfc\x01\x06\x02\xb5\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x0f\x02\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x11\x02\x17\x02\x12\x02\xcc\x01\x29\x00\x2a\x00\x2b\x00\xd8\x00\xb2\x01\x17\x00\x1c\x02\xe5\x00\x2c\x00\x1d\x02\x2d\x00\x1e\x02\x1f\x02\x2e\x00\x20\x02\x2f\x00\xbe\x01\x19\x00\x1a\x00\x1b\x00\xaf\x00\xb0\x00\xc0\x01\x30\x00\xb5\x01\x1c\x00\x31\x00\x1d\x00\x1e\x00\xe3\x00\x1f\x00\xd6\x01\xd7\x01\x20\x00\xd9\x01\x54\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xda\x01\xdb\x01\xe9\x01\xb1\x00\xf2\x01\xf3\x01\xe6\x00\x38\x01\xb2\x00\xb3\x00\x39\x01\x3c\x01\x52\x01\xb4\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3f\x01\x3e\x01\xb5\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x40\x01\x02\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x49\x01\x41\x01\x4a\x01\x55\x01\x29\x00\x2a\x00\x2b\x00\x56\x01\x57\x01\x17\x00\x50\x01\xe7\x00\x2c\x00\x58\x01\x2d\x00\x5b\x01\x64\x01\x2e\x00\x67\x01\x2f\x00\x87\x00\x19\x00\x1a\x00\x1b\x00\x6d\x01\x6c\x01\x74\x01\x30\x00\x6e\x01\x1c\x00\x31\x00\x1d\x00\x1e\x00\x7c\x01\x1f\x00\x8c\x01\x90\x01\x20\x00\x94\x01\x96\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x71\x01\x97\x01\x98\x01\x00\x00\x9a\x01\xc6\x00\xe8\x00\xd0\x00\xd3\x00\xaf\x00\xb0\x00\xd6\x00\xd8\x00\xcb\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xcc\xff\x00\x00\xeb\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\xd8\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x32\x01\x06\x01\xd8\x00\xb1\x00\x29\x00\x2a\x00\x2b\x00\x0f\x01\xb2\x00\xb3\x00\x16\x01\x25\x01\x2c\x00\xb4\x00\x2d\x00\x31\x01\x35\x01\x2e\x00\x61\x00\x2f\x00\xb5\x00\x36\x01\xaf\x00\xb0\x00\xee\x00\xb0\x00\x64\x00\x30\x00\x62\x00\x65\x00\x31\x00\x67\x00\x69\x00\x6a\x00\x66\x00\x6b\x00\x88\x00\x51\x01\x6d\x00\xef\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x7c\x00\xb1\x00\x7d\x00\xf0\x00\x7e\x00\x7f\x00\xb2\x00\xb3\x00\xf1\x00\xf2\x00\x52\x01\xb4\x00\xf3\x00\xb4\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x87\x00\xf4\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\xac\x00\x02\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x6d\x00\xaf\x00\xb0\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\xdb\x00\xa2\x00\x00\x00\x00\x00\xdc\x00\xda\x00\x00\x00\x91\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\xb1\x00\x00\x00\xdd\x00\xa4\x00\xde\x00\xb2\x00\xb3\x00\x00\x00\xaf\x00\xb0\x00\xb4\x00\x76\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\xd3\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\x2c\x00\xb4\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\xb5\x00\x00\x00\xaf\x00\xb0\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x73\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\xb1\x00\x00\x00\xd7\x01\xa4\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\xaf\x00\xb0\x00\xb4\x00\x76\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\xe2\x01\x02\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\x2c\x00\xb4\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\xb5\x00\x00\x00\xaf\x00\xb0\x00\xaf\x00\xb0\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\xe3\x01\x00\x00\xe4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\xb1\x00\x00\x00\xb1\x00\x00\x00\x00\x00\xb2\x00\xb3\x00\xb2\x00\xb3\x00\x00\x00\xb4\x00\x00\x00\xb4\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x00\x00\xb5\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x6d\x00\x5a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x73\x00\xa2\x00\x17\x00\x2c\x00\x1d\x01\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x8c\x01\xa4\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1e\x01\x1f\x00\x76\x00\x00\x00\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xaf\x00\xb0\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x52\x02\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\xf7\x00\x2c\x00\x00\x00\x2d\x00\xb1\x00\x00\x00\x2e\x00\x00\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\xf8\x00\xb4\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xaf\x00\xb0\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x4d\x02\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\xcb\x01\x2c\x00\x00\x00\x2d\x00\xb1\x00\x00\x00\x2e\x00\x00\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\x00\x00\xb4\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\xb5\x00\x73\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xaf\x00\xb0\x00\x00\x00\x22\x00\x8d\x01\xa4\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x02\x76\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\xb1\x00\x00\x00\x2e\x00\x00\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\x00\x00\xb4\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x83\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x00\x00\x0f\x01\x3e\x00\x3f\x00\xfd\x00\x2c\x00\xfe\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x35\x02\x11\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x53\x02\x00\x01\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x17\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x18\x02\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x1b\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x2c\x00\x1c\x00\x2d\x00\xfc\x01\x1e\x00\x2e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\xfe\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x21\x02\x0f\x01\x3e\x00\x3f\x00\xfd\x00\x2c\x00\xfe\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x3f\x02\x11\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x72\x01\x00\x01\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x22\x02\x0f\x01\x3e\x00\x3f\x00\xfd\x00\x2c\x00\xfe\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\xb0\x01\x11\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\xff\x00\x00\x01\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x23\x02\x0f\x01\x3e\x00\x3f\x00\x17\x00\x2c\x00\x7d\x01\x2d\x00\x00\x00\x00\x00\x2e\x00\xb0\x01\xb3\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x7e\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x24\x02\x0f\x01\x3e\x00\x3f\x00\x17\x00\x2c\x00\x2e\x02\x2d\x00\x00\x00\x00\x00\x2e\x00\xe7\x01\x11\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x83\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x00\x00\x0f\x01\x3e\x00\x3f\x00\x17\x00\x2c\x00\x14\x02\x2d\x00\x00\x00\x00\x00\x2e\x00\xee\x01\x11\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x17\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x1b\x00\x00\x00\x3e\x00\x3f\x00\x17\x00\x2c\x00\x1c\x00\x2d\x00\xfc\x01\x1e\x00\x2e\x00\x1f\x00\x98\x01\xa4\x00\x20\x00\x40\x02\x00\x00\x00\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x9d\x01\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x17\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x1b\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x2c\x00\x1c\x00\x2d\x00\x9d\x01\x1e\x00\x2e\x00\x1f\x00\xa3\x00\xa4\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x00\xb0\x00\x22\x00\x6f\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\xa7\x00\x00\x00\x00\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x00\x00\x00\x00\x70\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x71\x00\x72\x00\xb4\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\x00\x00\x00\x00\xaf\x00\xb0\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xa8\x00\x00\x00\x00\x00\x8f\x01\x22\x00\x00\x00\x13\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x7a\x00\x7b\x00\xa6\x00\xa7\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\xb5\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x79\x00\x00\x00\x09\x02\x00\x00\xa6\x00\xa7\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xa8\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x79\x00\x00\x00\x1c\x00\x00\x00\x80\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x7a\x00\x7b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xa8\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x3a\x01\x42\x00\x43\x00\x44\x00\x00\x00\x7a\x00\x7b\x00\x78\x00\x00\x00\x00\x00\x45\x00\x17\x00\x00\x00\x46\x00\x47\x00\x2d\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x79\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xbb\x01\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x17\x01\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x18\x01\x42\x00\x43\x00\x44\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x01\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x1a\x01\x42\x00\x43\x00\x44\x00\x4a\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x89\x00\x42\x00\x43\x00\x44\x00\x4a\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x59\x01\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x00\x00\xaf\x00\xb0\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x01\x1c\x00\x00\x00\x80\x00\x1e\x00\x16\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x17\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x00\xb3\x00\x1b\x00\x00\x00\x00\x00\xb4\x00\x00\x00\x17\x00\x1c\x00\x18\x02\x80\x00\x1e\x00\xb5\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xce\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xf0\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x36\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4a\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4b\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4c\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x58\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x67\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x68\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x69\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x6e\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x6f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x79\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcc\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9a\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc6\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc7\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc9\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xca\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcc\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xdf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x94\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xe9\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xeb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x62\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x8c\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x92\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x94\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x96\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x97\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xb6\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xb7\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xb8\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xb9\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xba\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc1\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x18\x00\x1c\x00\x17\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x17\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1c\x00\x1f\x00\x9d\x01\x1e\x00\x20\x00\x1f\x00\x1b\x00\x17\x00\x20\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x9d\x01\x1e\x00\x00\x00\x1f\x00\x73\x00\xa2\x00\x20\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x17\x00\x0f\x01\x1c\x00\x00\x00\xd3\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x10\x01\x11\x01\xa4\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x76\x00\x95\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyReduceArr = array (3, 241) [
-	(3 , happyReduce_3),
-	(4 , happyReduce_4),
-	(5 , happyReduce_5),
-	(6 , happyReduce_6),
-	(7 , happyReduce_7),
-	(8 , happyReduce_8),
-	(9 , happyReduce_9),
-	(10 , happyReduce_10),
-	(11 , happyReduce_11),
-	(12 , happyReduce_12),
-	(13 , happyReduce_13),
-	(14 , happyReduce_14),
-	(15 , happyReduce_15),
-	(16 , happyReduce_16),
-	(17 , happyReduce_17),
-	(18 , happyReduce_18),
-	(19 , happyReduce_19),
-	(20 , happyReduce_20),
-	(21 , happyReduce_21),
-	(22 , happyReduce_22),
-	(23 , happyReduce_23),
-	(24 , happyReduce_24),
-	(25 , happyReduce_25),
-	(26 , happyReduce_26),
-	(27 , happyReduce_27),
-	(28 , happyReduce_28),
-	(29 , happyReduce_29),
-	(30 , happyReduce_30),
-	(31 , happyReduce_31),
-	(32 , happyReduce_32),
-	(33 , happyReduce_33),
-	(34 , happyReduce_34),
-	(35 , happyReduce_35),
-	(36 , happyReduce_36),
-	(37 , happyReduce_37),
-	(38 , happyReduce_38),
-	(39 , happyReduce_39),
-	(40 , happyReduce_40),
-	(41 , happyReduce_41),
-	(42 , happyReduce_42),
-	(43 , happyReduce_43),
-	(44 , happyReduce_44),
-	(45 , happyReduce_45),
-	(46 , happyReduce_46),
-	(47 , happyReduce_47),
-	(48 , happyReduce_48),
-	(49 , happyReduce_49),
-	(50 , happyReduce_50),
-	(51 , happyReduce_51),
-	(52 , happyReduce_52),
-	(53 , happyReduce_53),
-	(54 , happyReduce_54),
-	(55 , happyReduce_55),
-	(56 , happyReduce_56),
-	(57 , happyReduce_57),
-	(58 , happyReduce_58),
-	(59 , happyReduce_59),
-	(60 , happyReduce_60),
-	(61 , happyReduce_61),
-	(62 , happyReduce_62),
-	(63 , happyReduce_63),
-	(64 , happyReduce_64),
-	(65 , happyReduce_65),
-	(66 , happyReduce_66),
-	(67 , happyReduce_67),
-	(68 , happyReduce_68),
-	(69 , happyReduce_69),
-	(70 , happyReduce_70),
-	(71 , happyReduce_71),
-	(72 , happyReduce_72),
-	(73 , happyReduce_73),
-	(74 , happyReduce_74),
-	(75 , happyReduce_75),
-	(76 , happyReduce_76),
-	(77 , happyReduce_77),
-	(78 , happyReduce_78),
-	(79 , happyReduce_79),
-	(80 , happyReduce_80),
-	(81 , happyReduce_81),
-	(82 , happyReduce_82),
-	(83 , happyReduce_83),
-	(84 , happyReduce_84),
-	(85 , happyReduce_85),
-	(86 , happyReduce_86),
-	(87 , happyReduce_87),
-	(88 , happyReduce_88),
-	(89 , happyReduce_89),
-	(90 , happyReduce_90),
-	(91 , happyReduce_91),
-	(92 , happyReduce_92),
-	(93 , happyReduce_93),
-	(94 , happyReduce_94),
-	(95 , happyReduce_95),
-	(96 , happyReduce_96),
-	(97 , happyReduce_97),
-	(98 , happyReduce_98),
-	(99 , happyReduce_99),
-	(100 , happyReduce_100),
-	(101 , happyReduce_101),
-	(102 , happyReduce_102),
-	(103 , happyReduce_103),
-	(104 , happyReduce_104),
-	(105 , happyReduce_105),
-	(106 , happyReduce_106),
-	(107 , happyReduce_107),
-	(108 , happyReduce_108),
-	(109 , happyReduce_109),
-	(110 , happyReduce_110),
-	(111 , happyReduce_111),
-	(112 , happyReduce_112),
-	(113 , happyReduce_113),
-	(114 , happyReduce_114),
-	(115 , happyReduce_115),
-	(116 , happyReduce_116),
-	(117 , happyReduce_117),
-	(118 , happyReduce_118),
-	(119 , happyReduce_119),
-	(120 , happyReduce_120),
-	(121 , happyReduce_121),
-	(122 , happyReduce_122),
-	(123 , happyReduce_123),
-	(124 , happyReduce_124),
-	(125 , happyReduce_125),
-	(126 , happyReduce_126),
-	(127 , happyReduce_127),
-	(128 , happyReduce_128),
-	(129 , happyReduce_129),
-	(130 , happyReduce_130),
-	(131 , happyReduce_131),
-	(132 , happyReduce_132),
-	(133 , happyReduce_133),
-	(134 , happyReduce_134),
-	(135 , happyReduce_135),
-	(136 , happyReduce_136),
-	(137 , happyReduce_137),
-	(138 , happyReduce_138),
-	(139 , happyReduce_139),
-	(140 , happyReduce_140),
-	(141 , happyReduce_141),
-	(142 , happyReduce_142),
-	(143 , happyReduce_143),
-	(144 , happyReduce_144),
-	(145 , happyReduce_145),
-	(146 , happyReduce_146),
-	(147 , happyReduce_147),
-	(148 , happyReduce_148),
-	(149 , happyReduce_149),
-	(150 , happyReduce_150),
-	(151 , happyReduce_151),
-	(152 , happyReduce_152),
-	(153 , happyReduce_153),
-	(154 , happyReduce_154),
-	(155 , happyReduce_155),
-	(156 , happyReduce_156),
-	(157 , happyReduce_157),
-	(158 , happyReduce_158),
-	(159 , happyReduce_159),
-	(160 , happyReduce_160),
-	(161 , happyReduce_161),
-	(162 , happyReduce_162),
-	(163 , happyReduce_163),
-	(164 , happyReduce_164),
-	(165 , happyReduce_165),
-	(166 , happyReduce_166),
-	(167 , happyReduce_167),
-	(168 , happyReduce_168),
-	(169 , happyReduce_169),
-	(170 , happyReduce_170),
-	(171 , happyReduce_171),
-	(172 , happyReduce_172),
-	(173 , happyReduce_173),
-	(174 , happyReduce_174),
-	(175 , happyReduce_175),
-	(176 , happyReduce_176),
-	(177 , happyReduce_177),
-	(178 , happyReduce_178),
-	(179 , happyReduce_179),
-	(180 , happyReduce_180),
-	(181 , happyReduce_181),
-	(182 , happyReduce_182),
-	(183 , happyReduce_183),
-	(184 , happyReduce_184),
-	(185 , happyReduce_185),
-	(186 , happyReduce_186),
-	(187 , happyReduce_187),
-	(188 , happyReduce_188),
-	(189 , happyReduce_189),
-	(190 , happyReduce_190),
-	(191 , happyReduce_191),
-	(192 , happyReduce_192),
-	(193 , happyReduce_193),
-	(194 , happyReduce_194),
-	(195 , happyReduce_195),
-	(196 , happyReduce_196),
-	(197 , happyReduce_197),
-	(198 , happyReduce_198),
-	(199 , happyReduce_199),
-	(200 , happyReduce_200),
-	(201 , happyReduce_201),
-	(202 , happyReduce_202),
-	(203 , happyReduce_203),
-	(204 , happyReduce_204),
-	(205 , happyReduce_205),
-	(206 , happyReduce_206),
-	(207 , happyReduce_207),
-	(208 , happyReduce_208),
-	(209 , happyReduce_209),
-	(210 , happyReduce_210),
-	(211 , happyReduce_211),
-	(212 , happyReduce_212),
-	(213 , happyReduce_213),
-	(214 , happyReduce_214),
-	(215 , happyReduce_215),
-	(216 , happyReduce_216),
-	(217 , happyReduce_217),
-	(218 , happyReduce_218),
-	(219 , happyReduce_219),
-	(220 , happyReduce_220),
-	(221 , happyReduce_221),
-	(222 , happyReduce_222),
-	(223 , happyReduce_223),
-	(224 , happyReduce_224),
-	(225 , happyReduce_225),
-	(226 , happyReduce_226),
-	(227 , happyReduce_227),
-	(228 , happyReduce_228),
-	(229 , happyReduce_229),
-	(230 , happyReduce_230),
-	(231 , happyReduce_231),
-	(232 , happyReduce_232),
-	(233 , happyReduce_233),
-	(234 , happyReduce_234),
-	(235 , happyReduce_235),
-	(236 , happyReduce_236),
-	(237 , happyReduce_237),
-	(238 , happyReduce_238),
-	(239 , happyReduce_239),
-	(240 , happyReduce_240),
-	(241 , happyReduce_241)
-	]
-
-happy_n_terms = 115 :: Int
-happy_n_nonterms = 70 :: Int
-
-happyReduce_3 = happySpecReduce_0  0# happyReduction_3
-happyReduction_3  =  happyIn6
-		 ([]
-	)
-
-happyReduce_4 = happySpecReduce_2  0# happyReduction_4
-happyReduction_4 happy_x_2
-	happy_x_1
-	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_5 = happySpecReduce_2  0# happyReduction_5
-happyReduction_5 happy_x_2
-	happy_x_1
-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (map RealDecl happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_6 = happyReduce 4# 0# happyReduction_6
-happyReduction_6 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	case happyOut6 happy_x_4 of { happy_var_4 -> 
-	happyIn6
-		 (RealDecl (PInclude happy_var_2) : happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_7 = happySpecReduce_1  1# happyReduction_7
-happyReduction_7 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (happy_var_1
-	)}
-
-happyReduce_8 = happySpecReduce_1  1# happyReduction_8
-happyReduction_8 happy_x_1
-	 =  case happyOut24 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl (DataDecl happy_var_1)
-	)}
-
-happyReduce_9 = happySpecReduce_1  1# happyReduction_9
-happyReduction_9 happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_10 = happySpecReduce_3  1# happyReduction_10
-happyReduction_10 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
-	happyIn7
-		 (RealDecl (Freeze happy_var_2)
-	)}
-
-happyReduce_11 = happyReduce 4# 1# happyReduction_11
-happyReduction_11 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut60 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_12 = happyReduce 4# 1# happyReduction_12
-happyReduction_12 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut61 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PDoUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_13 = happyReduce 4# 1# happyReduction_13
-happyReduction_13 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut62 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PIdiom happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_14 = happyReduce 4# 1# happyReduction_14
-happyReduction_14 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut63 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PParams happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_15 = happySpecReduce_1  1# happyReduction_15
-happyReduction_15 happy_x_1
-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_16 = happyReduce 6# 1# happyReduction_16
-happyReduction_16 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_2 of { happy_var_2 -> 
-	case happyOut38 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_5 of { happy_var_5 -> 
-	happyIn7
-		 (PSyntax happy_var_2 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_17 = happySpecReduce_2  1# happyReduction_17
-happyReduction_17 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CInclude happy_var_2)
-	)}
-
-happyReduce_18 = happySpecReduce_2  1# happyReduction_18
-happyReduction_18 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CLib happy_var_2)
-	)}
-
-happyReduce_19 = happyReduce 5# 2# happyReduction_19
-happyReduction_19 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn8
-		 (Transform happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_20 = happyReduce 7# 3# happyReduction_20
-happyReduction_20 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut14 happy_x_4 of { happy_var_4 -> 
-	case happyOut74 happy_x_5 of { happy_var_5 -> 
-	case happyOut73 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (FunType happy_var_1 happy_var_3 (nub happy_var_4) happy_var_5 happy_var_6
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_21 = happySpecReduce_3  3# happyReduction_21
-happyReduction_21 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut71 happy_x_2 of { happy_var_2 -> 
-	happyIn9
-		 (ProofScript happy_var_1 happy_var_2
-	)}}
-
-happyReduce_22 = happyReduce 9# 3# happyReduction_22
-happyReduction_22 (happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut22 happy_x_1 of { happy_var_1 -> 
-	case happyOut11 happy_x_2 of { happy_var_2 -> 
-	case happyOut10 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut13 happy_x_6 of { happy_var_6 -> 
-	case happyOut74 happy_x_8 of { happy_var_8 -> 
-	case happyOut73 happy_x_9 of { happy_var_9 -> 
-	happyIn9
-		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}}}}
-
-happyReduce_23 = happyReduce 10# 3# happyReduction_23
-happyReduction_23 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut22 happy_x_1 of { happy_var_1 -> 
-	case happyOut11 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut29 happy_x_7 of { happy_var_7 -> 
-	case happyOut74 happy_x_9 of { happy_var_9 -> 
-	case happyOut73 happy_x_10 of { happy_var_10 -> 
-	happyIn9
-		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_24 = happyReduce 8# 3# happyReduction_24
-happyReduction_24 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut22 happy_x_1 of { happy_var_1 -> 
-	case happyOut11 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut14 happy_x_5 of { happy_var_5 -> 
-	case happyOut74 happy_x_7 of { happy_var_7 -> 
-	case happyOut73 happy_x_8 of { happy_var_8 -> 
-	happyIn9
-		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_5)
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_25 = happyReduce 5# 3# happyReduction_25
-happyReduction_25 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn9
-		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
-	) `HappyStk` happyRest}}
-
-happyReduce_26 = happyReduce 8# 3# happyReduction_26
-happyReduction_26 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut29 happy_x_7 of { happy_var_7 -> 
-	happyIn9
-		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}
-
-happyReduce_27 = happyReduce 7# 3# happyReduction_27
-happyReduction_27 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut10 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut13 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_28 = happySpecReduce_1  4# happyReduction_28
-happyReduction_28 happy_x_1
-	 =  happyIn10
-		 (False
-	)
-
-happyReduce_29 = happySpecReduce_2  4# happyReduction_29
-happyReduction_29 happy_x_2
-	happy_x_1
-	 =  happyIn10
-		 (True
-	)
-
-happyReduce_30 = happySpecReduce_3  5# happyReduction_30
-happyReduction_30 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	happyIn11
-		 (happy_var_2:happy_var_3
-	)}}
-
-happyReduce_31 = happySpecReduce_0  5# happyReduction_31
-happyReduction_31  =  happyIn11
-		 ([]
-	)
-
-happyReduce_32 = happySpecReduce_1  6# happyReduction_32
-happyReduction_32 happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	happyIn12
-		 (happy_var_1
-	)}
-
-happyReduce_33 = happySpecReduce_1  6# happyReduction_33
-happyReduction_33 happy_x_1
-	 =  case happyOut52 happy_x_1 of { happy_var_1 -> 
-	happyIn12
-		 (happy_var_1
-	)}
-
-happyReduce_34 = happySpecReduce_3  6# happyReduction_34
-happyReduction_34 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn12
-		 (happy_var_2
-	)}
-
-happyReduce_35 = happyReduce 5# 6# happyReduction_35
-happyReduction_35 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut53 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn12
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_36 = happySpecReduce_2  7# happyReduction_36
-happyReduction_36 happy_x_2
-	happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	case happyOut13 happy_x_2 of { happy_var_2 -> 
-	happyIn13
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_37 = happySpecReduce_1  7# happyReduction_37
-happyReduction_37 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn13
-		 ([happy_var_1]
-	)}
-
-happyReduce_38 = happySpecReduce_0  8# happyReduction_38
-happyReduction_38  =  happyIn14
-		 ([]
-	)
-
-happyReduce_39 = happySpecReduce_2  8# happyReduction_39
-happyReduction_39 happy_x_2
-	happy_x_1
-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> 
-	case happyOut14 happy_x_2 of { happy_var_2 -> 
-	happyIn14
-		 (happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_40 = happySpecReduce_1  9# happyReduction_40
-happyReduction_40 happy_x_1
-	 =  happyIn15
-		 ([NoCG]
-	)
-
-happyReduce_41 = happySpecReduce_1  9# happyReduction_41
-happyReduction_41 happy_x_1
-	 =  happyIn15
-		 ([CGEval, Inline]
-	)
-
-happyReduce_42 = happyReduce 4# 9# happyReduction_42
-happyReduction_42 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut36 happy_x_3 of { happy_var_3 -> 
-	happyIn15
-		 ([CGSpec happy_var_3]
-	) `HappyStk` happyRest}
-
-happyReduce_43 = happySpecReduce_1  9# happyReduction_43
-happyReduction_43 happy_x_1
-	 =  happyIn15
-		 ([CGSpec []]
-	)
-
-happyReduce_44 = happySpecReduce_1  9# happyReduction_44
-happyReduction_44 happy_x_1
-	 =  happyIn15
-		 ([Inline]
-	)
-
-happyReduce_45 = happySpecReduce_2  9# happyReduction_45
-happyReduction_45 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn15
-		 ([CExport happy_var_2]
-	)}
-
-happyReduce_46 = happyReduce 4# 10# happyReduction_46
-happyReduction_46 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut19 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut17 happy_x_3 of { happy_var_3 -> 
-	happyIn16
-		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
-	) `HappyStk` happyRest}}}
-
-happyReduce_47 = happySpecReduce_1  11# happyReduction_47
-happyReduction_47 happy_x_1
-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
-	happyIn17
-		 ([happy_var_1]
-	)}
-
-happyReduce_48 = happySpecReduce_3  11# happyReduction_48
-happyReduction_48 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
-	case happyOut17 happy_x_3 of { happy_var_3 -> 
-	happyIn17
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_49 = happySpecReduce_1  12# happyReduction_49
-happyReduction_49 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
-	happyIn18
-		 (happy_var_1
-	)}
-
-happyReduce_50 = happySpecReduce_1  12# happyReduction_50
-happyReduction_50 happy_x_1
-	 =  happyIn18
-		 ("-"
-	)
-
-happyReduce_51 = happySpecReduce_1  12# happyReduction_51
-happyReduction_51 happy_x_1
-	 =  happyIn18
-		 ("<"
-	)
-
-happyReduce_52 = happySpecReduce_1  12# happyReduction_52
-happyReduction_52 happy_x_1
-	 =  happyIn18
-		 (">"
-	)
-
-happyReduce_53 = happySpecReduce_1  13# happyReduction_53
-happyReduction_53 happy_x_1
-	 =  happyIn19
-		 (LeftAssoc
-	)
-
-happyReduce_54 = happySpecReduce_1  13# happyReduction_54
-happyReduction_54 happy_x_1
-	 =  happyIn19
-		 (RightAssoc
-	)
-
-happyReduce_55 = happySpecReduce_1  13# happyReduction_55
-happyReduction_55 happy_x_1
-	 =  happyIn19
-		 (NonAssoc
-	)
-
-happyReduce_56 = happyReduce 4# 14# happyReduction_56
-happyReduction_56 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut21 happy_x_3 of { happy_var_3 -> 
-	happyIn20
-		 (LatexDefs happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_57 = happySpecReduce_3  15# happyReduction_57
-happyReduction_57 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	happyIn21
-		 ([(happy_var_1,happy_var_3)]
-	)}}
-
-happyReduce_58 = happyReduce 5# 15# happyReduction_58
-happyReduction_58 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	case happyOut21 happy_x_5 of { happy_var_5 -> 
-	happyIn21
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_59 = happySpecReduce_2  16# happyReduction_59
-happyReduction_59 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut23 happy_x_2 of { happy_var_2 -> 
-	happyIn22
-		 ((happy_var_1, happy_var_2)
-	)}}
-
-happyReduce_60 = happySpecReduce_0  17# happyReduction_60
-happyReduction_60  =  happyIn23
-		 ([]
-	)
-
-happyReduce_61 = happySpecReduce_2  17# happyReduction_61
-happyReduction_61 happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	case happyOut23 happy_x_2 of { happy_var_2 -> 
-	happyIn23
-		 ((happy_var_1,Nothing):happy_var_2
-	)}}
-
-happyReduce_62 = happyReduce 5# 17# happyReduction_62
-happyReduction_62 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut23 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn23
-		 ((RVar happy_var_4 happy_var_5 happy_var_1, Just happy_var_1):happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_63 = happyReduce 5# 17# happyReduction_63
-happyReduction_63 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut23 happy_x_5 of { happy_var_5 -> 
-	happyIn23
-		 ((happy_var_3, Just happy_var_1):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_64 = happyReduce 6# 18# happyReduction_64
-happyReduction_64 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut26 happy_x_2 of { happy_var_2 -> 
-	case happyOut29 happy_x_3 of { happy_var_3 -> 
-	case happyOut25 happy_x_4 of { happy_var_4 -> 
-	case happyOut74 happy_x_5 of { happy_var_5 -> 
-	case happyOut73 happy_x_6 of { happy_var_6 -> 
-	happyIn24
-		 (mkDatatype happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_65 = happySpecReduce_3  19# happyReduction_65
-happyReduction_65 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
-	case happyOut67 happy_x_2 of { happy_var_2 -> 
-	happyIn25
-		 (Right (happy_var_1,happy_var_2)
-	)}}
-
-happyReduce_66 = happySpecReduce_3  19# happyReduction_66
-happyReduction_66 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut47 happy_x_2 of { happy_var_2 -> 
-	happyIn25
-		 (Left happy_var_2
-	)}
-
-happyReduce_67 = happySpecReduce_3  19# happyReduction_67
-happyReduction_67 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn25
-		 (Left (RConst happy_var_2 happy_var_3 TYPE)
-	)}}
-
-happyReduce_68 = happySpecReduce_0  20# happyReduction_68
-happyReduction_68  =  happyIn26
-		 ([]
-	)
-
-happyReduce_69 = happySpecReduce_3  20# happyReduction_69
-happyReduction_69 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut27 happy_x_2 of { happy_var_2 -> 
-	happyIn26
-		 (happy_var_2
-	)}
-
-happyReduce_70 = happySpecReduce_1  21# happyReduction_70
-happyReduction_70 happy_x_1
-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> 
-	happyIn27
-		 ([happy_var_1]
-	)}
-
-happyReduce_71 = happySpecReduce_3  21# happyReduction_71
-happyReduction_71 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> 
-	case happyOut27 happy_x_3 of { happy_var_3 -> 
-	happyIn27
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_72 = happySpecReduce_1  22# happyReduction_72
-happyReduction_72 happy_x_1
-	 =  happyIn28
-		 (NoElim
-	)
-
-happyReduce_73 = happySpecReduce_1  22# happyReduction_73
-happyReduction_73 happy_x_1
-	 =  happyIn28
-		 (Collapsible
-	)
-
-happyReduce_74 = happySpecReduce_1  23# happyReduction_74
-happyReduction_74 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
-	happyIn29
-		 (happy_var_1
-	)}
-
-happyReduce_75 = happySpecReduce_3  23# happyReduction_75
-happyReduction_75 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut18 happy_x_2 of { happy_var_2 -> 
-	happyIn29
-		 (useropFn happy_var_2
-	)}
-
-happyReduce_76 = happyReduce 4# 24# happyReduction_76
-happyReduction_76 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut30 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	case happyOut51 happy_x_4 of { happy_var_4 -> 
-	happyIn30
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_77 = happyReduce 5# 24# happyReduction_77
-happyReduction_77 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut30 happy_x_1 of { happy_var_1 -> 
-	case happyOut40 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn30
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_78 = happySpecReduce_3  24# happyReduction_78
-happyReduction_78 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn30
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_79 = happySpecReduce_3  24# happyReduction_79
-happyReduction_79 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn30
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_80 = happySpecReduce_1  24# happyReduction_80
-happyReduction_80 happy_x_1
-	 =  happyIn30
-		 (RPlaceholder
-	)
-
-happyReduce_81 = happySpecReduce_3  24# happyReduction_81
-happyReduction_81 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn30
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_82 = happySpecReduce_3  24# happyReduction_82
-happyReduction_82 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn30
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_83 = happySpecReduce_1  25# happyReduction_83
-happyReduction_83 happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	happyIn31
-		 (happy_var_1
-	)}
-
-happyReduce_84 = happySpecReduce_3  25# happyReduction_84
-happyReduction_84 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> 
-	happyIn31
-		 (happy_var_2
-	)}
-
-happyReduce_85 = happyReduce 4# 25# happyReduction_85
-happyReduction_85 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	case happyOut51 happy_x_4 of { happy_var_4 -> 
-	happyIn31
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_86 = happyReduce 5# 25# happyReduction_86
-happyReduction_86 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut40 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn31
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_87 = happyReduce 4# 25# happyReduction_87
-happyReduction_87 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn31
-		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy")) RPlaceholder) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_88 = happyReduce 4# 25# happyReduction_88
-happyReduction_88 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut32 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn31
-		 (doBind Lam happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_89 = happyReduce 4# 25# happyReduction_89
-happyReduction_89 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut39 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn31
-		 (doLetBind happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_90 = happySpecReduce_1  25# happyReduction_90
-happyReduction_90 happy_x_1
-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> 
-	happyIn31
-		 (happy_var_1
-	)}
-
-happyReduce_91 = happyReduce 8# 25# happyReduction_91
-happyReduction_91 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_6 of { happy_var_6 -> 
-	case happyOut74 happy_x_7 of { happy_var_7 -> 
-	case happyOut73 happy_x_8 of { happy_var_8 -> 
-	happyIn31
-		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else")) [happy_var_2,happy_var_4,happy_var_6]
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_92 = happySpecReduce_2  26# happyReduction_92
-happyReduction_92 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut45 happy_x_2 of { happy_var_2 -> 
-	happyIn32
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_93 = happyReduce 4# 26# happyReduction_93
-happyReduction_93 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut45 happy_x_2 of { happy_var_2 -> 
-	case happyOut32 happy_x_4 of { happy_var_4 -> 
-	happyIn32
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_94 = happySpecReduce_3  27# happyReduction_94
-happyReduction_94 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn33
-		 (happy_var_1 ++ happy_var_3
-	)}}
-
-happyReduce_95 = happySpecReduce_1  27# happyReduction_95
-happyReduction_95 happy_x_1
-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_96 = happySpecReduce_3  28# happyReduction_96
-happyReduction_96 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	happyIn34
-		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
-	)}}
-
-happyReduce_97 = happySpecReduce_1  29# happyReduction_97
-happyReduction_97 happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	happyIn35
-		 ([happy_var_1]
-	)}
-
-happyReduce_98 = happySpecReduce_3  29# happyReduction_98
-happyReduction_98 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut35 happy_x_3 of { happy_var_3 -> 
-	happyIn35
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_99 = happySpecReduce_2  30# happyReduction_99
-happyReduction_99 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	happyIn36
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_100 = happySpecReduce_1  30# happyReduction_100
-happyReduction_100 happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	happyIn36
-		 ([(happy_var_1, 0)]
-	)}
-
-happyReduce_101 = happySpecReduce_3  30# happyReduction_101
-happyReduction_101 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut36 happy_x_3 of { happy_var_3 -> 
-	happyIn36
-		 ((happy_var_1,0):happy_var_3
-	)}}
-
-happyReduce_102 = happyReduce 4# 30# happyReduction_102
-happyReduction_102 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut36 happy_x_4 of { happy_var_4 -> 
-	happyIn36
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_103 = happySpecReduce_1  31# happyReduction_103
-happyReduction_103 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	happyIn37
-		 ([happy_var_1]
-	)}
-
-happyReduce_104 = happySpecReduce_3  31# happyReduction_104
-happyReduction_104 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut35 happy_x_3 of { happy_var_3 -> 
-	happyIn37
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_105 = happySpecReduce_1  32# happyReduction_105
-happyReduction_105 happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	happyIn38
-		 ([happy_var_1]
-	)}
-
-happyReduce_106 = happySpecReduce_2  32# happyReduction_106
-happyReduction_106 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut38 happy_x_2 of { happy_var_2 -> 
-	happyIn38
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_107 = happyReduce 4# 33# happyReduction_107
-happyReduction_107 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut45 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn39
-		 ([(happy_var_1,happy_var_2,happy_var_4)]
-	) `HappyStk` happyRest}}}
-
-happyReduce_108 = happyReduce 6# 33# happyReduction_108
-happyReduction_108 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut45 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut39 happy_x_6 of { happy_var_6 -> 
-	happyIn39
-		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_109 = happySpecReduce_3  34# happyReduction_109
-happyReduction_109 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn40
-		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1)
-	)}}}
-
-happyReduce_110 = happySpecReduce_3  34# happyReduction_110
-happyReduction_110 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	happyIn40
-		 ((happy_var_1, happy_var_3)
-	)}}
-
-happyReduce_111 = happyReduce 4# 35# happyReduction_111
-happyReduction_111 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn41
-		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_112 = happyReduce 5# 35# happyReduction_112
-happyReduction_112 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn41
-		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_113 = happyReduce 5# 35# happyReduction_113
-happyReduction_113 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn41
-		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) [happy_var_1, happy_var_3]
-	) `HappyStk` happyRest}}}}
-
-happyReduce_114 = happyReduce 5# 35# happyReduction_114
-happyReduction_114 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn41
-		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_115 = happyReduce 5# 35# happyReduction_115
-happyReduction_115 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn41
-		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_116 = happyReduce 5# 35# happyReduction_116
-happyReduction_116 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	happyIn41
-		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_117 = happySpecReduce_1  35# happyReduction_117
-happyReduction_117 happy_x_1
-	 =  case happyOut42 happy_x_1 of { happy_var_1 -> 
-	happyIn41
-		 (happy_var_1
-	)}
-
-happyReduce_118 = happyReduce 5# 35# happyReduction_118
-happyReduction_118 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut51 happy_x_1 of { happy_var_1 -> 
-	case happyOut51 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn41
-		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_119 = happyReduce 5# 36# happyReduction_119
-happyReduction_119 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn42
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_120 = happyReduce 6# 37# happyReduction_120
-happyReduction_120 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_121 = happyReduce 6# 37# happyReduction_121
-happyReduction_121 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_122 = happyReduce 6# 37# happyReduction_122
-happyReduction_122 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut44 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_123 = happyReduce 6# 37# happyReduction_123
-happyReduction_123 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut44 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_124 = happyReduce 6# 37# happyReduction_124
-happyReduction_124 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_125 = happyReduce 6# 37# happyReduction_125
-happyReduction_125 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex Eager happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_126 = happyReduce 6# 37# happyReduction_126
-happyReduction_126 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex Eager (RVar happy_var_4 happy_var_5 (MN "X" 0))) happy_var_3)
-	) `HappyStk` happyRest}}}
-
-happyReduce_127 = happyReduce 5# 37# happyReduction_127
-happyReduction_127 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (RBind (MN "X" 1) (Lam RPlaceholder)
-                    (RBind (MN "X" 2) (Pi Ex Eager (RVar happy_var_3 happy_var_4 (MN "X" 0)))
-                       (RVar happy_var_3 happy_var_4 (MN "X" 1))))
-	) `HappyStk` happyRest}}
-
-happyReduce_128 = happyReduce 5# 37# happyReduction_128
-happyReduction_128 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                   (RBind (MN "X" 1) (Lam RPlaceholder)
-                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair"))
-                                    [RVar happy_var_3 happy_var_4 (MN "X" 0),
-                                     RVar happy_var_3 happy_var_4 (MN "X" 1)]))
-	) `HappyStk` happyRest}}
-
-happyReduce_129 = happyReduce 6# 37# happyReduction_129
-happyReduction_129 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [happy_var_2,
-                                     RVar happy_var_4 happy_var_5 (MN "X" 0)])
-	) `HappyStk` happyRest}}}
-
-happyReduce_130 = happyReduce 6# 37# happyReduction_130
-happyReduction_130 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [RVar happy_var_4 happy_var_5 (MN "X" 0), happy_var_3])
-	) `HappyStk` happyRest}}}
-
-happyReduce_131 = happySpecReduce_1  38# happyReduction_131
-happyReduction_131 happy_x_1
-	 =  happyIn44
-		 ("<"
-	)
-
-happyReduce_132 = happySpecReduce_1  38# happyReduction_132
-happyReduction_132 happy_x_1
-	 =  happyIn44
-		 (">"
-	)
-
-happyReduce_133 = happySpecReduce_0  39# happyReduction_133
-happyReduction_133  =  happyIn45
-		 (RPlaceholder
-	)
-
-happyReduce_134 = happySpecReduce_2  39# happyReduction_134
-happyReduction_134 happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> 
-	happyIn45
-		 (happy_var_2
-	)}
-
-happyReduce_135 = happySpecReduce_0  40# happyReduction_135
-happyReduction_135  =  happyIn46
-		 (RPlaceholder
-	)
-
-happyReduce_136 = happySpecReduce_2  40# happyReduction_136
-happyReduction_136 happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> 
-	happyIn46
-		 (happy_var_2
-	)}
-
-happyReduce_137 = happyReduce 5# 41# happyReduction_137
-happyReduction_137 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut37 happy_x_1 of { happy_var_1 -> 
-	case happyOut46 happy_x_2 of { happy_var_2 -> 
-	case happyOut47 happy_x_5 of { happy_var_5 -> 
-	happyIn47
-		 (doBind (Pi Im Eager) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_138 = happySpecReduce_1  41# happyReduction_138
-happyReduction_138 happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	happyIn47
-		 (happy_var_1
-	)}
-
-happyReduce_139 = happySpecReduce_3  42# happyReduction_139
-happyReduction_139 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	case happyOut48 happy_x_3 of { happy_var_3 -> 
-	happyIn48
-		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
-	)}}
-
-happyReduce_140 = happyReduce 5# 42# happyReduction_140
-happyReduction_140 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut48 happy_x_5 of { happy_var_5 -> 
-	happyIn48
-		 (doBind (Pi Ex Eager) happy_var_2 happy_var_5
-	) `HappyStk` happyRest}}
-
-happyReduce_141 = happyReduce 5# 42# happyReduction_141
-happyReduction_141 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut48 happy_x_5 of { happy_var_5 -> 
-	happyIn48
-		 (doBind (Pi Ex Lazy) happy_var_2 happy_var_5
-	) `HappyStk` happyRest}}
-
-happyReduce_142 = happySpecReduce_3  42# happyReduction_142
-happyReduction_142 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> 
-	happyIn48
-		 (bracket happy_var_2
-	)}
-
-happyReduce_143 = happyReduce 7# 42# happyReduction_143
-happyReduction_143 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut48 happy_x_2 of { happy_var_2 -> 
-	case happyOut48 happy_x_4 of { happy_var_4 -> 
-	case happyOut74 happy_x_5 of { happy_var_5 -> 
-	case happyOut73 happy_x_6 of { happy_var_6 -> 
-	happyIn48
-		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_144 = happySpecReduce_1  42# happyReduction_144
-happyReduction_144 happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	happyIn48
-		 (happy_var_1
-	)}
-
-happyReduce_145 = happySpecReduce_3  42# happyReduction_145
-happyReduction_145 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn48
-		 (happy_var_2
-	)}
-
-happyReduce_146 = happyReduce 5# 42# happyReduction_146
-happyReduction_146 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut48 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut48 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn48
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_147 = happyReduce 5# 42# happyReduction_147
-happyReduction_147 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut50 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn48
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_148 = happySpecReduce_1  42# happyReduction_148
-happyReduction_148 happy_x_1
-	 =  case happyOut49 happy_x_1 of { happy_var_1 -> 
-	happyIn48
-		 (happy_var_1
-	)}
-
-happyReduce_149 = happyReduce 8# 43# happyReduction_149
-happyReduction_149 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_2 of { happy_var_2 -> 
-	case happyOut45 happy_x_3 of { happy_var_3 -> 
-	case happyOut48 happy_x_5 of { happy_var_5 -> 
-	case happyOut74 happy_x_7 of { happy_var_7 -> 
-	case happyOut73 happy_x_8 of { happy_var_8 -> 
-	happyIn49
-		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_150 = happySpecReduce_3  44# happyReduction_150
-happyReduction_150 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	case happyOut48 happy_x_3 of { happy_var_3 -> 
-	happyIn50
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_151 = happySpecReduce_3  44# happyReduction_151
-happyReduction_151 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	happyIn50
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_152 = happySpecReduce_3  45# happyReduction_152
-happyReduction_152 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_153 = happySpecReduce_3  45# happyReduction_153
-happyReduction_153 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (RReturn happy_var_2 happy_var_3
-	)}}
-
-happyReduce_154 = happySpecReduce_3  45# happyReduction_154
-happyReduction_154 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn51
-		 (bracket happy_var_2
-	)}
-
-happyReduce_155 = happySpecReduce_2  45# happyReduction_155
-happyReduction_155 happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
-	happyIn51
-		 (RPure happy_var_2
-	)}
-
-happyReduce_156 = happySpecReduce_1  45# happyReduction_156
-happyReduction_156 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
-	happyIn51
-		 (RMetavar happy_var_1
-	)}
-
-happyReduce_157 = happyReduce 4# 45# happyReduction_157
-happyReduction_157 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn51
-		 (RExpVar happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_158 = happySpecReduce_3  45# happyReduction_158
-happyReduction_158 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_159 = happySpecReduce_1  45# happyReduction_159
-happyReduction_159 happy_x_1
-	 =  happyIn51
-		 (RRefl
-	)
-
-happyReduce_160 = happySpecReduce_3  45# happyReduction_160
-happyReduction_160 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_161 = happySpecReduce_3  45# happyReduction_161
-happyReduction_161 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_162 = happySpecReduce_1  45# happyReduction_162
-happyReduction_162 happy_x_1
-	 =  happyIn51
-		 (RPlaceholder
-	)
-
-happyReduce_163 = happySpecReduce_1  45# happyReduction_163
-happyReduction_163 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn51
-		 (RDo happy_var_1
-	)}
-
-happyReduce_164 = happySpecReduce_3  45# happyReduction_164
-happyReduction_164 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn51
-		 (RIdiom happy_var_2
-	)}
-
-happyReduce_165 = happyReduce 5# 45# happyReduction_165
-happyReduction_165 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut53 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn51
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_166 = happySpecReduce_1  45# happyReduction_166
-happyReduction_166 happy_x_1
-	 =  case happyOut49 happy_x_1 of { happy_var_1 -> 
-	happyIn51
-		 (happy_var_1
-	)}
-
-happyReduce_167 = happySpecReduce_1  45# happyReduction_167
-happyReduction_167 happy_x_1
-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
-	happyIn51
-		 (happy_var_1
-	)}
-
-happyReduce_168 = happySpecReduce_1  45# happyReduction_168
-happyReduction_168 happy_x_1
-	 =  case happyOut52 happy_x_1 of { happy_var_1 -> 
-	happyIn51
-		 (happy_var_1
-	)}
-
-happyReduce_169 = happyReduce 7# 46# happyReduction_169
-happyReduction_169 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut74 happy_x_6 of { happy_var_6 -> 
-	case happyOut73 happy_x_7 of { happy_var_7 -> 
-	happyIn52
-		 (RApp happy_var_6 happy_var_7 (RAppImp happy_var_6 happy_var_7 (UN "a") (RVar happy_var_6 happy_var_7 (UN "Exists")) happy_var_2) happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_170 = happyReduce 5# 46# happyReduction_170
-happyReduction_170 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn52
-		 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_171 = happySpecReduce_3  47# happyReduction_171
-happyReduction_171 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_172 = happySpecReduce_3  47# happyReduction_172
-happyReduction_172 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut53 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_173 = happyReduce 4# 48# happyReduction_173
-happyReduction_173 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut55 happy_x_3 of { happy_var_3 -> 
-	happyIn54
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_174 = happyReduce 10# 48# happyReduction_174
-happyReduction_174 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
-	case happyOut45 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_5 of { happy_var_5 -> 
-	case happyOut74 happy_x_6 of { happy_var_6 -> 
-	case happyOut73 happy_x_7 of { happy_var_7 -> 
-	case happyOut55 happy_x_9 of { happy_var_9 -> 
-	happyIn54
-		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_175 = happySpecReduce_2  49# happyReduction_175
-happyReduction_175 happy_x_2
-	happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	case happyOut55 happy_x_2 of { happy_var_2 -> 
-	happyIn55
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_176 = happySpecReduce_1  49# happyReduction_176
-happyReduction_176 happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	happyIn55
-		 ([happy_var_1]
-	)}
-
-happyReduce_177 = happyReduce 7# 50# happyReduction_177
-happyReduction_177 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut45 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut74 happy_x_5 of { happy_var_5 -> 
-	case happyOut73 happy_x_6 of { happy_var_6 -> 
-	happyIn56
-		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_178 = happyReduce 8# 50# happyReduction_178
-happyReduction_178 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_2 of { happy_var_2 -> 
-	case happyOut45 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_5 of { happy_var_5 -> 
-	case happyOut74 happy_x_6 of { happy_var_6 -> 
-	case happyOut73 happy_x_7 of { happy_var_7 -> 
-	happyIn56
-		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_179 = happyReduce 4# 50# happyReduction_179
-happyReduction_179 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (DoExp happy_var_2 happy_var_3 happy_var_1
-	) `HappyStk` happyRest}}}
-
-happyReduce_180 = happySpecReduce_1  51# happyReduction_180
-happyReduction_180 happy_x_1
-	 =  happyIn57
-		 (TYPE
-	)
-
-happyReduce_181 = happySpecReduce_1  51# happyReduction_181
-happyReduction_181 happy_x_1
-	 =  happyIn57
-		 (StringType
-	)
-
-happyReduce_182 = happySpecReduce_1  51# happyReduction_182
-happyReduction_182 happy_x_1
-	 =  happyIn57
-		 (IntType
-	)
-
-happyReduce_183 = happySpecReduce_1  51# happyReduction_183
-happyReduction_183 happy_x_1
-	 =  happyIn57
-		 (CharType
-	)
-
-happyReduce_184 = happySpecReduce_1  51# happyReduction_184
-happyReduction_184 happy_x_1
-	 =  happyIn57
-		 (FloatType
-	)
-
-happyReduce_185 = happySpecReduce_1  51# happyReduction_185
-happyReduction_185 happy_x_1
-	 =  happyIn57
-		 (PtrType
-	)
-
-happyReduce_186 = happySpecReduce_1  51# happyReduction_186
-happyReduction_186 happy_x_1
-	 =  happyIn57
-		 (Builtin "Handle"
-	)
-
-happyReduce_187 = happySpecReduce_1  51# happyReduction_187
-happyReduction_187 happy_x_1
-	 =  happyIn57
-		 (Builtin "Lock"
-	)
-
-happyReduce_188 = happySpecReduce_1  51# happyReduction_188
-happyReduction_188 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
-	happyIn57
-		 (Num happy_var_1
-	)}
-
-happyReduce_189 = happySpecReduce_1  51# happyReduction_189
-happyReduction_189 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
-	happyIn57
-		 (Ch happy_var_1
-	)}
-
-happyReduce_190 = happySpecReduce_1  51# happyReduction_190
-happyReduction_190 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
-	happyIn57
-		 (Str happy_var_1
-	)}
-
-happyReduce_191 = happySpecReduce_1  51# happyReduction_191
-happyReduction_191 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
-	happyIn57
-		 (Bo happy_var_1
-	)}
-
-happyReduce_192 = happySpecReduce_1  51# happyReduction_192
-happyReduction_192 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
-	happyIn57
-		 (Fl happy_var_1
-	)}
-
-happyReduce_193 = happySpecReduce_0  52# happyReduction_193
-happyReduction_193  =  happyIn58
-		 ([]
-	)
-
-happyReduce_194 = happySpecReduce_2  52# happyReduction_194
-happyReduction_194 happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	case happyOut58 happy_x_2 of { happy_var_2 -> 
-	happyIn58
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_195 = happyReduce 4# 53# happyReduction_195
-happyReduction_195 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut60 happy_x_3 of { happy_var_3 -> 
-	happyIn59
-		 ((happy_var_2, happy_var_3)
-	) `HappyStk` happyRest}}
-
-happyReduce_196 = happySpecReduce_3  53# happyReduction_196
-happyReduction_196 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn59
-		 ((RConst happy_var_2 happy_var_3 TYPE, [])
-	)}}
-
-happyReduce_197 = happyReduce 4# 53# happyReduction_197
-happyReduction_197 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut65 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn59
-		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
-	) `HappyStk` happyRest}}}
-
-happyReduce_198 = happySpecReduce_0  54# happyReduction_198
-happyReduction_198  =  happyIn60
-		 ([]
-	)
-
-happyReduce_199 = happyReduce 4# 54# happyReduction_199
-happyReduction_199 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut64 happy_x_3 of { happy_var_3 -> 
-	happyIn60
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_200 = happyReduce 7# 55# happyReduction_200
-happyReduction_200 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_4 of { happy_var_4 -> 
-	case happyOut29 happy_x_6 of { happy_var_6 -> 
-	happyIn61
-		 ((happy_var_4,happy_var_6)
-	) `HappyStk` happyRest}}
-
-happyReduce_201 = happyReduce 6# 56# happyReduction_201
-happyReduction_201 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_3 of { happy_var_3 -> 
-	case happyOut29 happy_x_5 of { happy_var_5 -> 
-	happyIn62
-		 ((happy_var_3,happy_var_5)
-	) `HappyStk` happyRest}}
-
-happyReduce_202 = happyReduce 4# 57# happyReduction_202
-happyReduction_202 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut64 happy_x_3 of { happy_var_3 -> 
-	happyIn63
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_203 = happySpecReduce_3  58# happyReduction_203
-happyReduction_203 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	happyIn64
-		 ([(happy_var_1, happy_var_3)]
-	)}}
-
-happyReduce_204 = happyReduce 5# 58# happyReduction_204
-happyReduction_204 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut64 happy_x_5 of { happy_var_5 -> 
-	happyIn64
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_205 = happySpecReduce_1  59# happyReduction_205
-happyReduction_205 happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	happyIn65
-		 ([happy_var_1]
-	)}
-
-happyReduce_206 = happySpecReduce_2  59# happyReduction_206
-happyReduction_206 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut65 happy_x_2 of { happy_var_2 -> 
-	happyIn65
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_207 = happySpecReduce_1  60# happyReduction_207
-happyReduction_207 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn66
-		 (happy_var_1
-	)}
-
-happyReduce_208 = happySpecReduce_1  60# happyReduction_208
-happyReduction_208 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn66
-		 (happy_var_1
-	)}
-
-happyReduce_209 = happySpecReduce_0  61# happyReduction_209
-happyReduction_209  =  happyIn67
-		 ([]
-	)
-
-happyReduce_210 = happySpecReduce_1  61# happyReduction_210
-happyReduction_210 happy_x_1
-	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
-	happyIn67
-		 ([happy_var_1]
-	)}
-
-happyReduce_211 = happySpecReduce_3  61# happyReduction_211
-happyReduction_211 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
-	case happyOut67 happy_x_3 of { happy_var_3 -> 
-	happyIn67
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_212 = happySpecReduce_2  62# happyReduction_212
-happyReduction_212 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut69 happy_x_2 of { happy_var_2 -> 
-	happyIn68
-		 (Full happy_var_1 happy_var_2
-	)}}
-
-happyReduce_213 = happySpecReduce_2  62# happyReduction_213
-happyReduction_213 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut58 happy_x_2 of { happy_var_2 -> 
-	happyIn68
-		 (Simple happy_var_1 happy_var_2
-	)}}
-
-happyReduce_214 = happySpecReduce_2  63# happyReduction_214
-happyReduction_214 happy_x_2
-	happy_x_1
-	 =  case happyOut47 happy_x_2 of { happy_var_2 -> 
-	happyIn69
-		 (happy_var_2
-	)}
-
-happyReduce_215 = happySpecReduce_2  64# happyReduction_215
-happyReduction_215 happy_x_2
-	happy_x_1
-	 =  case happyOut35 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Intro happy_var_2
-	)}
-
-happyReduce_216 = happySpecReduce_1  64# happyReduction_216
-happyReduction_216 happy_x_1
-	 =  happyIn70
-		 (Intro []
-	)
-
-happyReduce_217 = happySpecReduce_2  64# happyReduction_217
-happyReduction_217 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Refine happy_var_2
-	)}
-
-happyReduce_218 = happySpecReduce_2  64# happyReduction_218
-happyReduction_218 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Generalise happy_var_2
-	)}
-
-happyReduce_219 = happySpecReduce_1  64# happyReduction_219
-happyReduction_219 happy_x_1
-	 =  happyIn70
-		 (ReflP
-	)
-
-happyReduce_220 = happySpecReduce_2  64# happyReduction_220
-happyReduction_220 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Rewrite False False happy_var_2
-	)}
-
-happyReduce_221 = happySpecReduce_3  64# happyReduction_221
-happyReduction_221 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_3 of { happy_var_3 -> 
-	happyIn70
-		 (Rewrite False True happy_var_3
-	)}
-
-happyReduce_222 = happySpecReduce_2  64# happyReduction_222
-happyReduction_222 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Rewrite True False happy_var_2
-	)}
-
-happyReduce_223 = happySpecReduce_3  64# happyReduction_223
-happyReduction_223 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_3 of { happy_var_3 -> 
-	happyIn70
-		 (Rewrite True True happy_var_3
-	)}
-
-happyReduce_224 = happySpecReduce_1  64# happyReduction_224
-happyReduction_224 happy_x_1
-	 =  happyIn70
-		 (Compute
-	)
-
-happyReduce_225 = happySpecReduce_2  64# happyReduction_225
-happyReduction_225 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Unfold happy_var_2
-	)}
-
-happyReduce_226 = happySpecReduce_1  64# happyReduction_226
-happyReduction_226 happy_x_1
-	 =  happyIn70
-		 (Undo
-	)
-
-happyReduce_227 = happySpecReduce_2  64# happyReduction_227
-happyReduction_227 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Induction happy_var_2
-	)}
-
-happyReduce_228 = happySpecReduce_2  64# happyReduction_228
-happyReduction_228 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Fill happy_var_2
-	)}
-
-happyReduce_229 = happySpecReduce_1  64# happyReduction_229
-happyReduction_229 happy_x_1
-	 =  happyIn70
-		 (Trivial
-	)
-
-happyReduce_230 = happySpecReduce_2  64# happyReduction_230
-happyReduction_230 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (RunTactic happy_var_2
-	)}
-
-happyReduce_231 = happySpecReduce_2  64# happyReduction_231
-happyReduction_231 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Believe happy_var_2
-	)}
-
-happyReduce_232 = happySpecReduce_2  64# happyReduction_232
-happyReduction_232 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Use happy_var_2
-	)}
-
-happyReduce_233 = happySpecReduce_2  64# happyReduction_233
-happyReduction_233 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Decide happy_var_2
-	)}
-
-happyReduce_234 = happySpecReduce_1  64# happyReduction_234
-happyReduction_234 happy_x_1
-	 =  happyIn70
-		 (Abandon
-	)
-
-happyReduce_235 = happySpecReduce_1  64# happyReduction_235
-happyReduction_235 happy_x_1
-	 =  happyIn70
-		 (Qed
-	)
-
-happyReduce_236 = happyReduce 4# 65# happyReduction_236
-happyReduction_236 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut72 happy_x_3 of { happy_var_3 -> 
-	happyIn71
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_237 = happySpecReduce_2  66# happyReduction_237
-happyReduction_237 happy_x_2
-	happy_x_1
-	 =  case happyOut70 happy_x_1 of { happy_var_1 -> 
-	happyIn72
-		 ([happy_var_1]
-	)}
-
-happyReduce_238 = happySpecReduce_3  66# happyReduction_238
-happyReduction_238 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut70 happy_x_1 of { happy_var_1 -> 
-	case happyOut72 happy_x_3 of { happy_var_3 -> 
-	happyIn72
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_239 = happyMonadReduce 0# 67# happyReduction_239
-happyReduction_239 (happyRest) tk
-	 = happyThen (( getLineNo)
-	) (\r -> happyReturn (happyIn73 r))
-
-happyReduce_240 = happyMonadReduce 0# 68# happyReduction_240
-happyReduction_240 (happyRest) tk
-	 = happyThen (( getFileName)
-	) (\r -> happyReturn (happyIn74 r))
-
-happyReduce_241 = happyMonadReduce 0# 69# happyReduction_241
-happyReduction_241 (happyRest) tk
-	 = happyThen (( getOps)
-	) (\r -> happyReturn (happyIn75 r))
-
-happyNewToken action sts stk
-	= lexer(\tk -> 
-	let cont i = happyDoAction i tk action sts stk in
-	case tk of {
-	TokenEOF -> happyDoAction 114# tk action sts stk;
-	TokenName happy_dollar_dollar -> cont 1#;
-	TokenInfixName happy_dollar_dollar -> cont 2#;
-	TokenBrackName happy_dollar_dollar -> cont 3#;
-	TokenString happy_dollar_dollar -> cont 4#;
-	TokenInt happy_dollar_dollar -> cont 5#;
-	TokenFloat happy_dollar_dollar -> cont 6#;
-	TokenChar happy_dollar_dollar -> cont 7#;
-	TokenBool happy_dollar_dollar -> cont 8#;
-	TokenMetavar happy_dollar_dollar -> cont 9#;
-	TokenColon -> cont 10#;
-	TokenSemi -> cont 11#;
-	TokenBar -> cont 12#;
-	TokenStars -> cont 13#;
-	TokenLambda -> cont 14#;
-	TokenHashOB -> cont 15#;
-	TokenOB -> cont 16#;
-	TokenCB -> cont 17#;
-	TokenOCB -> cont 18#;
-	TokenCCB -> cont 19#;
-	TokenOSB -> cont 20#;
-	TokenCSB -> cont 21#;
-	TokenOId -> cont 22#;
-	TokenCId -> cont 23#;
-	TokenLPair -> cont 24#;
-	TokenRPair -> cont 25#;
-	TokenExists -> cont 26#;
-	TokenTilde -> cont 27#;
-	TokenPlus -> cont 28#;
-	TokenMinus -> cont 29#;
-	TokenTimes -> cont 30#;
-	TokenDivide -> cont 31#;
-	TokenEquals -> cont 32#;
-	TokenMightEqual -> cont 33#;
-	TokenLT -> cont 34#;
-	TokenGT -> cont 35#;
-	TokenEllipsis -> cont 36#;
-	TokenUnderscore -> cont 37#;
-	TokenComma -> cont 38#;
-	TokenTuple -> cont 39#;
-	TokenBang -> cont 40#;
-	TokenConcat -> cont 41#;
-	TokenGE -> cont 42#;
-	TokenLE -> cont 43#;
-	TokenOr -> cont 44#;
-	TokenAnd -> cont 45#;
-	TokenArrow -> cont 46#;
-	TokenFatArrow -> cont 47#;
-	TokenTransArrow -> cont 48#;
-	TokenLeftArrow -> cont 49#;
-	TokenIntType -> cont 50#;
-	TokenCharType -> cont 51#;
-	TokenFloatType -> cont 52#;
-	TokenStringType -> cont 53#;
-	TokenHandleType -> cont 54#;
-	TokenPtrType -> cont 55#;
-	TokenLockType -> cont 56#;
-	TokenType -> cont 57#;
-	TokenLazyBracket -> cont 58#;
-	TokenDataType -> cont 59#;
-	TokenInfix -> cont 60#;
-	TokenInfixL -> cont 61#;
-	TokenInfixR -> cont 62#;
-	TokenUsing -> cont 63#;
-	TokenIdiom -> cont 64#;
-	TokenParams -> cont 65#;
-	TokenNoElim -> cont 66#;
-	TokenCollapsible -> cont 67#;
-	TokenWhere -> cont 68#;
-	TokenWith -> cont 69#;
-	TokenPartial -> cont 70#;
-	TokenSyntax -> cont 71#;
-	TokenLazy -> cont 72#;
-	TokenRefl -> cont 73#;
-	TokenEmptyType -> cont 74#;
-	TokenUnitType -> cont 75#;
-	TokenInclude -> cont 76#;
-	TokenExport -> cont 77#;
-	TokenInline -> cont 78#;
-	TokenDo -> cont 79#;
-	TokenReturn -> cont 80#;
-	TokenIf -> cont 81#;
-	TokenThen -> cont 82#;
-	TokenElse -> cont 83#;
-	TokenLet -> cont 84#;
-	TokenIn -> cont 85#;
-	TokenProof -> cont 86#;
-	TokenIntro -> cont 87#;
-	TokenRefine -> cont 88#;
-	TokenGeneralise -> cont 89#;
-	TokenReflP -> cont 90#;
-	TokenRewrite -> cont 91#;
-	TokenRewriteAll -> cont 92#;
-	TokenCompute -> cont 93#;
-	TokenUnfold -> cont 94#;
-	TokenUndo -> cont 95#;
-	TokenInduction -> cont 96#;
-	TokenFill -> cont 97#;
-	TokenTrivial -> cont 98#;
-	TokenMkTac -> cont 99#;
-	TokenBelieve -> cont 100#;
-	TokenUse -> cont 101#;
-	TokenDecide -> cont 102#;
-	TokenAbandon -> cont 103#;
-	TokenQED -> cont 104#;
-	TokenLaTeX -> cont 105#;
-	TokenNoCG -> cont 106#;
-	TokenEval -> cont 107#;
-	TokenSpec -> cont 108#;
-	TokenFreeze -> cont 109#;
-	TokenThaw -> cont 110#;
-	TokenTransform -> cont 111#;
-	TokenCInclude -> cont 112#;
-	TokenCLib -> cont 113#;
-	_ -> happyError' tk
-	})
-
-happyError_ tk = happyError' tk
-
-happyThen :: () => P a -> (a -> P b) -> P b
-happyThen = (thenP)
-happyReturn :: () => a -> P a
-happyReturn = (returnP)
-happyThen1 = happyThen
-happyReturn1 :: () => a -> P a
-happyReturn1 = happyReturn
-happyError' :: () => (Token) -> P a
-happyError' tk = (\token -> happyError) tk
-
-mkparse = happySomeParser where
-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
-
-mkparseTerm = happySomeParser where
-  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut31 x))
-
-mkparseTactic = happySomeParser where
-  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut70 x))
-
-happySeq = happyDontSeq
-
-
-data ConParse = Full Id RawTerm
-              | Simple Id [RawTerm]
-
-parse :: String -> FilePath -> Result [Decl]
-parse s fn = do ds <- mkparse s fn 1 []
-                collectDecls ds
-
-processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
-                  IO ([Decl], [FilePath])
-processImports opts imped (Success ds) = pi imped [] ds
-  where pi imps decls ((PInclude fp):xs)
-           | fp `elem` imps = pi imps decls xs
-           | otherwise = do
-                 f <- readLibFile defaultLibPath fp
-                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
-                 case parse f fp of
-                   Success t -> pi (fp:imps) decls (t++xs)
-                   Failure e f l ->
-                     fail $ f ++ ":" ++ show l ++ ":" ++ e
-        pi imps decls ((Using t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Using t ds']) xs
-        pi imps decls ((Params t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Params t ds']) xs
-        pi imps decls ((DoUsing b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[DoUsing b r ds']) xs
-        pi imps decls ((Idiom b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Idiom b r ds']) xs
-        pi imps decls (x:xs) = pi imps (decls++[x]) xs
-        pi imps decls [] = return (decls, imps)
-
-processImports _ imped (Failure e f l) 
-    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
-
-
-parseTerm :: String -> Result RawTerm
-parseTerm s = mkparseTerm s "(input)" 0 []
-
-parseTactic :: String -> Result ITactic
-parseTactic s = mkparseTactic s "(tactic)" 0 []
-
-mkCon :: RawTerm -> ConParse -> (Id,RawTerm)
-mkCon _ (Full n t) = (n,t)
-mkCon ty (Simple n args) = (n, mkConTy args ty)
-   where mkConTy [] ty = ty
-         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex Eager a) (mkConTy as ty)
-
-mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
-   where mkImpApp f [] = f
-         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
-         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
-
-doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
-doBind b [] t = t
-doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
-
-doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
-doLetBind [] t = t
-doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
-
-mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
-mkTyApp file line n ty = mkApp file line (RVar file line n) (getTyArgs ty)
-   where getTyArgs (RBind n _ t) = (RVar file line n):(getTyArgs t)
-         getTyArgs x = []
-
-mkTyParams :: String -> Int -> [Id] -> RawTerm
-mkTyParams f l [] = RConst f l TYPE
-mkTyParams f l (x:xs) = RBind x (Pi Ex Eager (RConst f l TYPE)) (mkTyParams f l xs)
-
-mkDatatype :: String -> Int ->
-              Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
-                    [TyOpt] -> Datatype
-mkDatatype file line n (Right ((t, using), cons)) opts
-    = Datatype n t (map (mkCon (mkTyApp file line n t)) cons) using opts file line 
-mkDatatype file line n (Left t) opts
-    = Latatype n t file line
-
-bracket (RUserInfix f l _ op x y) = RUserInfix f l True op x y
-bracket x = x
-
-pairDesugar :: String -> Int -> RawTerm -> [RawTerm] -> RawTerm
-pairDesugar file line pair [x,y] = mkApp file line pair [x,y]
-pairDesugar file line pair (x:y:xs) 
-    = pairDesugar file line pair ((mkApp file line pair [x,y]):xs)
-
-sigDesugar :: String -> Int -> (Id, RawTerm) -> RawTerm -> RawTerm
-sigDesugar file line (n, tm) sc
-    = mkApp file line (RVar file line (UN "Sigma")) [tm, lam]
-   where lam = RBind n (Lam tm) sc
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "<built-in>" #-}
-{-# LINE 1 "<command line>" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
-
-{-# LINE 28 "templates/GenericTemplate.hs" #-}
-
-
-data Happy_IntList = HappyCons Int# Happy_IntList
-
-
-
-
-
-{-# LINE 49 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 59 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 68 "templates/GenericTemplate.hs" #-}
-
-infixr 9 `HappyStk`
-data HappyStk a = HappyStk a (HappyStk a)
-
------------------------------------------------------------------------------
--- starting the parse
-
-happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
-
------------------------------------------------------------------------------
--- Accepting the parse
-
--- If the current token is 0#, it means we've just accepted a partial
--- parse (a %partial parser).  We must ignore the saved token on the top of
--- the stack in this case.
-happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
-	happyReturn1 ans
-happyAccept j tk st sts (HappyStk ans _) = 
-	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)
-
------------------------------------------------------------------------------
--- Arrays only: do the next action
-
-
-
-happyDoAction i tk st
-	= {- nothing -}
-
-
-	  case action of
-		0#		  -> {- nothing -}
-				     happyFail i tk st
-		-1# 	  -> {- nothing -}
-				     happyAccept i tk st
-		n | (n <# (0# :: Int#)) -> {- nothing -}
-
-				     (happyReduceArr ! rule) i tk st
-				     where rule = (I# ((negateInt# ((n +# (1# :: Int#))))))
-		n		  -> {- nothing -}
-
-
-				     happyShift new_state i tk st
-				     where new_state = (n -# (1# :: Int#))
-   where off    = indexShortOffAddr happyActOffsets st
-	 off_i  = (off +# i)
-	 check  = if (off_i >=# (0# :: Int#))
-			then (indexShortOffAddr happyCheck off_i ==#  i)
-			else False
- 	 action | check     = indexShortOffAddr happyTable off_i
-		| otherwise = indexShortOffAddr happyDefActions st
-
-{-# LINE 127 "templates/GenericTemplate.hs" #-}
-
-
-indexShortOffAddr (HappyA# arr) off =
-#if __GLASGOW_HASKELL__ > 500
-	narrow16Int# i
-#elif __GLASGOW_HASKELL__ == 500
-	intToInt16# i
-#else
-	(i `iShiftL#` 16#) `iShiftRA#` 16#
-#endif
-  where
-#if __GLASGOW_HASKELL__ >= 503
-	i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)
-#else
-	i = word2Int# ((high `shiftL#` 8#) `or#` low)
-#endif
-	high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))
-	low  = int2Word# (ord# (indexCharOffAddr# arr off'))
-	off' = off *# 2#
-
-
-
-
-
-data HappyAddr = HappyA# Addr#
-
-
-
-
------------------------------------------------------------------------------
--- HappyState data type (not arrays)
-
-{-# LINE 170 "templates/GenericTemplate.hs" #-}
-
------------------------------------------------------------------------------
--- Shifting a token
-
-happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
-     let i = (case unsafeCoerce# x of { (I# (i)) -> i }) in
---     trace "shifting the error token" $
-     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
-
-happyShift new_state i tk st sts stk =
-     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
-
--- happyReduce is specialised for the common cases.
-
-happySpecReduce_0 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_0 nt fn j tk st@((action)) sts stk
-     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
-
-happySpecReduce_1 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
-     = let r = fn v1 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_2 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
-     = let r = fn v1 v2 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_3 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
-     = let r = fn v1 v2 v3 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happyReduce k i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyReduce k nt fn j tk st sts stk
-     = case happyDrop (k -# (1# :: Int#)) sts of
-	 sts1@((HappyCons (st1@(action)) (_))) ->
-        	let r = fn stk in  -- it doesn't hurt to always seq here...
-       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)
-
-happyMonadReduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonadReduce k nt fn j tk st sts stk =
-        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-happyMonad2Reduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonad2Reduce k nt fn j tk st sts stk =
-       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-             off    = indexShortOffAddr happyGotoOffsets st1
-             off_i  = (off +# nt)
-             new_state = indexShortOffAddr happyTable off_i
-
-
-
-
-happyDrop 0# l = l
-happyDrop n (HappyCons (_) (t)) = happyDrop (n -# (1# :: Int#)) t
-
-happyDropStk 0# l = l
-happyDropStk n (x `HappyStk` xs) = happyDropStk (n -# (1#::Int#)) xs
-
------------------------------------------------------------------------------
--- Moving to a new state after a reduction
-
-
-happyGoto nt j tk st = 
-   {- nothing -}
-   happyDoAction j tk new_state
-   where off    = indexShortOffAddr happyGotoOffsets st
-	 off_i  = (off +# nt)
- 	 new_state = indexShortOffAddr happyTable off_i
-
-
-
-
------------------------------------------------------------------------------
--- Error recovery (0# is the error token)
-
--- parse error if we are in recovery and we fail again
-happyFail  0# tk old_st _ stk =
---	trace "failing" $ 
-    	happyError_ tk
-
-{-  We don't need state discarding for our restricted implementation of
-    "error".  In fact, it can cause some bogus parses, so I've disabled it
-    for now --SDM
-
--- discard a state
-happyFail  0# tk old_st (HappyCons ((action)) (sts)) 
-						(saved_tok `HappyStk` _ `HappyStk` stk) =
---	trace ("discarding state, depth " ++ show (length stk))  $
-	happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))
--}
-
--- Enter error recovery: generate an error token,
---                       save the old token and carry on.
-happyFail  i tk (action) sts stk =
---      trace "entering error recovery" $
-	happyDoAction 0# tk action sts ( (unsafeCoerce# (I# (i))) `HappyStk` stk)
-
--- Internal happy errors:
-
-notHappyAtAll = error "Internal Happy error\n"
-
------------------------------------------------------------------------------
--- Hack to get the typechecker to accept our action functions
-
-
-happyTcHack :: Int# -> a -> a
+{-# OPTIONS_GHC -fno-warn-overlapping-patterns #-}
+{-# OPTIONS -fglasgow-exts -cpp #-}
+-- -*-Haskell-*-
+{-# OPTIONS_GHC -fglasgow-exts #-}
+
+module Idris.Parser where
+
+import Data.Char
+import Ivor.TT
+import System.IO.Unsafe
+import List
+import Control.Monad
+
+import Idris.AbsSyntax
+import Idris.Lexer
+import Idris.Lib
+
+import Debug.Trace
+#if __GLASGOW_HASKELL__ >= 503
+import qualified Data.Array as Happy_Data_Array
+#else
+import qualified Array as Happy_Data_Array
+#endif
+#if __GLASGOW_HASKELL__ >= 503
+import qualified GHC.Exts as Happy_GHC_Exts
+#else
+import qualified GlaExts as Happy_GHC_Exts
+#endif
+
+-- parser produced by Happy Version 1.18.4
+
+newtype HappyAbsSyn t69 = HappyAbsSyn HappyAny
+#if __GLASGOW_HASKELL__ >= 607
+type HappyAny = Happy_GHC_Exts.Any
+#else
+type HappyAny = forall a . a
+#endif
+happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t69)
+happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn6 #-}
+happyOut6 :: (HappyAbsSyn t69) -> ([ParseDecl])
+happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut6 #-}
+happyIn7 :: (ParseDecl) -> (HappyAbsSyn t69)
+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn7 #-}
+happyOut7 :: (HappyAbsSyn t69) -> (ParseDecl)
+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut7 #-}
+happyIn8 :: (Decl) -> (HappyAbsSyn t69)
+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn8 #-}
+happyOut8 :: (HappyAbsSyn t69) -> (Decl)
+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut8 #-}
+happyIn9 :: (ParseDecl) -> (HappyAbsSyn t69)
+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn9 #-}
+happyOut9 :: (HappyAbsSyn t69) -> (ParseDecl)
+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut9 #-}
+happyIn10 :: (CGFlag) -> (HappyAbsSyn t69)
+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn10 #-}
+happyOut10 :: (HappyAbsSyn t69) -> (CGFlag)
+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut10 #-}
+happyIn11 :: (Bool) -> (HappyAbsSyn t69)
+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn11 #-}
+happyOut11 :: (HappyAbsSyn t69) -> (Bool)
+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut11 #-}
+happyIn12 :: ([RawTerm]) -> (HappyAbsSyn t69)
+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn12 #-}
+happyOut12 :: (HappyAbsSyn t69) -> ([RawTerm])
+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut12 #-}
+happyIn13 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn13 #-}
+happyOut13 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut13 #-}
+happyIn14 :: ([ParseDecl]) -> (HappyAbsSyn t69)
+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn14 #-}
+happyOut14 :: (HappyAbsSyn t69) -> ([ParseDecl])
+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut14 #-}
+happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t69)
+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn15 #-}
+happyOut15 :: (HappyAbsSyn t69) -> ([CGFlag])
+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut15 #-}
+happyIn16 :: ([CGFlag]) -> (HappyAbsSyn t69)
+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn16 #-}
+happyOut16 :: (HappyAbsSyn t69) -> ([CGFlag])
+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut16 #-}
+happyIn17 :: ([CGFlag]) -> (HappyAbsSyn t69)
+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn17 #-}
+happyOut17 :: (HappyAbsSyn t69) -> ([CGFlag])
+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut17 #-}
+happyIn18 :: ([Decl]) -> (HappyAbsSyn t69)
+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn18 #-}
+happyOut18 :: (HappyAbsSyn t69) -> ([Decl])
+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut18 #-}
+happyIn19 :: ([String]) -> (HappyAbsSyn t69)
+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn19 #-}
+happyOut19 :: (HappyAbsSyn t69) -> ([String])
+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut19 #-}
+happyIn20 :: (String) -> (HappyAbsSyn t69)
+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn20 #-}
+happyOut20 :: (HappyAbsSyn t69) -> (String)
+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut20 #-}
+happyIn21 :: (Fixity) -> (HappyAbsSyn t69)
+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn21 #-}
+happyOut21 :: (HappyAbsSyn t69) -> (Fixity)
+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut21 #-}
+happyIn22 :: (Decl) -> (HappyAbsSyn t69)
+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn22 #-}
+happyOut22 :: (HappyAbsSyn t69) -> (Decl)
+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut22 #-}
+happyIn23 :: ([(Id,String)]) -> (HappyAbsSyn t69)
+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn23 #-}
+happyOut23 :: (HappyAbsSyn t69) -> ([(Id,String)])
+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut23 #-}
+happyIn24 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t69)
+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn24 #-}
+happyOut24 :: (HappyAbsSyn t69) -> ((Id, [(RawTerm, Maybe Id)]))
+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut24 #-}
+happyIn25 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t69)
+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn25 #-}
+happyOut25 :: (HappyAbsSyn t69) -> ([(RawTerm,Maybe Id)])
+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut25 #-}
+happyIn26 :: (Datatype) -> (HappyAbsSyn t69)
+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn26 #-}
+happyOut26 :: (HappyAbsSyn t69) -> (Datatype)
+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut26 #-}
+happyIn27 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t69)
+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn27 #-}
+happyOut27 :: (HappyAbsSyn t69) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut27 #-}
+happyIn28 :: ([TyOpt]) -> (HappyAbsSyn t69)
+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn28 #-}
+happyOut28 :: (HappyAbsSyn t69) -> ([TyOpt])
+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut28 #-}
+happyIn29 :: ([TyOpt]) -> (HappyAbsSyn t69)
+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn29 #-}
+happyOut29 :: (HappyAbsSyn t69) -> ([TyOpt])
+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut29 #-}
+happyIn30 :: (TyOpt) -> (HappyAbsSyn t69)
+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn30 #-}
+happyOut30 :: (HappyAbsSyn t69) -> (TyOpt)
+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut30 #-}
+happyIn31 :: (Id) -> (HappyAbsSyn t69)
+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn31 #-}
+happyOut31 :: (HappyAbsSyn t69) -> (Id)
+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut31 #-}
+happyIn32 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn32 #-}
+happyOut32 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut32 #-}
+happyIn33 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn33 #-}
+happyOut33 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut33 #-}
+happyIn34 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn34 #-}
+happyOut34 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut34 #-}
+happyIn35 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn35 #-}
+happyOut35 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut35 #-}
+happyIn36 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn36 #-}
+happyOut36 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut36 #-}
+happyIn37 :: ([Id]) -> (HappyAbsSyn t69)
+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn37 #-}
+happyOut37 :: (HappyAbsSyn t69) -> ([Id])
+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut37 #-}
+happyIn38 :: ([(Id, Int)]) -> (HappyAbsSyn t69)
+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn38 #-}
+happyOut38 :: (HappyAbsSyn t69) -> ([(Id, Int)])
+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut38 #-}
+happyIn39 :: ([Id]) -> (HappyAbsSyn t69)
+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn39 #-}
+happyOut39 :: (HappyAbsSyn t69) -> ([Id])
+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut39 #-}
+happyIn40 :: ([Id]) -> (HappyAbsSyn t69)
+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn40 #-}
+happyOut40 :: (HappyAbsSyn t69) -> ([Id])
+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut40 #-}
+happyIn41 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn41 #-}
+happyOut41 :: (HappyAbsSyn t69) -> ([(Id, RawTerm, RawTerm)])
+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut41 #-}
+happyIn42 :: ((Id, RawTerm)) -> (HappyAbsSyn t69)
+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn42 #-}
+happyOut42 :: (HappyAbsSyn t69) -> ((Id, RawTerm))
+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut42 #-}
+happyIn43 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn43 #-}
+happyOut43 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut43 #-}
+happyIn44 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn44 #-}
+happyOut44 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut44 #-}
+happyIn45 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn45 #-}
+happyOut45 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut45 #-}
+happyIn46 :: (String) -> (HappyAbsSyn t69)
+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn46 #-}
+happyOut46 :: (HappyAbsSyn t69) -> (String)
+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut46 #-}
+happyIn47 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn47 #-}
+happyOut47 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut47 #-}
+happyIn48 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn48 #-}
+happyOut48 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut48 #-}
+happyIn49 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn49 #-}
+happyOut49 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut49 #-}
+happyIn50 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn50 #-}
+happyOut50 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut50 #-}
+happyIn51 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn51 #-}
+happyOut51 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut51 #-}
+happyIn52 :: ([RawTerm]) -> (HappyAbsSyn t69)
+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn52 #-}
+happyOut52 :: (HappyAbsSyn t69) -> ([RawTerm])
+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut52 #-}
+happyIn53 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn53 #-}
+happyOut53 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut53 #-}
+happyIn54 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn54 #-}
+happyOut54 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut54 #-}
+happyIn55 :: ([RawTerm]) -> (HappyAbsSyn t69)
+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn55 #-}
+happyOut55 :: (HappyAbsSyn t69) -> ([RawTerm])
+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut55 #-}
+happyIn56 :: ([Do]) -> (HappyAbsSyn t69)
+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn56 #-}
+happyOut56 :: (HappyAbsSyn t69) -> ([Do])
+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut56 #-}
+happyIn57 :: ([Do]) -> (HappyAbsSyn t69)
+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn57 #-}
+happyOut57 :: (HappyAbsSyn t69) -> ([Do])
+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut57 #-}
+happyIn58 :: (Do) -> (HappyAbsSyn t69)
+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn58 #-}
+happyOut58 :: (HappyAbsSyn t69) -> (Do)
+happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut58 #-}
+happyIn59 :: (Constant) -> (HappyAbsSyn t69)
+happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn59 #-}
+happyOut59 :: (HappyAbsSyn t69) -> (Constant)
+happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut59 #-}
+happyIn60 :: ([RawTerm]) -> (HappyAbsSyn t69)
+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn60 #-}
+happyOut60 :: (HappyAbsSyn t69) -> ([RawTerm])
+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut60 #-}
+happyIn61 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t69)
+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn61 #-}
+happyOut61 :: (HappyAbsSyn t69) -> ((RawTerm, [(Id, RawTerm)]))
+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut61 #-}
+happyIn62 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn62 #-}
+happyOut62 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut62 #-}
+happyIn63 :: ((Id,Id)) -> (HappyAbsSyn t69)
+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn63 #-}
+happyOut63 :: (HappyAbsSyn t69) -> ((Id,Id))
+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut63 #-}
+happyIn64 :: ((Id,Id)) -> (HappyAbsSyn t69)
+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn64 #-}
+happyOut64 :: (HappyAbsSyn t69) -> ((Id,Id))
+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut64 #-}
+happyIn65 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn65 #-}
+happyOut65 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut65 #-}
+happyIn66 :: (Id) -> (HappyAbsSyn t69)
+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn66 #-}
+happyOut66 :: (HappyAbsSyn t69) -> (Id)
+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut66 #-}
+happyIn67 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn67 #-}
+happyOut67 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut67 #-}
+happyIn68 :: ([Id]) -> (HappyAbsSyn t69)
+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn68 #-}
+happyOut68 :: (HappyAbsSyn t69) -> ([Id])
+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut68 #-}
+happyIn69 :: t69 -> (HappyAbsSyn t69)
+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn69 #-}
+happyOut69 :: (HappyAbsSyn t69) -> t69
+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut69 #-}
+happyIn70 :: ([ConParse]) -> (HappyAbsSyn t69)
+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn70 #-}
+happyOut70 :: (HappyAbsSyn t69) -> ([ConParse])
+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut70 #-}
+happyIn71 :: (ConParse) -> (HappyAbsSyn t69)
+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn71 #-}
+happyOut71 :: (HappyAbsSyn t69) -> (ConParse)
+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut71 #-}
+happyIn72 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn72 #-}
+happyOut72 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut72 #-}
+happyIn73 :: (ITactic) -> (HappyAbsSyn t69)
+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn73 #-}
+happyOut73 :: (HappyAbsSyn t69) -> (ITactic)
+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut73 #-}
+happyIn74 :: ([ITactic]) -> (HappyAbsSyn t69)
+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn74 #-}
+happyOut74 :: (HappyAbsSyn t69) -> ([ITactic])
+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut74 #-}
+happyIn75 :: ([ITactic]) -> (HappyAbsSyn t69)
+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn75 #-}
+happyOut75 :: (HappyAbsSyn t69) -> ([ITactic])
+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut75 #-}
+happyIn76 :: (LineNumber) -> (HappyAbsSyn t69)
+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn76 #-}
+happyOut76 :: (HappyAbsSyn t69) -> (LineNumber)
+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut76 #-}
+happyIn77 :: (String) -> (HappyAbsSyn t69)
+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn77 #-}
+happyOut77 :: (HappyAbsSyn t69) -> (String)
+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut77 #-}
+happyIn78 :: (Fixities) -> (HappyAbsSyn t69)
+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn78 #-}
+happyOut78 :: (HappyAbsSyn t69) -> (Fixities)
+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut78 #-}
+happyInTok :: (Token) -> (HappyAbsSyn t69)
+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyInTok #-}
+happyOutTok :: (HappyAbsSyn t69) -> (Token)
+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOutTok #-}
+
+
+happyActOffsets :: HappyAddr
+happyActOffsets = HappyA# "\x1a\x00\x44\x05\x1e\x0e\x00\x00\xf2\x03\x13\x01\x13\x01\x44\x05\x00\x00\x46\x03\xf1\x02\x00\x00\x13\x01\x00\x00\x44\x05\x44\x05\x00\x00\x44\x05\x44\x05\x44\x05\x44\x05\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x01\x23\x09\x47\x02\x44\x05\x44\x05\x17\x08\x44\x05\x00\x00\x13\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x05\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x44\x05\x6a\x00\xeb\x03\x01\x00\x00\x00\x00\x00\x01\x00\x5a\x04\x00\x00\x36\x04\x00\x00\x0d\x02\x4a\x04\x40\x04\x3f\x04\x3d\x04\x35\x04\x5d\x09\xb9\x01\x27\x04\x00\x00\x00\x00\x00\x00\x31\x04\x30\x04\x2a\x04\x6a\x00\x6a\x00\x34\x04\xf6\x03\x1d\x04\x2b\x04\x44\x05\x18\x04\x17\x04\x00\x00\x00\x00\x8b\x03\x0f\x04\x6a\x00\x06\x04\x0e\x04\x6a\x00\x00\x00\x6a\x00\x6a\x00\x6a\x00\x6a\x00\x12\x02\x03\x04\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\x17\x00\x00\x00\x00\x00\x9c\x02\x00\x00\x00\x00\x00\x00\xcf\x00\xcf\x00\xcf\x00\xcf\x00\xcf\x00\x00\x00\xdd\x07\x08\x04\x0e\x01\xe9\x08\x00\x04\xe9\xff\x5d\x09\xb9\x01\x00\x00\x00\x00\x07\x04\xb7\x03\x8c\x02\x00\x00\x05\x04\xef\x04\x00\x00\x00\x00\x0b\x04\x00\x00\x0b\x04\x00\x00\x0c\x0a\xa8\x0a\xca\x01\xfc\x09\x9a\x04\xfb\x03\x9a\x04\x9a\x04\xf9\x03\xf8\x03\x9a\x04\x9a\x04\xb2\x01\x4e\x00\x00\x00\x9a\x04\xaf\x08\x6a\x00\xfd\x03\xce\x03\x00\x00\x17\x08\xe7\x03\x00\x00\x9a\x04\xdc\x03\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x00\x00\x8a\x01\x76\x01\x68\x01\x54\x01\x46\x01\x32\x01\x00\x00\x24\x01\x9a\x04\x10\x01\x9a\x04\xc4\x00\x00\x00\xd5\x03\x00\x00\x6a\x00\x5b\x00\x05\x00\x00\x00\xef\x03\xef\x03\xef\x03\xef\x03\xef\x03\x00\x00\x9a\x04\xef\x03\x17\x08\x00\x00\x00\x00\x00\x00\x9a\x04\xc7\x03\x23\x09\xe2\x03\xda\x03\xc0\x03\xb7\x01\xd4\x03\x86\x00\xcf\x03\x8f\x0a\x23\x09\x00\x00\x23\x09\xd0\x03\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x9a\x04\x00\x00\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x9a\x04\xcd\x03\x00\x00\x00\x00\x9a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\x17\x09\xc4\x03\x45\x04\x6a\x00\x96\x03\x00\x00\xf0\x03\xf0\x03\xa6\x03\xba\x03\x9e\x03\xb3\x03\xf0\x03\xf0\x03\xf0\x03\x67\x03\x1e\x0e\xb4\x03\x97\x00\x03\x00\x97\x03\xdd\x07\xf0\x03\x00\x00\x00\x00\xa9\x03\xa8\x03\xa4\x03\xa2\x03\xa1\x03\x00\x00\x00\x00\xef\x09\x9f\x03\x00\x00\x00\x00\xf0\x03\xf0\x03\xf0\x03\x00\x00\x9a\x03\x86\x03\x00\x00\x00\x00\xe3\x00\x9d\x03\x94\x03\x80\x03\x87\x03\x6a\x00\x7d\x03\x01\x00\x6a\x00\x83\x03\x77\x03\x00\x00\xf0\x03\x82\x0a\x8d\x03\x00\x00\x69\x03\x00\x00\xf0\x03\x00\x00\x00\x00\x6a\x00\x00\x00\xe9\x08\x00\x00\x6a\x00\x6a\x00\x70\x03\xe9\x08\x00\x00\x00\x00\x12\x02\x00\x00\x80\x0a\x6d\x0a\x5a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x0a\x00\x00\x6a\x00\x00\x00\x00\x00\xcd\x01\xcd\x01\x82\x03\x00\x00\x00\x00\x00\x00\x7c\x03\x78\x03\x23\x09\x7f\x03\x76\x03\x00\x00\x46\x0a\xac\x01\x32\x0a\x00\x00\xb9\x01\x00\x00\xf0\x03\xa7\x00\x45\x00\xf0\x03\x7b\x03\x00\x00\x00\x00\x00\x00\x57\x03\x76\x08\x00\x00\x51\x08\x29\x0a\x00\x00\x23\x09\x00\x00\x0e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x03\x00\x00\x6f\x03\x00\x00\x17\x08\x00\x00\x55\x03\x00\x00\x00\x00\x00\x00\x00\x00\x23\x09\x23\x09\x54\x03\xe9\x08\x6a\x00\x53\x03\xe9\x08\x03\x00\x6a\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x08\x51\x08\x51\x08\x51\x08\x51\x08\x51\x08\x00\x00\x00\x00\x00\x00\x00\x00\x23\x09\x00\x00\x88\x00\x23\x09\x1d\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x07\x00\x00\x69\x07\x00\x00\x2f\x07\x00\x00\xf5\x06\x65\x03\x63\x03\x62\x03\x5b\x03\x59\x03\x1c\x00\x00\x00\x00\x00\xf0\x03\xbb\x06\x49\x03\x17\x09\xf0\x03\x0a\x02\x00\x00\x82\x01\x5d\x03\x4c\x03\x00\x00\x1e\x0e\x03\x00\x36\x03\x6a\x00\x00\x00\x4d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x81\x06\x00\x00\x82\x01\x00\x00\x4b\x03\x00\x00\x00\x00\x00\x00\xf6\xff\x00\x00\x47\x06\x52\x03\x4e\x03\x00\x00\x00\x00\x31\x03\x47\x03\x19\x0a\x6a\x00\x2b\x03\x00\x00\x6a\x00\x42\x03\x00\x00\x00\x00\x6a\x00\x00\x00\x6a\x00\x00\x00\x17\x08\x00\x00\x00\x00\xe9\x08\x00\x00\x08\x03\x00\x00\x00\x00\x00\x00\x6a\x00\x82\x01\x3f\x03\x00\x00\x00\x00\x00\x00\x3d\x03\x00\x00\xfe\xff\x32\x03\xe9\x08\x00\x00\x6a\x00\x00\x00\x2f\x03\x6a\x00\x3e\x03\x00\x00\xf0\x03\x00\x00\x17\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x03\x0d\x03\x29\x03\x00\x00\x00\x00\x00\x00\x0a\x02\x0d\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x03\x00\x00\x00\x00\x12\x03\x6a\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x76\x08\x9b\x03\x00\x00\xd3\x05\x00\x00\x00\x00\x00\x00\x99\x05\x20\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyGotoOffsets :: HappyAddr
+happyGotoOffsets = HappyA# "\x67\x09\x43\x0e\xef\x02\x00\x00\x00\x00\x91\x01\x16\x03\x32\x0e\x00\x00\x21\x0e\x10\x0e\x00\x00\x13\x03\x00\x00\xff\x0d\xee\x0d\x00\x00\xdd\x0d\xcc\x0d\xbb\x0d\xaa\x0d\x00\x00\x00\x00\xda\x02\x41\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x01\xaf\x06\xab\x0a\x99\x0d\x88\x0d\x58\x05\x77\x0d\x00\x00\x05\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x0d\x00\x00\xd6\x02\xd5\x02\x00\x00\xd1\x02\x55\x0d\x4d\x01\x00\x00\xf4\x08\x00\x00\x00\x00\x72\x05\x00\x00\x00\x00\x11\x03\x00\x00\xb8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x07\x03\xfe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x02\xf9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x44\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x41\x01\x00\x00\x86\x01\x00\x00\x00\x00\x0f\x01\x00\x00\x60\x00\xf6\x02\x48\x00\xf4\x02\x1f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x03\xc4\x02\x40\x01\x00\x00\xc3\x02\xbe\x0a\x00\x00\xb7\x02\xb6\x02\x1d\x05\xc8\x04\x73\x04\x1e\x04\xc9\x03\x00\x00\x04\x04\x00\x00\x00\x00\xce\x07\x00\x00\xc1\x02\xff\xff\x0b\x02\x00\x00\x00\x00\xd3\x02\x00\x00\x3d\x01\xad\x02\xd2\x02\xf1\x0a\xa8\x02\xa7\x02\x39\x01\xa5\x02\x36\x01\x00\x00\x17\x01\x17\x01\x27\x01\x8d\x00\x33\x0d\x00\x00\x22\x0d\x11\x0d\x00\x00\x00\x00\xbe\x09\xba\x09\x15\x01\x00\x00\x00\x00\x00\x0d\xc7\x05\x11\x02\xbb\x02\x00\x00\xa1\x02\x36\x05\x00\x00\xa0\x02\xef\x0c\x9e\x02\xde\x0c\xcd\x0c\xbc\x0c\xab\x0c\x9a\x0c\x9b\x02\x14\x01\x14\x01\x14\x01\x14\x01\x14\x01\x14\x01\x00\x00\x14\x01\x89\x0c\x14\x01\x78\x0c\x14\x01\x00\x00\x00\x00\x00\x00\x87\x01\x14\x01\x14\x01\x00\x00\x0c\x01\x07\x01\x06\x01\x05\x01\xf8\x00\x9a\x02\x67\x0c\xe5\x00\x03\x05\x98\x02\x96\x02\x00\x00\x56\x0c\x00\x00\x75\x06\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\xde\x00\x3b\x06\x00\x00\x39\x06\x00\x00\x95\x02\xd7\x00\x92\x02\xd2\x00\x91\x02\xd1\x00\x82\x02\xc1\x00\x81\x02\x9f\x09\x00\x00\x9b\x09\x45\x0c\x34\x0c\x40\x03\x80\x09\x00\x00\x00\x00\x80\x02\x23\x0c\x7f\x02\x7d\x02\x7c\x02\x00\x00\x00\x00\xe2\xff\xba\x00\x00\x00\xe0\x0a\x3f\x01\x00\x00\x00\x00\x12\x0c\x01\x0c\x00\x00\x00\x00\x00\x00\xba\x02\xf0\x0b\xdf\x0b\xce\x0b\x00\x00\xa6\x01\xbc\x01\x48\x02\x00\x00\x00\x00\xaf\x03\xbd\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x02\x76\x02\xb8\x00\x00\x00\x75\x02\x6f\x02\xac\x0b\x9b\x0b\x8a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\xca\x02\x9f\x02\x00\x00\x00\x00\x00\x00\x79\x0b\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x0b\x00\x00\x00\x00\x9d\x02\x00\x00\x94\x07\x6a\x02\x08\x00\x30\x00\x00\x00\x5a\x07\x69\x02\x66\x02\xf1\x01\x00\x00\xb8\x00\xb8\x00\xb8\x00\x00\x00\x00\x00\x61\x02\x00\x00\x02\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x60\x02\x53\x01\x5f\x02\x00\x00\xee\x01\xbd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x06\x00\x00\x00\x00\x00\x00\xb8\x00\x0c\x00\xb8\x00\x00\x00\x95\x01\x00\x00\x57\x0b\xb8\x00\xb8\x00\x46\x0b\xd6\x01\x00\x00\x00\x00\x53\x02\x00\x00\xe1\x04\x00\x00\xe1\x04\xb8\x00\x52\x02\x7b\x05\x51\x02\xb8\x00\x00\x00\x4c\x02\x4b\x02\x43\x02\x41\x02\x40\x02\x3b\x02\x32\x02\x00\x00\x31\x02\x00\x00\x30\x02\xae\x04\x2c\x02\x00\x00\x2b\x02\x00\x00\x1e\x02\x00\x00\x01\x03\x57\x02\x00\x00\x20\x07\xd9\x01\x00\x00\xe6\x06\x00\x00\xf3\xff\xb8\x00\x25\x02\x22\x02\x00\x00\x20\x02\xb8\x00\x00\x00\x18\x02\x0e\x02\x04\x02\x01\x02\xf8\x01\x00\x00\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x01\x00\x00\x00\x00\xa0\x01\x00\x00\x00\x00\xed\x01\xf3\x01\xe5\x01\xe0\x01\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\x35\x0b\x8c\x04\x00\x00\xb5\x00\x24\x0b\x99\x00\x00\x00\x21\x02\x00\x00\x00\x00\x00\x00\x9f\x01\x00\x00\x00\x00\x85\x01\x00\x00\x00\x00\x00\x00\xc5\x01\x00\x00\xaf\x01\x5b\x02\xaa\x01\x99\x01\x00\x00\x00\x00\x00\x00\x97\x01\x7c\x01\x71\x01\x4a\x01\x1d\x09\x00\x00\x00\x00\x00\x00\x38\x01\x00\x00\x00\x00\x99\x00\x31\x01\x00\x00\x00\x00\x56\x01\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\xf9\xff\x00\x00\x59\x04\x00\x00\x00\x00\x72\x06\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x01\x77\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x01\x00\x00\x0b\x01\xd9\x00\x00\x00\xe1\x00\x7b\x00\xa6\x00\x13\x0b\x00\x00\x3f\x00\x82\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x50\x00\xef\xff\x37\x04\x4b\x00\x00\x00\x38\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x01\x28\x00\x00\x00\xdf\xff\x37\x04\xcf\x0a\xda\xff\x37\x04\x00\x00\x00\x00\x00\x00\x37\x04\x00\x00\x00\x00\xc8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyDefActions :: HappyAddr
+happyDefActions = HappyA# "\x32\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xff\x00\x00\x00\x00\x1c\xff\x00\x00\x00\x00\x17\xff\x00\x00\x15\xff\x00\x00\x00\x00\x12\xff\x00\x00\x00\x00\x00\x00\x00\x00\x0d\xff\x0c\xff\x07\xff\x07\xff\x9e\xff\x83\xff\x51\xff\x52\xff\xa5\xff\x50\xff\x55\xff\x07\xff\xae\xff\x3a\xff\x3c\xff\x38\xff\x3b\xff\x39\xff\x5c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xff\x00\x00\x42\xff\x41\xff\x40\xff\x43\xff\x3e\xff\x3f\xff\x3d\xff\x44\xff\x00\x00\x59\xff\x07\xff\x07\xff\x00\x00\x07\xff\x00\x00\x00\x00\x00\x00\x32\xff\xef\xff\xf8\xff\x32\xff\x00\x00\xf6\xff\xdb\xff\xf7\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xff\xc1\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\xed\xff\x07\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\xc6\xff\xc5\xff\xc4\xff\x00\x00\x07\xff\x07\xff\xd9\xff\x07\xff\x00\x00\xa8\xff\x07\xff\x07\xff\x32\xff\x32\xff\x32\xff\x32\xff\x32\xff\xbd\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x73\xff\x00\x00\x07\xff\x08\xff\x73\xff\x00\x00\x08\xff\x08\xff\x07\xff\x07\xff\x07\xff\x5d\xff\x07\xff\x07\xff\x07\xff\x07\xff\x00\x00\x00\x00\xc7\xff\xc6\xff\x75\xff\x74\xff\x07\xff\x07\xff\x07\xff\x00\x00\x64\xff\x00\x00\x00\x00\x00\x00\x73\xff\x00\x00\x08\xff\x00\x00\x00\x00\x08\xff\x00\x00\x07\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x16\xff\x07\xff\x00\x00\x07\xff\x00\x00\x07\xff\x1e\xff\x97\xff\x20\xff\x00\x00\x07\xff\x07\xff\x60\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x08\xff\x00\x00\x07\xff\x00\x00\x07\xff\x07\xff\x5a\xff\x00\x00\x9c\xff\x00\x00\x00\x00\x00\x00\x99\xff\x07\xff\x00\x00\x00\x00\x00\x00\x07\xff\x00\x00\xa4\xff\x00\x00\x00\x00\x08\xff\x07\xff\x08\xff\x07\xff\x08\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x5e\xff\x07\xff\x75\xff\x74\xff\x07\xff\x07\xff\x00\x00\x54\xff\x07\xff\x00\x00\x08\xff\x08\xff\x08\xff\x58\xff\x57\xff\x07\xff\x07\xff\x00\x00\x48\xff\x00\x00\x00\x00\x5f\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xdb\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\x71\xff\xd2\xff\x6e\xff\x91\xff\xbc\xff\x00\x00\xe9\xff\xbb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xff\x08\xff\x07\xff\x00\x00\x08\xff\x08\xff\x00\x00\x00\x00\x00\x00\xad\xff\x00\x00\xb2\xff\xb0\xff\xaf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x32\xff\x00\x00\x00\x00\x00\x00\xf5\xff\x00\x00\x07\xff\x00\x00\xc0\xff\x00\x00\xf9\xff\x00\x00\x8e\xff\x2e\xff\x00\x00\x31\xff\x00\x00\x07\xff\x2a\xff\x26\xff\x00\x00\x00\x00\x07\xff\x07\xff\x00\x00\xb3\xff\x07\xff\x07\xff\x07\xff\xaa\xff\xa9\xff\x07\xff\xd8\xff\x00\x00\xa7\xff\xa6\xff\xf0\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\x07\xff\x07\xff\x00\x00\x07\xff\xd4\xff\xd2\xff\xd2\xff\x00\x00\xcc\xff\xd0\xff\xcf\xff\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\x07\xff\x07\xff\x07\xff\xdc\xff\x00\x00\xca\xff\x00\x00\x07\xff\x07\xff\x00\x00\x73\xff\x49\xff\x4b\xff\x08\xff\x00\x00\xa1\xff\x5b\xff\x89\xff\x07\xff\x08\xff\x00\x00\x08\xff\x07\xff\x4c\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x00\x00\x08\xff\x00\x00\x08\xff\x00\x00\x07\xff\x6d\xff\x07\xff\x67\xff\x07\xff\x6a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\xff\x00\x00\x07\xff\x08\xff\x08\xff\xa3\xff\x08\xff\x07\xff\x8b\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x96\xff\x84\xff\x87\xff\x85\xff\x86\xff\x88\xff\x81\xff\xa2\xff\x82\xff\x9b\xff\x98\xff\x00\x00\x9a\xff\x72\xff\x00\x00\x62\xff\x61\xff\x07\xff\x08\xff\x08\xff\x08\xff\xac\xff\x00\x00\x79\xff\x00\x00\x78\xff\x00\x00\x53\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xff\x07\xff\x00\x00\x00\x00\x00\x00\x07\xff\x00\x00\x07\xff\xc8\xff\x00\x00\x00\x00\x00\x00\x0b\xff\x0a\xff\x70\xff\x00\x00\x00\x00\xcb\xff\x00\x00\xd1\xff\x08\xff\x90\xff\x08\xff\xbc\xff\x08\xff\x00\x00\xe5\xff\x00\x00\xb1\xff\x08\xff\x08\xff\x32\xff\x07\xff\x37\xff\x00\x00\x25\xff\x29\xff\x08\xff\x2c\xff\x00\x00\x07\xff\x00\x00\xbf\xff\xeb\xff\x00\x00\x00\x00\xee\xff\x2f\xff\x00\x00\xb8\xff\x26\xff\xb7\xff\x37\xff\x22\xff\x23\xff\x00\x00\x08\xff\x00\x00\xb6\xff\xb5\xff\x34\xff\x00\x00\xd5\xff\x00\x00\xd7\xff\xb9\xff\xba\xff\x00\x00\xd3\xff\x94\xff\x00\x00\x00\x00\x09\xff\x00\x00\x07\xff\x00\x00\x00\x00\x07\xff\x08\xff\x00\x00\x45\xff\x07\xff\x08\xff\x07\xff\x7b\xff\x77\xff\x7c\xff\x7f\xff\x7d\xff\x7e\xff\x80\xff\x76\xff\x7a\xff\xab\xff\x66\xff\x65\xff\x08\xff\x6c\xff\x6b\xff\x00\x00\x08\xff\x4f\xff\x08\xff\x07\xff\x00\x00\x08\xff\x8c\xff\x07\xff\x08\xff\x00\x00\x6f\xff\xce\xff\x95\xff\x00\x00\xea\xff\xe3\xff\xd6\xff\x00\x00\x35\xff\x33\xff\x21\xff\x36\xff\x24\xff\x2b\xff\x30\xff\xbe\xff\xe4\xff\x93\xff\x00\x00\x07\xff\xe6\xff\x08\xff\x9d\xff\x00\x00\x08\xff\x00\x00\x63\xff\x69\xff\x47\xff\x00\x00\x00\x00\xe8\xff\x08\xff\x92\xff\xe7\xff\x4a\xff\x46\xff"#
+
+happyCheck :: HappyAddr
+happyCheck = HappyA# "\xff\xff\x0b\x00\x01\x00\x05\x00\x0a\x00\x02\x00\x07\x00\x02\x00\x03\x00\x20\x00\x21\x00\x29\x00\x19\x00\x0c\x00\x46\x00\x1c\x00\x0b\x00\x10\x00\x19\x00\x24\x00\x13\x00\x09\x00\x0a\x00\x0b\x00\x19\x00\x1a\x00\x03\x00\x01\x00\x20\x00\x21\x00\x02\x00\x02\x00\x46\x00\x19\x00\x1d\x00\x0c\x00\x26\x00\x46\x00\x0c\x00\x22\x00\x23\x00\x47\x00\x10\x00\x31\x00\x27\x00\x11\x00\x19\x00\x30\x00\x24\x00\x2e\x00\x49\x00\x2e\x00\x35\x00\x3f\x00\x47\x00\x20\x00\x21\x00\x40\x00\x41\x00\x07\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x27\x00\x49\x00\x3e\x00\x02\x00\x03\x00\x19\x00\x2e\x00\x2e\x00\x4b\x00\x19\x00\x1a\x00\x46\x00\x02\x00\x50\x00\x3d\x00\x47\x00\x53\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x02\x00\x03\x00\x11\x00\x49\x00\x19\x00\x1d\x00\x24\x00\x30\x00\x4b\x00\x0b\x00\x22\x00\x23\x00\x35\x00\x50\x00\x01\x00\x27\x00\x53\x00\x6d\x00\x47\x00\x40\x00\x41\x00\x71\x00\x2e\x00\x73\x00\x74\x00\x75\x00\x76\x00\x1d\x00\x19\x00\x10\x00\x76\x00\x2e\x00\x22\x00\x23\x00\x47\x00\x02\x00\x03\x00\x27\x00\x02\x00\x03\x00\x3d\x00\x47\x00\x6d\x00\x02\x00\x2e\x00\x02\x00\x71\x00\x0b\x00\x73\x00\x74\x00\x75\x00\x76\x00\x46\x00\x11\x00\x12\x00\x13\x00\x14\x00\x46\x00\x11\x00\x17\x00\x11\x00\x19\x00\x1d\x00\x57\x00\x3d\x00\x1d\x00\x24\x00\x22\x00\x23\x00\x46\x00\x22\x00\x23\x00\x27\x00\x20\x00\x26\x00\x27\x00\x02\x00\x03\x00\x14\x00\x2e\x00\x27\x00\x26\x00\x2e\x00\x2f\x00\x24\x00\x0b\x00\x46\x00\x2e\x00\x28\x00\x2e\x00\x47\x00\x11\x00\x12\x00\x13\x00\x14\x00\x03\x00\x24\x00\x17\x00\x29\x00\x19\x00\x15\x00\x47\x00\x19\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x46\x00\x22\x00\x23\x00\x12\x00\x22\x00\x26\x00\x27\x00\x0b\x00\x01\x00\x76\x00\x51\x00\x52\x00\x47\x00\x2e\x00\x2f\x00\x56\x00\x57\x00\x24\x00\x59\x00\x0c\x00\x24\x00\x47\x00\x24\x00\x10\x00\x47\x00\x1d\x00\x13\x00\x37\x00\x01\x00\x24\x00\x22\x00\x23\x00\x51\x00\x52\x00\x3e\x00\x27\x00\x46\x00\x0a\x00\x0b\x00\x6e\x00\x6f\x00\x70\x00\x2e\x00\x10\x00\x76\x00\x24\x00\x24\x00\x76\x00\x51\x00\x52\x00\x19\x00\x24\x00\x47\x00\x56\x00\x57\x00\x47\x00\x59\x00\x47\x00\x24\x00\x20\x00\x23\x00\x6e\x00\x6f\x00\x70\x00\x47\x00\x24\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x02\x00\x03\x00\x01\x00\x6e\x00\x6f\x00\x70\x00\x47\x00\x47\x00\x4b\x00\x0b\x00\x24\x00\x76\x00\x47\x00\x50\x00\x47\x00\x13\x00\x53\x00\x10\x00\x19\x00\x47\x00\x02\x00\x03\x00\x19\x00\x24\x00\x24\x00\x24\x00\x47\x00\x1d\x00\x20\x00\x0b\x00\x24\x00\x22\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x24\x00\x24\x00\x76\x00\x24\x00\x6d\x00\x0b\x00\x2e\x00\x47\x00\x71\x00\x1d\x00\x73\x00\x74\x00\x75\x00\x46\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x47\x00\x47\x00\x47\x00\x1d\x00\x29\x00\x0b\x00\x2e\x00\x47\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x24\x00\x47\x00\x47\x00\x24\x00\x47\x00\x0b\x00\x2e\x00\x24\x00\x23\x00\x1d\x00\x24\x00\x24\x00\x19\x00\x11\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x47\x00\x19\x00\x23\x00\x1d\x00\x1f\x00\x0b\x00\x2e\x00\x19\x00\x22\x00\x23\x00\x02\x00\x03\x00\x03\x00\x27\x00\x20\x00\x47\x00\x46\x00\x08\x00\x47\x00\x0b\x00\x2e\x00\x01\x00\x47\x00\x1d\x00\x76\x00\x47\x00\x47\x00\x12\x00\x22\x00\x23\x00\x02\x00\x03\x00\x0c\x00\x27\x00\x19\x00\x47\x00\x10\x00\x1d\x00\x19\x00\x0b\x00\x2e\x00\x11\x00\x22\x00\x23\x00\x76\x00\x20\x00\x03\x00\x27\x00\x19\x00\x19\x00\x19\x00\x08\x00\x0d\x00\x0e\x00\x2e\x00\x20\x00\x1f\x00\x1d\x00\x76\x00\x38\x00\x19\x00\x12\x00\x22\x00\x23\x00\x02\x00\x03\x00\x1f\x00\x27\x00\x19\x00\x19\x00\x02\x00\x03\x00\x1c\x00\x0b\x00\x2e\x00\x19\x00\x1a\x00\x02\x00\x76\x00\x0b\x00\x0c\x00\x0d\x00\x14\x00\x0a\x00\x46\x00\x11\x00\x0d\x00\x13\x00\x14\x00\x0a\x00\x0b\x00\x1d\x00\x76\x00\x13\x00\x2c\x00\x2d\x00\x22\x00\x23\x00\x47\x00\x19\x00\x20\x00\x27\x00\x0a\x00\x35\x00\x1d\x00\x0d\x00\x26\x00\x27\x00\x2e\x00\x22\x00\x23\x00\x46\x00\x76\x00\x27\x00\x2e\x00\x2f\x00\x43\x00\x31\x00\x45\x00\x2d\x00\x2a\x00\x2f\x00\x30\x00\x43\x00\x32\x00\x45\x00\x76\x00\x35\x00\x19\x00\x1a\x00\x46\x00\x3f\x00\x19\x00\x19\x00\x1a\x00\x46\x00\x1d\x00\x1e\x00\x0a\x00\x0b\x00\x48\x00\x21\x00\x44\x00\x51\x00\x52\x00\x29\x00\x76\x00\x2c\x00\x2d\x00\x51\x00\x52\x00\x2b\x00\x2c\x00\x2d\x00\x17\x00\x18\x00\x35\x00\x46\x00\x02\x00\x03\x00\x01\x00\x35\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0d\x00\x0e\x00\x6e\x00\x6f\x00\x70\x00\x10\x00\x51\x00\x52\x00\x6e\x00\x6f\x00\x70\x00\x16\x00\x03\x00\x18\x00\x46\x00\x1d\x00\x1b\x00\x08\x00\x19\x00\x46\x00\x22\x00\x23\x00\x1d\x00\x1e\x00\x26\x00\x27\x00\x25\x00\x12\x00\x47\x00\x28\x00\x17\x00\x18\x00\x2e\x00\x46\x00\x19\x00\x6e\x00\x6f\x00\x70\x00\x46\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x46\x00\x01\x00\x02\x00\x46\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x09\x00\x0a\x00\x0b\x00\x46\x00\x0e\x00\x0f\x00\x10\x00\x46\x00\x47\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\x46\x00\x18\x00\x53\x00\x54\x00\x1b\x00\x59\x00\x1d\x00\x47\x00\x46\x00\x5a\x00\x46\x00\x22\x00\x23\x00\x46\x00\x25\x00\x26\x00\x13\x00\x28\x00\x19\x00\x1a\x00\x47\x00\x47\x00\x19\x00\x2e\x00\x46\x00\x46\x00\x46\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x46\x00\x27\x00\x2c\x00\x2d\x00\x2e\x00\x46\x00\x46\x00\x2d\x00\x46\x00\x2f\x00\x30\x00\x35\x00\x32\x00\x02\x00\x03\x00\x35\x00\x46\x00\x46\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x46\x00\x46\x00\x46\x00\x53\x00\x54\x00\x55\x00\x01\x00\x02\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x47\x00\x47\x00\x47\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x47\x00\x22\x00\x23\x00\x47\x00\x47\x00\x16\x00\x27\x00\x18\x00\x46\x00\x19\x00\x1b\x00\x19\x00\x1d\x00\x2e\x00\x46\x00\x46\x00\x46\x00\x22\x00\x23\x00\x06\x00\x25\x00\x46\x00\x46\x00\x28\x00\x46\x00\x05\x00\x47\x00\x47\x00\x47\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x46\x00\x46\x00\x0f\x00\x10\x00\x46\x00\x12\x00\x47\x00\x14\x00\x47\x00\x46\x00\x46\x00\x56\x00\x19\x00\x29\x00\x47\x00\x46\x00\x46\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x47\x00\x46\x00\x46\x00\x53\x00\x54\x00\x55\x00\x01\x00\x46\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x29\x00\x29\x00\x47\x00\x47\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x05\x00\x18\x00\x47\x00\x47\x00\x1b\x00\x19\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x19\x00\x19\x00\x16\x00\x0e\x00\x25\x00\x06\x00\x47\x00\x28\x00\x19\x00\x1a\x00\x47\x00\x47\x00\x19\x00\x11\x00\x47\x00\x47\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x19\x00\x2c\x00\x2d\x00\x19\x00\x22\x00\x23\x00\x43\x00\x13\x00\x26\x00\x27\x00\x35\x00\x15\x00\x26\x00\x15\x00\x11\x00\x2e\x00\x2e\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x03\x00\x13\x00\x11\x00\x53\x00\x54\x00\x55\x00\x01\x00\x0b\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x48\x00\x26\x00\x13\x00\x11\x00\x0e\x00\x0f\x00\x10\x00\x26\x00\x11\x00\x19\x00\x0c\x00\x1b\x00\x16\x00\x0b\x00\x18\x00\x14\x00\x14\x00\x1b\x00\x15\x00\x1d\x00\x2e\x00\x25\x00\x26\x00\x27\x00\x0b\x00\x20\x00\x11\x00\x25\x00\x11\x00\x2d\x00\x28\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x11\x00\x11\x00\x35\x00\x11\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x11\x00\x2e\x00\x2e\x00\x2e\x00\x11\x00\x0a\x00\x04\x00\x47\x00\x31\x00\x13\x00\x0b\x00\x13\x00\x10\x00\x02\x00\x03\x00\x26\x00\x20\x00\x04\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x13\x00\x20\x00\x11\x00\x53\x00\x54\x00\x55\x00\x01\x00\x20\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x11\x00\x26\x00\x0a\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x26\x00\x22\x00\x23\x00\x15\x00\x11\x00\x16\x00\x27\x00\x18\x00\x13\x00\x13\x00\x1b\x00\x13\x00\x1d\x00\x2e\x00\x2f\x00\x13\x00\x13\x00\x26\x00\x0a\x00\x0c\x00\x25\x00\x5a\x00\x13\x00\x28\x00\x26\x00\x0b\x00\x20\x00\x31\x00\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\x13\x00\x0f\x00\x10\x00\x0d\x00\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\x11\x00\x32\x00\x19\x00\x13\x00\x35\x00\x11\x00\x26\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x11\x00\x0a\x00\x26\x00\x53\x00\x54\x00\x55\x00\x01\x00\x03\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x13\x00\x26\x00\x20\x00\x2f\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x0a\x00\x18\x00\x11\x00\x11\x00\x1b\x00\x11\x00\x1d\x00\x03\x00\x0a\x00\x59\x00\x0a\x00\x12\x00\x0b\x00\x11\x00\x25\x00\x10\x00\x13\x00\x28\x00\x0b\x00\x0b\x00\x04\x00\x04\x00\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\x01\x00\x0f\x00\x10\x00\x12\x00\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\x3f\x00\x32\x00\x19\x00\x04\x00\x35\x00\x10\x00\x14\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x10\x00\x10\x00\x0c\x00\x53\x00\x54\x00\x55\x00\x01\x00\x12\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x12\x00\x19\x00\x12\x00\x12\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x12\x00\x18\x00\x27\x00\x05\x00\x1b\x00\x76\x00\x1d\x00\x20\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x76\x00\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\x36\x00\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x19\x00\x1a\x00\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x35\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\x0e\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\x1d\x00\x1e\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\x2e\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\x35\x00\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x02\x00\x03\x00\xff\xff\x53\x00\x54\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x01\x00\x02\x00\x13\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\x4d\x00\x4e\x00\x4f\x00\x27\x00\xff\xff\xff\xff\x53\x00\x54\x00\xff\xff\x1d\x00\x2e\x00\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x0f\x00\x10\x00\x1d\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\x2e\x00\xff\xff\xff\xff\x25\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x42\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x0c\x00\xff\xff\x18\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\x19\x00\x35\x00\x1b\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x25\x00\x26\x00\x27\x00\x47\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x2d\x00\x32\x00\x2f\x00\x30\x00\x35\x00\x32\x00\xff\xff\x19\x00\x35\x00\x1b\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\x47\x00\x25\x00\x26\x00\x27\x00\x47\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x2d\x00\x32\x00\x2f\x00\x30\x00\x35\x00\x32\x00\x02\x00\x03\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\x11\x00\x47\x00\xff\xff\xff\xff\xff\xff\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x11\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\xff\xff\x1d\x00\xff\xff\x02\x00\x03\x00\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\x0b\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\x02\x00\x03\x00\x1d\x00\xff\xff\xff\xff\xff\xff\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x19\x00\xff\xff\x12\x00\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x1d\x00\x27\x00\x0b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x2e\x00\xff\xff\x27\x00\x02\x00\x03\x00\x02\x00\x03\x00\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x13\x00\x12\x00\x27\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x2e\x00\x1d\x00\xff\xff\x1d\x00\x0b\x00\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\x02\x00\x03\x00\x02\x00\x03\x00\x2e\x00\xff\xff\x2e\x00\xff\xff\x1d\x00\x0b\x00\xff\xff\x0b\x00\xff\xff\x22\x00\x23\x00\x02\x00\x03\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x1d\x00\xff\xff\x1d\x00\x11\x00\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\x02\x00\x03\x00\x1d\x00\xff\xff\x2e\x00\xff\xff\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x1d\x00\x1b\x00\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x0e\x00\xff\xff\xff\xff\x27\x00\x25\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\x2e\x00\x19\x00\x2d\x00\x1b\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
+
+happyTable :: HappyAddr
+happyTable = HappyA# "\x00\x00\x0c\x02\x22\x00\x42\x02\xdc\x00\xe5\x00\x0d\x01\xb3\x00\xb4\x00\x10\x01\x11\x01\x7d\x01\xac\x00\x51\x00\x61\x02\xb7\x01\x18\xff\x52\x00\xf2\x01\xb0\x00\xfc\xff\xdb\x01\x62\x01\x63\x01\x76\x00\x77\x00\xb4\x00\x22\x00\x28\x01\x29\x01\xe5\x00\xe5\x00\x5c\x02\x47\x01\xb5\x00\xda\xff\x43\x02\x5e\x02\x51\x00\xb6\x00\xb7\x00\xb9\x00\x52\x00\x73\xff\xb8\x00\x25\x02\x2f\x01\x78\x00\xb0\x00\xe7\x00\x12\x01\xb9\x00\x79\x00\x57\x00\x57\x02\xda\xff\xda\xff\x4b\x02\xf4\x01\x75\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x9b\x01\x12\x01\xf5\x01\xb3\x00\xb4\x00\xf2\x01\xe7\x00\xe7\x00\x5b\x00\x76\x00\x77\x00\x53\x02\xe5\x00\x5c\x00\x4c\x02\xb1\x00\x5d\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xb3\x00\xb4\x00\xe6\x00\xda\xff\x2f\x01\xb5\x00\xb0\x00\x78\x00\x5b\x00\x1a\xff\xb6\x00\xb7\x00\x79\x00\x5c\x00\x22\x00\xb8\x00\x5d\x00\x5e\x00\x5f\x02\xf3\x01\xf4\x01\x5f\x00\xb9\x00\x60\x00\x61\x00\x62\x00\xfc\xff\xb5\x00\x2f\x01\x52\x00\x18\xff\xe7\x00\xb6\x00\xb7\x00\x54\x02\xb3\x00\xb4\x00\xb8\x00\xb3\x00\xb4\x00\x30\x01\x37\x02\x5e\x00\xe5\x00\xb9\x00\xe5\x00\x5f\x00\xa0\xff\x60\x00\x61\x00\x62\x00\xfc\xff\x55\x02\xa0\xff\xa0\xff\xa0\xff\xa0\xff\x58\x02\x99\x01\xa0\xff\x6e\xff\xa0\xff\xb5\x00\xd8\x01\x32\x01\xb5\x00\xb0\x00\xb6\x00\xb7\x00\x59\x02\xb6\x00\xb7\x00\xb8\x00\x9a\x01\xa0\xff\xb8\x00\xb3\x00\xb4\x00\x65\x01\xb9\x00\x9b\x01\x6e\xff\xb9\x00\xa0\xff\xb0\x00\x9f\xff\x34\x02\xe7\x00\xf0\x00\xe7\x00\x35\x02\x9f\xff\x9f\xff\x9f\xff\x9f\xff\x93\x00\xb0\x00\x9f\xff\xf8\x00\x9f\xff\x46\x01\x3a\x02\x33\x01\xb5\x00\x47\x01\xb3\x00\xb4\x00\x36\x02\xb6\x00\xb7\x00\x94\x00\x41\x01\x9f\xff\xb8\x00\x1d\xff\x22\x00\x1a\xff\xa0\xff\xa0\xff\xb1\x00\xb9\x00\x9f\xff\xa0\xff\xa0\xff\xb0\x00\xa0\xff\x51\x00\xb0\x00\x25\x01\xb0\x00\x52\x00\xb1\x00\xb5\x00\xfc\xff\x48\x01\x22\x00\xb0\x00\xb6\x00\xb7\x00\x66\x01\x67\x01\x49\x01\xb8\x00\x39\x02\x4b\x01\x4c\x01\xa0\xff\xa0\xff\xa0\xff\xb9\x00\x52\x00\xff\xff\xb0\x00\xb0\x00\xa0\xff\x9f\xff\x9f\xff\x8e\x00\xb0\x00\x1f\x02\x9f\xff\x9f\xff\xb1\x00\x9f\xff\x7c\x01\xb0\x00\x4d\x01\x3b\x02\x68\x01\x69\x01\x6a\x01\x8b\x01\xb0\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xb3\x00\xb4\x00\x22\x00\x9f\xff\x9f\xff\x9f\xff\x8d\x01\x8f\x01\x5b\x00\x1b\xff\xb0\x00\x9f\xff\x91\x01\x5c\x00\x3d\x02\x18\x01\x5d\x00\x52\x00\x3e\x02\xb1\x00\xb3\x00\xb4\x00\x33\x01\xb0\x00\xb0\x00\xb0\x00\xa6\x01\xb5\x00\x19\x01\x19\xff\xb0\x00\x34\x01\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x46\x02\xb8\x00\xb0\x00\xe7\x00\x1d\xff\xb0\x00\x5e\x00\x14\xff\xb9\x00\xa9\x01\x5f\x00\xb5\x00\x60\x00\x61\x00\x62\x00\x48\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xfe\x01\xb8\x00\xaa\x01\xab\x01\xac\x01\xb5\x00\xf8\x00\x13\xff\xb9\x00\xad\x01\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x79\x01\xb8\x00\xb0\x00\xb1\x00\xe8\x00\xb0\x00\xb1\x00\x11\xff\xb9\x00\xb0\x00\x8f\x00\xb5\x00\xe7\x00\xb0\x00\x8e\x00\x4e\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xc7\x00\xb8\x00\xb9\x00\x38\x01\x8f\x00\xb5\x00\xe6\x01\x10\xff\xb9\x00\x16\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x0f\x02\xb8\x00\x60\x02\xfc\x00\x02\x02\x45\x02\xfe\x00\x0f\xff\xb9\x00\x22\x00\xb1\x00\xb5\x00\x1b\xff\xe8\x00\xb1\x00\x48\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x51\x00\xb8\x00\x4a\x00\x09\x02\x52\x00\xb5\x00\x16\x02\x0e\xff\xb9\x00\x37\x01\xb6\x00\xb7\x00\x19\xff\x50\x02\x0f\x02\xb8\x00\x16\x02\x38\x01\xc7\x00\x10\x02\xd9\x01\x0c\x01\xb9\x00\x17\x02\xae\x01\xb5\x00\x14\xff\x0a\x02\xc7\x00\x48\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xc8\x00\xb8\x00\x4a\x00\xac\x00\x68\xff\xb4\x00\xad\x00\xd2\xff\xb9\x00\x76\x00\xa6\x00\x72\x00\x13\xff\x68\xff\x68\xff\x68\xff\x65\x01\x9d\x01\x0c\x02\x68\xff\x73\xff\x68\xff\x68\xff\xe3\x01\x63\x01\xb5\x00\x11\xff\x83\x00\x32\x02\xa8\x00\xb6\x00\xb7\x00\x23\x02\x17\x00\x68\xff\xb8\x00\xdc\x00\x79\x00\x73\x00\x73\xff\x68\xff\x68\xff\xb9\x00\x74\x00\x75\x00\x0d\x02\x10\xff\x1b\x00\x68\xff\x68\xff\x6c\x01\x68\xff\x19\x02\x1c\x00\x6a\x01\x84\x00\x1e\x00\x6c\x01\x1f\x00\x6d\x01\x0f\xff\x20\x00\x76\x00\xa6\x00\x11\x02\x68\xff\xdc\x00\x76\x00\xa6\x00\x13\x02\xba\x01\xde\x00\xe4\x01\x63\x01\x68\xff\x13\x01\x85\x00\x66\x01\x67\x01\xd5\x01\x0e\xff\x33\x02\xa8\x00\x68\xff\x68\xff\x3f\x02\x15\x01\xa8\x00\xed\x01\x2b\x01\x79\x00\x14\x02\xb3\x00\xb4\x00\x22\x00\x79\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x88\x00\x0b\x01\x0c\x01\x68\x01\x69\x01\x6a\x01\x2b\x00\x66\x01\x67\x01\x68\xff\x68\xff\x68\xff\x2c\x00\x0f\x02\x2d\x00\x2e\x02\xb5\x00\x2e\x00\x1c\x02\xdc\x00\x2f\x02\xb6\x00\xb7\x00\xdd\x00\xde\x00\x1e\x02\xb8\x00\x30\x00\x48\x00\x31\x02\x31\x00\x2a\x01\x2b\x01\xb9\x00\x30\x02\x4a\x00\x68\x01\x69\x01\x6a\x01\xaf\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xb0\x01\x22\x00\xa1\x00\xb1\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x61\x01\x62\x01\x63\x01\xb2\x01\x29\x00\x2a\x00\x2b\x00\x2d\x01\x2e\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\xb3\x01\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x8d\xff\xa2\x00\xc0\x01\xb4\x01\x89\x00\xb5\x01\xa3\x00\xa4\x00\xb6\x01\x30\x00\xa5\x00\x12\x02\x31\x00\x76\x00\xa6\x00\xc1\x01\xc2\x01\x17\x00\xa6\x00\xc4\x01\xc6\x01\xc8\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xc9\x01\x1b\x00\xbd\x01\xa8\x00\xbe\x01\xca\x01\xcb\x01\x1c\x00\xcc\x01\x84\x00\x1e\x00\x79\x00\x1f\x00\xb3\x00\xb4\x00\x20\x00\xcd\x01\xce\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xcf\x01\xd1\x01\xd4\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x72\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xe5\x01\xe7\x01\xe9\x01\xb5\x00\x29\x00\x2a\x00\x2b\x00\xee\x01\xb6\x00\xb7\x00\xef\x01\xf6\x01\x2c\x00\xb8\x00\x2d\x00\x52\x01\xf8\x01\x2e\x00\x3e\x01\xa2\x00\xb9\x00\x53\x01\x57\x01\x58\x01\x74\x00\x75\x00\x72\x01\x30\x00\x7e\x01\x7f\x01\x31\x00\x80\x01\x0e\x01\x82\x01\x8a\x01\x8c\x01\x3f\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x8e\x01\x90\x01\x46\x00\x47\x00\x92\x01\x48\x00\xa3\x01\x49\x00\xa4\x01\xa8\x01\xcc\x00\x09\x01\x4a\x00\xda\x00\xd2\x00\xd5\x00\xd8\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xfd\x00\xff\x00\x00\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x07\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x06\x01\x0a\x01\x20\x01\x21\x01\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x26\x01\x2d\x00\x24\x01\x25\x01\x2e\x00\x2e\x01\x2f\x00\x31\x01\xb3\x00\xb4\x00\x69\x00\x6a\x00\x6e\x00\x70\x00\x30\x00\x89\x00\x91\x00\x31\x00\x76\x00\xa6\x00\x94\x00\x95\x00\x97\x00\x4d\xff\xae\x00\xb9\x00\xc3\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xb5\x00\xc0\x00\xbf\x01\xa8\x00\xc6\x00\xb6\x00\xb7\x00\x04\x00\x63\x02\x57\x01\xb8\x00\x79\x00\x50\x02\x52\x02\x53\x02\x5b\x02\xe7\x00\xb9\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x3d\x02\x41\x02\x3e\x00\x3f\x00\x40\x00\x22\x00\x44\x02\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x48\x02\xfe\x01\x45\x02\x4e\x02\x29\x00\x2a\x00\x2b\x00\x02\x02\x01\x02\x17\x00\x04\x02\x85\x01\x2c\x00\x05\x02\x2d\x00\x0f\x02\x1b\x02\x2e\x00\x16\x02\x2f\x00\x19\x02\x19\x00\x1a\x00\x1b\x00\x1c\x02\x21\x02\x26\x02\x30\x00\x27\x02\x1c\x00\x31\x00\x1d\x00\x1e\x00\x86\x01\x1f\x00\x28\x02\x29\x02\x20\x00\x2a\x02\xc5\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xc6\x01\xba\x01\xbd\x01\xe7\x00\xc8\x01\xdc\x00\xe3\x01\x87\x01\xd4\x01\xde\x01\xdf\x01\xe1\x01\xe2\x01\xb3\x00\xb4\x00\xfb\x01\xf2\x01\xfc\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x01\x3d\x01\x43\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x41\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x45\x01\x44\x01\x46\x01\xb5\x00\x29\x00\x2a\x00\x2b\x00\x4e\x01\xb6\x00\xb7\x00\x4f\x01\x55\x01\x2c\x00\xb8\x00\x2d\x00\x5a\x01\x5b\x01\x2e\x00\x5c\x01\x2f\x00\xb9\x00\x3b\x01\x5d\x01\x5e\x01\x61\x01\x6c\x01\x8b\x00\x30\x00\x6f\x01\x5f\x01\x31\x00\x74\x01\x75\x01\x76\x01\x79\x01\x17\x00\x1b\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x7c\x01\x46\x00\x47\x00\x84\x01\x48\x00\x1c\x00\x49\x00\x84\x00\x1e\x00\x98\x01\x1f\x00\x4a\x00\x94\x01\x20\x00\x9c\x01\x9e\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x9f\x01\xa0\x01\xa2\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xd7\x00\xca\x00\xd4\x00\xda\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\xdc\x00\x2d\x00\xc4\xff\xc5\xff\x2e\x00\xef\x00\x2f\x00\x00\x00\xdc\x00\x0a\x01\xdc\x00\x13\x01\x1a\x01\x2a\x01\x30\x00\x37\x01\x1a\x01\x31\x00\x36\x01\x3a\x01\x63\x00\x64\x00\x17\x00\x1c\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x66\x00\x46\x00\x47\x00\x67\x00\x48\x00\x1c\x00\x49\x00\x84\x00\x1e\x00\x68\x00\x1f\x00\x4a\x00\x69\x00\x20\x00\x6c\x00\x70\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x6d\x00\x6e\x00\x8b\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x7f\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x80\x00\x17\x00\x81\x00\x82\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x83\x00\x2d\x00\x1b\x00\x8c\x00\x2e\x00\xff\xff\x2f\x00\xb0\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\xff\xff\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1d\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\x05\x02\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x4a\x02\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1e\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\xc3\x01\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1f\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xd7\x00\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x8c\x00\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\x99\x00\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x76\x00\xa6\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x64\x02\x00\x00\x00\x00\xd0\x01\xa8\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x79\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x70\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x5c\x02\x00\x00\xdf\x00\xa6\x00\x00\x00\x2b\x00\xe0\x00\xde\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00\xa8\x00\xe2\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x57\x02\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x09\x02\x76\x00\xa6\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x94\x01\xa8\x00\x95\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x79\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x49\x02\x15\x01\xa8\x00\x00\x00\xa0\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x22\x02\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2b\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xb8\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xb8\x01\xbb\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2d\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xf0\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2e\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xf7\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x14\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\xb3\x00\xb4\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x72\x00\x8a\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\x00\x00\xaa\x00\xab\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\xb9\x00\x00\x00\x00\x00\x00\x00\x74\x00\x75\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x00\x00\x17\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x8d\x00\x42\x00\x43\x00\x44\x00\xaa\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x00\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x00\xb4\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x00\x00\xaa\x00\xab\x00\xb5\x00\x00\x00\x17\x00\x7d\x00\x7e\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\xb9\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x1c\x00\x00\x00\x05\x02\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x06\x02\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x07\x02\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x41\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x45\x00\x00\x00\x2d\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcd\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x17\x00\x20\x00\xd1\x00\x00\x00\x17\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x84\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1c\x00\x1f\x00\x1d\x00\x1e\x00\x20\x00\x1f\x00\x00\x00\x17\x00\x20\x00\xe9\x00\x00\x00\x17\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x88\x01\x19\x00\x1a\x00\x1b\x00\x89\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1c\x00\x1f\x00\x1d\x00\x1e\x00\x20\x00\x1f\x00\xb3\x00\xb4\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x00\xb4\x00\x56\x01\xea\x00\x00\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xf3\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x57\x01\xb8\x00\x00\x00\x00\x00\xf4\x00\x00\x00\xb3\x00\xb4\x00\xb9\x00\xf5\x00\xf6\x00\x00\x00\x00\x00\xf7\x00\xb8\x00\x00\x02\xfb\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xf8\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\xfc\x00\xb8\x00\xb3\x00\xb4\x00\xb5\x00\x00\x00\x00\x00\x00\x00\xb9\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\xd3\x01\x00\x00\xdb\x01\x00\x00\xb5\x00\xb9\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\xb5\x00\xb8\x00\xdd\x01\x00\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\xb9\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb3\x00\xb4\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x00\x00\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\xe9\x01\xeb\x01\xb8\x00\x00\x00\xb3\x00\xb4\x00\x00\x00\x00\x00\x00\x00\xb9\x00\xb5\x00\x00\x00\xb5\x00\xec\x01\x00\x00\xb6\x00\xb7\x00\xb6\x00\xb7\x00\x00\x00\xb8\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb3\x00\xb4\x00\xb9\x00\x00\x00\xb9\x00\x00\x00\xb5\x00\xed\x01\x00\x00\xfd\x01\x00\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\xb5\x00\x00\x00\xb5\x00\x97\x01\x00\x00\xb6\x00\xb7\x00\xb6\x00\xb7\x00\x00\x00\xb8\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb5\x00\x00\x00\xb9\x00\x00\x00\xb9\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x00\xb5\x00\x9d\x00\x00\x00\x00\x00\x00\x00\xb6\x00\xb7\x00\x70\x00\x00\x00\x00\x00\xb8\x00\x19\x00\x1a\x00\x1b\x00\x9e\x00\x00\x00\x00\x00\xb9\x00\x17\x00\x1c\x00\x22\x01\x1d\x00\x1e\x00\x9f\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x23\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x5d\x02\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x7a\x01\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x85\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x03\x01\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x38\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x86\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x1e\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x22\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd6\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd8\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xf9\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x3b\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x50\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x51\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x5e\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x6f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x70\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x71\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x76\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x77\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x81\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xa2\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xa7\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xca\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xce\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd1\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd4\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xe3\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x98\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xed\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xef\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x64\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x90\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x96\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x98\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9a\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9b\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xba\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbc\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbe\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc1\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc3\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc5\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x18\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyReduceArr = Happy_Data_Array.array (3, 249) [
+	(3 , happyReduce_3),
+	(4 , happyReduce_4),
+	(5 , happyReduce_5),
+	(6 , happyReduce_6),
+	(7 , happyReduce_7),
+	(8 , happyReduce_8),
+	(9 , happyReduce_9),
+	(10 , happyReduce_10),
+	(11 , happyReduce_11),
+	(12 , happyReduce_12),
+	(13 , happyReduce_13),
+	(14 , happyReduce_14),
+	(15 , happyReduce_15),
+	(16 , happyReduce_16),
+	(17 , happyReduce_17),
+	(18 , happyReduce_18),
+	(19 , happyReduce_19),
+	(20 , happyReduce_20),
+	(21 , happyReduce_21),
+	(22 , happyReduce_22),
+	(23 , happyReduce_23),
+	(24 , happyReduce_24),
+	(25 , happyReduce_25),
+	(26 , happyReduce_26),
+	(27 , happyReduce_27),
+	(28 , happyReduce_28),
+	(29 , happyReduce_29),
+	(30 , happyReduce_30),
+	(31 , happyReduce_31),
+	(32 , happyReduce_32),
+	(33 , happyReduce_33),
+	(34 , happyReduce_34),
+	(35 , happyReduce_35),
+	(36 , happyReduce_36),
+	(37 , happyReduce_37),
+	(38 , happyReduce_38),
+	(39 , happyReduce_39),
+	(40 , happyReduce_40),
+	(41 , happyReduce_41),
+	(42 , happyReduce_42),
+	(43 , happyReduce_43),
+	(44 , happyReduce_44),
+	(45 , happyReduce_45),
+	(46 , happyReduce_46),
+	(47 , happyReduce_47),
+	(48 , happyReduce_48),
+	(49 , happyReduce_49),
+	(50 , happyReduce_50),
+	(51 , happyReduce_51),
+	(52 , happyReduce_52),
+	(53 , happyReduce_53),
+	(54 , happyReduce_54),
+	(55 , happyReduce_55),
+	(56 , happyReduce_56),
+	(57 , happyReduce_57),
+	(58 , happyReduce_58),
+	(59 , happyReduce_59),
+	(60 , happyReduce_60),
+	(61 , happyReduce_61),
+	(62 , happyReduce_62),
+	(63 , happyReduce_63),
+	(64 , happyReduce_64),
+	(65 , happyReduce_65),
+	(66 , happyReduce_66),
+	(67 , happyReduce_67),
+	(68 , happyReduce_68),
+	(69 , happyReduce_69),
+	(70 , happyReduce_70),
+	(71 , happyReduce_71),
+	(72 , happyReduce_72),
+	(73 , happyReduce_73),
+	(74 , happyReduce_74),
+	(75 , happyReduce_75),
+	(76 , happyReduce_76),
+	(77 , happyReduce_77),
+	(78 , happyReduce_78),
+	(79 , happyReduce_79),
+	(80 , happyReduce_80),
+	(81 , happyReduce_81),
+	(82 , happyReduce_82),
+	(83 , happyReduce_83),
+	(84 , happyReduce_84),
+	(85 , happyReduce_85),
+	(86 , happyReduce_86),
+	(87 , happyReduce_87),
+	(88 , happyReduce_88),
+	(89 , happyReduce_89),
+	(90 , happyReduce_90),
+	(91 , happyReduce_91),
+	(92 , happyReduce_92),
+	(93 , happyReduce_93),
+	(94 , happyReduce_94),
+	(95 , happyReduce_95),
+	(96 , happyReduce_96),
+	(97 , happyReduce_97),
+	(98 , happyReduce_98),
+	(99 , happyReduce_99),
+	(100 , happyReduce_100),
+	(101 , happyReduce_101),
+	(102 , happyReduce_102),
+	(103 , happyReduce_103),
+	(104 , happyReduce_104),
+	(105 , happyReduce_105),
+	(106 , happyReduce_106),
+	(107 , happyReduce_107),
+	(108 , happyReduce_108),
+	(109 , happyReduce_109),
+	(110 , happyReduce_110),
+	(111 , happyReduce_111),
+	(112 , happyReduce_112),
+	(113 , happyReduce_113),
+	(114 , happyReduce_114),
+	(115 , happyReduce_115),
+	(116 , happyReduce_116),
+	(117 , happyReduce_117),
+	(118 , happyReduce_118),
+	(119 , happyReduce_119),
+	(120 , happyReduce_120),
+	(121 , happyReduce_121),
+	(122 , happyReduce_122),
+	(123 , happyReduce_123),
+	(124 , happyReduce_124),
+	(125 , happyReduce_125),
+	(126 , happyReduce_126),
+	(127 , happyReduce_127),
+	(128 , happyReduce_128),
+	(129 , happyReduce_129),
+	(130 , happyReduce_130),
+	(131 , happyReduce_131),
+	(132 , happyReduce_132),
+	(133 , happyReduce_133),
+	(134 , happyReduce_134),
+	(135 , happyReduce_135),
+	(136 , happyReduce_136),
+	(137 , happyReduce_137),
+	(138 , happyReduce_138),
+	(139 , happyReduce_139),
+	(140 , happyReduce_140),
+	(141 , happyReduce_141),
+	(142 , happyReduce_142),
+	(143 , happyReduce_143),
+	(144 , happyReduce_144),
+	(145 , happyReduce_145),
+	(146 , happyReduce_146),
+	(147 , happyReduce_147),
+	(148 , happyReduce_148),
+	(149 , happyReduce_149),
+	(150 , happyReduce_150),
+	(151 , happyReduce_151),
+	(152 , happyReduce_152),
+	(153 , happyReduce_153),
+	(154 , happyReduce_154),
+	(155 , happyReduce_155),
+	(156 , happyReduce_156),
+	(157 , happyReduce_157),
+	(158 , happyReduce_158),
+	(159 , happyReduce_159),
+	(160 , happyReduce_160),
+	(161 , happyReduce_161),
+	(162 , happyReduce_162),
+	(163 , happyReduce_163),
+	(164 , happyReduce_164),
+	(165 , happyReduce_165),
+	(166 , happyReduce_166),
+	(167 , happyReduce_167),
+	(168 , happyReduce_168),
+	(169 , happyReduce_169),
+	(170 , happyReduce_170),
+	(171 , happyReduce_171),
+	(172 , happyReduce_172),
+	(173 , happyReduce_173),
+	(174 , happyReduce_174),
+	(175 , happyReduce_175),
+	(176 , happyReduce_176),
+	(177 , happyReduce_177),
+	(178 , happyReduce_178),
+	(179 , happyReduce_179),
+	(180 , happyReduce_180),
+	(181 , happyReduce_181),
+	(182 , happyReduce_182),
+	(183 , happyReduce_183),
+	(184 , happyReduce_184),
+	(185 , happyReduce_185),
+	(186 , happyReduce_186),
+	(187 , happyReduce_187),
+	(188 , happyReduce_188),
+	(189 , happyReduce_189),
+	(190 , happyReduce_190),
+	(191 , happyReduce_191),
+	(192 , happyReduce_192),
+	(193 , happyReduce_193),
+	(194 , happyReduce_194),
+	(195 , happyReduce_195),
+	(196 , happyReduce_196),
+	(197 , happyReduce_197),
+	(198 , happyReduce_198),
+	(199 , happyReduce_199),
+	(200 , happyReduce_200),
+	(201 , happyReduce_201),
+	(202 , happyReduce_202),
+	(203 , happyReduce_203),
+	(204 , happyReduce_204),
+	(205 , happyReduce_205),
+	(206 , happyReduce_206),
+	(207 , happyReduce_207),
+	(208 , happyReduce_208),
+	(209 , happyReduce_209),
+	(210 , happyReduce_210),
+	(211 , happyReduce_211),
+	(212 , happyReduce_212),
+	(213 , happyReduce_213),
+	(214 , happyReduce_214),
+	(215 , happyReduce_215),
+	(216 , happyReduce_216),
+	(217 , happyReduce_217),
+	(218 , happyReduce_218),
+	(219 , happyReduce_219),
+	(220 , happyReduce_220),
+	(221 , happyReduce_221),
+	(222 , happyReduce_222),
+	(223 , happyReduce_223),
+	(224 , happyReduce_224),
+	(225 , happyReduce_225),
+	(226 , happyReduce_226),
+	(227 , happyReduce_227),
+	(228 , happyReduce_228),
+	(229 , happyReduce_229),
+	(230 , happyReduce_230),
+	(231 , happyReduce_231),
+	(232 , happyReduce_232),
+	(233 , happyReduce_233),
+	(234 , happyReduce_234),
+	(235 , happyReduce_235),
+	(236 , happyReduce_236),
+	(237 , happyReduce_237),
+	(238 , happyReduce_238),
+	(239 , happyReduce_239),
+	(240 , happyReduce_240),
+	(241 , happyReduce_241),
+	(242 , happyReduce_242),
+	(243 , happyReduce_243),
+	(244 , happyReduce_244),
+	(245 , happyReduce_245),
+	(246 , happyReduce_246),
+	(247 , happyReduce_247),
+	(248 , happyReduce_248),
+	(249 , happyReduce_249)
+	]
+
+happy_n_terms = 119 :: Int
+happy_n_nonterms = 73 :: Int
+
+happyReduce_3 = happySpecReduce_0  0# happyReduction_3
+happyReduction_3  =  happyIn6
+		 ([]
+	)
+
+happyReduce_4 = happySpecReduce_2  0# happyReduction_4
+happyReduction_4 happy_x_2
+	happy_x_1
+	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_5 = happySpecReduce_2  0# happyReduction_5
+happyReduction_5 happy_x_2
+	happy_x_1
+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (map RealDecl happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_6 = happyReduce 4# 0# happyReduction_6
+happyReduction_6 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	case happyOut6 happy_x_4 of { happy_var_4 -> 
+	happyIn6
+		 (RealDecl (PInclude happy_var_2) : happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_7 = happySpecReduce_1  1# happyReduction_7
+happyReduction_7 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (happy_var_1
+	)}
+
+happyReduce_8 = happySpecReduce_1  1# happyReduction_8
+happyReduction_8 happy_x_1
+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl (DataDecl happy_var_1)
+	)}
+
+happyReduce_9 = happySpecReduce_1  1# happyReduction_9
+happyReduction_9 happy_x_1
+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_10 = happySpecReduce_3  1# happyReduction_10
+happyReduction_10 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
+	happyIn7
+		 (RealDecl (Freeze happy_var_2)
+	)}
+
+happyReduce_11 = happyReduce 4# 1# happyReduction_11
+happyReduction_11 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut62 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_12 = happyReduce 4# 1# happyReduction_12
+happyReduction_12 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut63 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PDoUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_13 = happyReduce 4# 1# happyReduction_13
+happyReduction_13 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut64 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PIdiom happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_14 = happyReduce 4# 1# happyReduction_14
+happyReduction_14 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut65 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PParams happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_15 = happyReduce 4# 1# happyReduction_15
+happyReduction_15 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut66 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PNamespace happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_16 = happySpecReduce_1  1# happyReduction_16
+happyReduction_16 happy_x_1
+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_17 = happyReduce 6# 1# happyReduction_17
+happyReduction_17 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut40 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	happyIn7
+		 (PSyntax happy_var_2 happy_var_3 happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_18 = happySpecReduce_2  1# happyReduction_18
+happyReduction_18 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CInclude happy_var_2)
+	)}
+
+happyReduce_19 = happySpecReduce_2  1# happyReduction_19
+happyReduction_19 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CLib happy_var_2)
+	)}
+
+happyReduce_20 = happyReduce 5# 2# happyReduction_20
+happyReduction_20 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn8
+		 (Transform happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_21 = happyReduce 7# 3# happyReduction_21
+happyReduction_21 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	case happyOut15 happy_x_4 of { happy_var_4 -> 
+	case happyOut77 happy_x_5 of { happy_var_5 -> 
+	case happyOut76 happy_x_6 of { happy_var_6 -> 
+	happyIn9
+		 (FunType happy_var_1 happy_var_3 (nub happy_var_4) happy_var_5 happy_var_6
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_22 = happySpecReduce_3  3# happyReduction_22
+happyReduction_22 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut74 happy_x_2 of { happy_var_2 -> 
+	happyIn9
+		 (ProofScript happy_var_1 happy_var_2
+	)}}
+
+happyReduce_23 = happyReduce 9# 3# happyReduction_23
+happyReduction_23 (happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	case happyOut77 happy_x_8 of { happy_var_8 -> 
+	case happyOut76 happy_x_9 of { happy_var_9 -> 
+	happyIn9
+		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}}}}
+
+happyReduce_24 = happyReduce 10# 3# happyReduction_24
+happyReduction_24 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_7 of { happy_var_7 -> 
+	case happyOut77 happy_x_9 of { happy_var_9 -> 
+	case happyOut76 happy_x_10 of { happy_var_10 -> 
+	happyIn9
+		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_25 = happyReduce 8# 3# happyReduction_25
+happyReduction_25 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut15 happy_x_5 of { happy_var_5 -> 
+	case happyOut77 happy_x_7 of { happy_var_7 -> 
+	case happyOut76 happy_x_8 of { happy_var_8 -> 
+	happyIn9
+		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_5)
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_26 = happyReduce 5# 3# happyReduction_26
+happyReduction_26 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn9
+		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
+	) `HappyStk` happyRest}}
+
+happyReduce_27 = happyReduce 8# 3# happyReduction_27
+happyReduction_27 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_7 of { happy_var_7 -> 
+	happyIn9
+		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}
+
+happyReduce_28 = happyReduce 7# 3# happyReduction_28
+happyReduction_28 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	happyIn9
+		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_29 = happySpecReduce_1  4# happyReduction_29
+happyReduction_29 happy_x_1
+	 =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_30 = happySpecReduce_1  4# happyReduction_30
+happyReduction_30 happy_x_1
+	 =  happyIn10
+		 (Vis Private
+	)
+
+happyReduce_31 = happySpecReduce_1  4# happyReduction_31
+happyReduction_31 happy_x_1
+	 =  happyIn10
+		 (Vis Abstract
+	)
+
+happyReduce_32 = happySpecReduce_0  4# happyReduction_32
+happyReduction_32  =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_33 = happySpecReduce_1  5# happyReduction_33
+happyReduction_33 happy_x_1
+	 =  happyIn11
+		 (False
+	)
+
+happyReduce_34 = happySpecReduce_2  5# happyReduction_34
+happyReduction_34 happy_x_2
+	happy_x_1
+	 =  happyIn11
+		 (True
+	)
+
+happyReduce_35 = happySpecReduce_3  6# happyReduction_35
+happyReduction_35 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut12 happy_x_3 of { happy_var_3 -> 
+	happyIn12
+		 (happy_var_2:happy_var_3
+	)}}
+
+happyReduce_36 = happySpecReduce_0  6# happyReduction_36
+happyReduction_36  =  happyIn12
+		 ([]
+	)
+
+happyReduce_37 = happySpecReduce_1  7# happyReduction_37
+happyReduction_37 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_38 = happySpecReduce_1  7# happyReduction_38
+happyReduction_38 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_39 = happySpecReduce_3  7# happyReduction_39
+happyReduction_39 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn13
+		 (happy_var_2
+	)}
+
+happyReduce_40 = happyReduce 5# 7# happyReduction_40
+happyReduction_40 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut55 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn13
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_41 = happySpecReduce_2  8# happyReduction_41
+happyReduction_41 happy_x_2
+	happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	case happyOut14 happy_x_2 of { happy_var_2 -> 
+	happyIn14
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_42 = happySpecReduce_1  8# happyReduction_42
+happyReduction_42 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn14
+		 ([happy_var_1]
+	)}
+
+happyReduce_43 = happySpecReduce_1  9# happyReduction_43
+happyReduction_43 happy_x_1
+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
+	happyIn15
+		 (happy_var_1
+	)}
+
+happyReduce_44 = happySpecReduce_3  9# happyReduction_44
+happyReduction_44 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn15
+		 (happy_var_2
+	)}
+
+happyReduce_45 = happySpecReduce_0  10# happyReduction_45
+happyReduction_45  =  happyIn16
+		 ([]
+	)
+
+happyReduce_46 = happySpecReduce_2  10# happyReduction_46
+happyReduction_46 happy_x_2
+	happy_x_1
+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
+	case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn16
+		 (happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_47 = happySpecReduce_1  11# happyReduction_47
+happyReduction_47 happy_x_1
+	 =  happyIn17
+		 ([NoCG]
+	)
+
+happyReduce_48 = happySpecReduce_1  11# happyReduction_48
+happyReduction_48 happy_x_1
+	 =  happyIn17
+		 ([CGEval, Inline]
+	)
+
+happyReduce_49 = happyReduce 4# 11# happyReduction_49
+happyReduction_49 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn17
+		 ([CGSpec happy_var_3]
+	) `HappyStk` happyRest}
+
+happyReduce_50 = happySpecReduce_1  11# happyReduction_50
+happyReduction_50 happy_x_1
+	 =  happyIn17
+		 ([CGSpec []]
+	)
+
+happyReduce_51 = happySpecReduce_1  11# happyReduction_51
+happyReduction_51 happy_x_1
+	 =  happyIn17
+		 ([Inline]
+	)
+
+happyReduce_52 = happySpecReduce_2  11# happyReduction_52
+happyReduction_52 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn17
+		 ([CExport happy_var_2]
+	)}
+
+happyReduce_53 = happyReduce 4# 12# happyReduction_53
+happyReduction_53 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut21 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn18
+		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
+	) `HappyStk` happyRest}}}
+
+happyReduce_54 = happySpecReduce_1  13# happyReduction_54
+happyReduction_54 happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	happyIn19
+		 ([happy_var_1]
+	)}
+
+happyReduce_55 = happySpecReduce_3  13# happyReduction_55
+happyReduction_55 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn19
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_56 = happySpecReduce_1  14# happyReduction_56
+happyReduction_56 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
+	happyIn20
+		 (happy_var_1
+	)}
+
+happyReduce_57 = happySpecReduce_1  14# happyReduction_57
+happyReduction_57 happy_x_1
+	 =  happyIn20
+		 ("-"
+	)
+
+happyReduce_58 = happySpecReduce_1  14# happyReduction_58
+happyReduction_58 happy_x_1
+	 =  happyIn20
+		 ("<"
+	)
+
+happyReduce_59 = happySpecReduce_1  14# happyReduction_59
+happyReduction_59 happy_x_1
+	 =  happyIn20
+		 (">"
+	)
+
+happyReduce_60 = happySpecReduce_1  15# happyReduction_60
+happyReduction_60 happy_x_1
+	 =  happyIn21
+		 (LeftAssoc
+	)
+
+happyReduce_61 = happySpecReduce_1  15# happyReduction_61
+happyReduction_61 happy_x_1
+	 =  happyIn21
+		 (RightAssoc
+	)
+
+happyReduce_62 = happySpecReduce_1  15# happyReduction_62
+happyReduction_62 happy_x_1
+	 =  happyIn21
+		 (NonAssoc
+	)
+
+happyReduce_63 = happyReduce 4# 16# happyReduction_63
+happyReduction_63 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut23 happy_x_3 of { happy_var_3 -> 
+	happyIn22
+		 (LatexDefs happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_64 = happySpecReduce_3  17# happyReduction_64
+happyReduction_64 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	happyIn23
+		 ([(happy_var_1,happy_var_3)]
+	)}}
+
+happyReduce_65 = happyReduce 5# 17# happyReduction_65
+happyReduction_65 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	case happyOut23 happy_x_5 of { happy_var_5 -> 
+	happyIn23
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_66 = happySpecReduce_2  18# happyReduction_66
+happyReduction_66 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn24
+		 ((happy_var_1, happy_var_2)
+	)}}
+
+happyReduce_67 = happySpecReduce_0  19# happyReduction_67
+happyReduction_67  =  happyIn25
+		 ([]
+	)
+
+happyReduce_68 = happySpecReduce_2  19# happyReduction_68
+happyReduction_68 happy_x_2
+	happy_x_1
+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn25
+		 ((happy_var_1,Nothing):happy_var_2
+	)}}
+
+happyReduce_69 = happyReduce 5# 19# happyReduction_69
+happyReduction_69 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut25 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((RVar happy_var_4 happy_var_5 happy_var_1, Just happy_var_1):happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_70 = happyReduce 5# 19# happyReduction_70
+happyReduction_70 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut25 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((happy_var_3, Just happy_var_1):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_71 = happyReduce 6# 20# happyReduction_71
+happyReduction_71 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut28 happy_x_2 of { happy_var_2 -> 
+	case happyOut31 happy_x_3 of { happy_var_3 -> 
+	case happyOut27 happy_x_4 of { happy_var_4 -> 
+	case happyOut77 happy_x_5 of { happy_var_5 -> 
+	case happyOut76 happy_x_6 of { happy_var_6 -> 
+	happyIn26
+		 (mkDatatype happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_72 = happySpecReduce_3  21# happyReduction_72
+happyReduction_72 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
+	case happyOut70 happy_x_2 of { happy_var_2 -> 
+	happyIn27
+		 (Right (happy_var_1,happy_var_2)
+	)}}
+
+happyReduce_73 = happySpecReduce_3  21# happyReduction_73
+happyReduction_73 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
+	happyIn27
+		 (Left happy_var_2
+	)}
+
+happyReduce_74 = happySpecReduce_3  21# happyReduction_74
+happyReduction_74 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn27
+		 (Left (RConst happy_var_2 happy_var_3 TYPE)
+	)}}
+
+happyReduce_75 = happySpecReduce_0  22# happyReduction_75
+happyReduction_75  =  happyIn28
+		 ([]
+	)
+
+happyReduce_76 = happySpecReduce_3  22# happyReduction_76
+happyReduction_76 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
+	happyIn28
+		 (happy_var_2
+	)}
+
+happyReduce_77 = happySpecReduce_1  23# happyReduction_77
+happyReduction_77 happy_x_1
+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
+	happyIn29
+		 ([happy_var_1]
+	)}
+
+happyReduce_78 = happySpecReduce_3  23# happyReduction_78
+happyReduction_78 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
+	case happyOut29 happy_x_3 of { happy_var_3 -> 
+	happyIn29
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_79 = happySpecReduce_1  24# happyReduction_79
+happyReduction_79 happy_x_1
+	 =  happyIn30
+		 (NoElim
+	)
+
+happyReduce_80 = happySpecReduce_1  24# happyReduction_80
+happyReduction_80 happy_x_1
+	 =  happyIn30
+		 (Collapsible
+	)
+
+happyReduce_81 = happySpecReduce_1  25# happyReduction_81
+happyReduction_81 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
+	happyIn31
+		 (happy_var_1
+	)}
+
+happyReduce_82 = happySpecReduce_3  25# happyReduction_82
+happyReduction_82 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_2 of { happy_var_2 -> 
+	happyIn31
+		 (useropFn happy_var_2
+	)}
+
+happyReduce_83 = happyReduce 4# 26# happyReduction_83
+happyReduction_83 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	case happyOut53 happy_x_4 of { happy_var_4 -> 
+	happyIn32
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_84 = happyReduce 5# 26# happyReduction_84
+happyReduction_84 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut42 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn32
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_85 = happySpecReduce_3  26# happyReduction_85
+happyReduction_85 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_86 = happySpecReduce_3  26# happyReduction_86
+happyReduction_86 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_87 = happySpecReduce_1  26# happyReduction_87
+happyReduction_87 happy_x_1
+	 =  happyIn32
+		 (RPlaceholder
+	)
+
+happyReduce_88 = happySpecReduce_3  26# happyReduction_88
+happyReduction_88 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
+	)}}
+
+happyReduce_89 = happySpecReduce_3  26# happyReduction_89
+happyReduction_89 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
+	)}}
+
+happyReduce_90 = happySpecReduce_1  27# happyReduction_90
+happyReduction_90 happy_x_1
+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
+	happyIn33
+		 (happy_var_1
+	)}
+
+happyReduce_91 = happySpecReduce_3  27# happyReduction_91
+happyReduction_91 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn33
+		 (happy_var_2
+	)}
+
+happyReduce_92 = happyReduce 4# 27# happyReduction_92
+happyReduction_92 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	case happyOut53 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_93 = happyReduce 5# 27# happyReduction_93
+happyReduction_93 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut42 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn33
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_94 = happyReduce 4# 27# happyReduction_94
+happyReduction_94 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy")) RPlaceholder) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_95 = happyReduce 4# 27# happyReduction_95
+happyReduction_95 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (doBind Lam happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_96 = happyReduce 4# 27# happyReduction_96
+happyReduction_96 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut41 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (doLetBind happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_97 = happySpecReduce_1  27# happyReduction_97
+happyReduction_97 happy_x_1
+	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
+	happyIn33
+		 (happy_var_1
+	)}
+
+happyReduce_98 = happyReduce 8# 27# happyReduction_98
+happyReduction_98 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut33 happy_x_6 of { happy_var_6 -> 
+	case happyOut77 happy_x_7 of { happy_var_7 -> 
+	case happyOut76 happy_x_8 of { happy_var_8 -> 
+	happyIn33
+		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else")) [happy_var_2,happy_var_4,happy_var_6]
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_99 = happySpecReduce_2  28# happyReduction_99
+happyReduction_99 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	happyIn34
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_100 = happyReduce 4# 28# happyReduction_100
+happyReduction_100 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_101 = happySpecReduce_3  29# happyReduction_101
+happyReduction_101 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
+	case happyOut35 happy_x_3 of { happy_var_3 -> 
+	happyIn35
+		 (happy_var_1 ++ happy_var_3
+	)}}
+
+happyReduce_102 = happySpecReduce_1  29# happyReduction_102
+happyReduction_102 happy_x_1
+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
+	happyIn35
+		 (happy_var_1
+	)}
+
+happyReduce_103 = happySpecReduce_3  30# happyReduction_103
+happyReduction_103 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	happyIn36
+		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
+	)}}
+
+happyReduce_104 = happySpecReduce_1  31# happyReduction_104
+happyReduction_104 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn37
+		 ([happy_var_1]
+	)}
+
+happyReduce_105 = happySpecReduce_3  31# happyReduction_105
+happyReduction_105 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut37 happy_x_3 of { happy_var_3 -> 
+	happyIn37
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_106 = happySpecReduce_2  32# happyReduction_106
+happyReduction_106 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	happyIn38
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_107 = happySpecReduce_1  32# happyReduction_107
+happyReduction_107 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn38
+		 ([(happy_var_1, 0)]
+	)}
+
+happyReduce_108 = happySpecReduce_3  32# happyReduction_108
+happyReduction_108 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn38
+		 ((happy_var_1,0):happy_var_3
+	)}}
+
+happyReduce_109 = happyReduce 4# 32# happyReduction_109
+happyReduction_109 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut38 happy_x_4 of { happy_var_4 -> 
+	happyIn38
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_110 = happySpecReduce_1  33# happyReduction_110
+happyReduction_110 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	happyIn39
+		 ([happy_var_1]
+	)}
+
+happyReduce_111 = happySpecReduce_3  33# happyReduction_111
+happyReduction_111 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut37 happy_x_3 of { happy_var_3 -> 
+	happyIn39
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_112 = happySpecReduce_1  34# happyReduction_112
+happyReduction_112 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn40
+		 ([happy_var_1]
+	)}
+
+happyReduce_113 = happySpecReduce_2  34# happyReduction_113
+happyReduction_113 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut40 happy_x_2 of { happy_var_2 -> 
+	happyIn40
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_114 = happyReduce 4# 35# happyReduction_114
+happyReduction_114 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn41
+		 ([(happy_var_1,happy_var_2,happy_var_4)]
+	) `HappyStk` happyRest}}}
+
+happyReduce_115 = happyReduce 6# 35# happyReduction_115
+happyReduction_115 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut41 happy_x_6 of { happy_var_6 -> 
+	happyIn41
+		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_116 = happySpecReduce_3  36# happyReduction_116
+happyReduction_116 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn42
+		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1)
+	)}}}
+
+happyReduce_117 = happySpecReduce_3  36# happyReduction_117
+happyReduction_117 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn42
+		 ((happy_var_1, happy_var_3)
+	)}}
+
+happyReduce_118 = happyReduce 4# 37# happyReduction_118
+happyReduction_118 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn43
+		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_119 = happyReduce 5# 37# happyReduction_119
+happyReduction_119 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_120 = happyReduce 5# 37# happyReduction_120
+happyReduction_120 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) [happy_var_1, happy_var_3]
+	) `HappyStk` happyRest}}}}
+
+happyReduce_121 = happyReduce 5# 37# happyReduction_121
+happyReduction_121 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_122 = happyReduce 5# 37# happyReduction_122
+happyReduction_122 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_123 = happyReduce 5# 37# happyReduction_123
+happyReduction_123 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn43
+		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_124 = happySpecReduce_1  37# happyReduction_124
+happyReduction_124 happy_x_1
+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
+	happyIn43
+		 (happy_var_1
+	)}
+
+happyReduce_125 = happyReduce 5# 37# happyReduction_125
+happyReduction_125 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut53 happy_x_1 of { happy_var_1 -> 
+	case happyOut53 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_126 = happyReduce 5# 38# happyReduction_126
+happyReduction_126 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_127 = happyReduce 6# 39# happyReduction_127
+happyReduction_127 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_128 = happyReduce 6# 39# happyReduction_128
+happyReduction_128 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_129 = happyReduce 6# 39# happyReduction_129
+happyReduction_129 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut46 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_130 = happyReduce 6# 39# happyReduction_130
+happyReduction_130 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut46 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_131 = happyReduce 6# 39# happyReduction_131
+happyReduction_131 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}
+
+happyReduce_132 = happyReduce 6# 39# happyReduction_132
+happyReduction_132 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex Eager happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}
+
+happyReduce_133 = happyReduce 6# 39# happyReduction_133
+happyReduction_133 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex Eager (RVar happy_var_4 happy_var_5 (MN "X" 0))) happy_var_3)
+	) `HappyStk` happyRest}}}
+
+happyReduce_134 = happyReduce 5# 39# happyReduction_134
+happyReduction_134 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (RBind (MN "X" 1) (Lam RPlaceholder)
+                    (RBind (MN "X" 2) (Pi Ex Eager (RVar happy_var_3 happy_var_4 (MN "X" 0)))
+                       (RVar happy_var_3 happy_var_4 (MN "X" 1))))
+	) `HappyStk` happyRest}}
+
+happyReduce_135 = happyReduce 5# 39# happyReduction_135
+happyReduction_135 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                   (RBind (MN "X" 1) (Lam RPlaceholder)
+                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair"))
+                                    [RVar happy_var_3 happy_var_4 (MN "X" 0),
+                                     RVar happy_var_3 happy_var_4 (MN "X" 1)]))
+	) `HappyStk` happyRest}}
+
+happyReduce_136 = happyReduce 6# 39# happyReduction_136
+happyReduction_136 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
+                                    [happy_var_2,
+                                     RVar happy_var_4 happy_var_5 (MN "X" 0)])
+	) `HappyStk` happyRest}}}
+
+happyReduce_137 = happyReduce 6# 39# happyReduction_137
+happyReduction_137 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
+                                    [RVar happy_var_4 happy_var_5 (MN "X" 0), happy_var_3])
+	) `HappyStk` happyRest}}}
+
+happyReduce_138 = happySpecReduce_1  40# happyReduction_138
+happyReduction_138 happy_x_1
+	 =  happyIn46
+		 ("<"
+	)
+
+happyReduce_139 = happySpecReduce_1  40# happyReduction_139
+happyReduction_139 happy_x_1
+	 =  happyIn46
+		 (">"
+	)
+
+happyReduce_140 = happySpecReduce_0  41# happyReduction_140
+happyReduction_140  =  happyIn47
+		 (RPlaceholder
+	)
+
+happyReduce_141 = happySpecReduce_2  41# happyReduction_141
+happyReduction_141 happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn47
+		 (happy_var_2
+	)}
+
+happyReduce_142 = happySpecReduce_0  42# happyReduction_142
+happyReduction_142  =  happyIn48
+		 (RPlaceholder
+	)
+
+happyReduce_143 = happySpecReduce_2  42# happyReduction_143
+happyReduction_143 happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn48
+		 (happy_var_2
+	)}
+
+happyReduce_144 = happyReduce 5# 43# happyReduction_144
+happyReduction_144 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut39 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut49 happy_x_5 of { happy_var_5 -> 
+	happyIn49
+		 (doBind (Pi Im Eager) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_145 = happySpecReduce_1  43# happyReduction_145
+happyReduction_145 happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	happyIn49
+		 (happy_var_1
+	)}
+
+happyReduce_146 = happySpecReduce_3  44# happyReduction_146
+happyReduction_146 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn50
+		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
+	)}}
+
+happyReduce_147 = happyReduce 5# 44# happyReduction_147
+happyReduction_147 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (doBind (Pi Ex Eager) happy_var_2 happy_var_5
+	) `HappyStk` happyRest}}
+
+happyReduce_148 = happyReduce 5# 44# happyReduction_148
+happyReduction_148 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (doBind (Pi Ex Lazy) happy_var_2 happy_var_5
+	) `HappyStk` happyRest}}
+
+happyReduce_149 = happySpecReduce_3  44# happyReduction_149
+happyReduction_149 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn50
+		 (bracket happy_var_2
+	)}
+
+happyReduce_150 = happyReduce 7# 44# happyReduction_150
+happyReduction_150 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut50 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_4 of { happy_var_4 -> 
+	case happyOut77 happy_x_5 of { happy_var_5 -> 
+	case happyOut76 happy_x_6 of { happy_var_6 -> 
+	happyIn50
+		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_151 = happySpecReduce_1  44# happyReduction_151
+happyReduction_151 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (happy_var_1
+	)}
+
+happyReduce_152 = happySpecReduce_3  44# happyReduction_152
+happyReduction_152 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn50
+		 (happy_var_2
+	)}
+
+happyReduce_153 = happyReduce 5# 44# happyReduction_153
+happyReduction_153 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_154 = happyReduce 5# 44# happyReduction_154
+happyReduction_154 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut52 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_155 = happySpecReduce_1  44# happyReduction_155
+happyReduction_155 happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (happy_var_1
+	)}
+
+happyReduce_156 = happyReduce 8# 45# happyReduction_156
+happyReduction_156 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	case happyOut77 happy_x_7 of { happy_var_7 -> 
+	case happyOut76 happy_x_8 of { happy_var_8 -> 
+	happyIn51
+		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_157 = happySpecReduce_3  46# happyReduction_157
+happyReduction_157 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn52
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_158 = happySpecReduce_3  46# happyReduction_158
+happyReduction_158 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut52 happy_x_3 of { happy_var_3 -> 
+	happyIn52
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_159 = happySpecReduce_3  47# happyReduction_159
+happyReduction_159 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (RVar happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_160 = happySpecReduce_3  47# happyReduction_160
+happyReduction_160 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (RReturn happy_var_2 happy_var_3
+	)}}
+
+happyReduce_161 = happySpecReduce_3  47# happyReduction_161
+happyReduction_161 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn53
+		 (bracket happy_var_2
+	)}
+
+happyReduce_162 = happySpecReduce_2  47# happyReduction_162
+happyReduction_162 happy_x_2
+	happy_x_1
+	 =  case happyOut53 happy_x_2 of { happy_var_2 -> 
+	happyIn53
+		 (RPure happy_var_2
+	)}
+
+happyReduce_163 = happySpecReduce_1  47# happyReduction_163
+happyReduction_163 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
+	happyIn53
+		 (RMetavar happy_var_1
+	)}
+
+happyReduce_164 = happyReduce 4# 47# happyReduction_164
+happyReduction_164 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn53
+		 (RExpVar happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_165 = happySpecReduce_3  47# happyReduction_165
+happyReduction_165 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_166 = happySpecReduce_1  47# happyReduction_166
+happyReduction_166 happy_x_1
+	 =  happyIn53
+		 (RRefl
+	)
+
+happyReduce_167 = happySpecReduce_3  47# happyReduction_167
+happyReduction_167 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
+	)}}
+
+happyReduce_168 = happySpecReduce_3  47# happyReduction_168
+happyReduction_168 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
+	)}}
+
+happyReduce_169 = happySpecReduce_1  47# happyReduction_169
+happyReduction_169 happy_x_1
+	 =  happyIn53
+		 (RPlaceholder
+	)
+
+happyReduce_170 = happySpecReduce_1  47# happyReduction_170
+happyReduction_170 happy_x_1
+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 (RDo happy_var_1
+	)}
+
+happyReduce_171 = happySpecReduce_3  47# happyReduction_171
+happyReduction_171 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn53
+		 (RIdiom happy_var_2
+	)}
+
+happyReduce_172 = happyReduce 5# 47# happyReduction_172
+happyReduction_172 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut55 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn53
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_173 = happySpecReduce_1  47# happyReduction_173
+happyReduction_173 happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 (happy_var_1
+	)}
+
+happyReduce_174 = happySpecReduce_1  47# happyReduction_174
+happyReduction_174 happy_x_1
+	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 (happy_var_1
+	)}
+
+happyReduce_175 = happySpecReduce_1  47# happyReduction_175
+happyReduction_175 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 (happy_var_1
+	)}
+
+happyReduce_176 = happyReduce 7# 48# happyReduction_176
+happyReduction_176 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut77 happy_x_6 of { happy_var_6 -> 
+	case happyOut76 happy_x_7 of { happy_var_7 -> 
+	happyIn54
+		 (RApp happy_var_6 happy_var_7 (RAppImp happy_var_6 happy_var_7 (UN "a") (RVar happy_var_6 happy_var_7 (UN "Exists")) happy_var_2) happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_177 = happyReduce 5# 48# happyReduction_177
+happyReduction_177 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn54
+		 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_178 = happySpecReduce_3  49# happyReduction_178
+happyReduction_178 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn55
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_179 = happySpecReduce_3  49# happyReduction_179
+happyReduction_179 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut55 happy_x_3 of { happy_var_3 -> 
+	happyIn55
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_180 = happyReduce 4# 50# happyReduction_180
+happyReduction_180 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut57 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_181 = happyReduce 10# 50# happyReduction_181
+happyReduction_181 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	case happyOut77 happy_x_6 of { happy_var_6 -> 
+	case happyOut76 happy_x_7 of { happy_var_7 -> 
+	case happyOut57 happy_x_9 of { happy_var_9 -> 
+	happyIn56
+		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_182 = happySpecReduce_2  51# happyReduction_182
+happyReduction_182 happy_x_2
+	happy_x_1
+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
+	case happyOut57 happy_x_2 of { happy_var_2 -> 
+	happyIn57
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_183 = happySpecReduce_1  51# happyReduction_183
+happyReduction_183 happy_x_1
+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
+	happyIn57
+		 ([happy_var_1]
+	)}
+
+happyReduce_184 = happyReduce 7# 52# happyReduction_184
+happyReduction_184 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut77 happy_x_5 of { happy_var_5 -> 
+	case happyOut76 happy_x_6 of { happy_var_6 -> 
+	happyIn58
+		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_185 = happyReduce 8# 52# happyReduction_185
+happyReduction_185 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	case happyOut77 happy_x_6 of { happy_var_6 -> 
+	case happyOut76 happy_x_7 of { happy_var_7 -> 
+	happyIn58
+		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_186 = happyReduce 4# 52# happyReduction_186
+happyReduction_186 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn58
+		 (DoExp happy_var_2 happy_var_3 happy_var_1
+	) `HappyStk` happyRest}}}
+
+happyReduce_187 = happySpecReduce_1  53# happyReduction_187
+happyReduction_187 happy_x_1
+	 =  happyIn59
+		 (TYPE
+	)
+
+happyReduce_188 = happySpecReduce_1  53# happyReduction_188
+happyReduction_188 happy_x_1
+	 =  happyIn59
+		 (StringType
+	)
+
+happyReduce_189 = happySpecReduce_1  53# happyReduction_189
+happyReduction_189 happy_x_1
+	 =  happyIn59
+		 (IntType
+	)
+
+happyReduce_190 = happySpecReduce_1  53# happyReduction_190
+happyReduction_190 happy_x_1
+	 =  happyIn59
+		 (CharType
+	)
+
+happyReduce_191 = happySpecReduce_1  53# happyReduction_191
+happyReduction_191 happy_x_1
+	 =  happyIn59
+		 (FloatType
+	)
+
+happyReduce_192 = happySpecReduce_1  53# happyReduction_192
+happyReduction_192 happy_x_1
+	 =  happyIn59
+		 (PtrType
+	)
+
+happyReduce_193 = happySpecReduce_1  53# happyReduction_193
+happyReduction_193 happy_x_1
+	 =  happyIn59
+		 (Builtin "Handle"
+	)
+
+happyReduce_194 = happySpecReduce_1  53# happyReduction_194
+happyReduction_194 happy_x_1
+	 =  happyIn59
+		 (Builtin "Lock"
+	)
+
+happyReduce_195 = happySpecReduce_1  53# happyReduction_195
+happyReduction_195 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
+	happyIn59
+		 (Num happy_var_1
+	)}
+
+happyReduce_196 = happySpecReduce_1  53# happyReduction_196
+happyReduction_196 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
+	happyIn59
+		 (Ch happy_var_1
+	)}
+
+happyReduce_197 = happySpecReduce_1  53# happyReduction_197
+happyReduction_197 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
+	happyIn59
+		 (Str happy_var_1
+	)}
+
+happyReduce_198 = happySpecReduce_1  53# happyReduction_198
+happyReduction_198 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
+	happyIn59
+		 (Bo happy_var_1
+	)}
+
+happyReduce_199 = happySpecReduce_1  53# happyReduction_199
+happyReduction_199 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
+	happyIn59
+		 (Fl happy_var_1
+	)}
+
+happyReduce_200 = happySpecReduce_0  54# happyReduction_200
+happyReduction_200  =  happyIn60
+		 ([]
+	)
+
+happyReduce_201 = happySpecReduce_2  54# happyReduction_201
+happyReduction_201 happy_x_2
+	happy_x_1
+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
+	case happyOut60 happy_x_2 of { happy_var_2 -> 
+	happyIn60
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_202 = happyReduce 4# 55# happyReduction_202
+happyReduction_202 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut49 happy_x_2 of { happy_var_2 -> 
+	case happyOut62 happy_x_3 of { happy_var_3 -> 
+	happyIn61
+		 ((happy_var_2, happy_var_3)
+	) `HappyStk` happyRest}}
+
+happyReduce_203 = happySpecReduce_3  55# happyReduction_203
+happyReduction_203 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn61
+		 ((RConst happy_var_2 happy_var_3 TYPE, [])
+	)}}
+
+happyReduce_204 = happyReduce 4# 55# happyReduction_204
+happyReduction_204 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn61
+		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
+	) `HappyStk` happyRest}}}
+
+happyReduce_205 = happySpecReduce_0  56# happyReduction_205
+happyReduction_205  =  happyIn62
+		 ([]
+	)
+
+happyReduce_206 = happyReduce 4# 56# happyReduction_206
+happyReduction_206 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut67 happy_x_3 of { happy_var_3 -> 
+	happyIn62
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_207 = happyReduce 7# 57# happyReduction_207
+happyReduction_207 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_6 of { happy_var_6 -> 
+	happyIn63
+		 ((happy_var_4,happy_var_6)
+	) `HappyStk` happyRest}}
+
+happyReduce_208 = happyReduce 6# 58# happyReduction_208
+happyReduction_208 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_3 of { happy_var_3 -> 
+	case happyOut31 happy_x_5 of { happy_var_5 -> 
+	happyIn64
+		 ((happy_var_3,happy_var_5)
+	) `HappyStk` happyRest}}
+
+happyReduce_209 = happyReduce 4# 59# happyReduction_209
+happyReduction_209 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut67 happy_x_3 of { happy_var_3 -> 
+	happyIn65
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_210 = happySpecReduce_2  60# happyReduction_210
+happyReduction_210 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn66
+		 (happy_var_2
+	)}
+
+happyReduce_211 = happySpecReduce_3  61# happyReduction_211
+happyReduction_211 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	happyIn67
+		 ([(happy_var_1, happy_var_3)]
+	)}}
+
+happyReduce_212 = happyReduce 5# 61# happyReduction_212
+happyReduction_212 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	case happyOut67 happy_x_5 of { happy_var_5 -> 
+	happyIn67
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_213 = happySpecReduce_1  62# happyReduction_213
+happyReduction_213 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn68
+		 ([happy_var_1]
+	)}
+
+happyReduce_214 = happySpecReduce_2  62# happyReduction_214
+happyReduction_214 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut68 happy_x_2 of { happy_var_2 -> 
+	happyIn68
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_215 = happySpecReduce_1  63# happyReduction_215
+happyReduction_215 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn69
+		 (happy_var_1
+	)}
+
+happyReduce_216 = happySpecReduce_1  63# happyReduction_216
+happyReduction_216 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn69
+		 (happy_var_1
+	)}
+
+happyReduce_217 = happySpecReduce_0  64# happyReduction_217
+happyReduction_217  =  happyIn70
+		 ([]
+	)
+
+happyReduce_218 = happySpecReduce_1  64# happyReduction_218
+happyReduction_218 happy_x_1
+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
+	happyIn70
+		 ([happy_var_1]
+	)}
+
+happyReduce_219 = happySpecReduce_3  64# happyReduction_219
+happyReduction_219 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
+	case happyOut70 happy_x_3 of { happy_var_3 -> 
+	happyIn70
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_220 = happySpecReduce_2  65# happyReduction_220
+happyReduction_220 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut72 happy_x_2 of { happy_var_2 -> 
+	happyIn71
+		 (Full happy_var_1 happy_var_2
+	)}}
+
+happyReduce_221 = happySpecReduce_2  65# happyReduction_221
+happyReduction_221 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut60 happy_x_2 of { happy_var_2 -> 
+	happyIn71
+		 (Simple happy_var_1 happy_var_2
+	)}}
+
+happyReduce_222 = happySpecReduce_2  66# happyReduction_222
+happyReduction_222 happy_x_2
+	happy_x_1
+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
+	happyIn72
+		 (happy_var_2
+	)}
+
+happyReduce_223 = happySpecReduce_2  67# happyReduction_223
+happyReduction_223 happy_x_2
+	happy_x_1
+	 =  case happyOut37 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Intro happy_var_2
+	)}
+
+happyReduce_224 = happySpecReduce_1  67# happyReduction_224
+happyReduction_224 happy_x_1
+	 =  happyIn73
+		 (Intro []
+	)
+
+happyReduce_225 = happySpecReduce_2  67# happyReduction_225
+happyReduction_225 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Refine happy_var_2
+	)}
+
+happyReduce_226 = happySpecReduce_2  67# happyReduction_226
+happyReduction_226 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Generalise happy_var_2
+	)}
+
+happyReduce_227 = happySpecReduce_1  67# happyReduction_227
+happyReduction_227 happy_x_1
+	 =  happyIn73
+		 (ReflP
+	)
+
+happyReduce_228 = happySpecReduce_2  67# happyReduction_228
+happyReduction_228 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Rewrite False False happy_var_2
+	)}
+
+happyReduce_229 = happySpecReduce_3  67# happyReduction_229
+happyReduction_229 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn73
+		 (Rewrite False True happy_var_3
+	)}
+
+happyReduce_230 = happySpecReduce_2  67# happyReduction_230
+happyReduction_230 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Rewrite True False happy_var_2
+	)}
+
+happyReduce_231 = happySpecReduce_3  67# happyReduction_231
+happyReduction_231 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn73
+		 (Rewrite True True happy_var_3
+	)}
+
+happyReduce_232 = happySpecReduce_1  67# happyReduction_232
+happyReduction_232 happy_x_1
+	 =  happyIn73
+		 (Compute
+	)
+
+happyReduce_233 = happySpecReduce_2  67# happyReduction_233
+happyReduction_233 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Unfold happy_var_2
+	)}
+
+happyReduce_234 = happySpecReduce_1  67# happyReduction_234
+happyReduction_234 happy_x_1
+	 =  happyIn73
+		 (Undo
+	)
+
+happyReduce_235 = happySpecReduce_2  67# happyReduction_235
+happyReduction_235 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Induction happy_var_2
+	)}
+
+happyReduce_236 = happySpecReduce_2  67# happyReduction_236
+happyReduction_236 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Fill happy_var_2
+	)}
+
+happyReduce_237 = happySpecReduce_1  67# happyReduction_237
+happyReduction_237 happy_x_1
+	 =  happyIn73
+		 (Trivial
+	)
+
+happyReduce_238 = happySpecReduce_2  67# happyReduction_238
+happyReduction_238 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (RunTactic happy_var_2
+	)}
+
+happyReduce_239 = happySpecReduce_2  67# happyReduction_239
+happyReduction_239 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Believe happy_var_2
+	)}
+
+happyReduce_240 = happySpecReduce_2  67# happyReduction_240
+happyReduction_240 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Use happy_var_2
+	)}
+
+happyReduce_241 = happySpecReduce_2  67# happyReduction_241
+happyReduction_241 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Decide happy_var_2
+	)}
+
+happyReduce_242 = happySpecReduce_1  67# happyReduction_242
+happyReduction_242 happy_x_1
+	 =  happyIn73
+		 (Abandon
+	)
+
+happyReduce_243 = happySpecReduce_1  67# happyReduction_243
+happyReduction_243 happy_x_1
+	 =  happyIn73
+		 (Qed
+	)
+
+happyReduce_244 = happyReduce 4# 68# happyReduction_244
+happyReduction_244 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut75 happy_x_3 of { happy_var_3 -> 
+	happyIn74
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_245 = happySpecReduce_2  69# happyReduction_245
+happyReduction_245 happy_x_2
+	happy_x_1
+	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
+	happyIn75
+		 ([happy_var_1]
+	)}
+
+happyReduce_246 = happySpecReduce_3  69# happyReduction_246
+happyReduction_246 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
+	case happyOut75 happy_x_3 of { happy_var_3 -> 
+	happyIn75
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_247 = happyMonadReduce 0# 70# happyReduction_247
+happyReduction_247 (happyRest) tk
+	 = happyThen (( getLineNo)
+	) (\r -> happyReturn (happyIn76 r))
+
+happyReduce_248 = happyMonadReduce 0# 71# happyReduction_248
+happyReduction_248 (happyRest) tk
+	 = happyThen (( getFileName)
+	) (\r -> happyReturn (happyIn77 r))
+
+happyReduce_249 = happyMonadReduce 0# 72# happyReduction_249
+happyReduction_249 (happyRest) tk
+	 = happyThen (( getOps)
+	) (\r -> happyReturn (happyIn78 r))
+
+happyNewToken action sts stk
+	= lexer(\tk -> 
+	let cont i = happyDoAction i tk action sts stk in
+	case tk of {
+	TokenEOF -> happyDoAction 118# tk action sts stk;
+	TokenName happy_dollar_dollar -> cont 1#;
+	TokenInfixName happy_dollar_dollar -> cont 2#;
+	TokenBrackName happy_dollar_dollar -> cont 3#;
+	TokenString happy_dollar_dollar -> cont 4#;
+	TokenInt happy_dollar_dollar -> cont 5#;
+	TokenFloat happy_dollar_dollar -> cont 6#;
+	TokenChar happy_dollar_dollar -> cont 7#;
+	TokenBool happy_dollar_dollar -> cont 8#;
+	TokenMetavar happy_dollar_dollar -> cont 9#;
+	TokenColon -> cont 10#;
+	TokenSemi -> cont 11#;
+	TokenBar -> cont 12#;
+	TokenStars -> cont 13#;
+	TokenLambda -> cont 14#;
+	TokenHashOB -> cont 15#;
+	TokenOB -> cont 16#;
+	TokenCB -> cont 17#;
+	TokenOCB -> cont 18#;
+	TokenCCB -> cont 19#;
+	TokenOSB -> cont 20#;
+	TokenCSB -> cont 21#;
+	TokenOId -> cont 22#;
+	TokenCId -> cont 23#;
+	TokenLPair -> cont 24#;
+	TokenRPair -> cont 25#;
+	TokenExists -> cont 26#;
+	TokenTilde -> cont 27#;
+	TokenPlus -> cont 28#;
+	TokenMinus -> cont 29#;
+	TokenTimes -> cont 30#;
+	TokenDivide -> cont 31#;
+	TokenEquals -> cont 32#;
+	TokenMightEqual -> cont 33#;
+	TokenLT -> cont 34#;
+	TokenGT -> cont 35#;
+	TokenEllipsis -> cont 36#;
+	TokenUnderscore -> cont 37#;
+	TokenComma -> cont 38#;
+	TokenTuple -> cont 39#;
+	TokenBang -> cont 40#;
+	TokenConcat -> cont 41#;
+	TokenGE -> cont 42#;
+	TokenLE -> cont 43#;
+	TokenOr -> cont 44#;
+	TokenAnd -> cont 45#;
+	TokenArrow -> cont 46#;
+	TokenFatArrow -> cont 47#;
+	TokenTransArrow -> cont 48#;
+	TokenLeftArrow -> cont 49#;
+	TokenIntType -> cont 50#;
+	TokenCharType -> cont 51#;
+	TokenFloatType -> cont 52#;
+	TokenStringType -> cont 53#;
+	TokenHandleType -> cont 54#;
+	TokenPtrType -> cont 55#;
+	TokenLockType -> cont 56#;
+	TokenType -> cont 57#;
+	TokenLazyBracket -> cont 58#;
+	TokenDataType -> cont 59#;
+	TokenInfix -> cont 60#;
+	TokenInfixL -> cont 61#;
+	TokenInfixR -> cont 62#;
+	TokenUsing -> cont 63#;
+	TokenIdiom -> cont 64#;
+	TokenParams -> cont 65#;
+	TokenNamespace -> cont 66#;
+	TokenPublic -> cont 67#;
+	TokenPrivate -> cont 68#;
+	TokenAbstract -> cont 69#;
+	TokenNoElim -> cont 70#;
+	TokenCollapsible -> cont 71#;
+	TokenWhere -> cont 72#;
+	TokenWith -> cont 73#;
+	TokenPartial -> cont 74#;
+	TokenSyntax -> cont 75#;
+	TokenLazy -> cont 76#;
+	TokenRefl -> cont 77#;
+	TokenEmptyType -> cont 78#;
+	TokenUnitType -> cont 79#;
+	TokenInclude -> cont 80#;
+	TokenExport -> cont 81#;
+	TokenInline -> cont 82#;
+	TokenDo -> cont 83#;
+	TokenReturn -> cont 84#;
+	TokenIf -> cont 85#;
+	TokenThen -> cont 86#;
+	TokenElse -> cont 87#;
+	TokenLet -> cont 88#;
+	TokenIn -> cont 89#;
+	TokenProof -> cont 90#;
+	TokenIntro -> cont 91#;
+	TokenRefine -> cont 92#;
+	TokenGeneralise -> cont 93#;
+	TokenReflP -> cont 94#;
+	TokenRewrite -> cont 95#;
+	TokenRewriteAll -> cont 96#;
+	TokenCompute -> cont 97#;
+	TokenUnfold -> cont 98#;
+	TokenUndo -> cont 99#;
+	TokenInduction -> cont 100#;
+	TokenFill -> cont 101#;
+	TokenTrivial -> cont 102#;
+	TokenMkTac -> cont 103#;
+	TokenBelieve -> cont 104#;
+	TokenUse -> cont 105#;
+	TokenDecide -> cont 106#;
+	TokenAbandon -> cont 107#;
+	TokenQED -> cont 108#;
+	TokenLaTeX -> cont 109#;
+	TokenNoCG -> cont 110#;
+	TokenEval -> cont 111#;
+	TokenSpec -> cont 112#;
+	TokenFreeze -> cont 113#;
+	TokenThaw -> cont 114#;
+	TokenTransform -> cont 115#;
+	TokenCInclude -> cont 116#;
+	TokenCLib -> cont 117#;
+	_ -> happyError' tk
+	})
+
+happyError_ tk = happyError' tk
+
+happyThen :: () => P a -> (a -> P b) -> P b
+happyThen = (thenP)
+happyReturn :: () => a -> P a
+happyReturn = (returnP)
+happyThen1 = happyThen
+happyReturn1 :: () => a -> P a
+happyReturn1 = happyReturn
+happyError' :: () => (Token) -> P a
+happyError' tk = (\token -> happyError) tk
+
+mkparse = happySomeParser where
+  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
+
+mkparseTerm = happySomeParser where
+  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut33 x))
+
+mkparseTactic = happySomeParser where
+  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut73 x))
+
+happySeq = happyDontSeq
+
+
+data ConParse = Full Id RawTerm
+              | Simple Id [RawTerm]
+
+parse :: String -> FilePath -> Result [Decl]
+parse s fn = do ds <- mkparse s fn 1 []
+                collectDecls ds
+
+processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
+                  IO ([Decl], [FilePath])
+processImports opts imped (Success ds) = pi imped [] ds
+  where pi imps decls ((PInclude fp):xs)
+           | fp `elem` imps = pi imps decls xs
+           | otherwise = do
+                 f <- readLibFile defaultLibPath fp
+                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
+                 case parse f fp of
+                   Success t -> pi (fp:imps) decls (t++xs)
+                   Failure e f l ->
+                     fail $ f ++ ":" ++ show l ++ ":" ++ e
+        pi imps decls ((Using t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Using t ds']) xs
+        pi imps decls ((Params t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Params t ds']) xs
+        pi imps decls ((DoUsing b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[DoUsing b r ds']) xs
+        pi imps decls ((Idiom b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Idiom b r ds']) xs
+        pi imps decls ((Namespace n ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Namespace n ds']) xs
+        pi imps decls (x:xs) = pi imps (decls++[x]) xs
+        pi imps decls [] = return (decls, imps)
+
+processImports _ imped (Failure e f l) 
+    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
+
+
+parseTerm :: String -> Result RawTerm
+parseTerm s = mkparseTerm s "(input)" 0 []
+
+parseTactic :: String -> Result ITactic
+parseTactic s = mkparseTactic s "(tactic)" 0 []
+
+mkCon :: RawTerm -> ConParse -> (Id,RawTerm)
+mkCon _ (Full n t) = (n,t)
+mkCon ty (Simple n args) = (n, mkConTy args ty)
+   where mkConTy [] ty = ty
+         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex Eager a) (mkConTy as ty)
+
+mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
+   where mkImpApp f [] = f
+         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
+         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
+
+doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
+doBind b [] t = t
+doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
+
+doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
+doLetBind [] t = t
+doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
+
+mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
+mkTyApp file line n ty = mkApp file line (RVar file line n) (getTyArgs ty)
+   where getTyArgs (RBind n _ t) = (RVar file line n):(getTyArgs t)
+         getTyArgs x = []
+
+mkTyParams :: String -> Int -> [Id] -> RawTerm
+mkTyParams f l [] = RConst f l TYPE
+mkTyParams f l (x:xs) = RBind x (Pi Ex Eager (RConst f l TYPE)) (mkTyParams f l xs)
+
+mkDatatype :: String -> Int ->
+              Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
+                    [TyOpt] -> Datatype
+mkDatatype file line n (Right ((t, using), cons)) opts
+    = Datatype n t (map (mkCon (mkTyApp file line n t)) cons) using opts file line 
+mkDatatype file line n (Left t) opts
+    = Latatype n t file line
+
+bracket (RUserInfix f l _ op x y) = RUserInfix f l True op x y
+bracket x = x
+
+pairDesugar :: String -> Int -> RawTerm -> [RawTerm] -> RawTerm
+pairDesugar file line pair [x,y] = mkApp file line pair [x,y]
+pairDesugar file line pair (x:y:xs) 
+    = pairDesugar file line pair ((mkApp file line pair [x,y]):xs)
+
+sigDesugar :: String -> Int -> (Id, RawTerm) -> RawTerm -> RawTerm
+sigDesugar file line (n, tm) sc
+    = mkApp file line (RVar file line (UN "Sigma")) [tm, lam]
+   where lam = RBind n (Lam tm) sc
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+{-# LINE 1 "<built-in>" #-}
+{-# LINE 1 "<command line>" #-}
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+-- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
+
+{-# LINE 28 "templates/GenericTemplate.hs" #-}
+
+
+data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
+
+
+
+
+
+{-# LINE 49 "templates/GenericTemplate.hs" #-}
+
+{-# LINE 59 "templates/GenericTemplate.hs" #-}
+
+{-# LINE 68 "templates/GenericTemplate.hs" #-}
+
+infixr 9 `HappyStk`
+data HappyStk a = HappyStk a (HappyStk a)
+
+-----------------------------------------------------------------------------
+-- starting the parse
+
+happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
+
+-----------------------------------------------------------------------------
+-- Accepting the parse
+
+-- If the current token is 0#, it means we've just accepted a partial
+-- parse (a %partial parser).  We must ignore the saved token on the top of
+-- the stack in this case.
+happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
+	happyReturn1 ans
+happyAccept j tk st sts (HappyStk ans _) = 
+	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)
+
+-----------------------------------------------------------------------------
+-- Arrays only: do the next action
+
+
+
+happyDoAction i tk st
+	= {- nothing -}
+
+
+	  case action of
+		0#		  -> {- nothing -}
+				     happyFail i tk st
+		-1# 	  -> {- nothing -}
+				     happyAccept i tk st
+		n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
+
+				     (happyReduceArr Happy_Data_Array.! rule) i tk st
+				     where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
+		n		  -> {- nothing -}
+
+
+				     happyShift new_state i tk st
+				     where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
+   where off    = indexShortOffAddr happyActOffsets st
+	 off_i  = (off Happy_GHC_Exts.+# i)
+	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
+			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)
+			else False
+ 	 action | check     = indexShortOffAddr happyTable off_i
+		| otherwise = indexShortOffAddr happyDefActions st
+
+{-# LINE 127 "templates/GenericTemplate.hs" #-}
+
+
+indexShortOffAddr (HappyA# arr) off =
+#if __GLASGOW_HASKELL__ > 500
+	Happy_GHC_Exts.narrow16Int# i
+#elif __GLASGOW_HASKELL__ == 500
+	Happy_GHC_Exts.intToInt16# i
+#else
+	Happy_GHC_Exts.iShiftRA# (Happy_GHC_Exts.iShiftL# i 16#) 16#
+#endif
+  where
+#if __GLASGOW_HASKELL__ >= 503
+	i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
+#else
+	i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.shiftL# high 8#) low)
+#endif
+	high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
+	low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
+	off' = off Happy_GHC_Exts.*# 2#
+
+
+
+
+
+data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
+
+
+
+
+-----------------------------------------------------------------------------
+-- HappyState data type (not arrays)
+
+{-# LINE 170 "templates/GenericTemplate.hs" #-}
+
+-----------------------------------------------------------------------------
+-- Shifting a token
+
+happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
+     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
+--     trace "shifting the error token" $
+     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
+
+happyShift new_state i tk st sts stk =
+     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
+
+-- happyReduce is specialised for the common cases.
+
+happySpecReduce_0 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_0 nt fn j tk st@((action)) sts stk
+     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
+
+happySpecReduce_1 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
+     = let r = fn v1 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happySpecReduce_2 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
+     = let r = fn v1 v2 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happySpecReduce_3 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
+     = let r = fn v1 v2 v3 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happyReduce k i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyReduce k nt fn j tk st sts stk
+     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
+	 sts1@((HappyCons (st1@(action)) (_))) ->
+        	let r = fn stk in  -- it doesn't hurt to always seq here...
+       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)
+
+happyMonadReduce k nt fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyMonadReduce k nt fn j tk st sts stk =
+        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
+       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
+             drop_stk = happyDropStk k stk
+
+happyMonad2Reduce k nt fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyMonad2Reduce k nt fn j tk st sts stk =
+       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
+       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
+             drop_stk = happyDropStk k stk
+
+             off    = indexShortOffAddr happyGotoOffsets st1
+             off_i  = (off Happy_GHC_Exts.+# nt)
+             new_state = indexShortOffAddr happyTable off_i
+
+
+
+
+happyDrop 0# l = l
+happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
+
+happyDropStk 0# l = l
+happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
+
+-----------------------------------------------------------------------------
+-- Moving to a new state after a reduction
+
+
+happyGoto nt j tk st = 
+   {- nothing -}
+   happyDoAction j tk new_state
+   where off    = indexShortOffAddr happyGotoOffsets st
+	 off_i  = (off Happy_GHC_Exts.+# nt)
+ 	 new_state = indexShortOffAddr happyTable off_i
+
+
+
+
+-----------------------------------------------------------------------------
+-- Error recovery (0# is the error token)
+
+-- parse error if we are in recovery and we fail again
+happyFail  0# tk old_st _ stk =
+--	trace "failing" $ 
+    	happyError_ tk
+
+{-  We don't need state discarding for our restricted implementation of
+    "error".  In fact, it can cause some bogus parses, so I've disabled it
+    for now --SDM
+
+-- discard a state
+happyFail  0# tk old_st (HappyCons ((action)) (sts)) 
+						(saved_tok `HappyStk` _ `HappyStk` stk) =
+--	trace ("discarding state, depth " ++ show (length stk))  $
+	happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))
+-}
+
+-- Enter error recovery: generate an error token,
+--                       save the old token and carry on.
+happyFail  i tk (action) sts stk =
+--      trace "entering error recovery" $
+	happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)
+
+-- Internal happy errors:
+
+notHappyAtAll = error "Internal Happy error\n"
+
+-----------------------------------------------------------------------------
+-- Hack to get the typechecker to accept our action functions
+
+
+happyTcHack :: Happy_GHC_Exts.Int# -> a -> a
 happyTcHack x y = y
 {-# INLINE happyTcHack #-}
 
diff --git a/dist/build/Idris/idris-tmp/Idris/Parser.hs b/dist/build/Idris/idris-tmp/Idris/Parser.hs
--- a/dist/build/Idris/idris-tmp/Idris/Parser.hs
+++ b/dist/build/Idris/idris-tmp/Idris/Parser.hs
@@ -1,3582 +1,3675 @@
-{-# OPTIONS -fglasgow-exts -cpp #-}
--- -*-Haskell-*-
-{-# OPTIONS_GHC -fglasgow-exts #-}
-
-module Idris.Parser where
-
-import Data.Char
-import Ivor.TT
-import System.IO.Unsafe
-import List
-import Control.Monad
-
-import Idris.AbsSyntax
-import Idris.Lexer
-import Idris.Lib
-
-import Debug.Trace
-#if __GLASGOW_HASKELL__ >= 503
-import Data.Array
-#else
-import Array
-#endif
-#if __GLASGOW_HASKELL__ >= 503
-import GHC.Exts
-#else
-import GlaExts
-#endif
-
--- parser produced by Happy Version 1.18.2
-
-newtype HappyAbsSyn t66 = HappyAbsSyn HappyAny
-#if __GLASGOW_HASKELL__ >= 607
-type HappyAny = GHC.Exts.Any
-#else
-type HappyAny = forall a . a
-#endif
-happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t66)
-happyIn6 x = unsafeCoerce# x
-{-# INLINE happyIn6 #-}
-happyOut6 :: (HappyAbsSyn t66) -> ([ParseDecl])
-happyOut6 x = unsafeCoerce# x
-{-# INLINE happyOut6 #-}
-happyIn7 :: (ParseDecl) -> (HappyAbsSyn t66)
-happyIn7 x = unsafeCoerce# x
-{-# INLINE happyIn7 #-}
-happyOut7 :: (HappyAbsSyn t66) -> (ParseDecl)
-happyOut7 x = unsafeCoerce# x
-{-# INLINE happyOut7 #-}
-happyIn8 :: (Decl) -> (HappyAbsSyn t66)
-happyIn8 x = unsafeCoerce# x
-{-# INLINE happyIn8 #-}
-happyOut8 :: (HappyAbsSyn t66) -> (Decl)
-happyOut8 x = unsafeCoerce# x
-{-# INLINE happyOut8 #-}
-happyIn9 :: (ParseDecl) -> (HappyAbsSyn t66)
-happyIn9 x = unsafeCoerce# x
-{-# INLINE happyIn9 #-}
-happyOut9 :: (HappyAbsSyn t66) -> (ParseDecl)
-happyOut9 x = unsafeCoerce# x
-{-# INLINE happyOut9 #-}
-happyIn10 :: (Bool) -> (HappyAbsSyn t66)
-happyIn10 x = unsafeCoerce# x
-{-# INLINE happyIn10 #-}
-happyOut10 :: (HappyAbsSyn t66) -> (Bool)
-happyOut10 x = unsafeCoerce# x
-{-# INLINE happyOut10 #-}
-happyIn11 :: ([RawTerm]) -> (HappyAbsSyn t66)
-happyIn11 x = unsafeCoerce# x
-{-# INLINE happyIn11 #-}
-happyOut11 :: (HappyAbsSyn t66) -> ([RawTerm])
-happyOut11 x = unsafeCoerce# x
-{-# INLINE happyOut11 #-}
-happyIn12 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn12 x = unsafeCoerce# x
-{-# INLINE happyIn12 #-}
-happyOut12 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut12 x = unsafeCoerce# x
-{-# INLINE happyOut12 #-}
-happyIn13 :: ([ParseDecl]) -> (HappyAbsSyn t66)
-happyIn13 x = unsafeCoerce# x
-{-# INLINE happyIn13 #-}
-happyOut13 :: (HappyAbsSyn t66) -> ([ParseDecl])
-happyOut13 x = unsafeCoerce# x
-{-# INLINE happyOut13 #-}
-happyIn14 :: ([CGFlag]) -> (HappyAbsSyn t66)
-happyIn14 x = unsafeCoerce# x
-{-# INLINE happyIn14 #-}
-happyOut14 :: (HappyAbsSyn t66) -> ([CGFlag])
-happyOut14 x = unsafeCoerce# x
-{-# INLINE happyOut14 #-}
-happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t66)
-happyIn15 x = unsafeCoerce# x
-{-# INLINE happyIn15 #-}
-happyOut15 :: (HappyAbsSyn t66) -> ([CGFlag])
-happyOut15 x = unsafeCoerce# x
-{-# INLINE happyOut15 #-}
-happyIn16 :: ([Decl]) -> (HappyAbsSyn t66)
-happyIn16 x = unsafeCoerce# x
-{-# INLINE happyIn16 #-}
-happyOut16 :: (HappyAbsSyn t66) -> ([Decl])
-happyOut16 x = unsafeCoerce# x
-{-# INLINE happyOut16 #-}
-happyIn17 :: ([String]) -> (HappyAbsSyn t66)
-happyIn17 x = unsafeCoerce# x
-{-# INLINE happyIn17 #-}
-happyOut17 :: (HappyAbsSyn t66) -> ([String])
-happyOut17 x = unsafeCoerce# x
-{-# INLINE happyOut17 #-}
-happyIn18 :: (String) -> (HappyAbsSyn t66)
-happyIn18 x = unsafeCoerce# x
-{-# INLINE happyIn18 #-}
-happyOut18 :: (HappyAbsSyn t66) -> (String)
-happyOut18 x = unsafeCoerce# x
-{-# INLINE happyOut18 #-}
-happyIn19 :: (Fixity) -> (HappyAbsSyn t66)
-happyIn19 x = unsafeCoerce# x
-{-# INLINE happyIn19 #-}
-happyOut19 :: (HappyAbsSyn t66) -> (Fixity)
-happyOut19 x = unsafeCoerce# x
-{-# INLINE happyOut19 #-}
-happyIn20 :: (Decl) -> (HappyAbsSyn t66)
-happyIn20 x = unsafeCoerce# x
-{-# INLINE happyIn20 #-}
-happyOut20 :: (HappyAbsSyn t66) -> (Decl)
-happyOut20 x = unsafeCoerce# x
-{-# INLINE happyOut20 #-}
-happyIn21 :: ([(Id,String)]) -> (HappyAbsSyn t66)
-happyIn21 x = unsafeCoerce# x
-{-# INLINE happyIn21 #-}
-happyOut21 :: (HappyAbsSyn t66) -> ([(Id,String)])
-happyOut21 x = unsafeCoerce# x
-{-# INLINE happyOut21 #-}
-happyIn22 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t66)
-happyIn22 x = unsafeCoerce# x
-{-# INLINE happyIn22 #-}
-happyOut22 :: (HappyAbsSyn t66) -> ((Id, [(RawTerm, Maybe Id)]))
-happyOut22 x = unsafeCoerce# x
-{-# INLINE happyOut22 #-}
-happyIn23 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t66)
-happyIn23 x = unsafeCoerce# x
-{-# INLINE happyIn23 #-}
-happyOut23 :: (HappyAbsSyn t66) -> ([(RawTerm,Maybe Id)])
-happyOut23 x = unsafeCoerce# x
-{-# INLINE happyOut23 #-}
-happyIn24 :: (Datatype) -> (HappyAbsSyn t66)
-happyIn24 x = unsafeCoerce# x
-{-# INLINE happyIn24 #-}
-happyOut24 :: (HappyAbsSyn t66) -> (Datatype)
-happyOut24 x = unsafeCoerce# x
-{-# INLINE happyOut24 #-}
-happyIn25 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t66)
-happyIn25 x = unsafeCoerce# x
-{-# INLINE happyIn25 #-}
-happyOut25 :: (HappyAbsSyn t66) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
-happyOut25 x = unsafeCoerce# x
-{-# INLINE happyOut25 #-}
-happyIn26 :: ([TyOpt]) -> (HappyAbsSyn t66)
-happyIn26 x = unsafeCoerce# x
-{-# INLINE happyIn26 #-}
-happyOut26 :: (HappyAbsSyn t66) -> ([TyOpt])
-happyOut26 x = unsafeCoerce# x
-{-# INLINE happyOut26 #-}
-happyIn27 :: ([TyOpt]) -> (HappyAbsSyn t66)
-happyIn27 x = unsafeCoerce# x
-{-# INLINE happyIn27 #-}
-happyOut27 :: (HappyAbsSyn t66) -> ([TyOpt])
-happyOut27 x = unsafeCoerce# x
-{-# INLINE happyOut27 #-}
-happyIn28 :: (TyOpt) -> (HappyAbsSyn t66)
-happyIn28 x = unsafeCoerce# x
-{-# INLINE happyIn28 #-}
-happyOut28 :: (HappyAbsSyn t66) -> (TyOpt)
-happyOut28 x = unsafeCoerce# x
-{-# INLINE happyOut28 #-}
-happyIn29 :: (Id) -> (HappyAbsSyn t66)
-happyIn29 x = unsafeCoerce# x
-{-# INLINE happyIn29 #-}
-happyOut29 :: (HappyAbsSyn t66) -> (Id)
-happyOut29 x = unsafeCoerce# x
-{-# INLINE happyOut29 #-}
-happyIn30 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn30 x = unsafeCoerce# x
-{-# INLINE happyIn30 #-}
-happyOut30 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut30 x = unsafeCoerce# x
-{-# INLINE happyOut30 #-}
-happyIn31 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn31 x = unsafeCoerce# x
-{-# INLINE happyIn31 #-}
-happyOut31 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut31 x = unsafeCoerce# x
-{-# INLINE happyOut31 #-}
-happyIn32 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn32 x = unsafeCoerce# x
-{-# INLINE happyIn32 #-}
-happyOut32 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut32 x = unsafeCoerce# x
-{-# INLINE happyOut32 #-}
-happyIn33 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn33 x = unsafeCoerce# x
-{-# INLINE happyIn33 #-}
-happyOut33 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut33 x = unsafeCoerce# x
-{-# INLINE happyOut33 #-}
-happyIn34 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn34 x = unsafeCoerce# x
-{-# INLINE happyIn34 #-}
-happyOut34 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut34 x = unsafeCoerce# x
-{-# INLINE happyOut34 #-}
-happyIn35 :: ([Id]) -> (HappyAbsSyn t66)
-happyIn35 x = unsafeCoerce# x
-{-# INLINE happyIn35 #-}
-happyOut35 :: (HappyAbsSyn t66) -> ([Id])
-happyOut35 x = unsafeCoerce# x
-{-# INLINE happyOut35 #-}
-happyIn36 :: ([(Id, Int)]) -> (HappyAbsSyn t66)
-happyIn36 x = unsafeCoerce# x
-{-# INLINE happyIn36 #-}
-happyOut36 :: (HappyAbsSyn t66) -> ([(Id, Int)])
-happyOut36 x = unsafeCoerce# x
-{-# INLINE happyOut36 #-}
-happyIn37 :: ([Id]) -> (HappyAbsSyn t66)
-happyIn37 x = unsafeCoerce# x
-{-# INLINE happyIn37 #-}
-happyOut37 :: (HappyAbsSyn t66) -> ([Id])
-happyOut37 x = unsafeCoerce# x
-{-# INLINE happyOut37 #-}
-happyIn38 :: ([Id]) -> (HappyAbsSyn t66)
-happyIn38 x = unsafeCoerce# x
-{-# INLINE happyIn38 #-}
-happyOut38 :: (HappyAbsSyn t66) -> ([Id])
-happyOut38 x = unsafeCoerce# x
-{-# INLINE happyOut38 #-}
-happyIn39 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn39 x = unsafeCoerce# x
-{-# INLINE happyIn39 #-}
-happyOut39 :: (HappyAbsSyn t66) -> ([(Id, RawTerm, RawTerm)])
-happyOut39 x = unsafeCoerce# x
-{-# INLINE happyOut39 #-}
-happyIn40 :: ((Id, RawTerm)) -> (HappyAbsSyn t66)
-happyIn40 x = unsafeCoerce# x
-{-# INLINE happyIn40 #-}
-happyOut40 :: (HappyAbsSyn t66) -> ((Id, RawTerm))
-happyOut40 x = unsafeCoerce# x
-{-# INLINE happyOut40 #-}
-happyIn41 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn41 x = unsafeCoerce# x
-{-# INLINE happyIn41 #-}
-happyOut41 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut41 x = unsafeCoerce# x
-{-# INLINE happyOut41 #-}
-happyIn42 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn42 x = unsafeCoerce# x
-{-# INLINE happyIn42 #-}
-happyOut42 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut42 x = unsafeCoerce# x
-{-# INLINE happyOut42 #-}
-happyIn43 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn43 x = unsafeCoerce# x
-{-# INLINE happyIn43 #-}
-happyOut43 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut43 x = unsafeCoerce# x
-{-# INLINE happyOut43 #-}
-happyIn44 :: (String) -> (HappyAbsSyn t66)
-happyIn44 x = unsafeCoerce# x
-{-# INLINE happyIn44 #-}
-happyOut44 :: (HappyAbsSyn t66) -> (String)
-happyOut44 x = unsafeCoerce# x
-{-# INLINE happyOut44 #-}
-happyIn45 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn45 x = unsafeCoerce# x
-{-# INLINE happyIn45 #-}
-happyOut45 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut45 x = unsafeCoerce# x
-{-# INLINE happyOut45 #-}
-happyIn46 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn46 x = unsafeCoerce# x
-{-# INLINE happyIn46 #-}
-happyOut46 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut46 x = unsafeCoerce# x
-{-# INLINE happyOut46 #-}
-happyIn47 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn47 x = unsafeCoerce# x
-{-# INLINE happyIn47 #-}
-happyOut47 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut47 x = unsafeCoerce# x
-{-# INLINE happyOut47 #-}
-happyIn48 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn48 x = unsafeCoerce# x
-{-# INLINE happyIn48 #-}
-happyOut48 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut48 x = unsafeCoerce# x
-{-# INLINE happyOut48 #-}
-happyIn49 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn49 x = unsafeCoerce# x
-{-# INLINE happyIn49 #-}
-happyOut49 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut49 x = unsafeCoerce# x
-{-# INLINE happyOut49 #-}
-happyIn50 :: ([RawTerm]) -> (HappyAbsSyn t66)
-happyIn50 x = unsafeCoerce# x
-{-# INLINE happyIn50 #-}
-happyOut50 :: (HappyAbsSyn t66) -> ([RawTerm])
-happyOut50 x = unsafeCoerce# x
-{-# INLINE happyOut50 #-}
-happyIn51 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn51 x = unsafeCoerce# x
-{-# INLINE happyIn51 #-}
-happyOut51 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut51 x = unsafeCoerce# x
-{-# INLINE happyOut51 #-}
-happyIn52 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn52 x = unsafeCoerce# x
-{-# INLINE happyIn52 #-}
-happyOut52 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut52 x = unsafeCoerce# x
-{-# INLINE happyOut52 #-}
-happyIn53 :: ([RawTerm]) -> (HappyAbsSyn t66)
-happyIn53 x = unsafeCoerce# x
-{-# INLINE happyIn53 #-}
-happyOut53 :: (HappyAbsSyn t66) -> ([RawTerm])
-happyOut53 x = unsafeCoerce# x
-{-# INLINE happyOut53 #-}
-happyIn54 :: ([Do]) -> (HappyAbsSyn t66)
-happyIn54 x = unsafeCoerce# x
-{-# INLINE happyIn54 #-}
-happyOut54 :: (HappyAbsSyn t66) -> ([Do])
-happyOut54 x = unsafeCoerce# x
-{-# INLINE happyOut54 #-}
-happyIn55 :: ([Do]) -> (HappyAbsSyn t66)
-happyIn55 x = unsafeCoerce# x
-{-# INLINE happyIn55 #-}
-happyOut55 :: (HappyAbsSyn t66) -> ([Do])
-happyOut55 x = unsafeCoerce# x
-{-# INLINE happyOut55 #-}
-happyIn56 :: (Do) -> (HappyAbsSyn t66)
-happyIn56 x = unsafeCoerce# x
-{-# INLINE happyIn56 #-}
-happyOut56 :: (HappyAbsSyn t66) -> (Do)
-happyOut56 x = unsafeCoerce# x
-{-# INLINE happyOut56 #-}
-happyIn57 :: (Constant) -> (HappyAbsSyn t66)
-happyIn57 x = unsafeCoerce# x
-{-# INLINE happyIn57 #-}
-happyOut57 :: (HappyAbsSyn t66) -> (Constant)
-happyOut57 x = unsafeCoerce# x
-{-# INLINE happyOut57 #-}
-happyIn58 :: ([RawTerm]) -> (HappyAbsSyn t66)
-happyIn58 x = unsafeCoerce# x
-{-# INLINE happyIn58 #-}
-happyOut58 :: (HappyAbsSyn t66) -> ([RawTerm])
-happyOut58 x = unsafeCoerce# x
-{-# INLINE happyOut58 #-}
-happyIn59 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t66)
-happyIn59 x = unsafeCoerce# x
-{-# INLINE happyIn59 #-}
-happyOut59 :: (HappyAbsSyn t66) -> ((RawTerm, [(Id, RawTerm)]))
-happyOut59 x = unsafeCoerce# x
-{-# INLINE happyOut59 #-}
-happyIn60 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn60 x = unsafeCoerce# x
-{-# INLINE happyIn60 #-}
-happyOut60 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut60 x = unsafeCoerce# x
-{-# INLINE happyOut60 #-}
-happyIn61 :: ((Id,Id)) -> (HappyAbsSyn t66)
-happyIn61 x = unsafeCoerce# x
-{-# INLINE happyIn61 #-}
-happyOut61 :: (HappyAbsSyn t66) -> ((Id,Id))
-happyOut61 x = unsafeCoerce# x
-{-# INLINE happyOut61 #-}
-happyIn62 :: ((Id,Id)) -> (HappyAbsSyn t66)
-happyIn62 x = unsafeCoerce# x
-{-# INLINE happyIn62 #-}
-happyOut62 :: (HappyAbsSyn t66) -> ((Id,Id))
-happyOut62 x = unsafeCoerce# x
-{-# INLINE happyOut62 #-}
-happyIn63 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn63 x = unsafeCoerce# x
-{-# INLINE happyIn63 #-}
-happyOut63 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut63 x = unsafeCoerce# x
-{-# INLINE happyOut63 #-}
-happyIn64 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t66)
-happyIn64 x = unsafeCoerce# x
-{-# INLINE happyIn64 #-}
-happyOut64 :: (HappyAbsSyn t66) -> ([(Id, RawTerm)])
-happyOut64 x = unsafeCoerce# x
-{-# INLINE happyOut64 #-}
-happyIn65 :: ([Id]) -> (HappyAbsSyn t66)
-happyIn65 x = unsafeCoerce# x
-{-# INLINE happyIn65 #-}
-happyOut65 :: (HappyAbsSyn t66) -> ([Id])
-happyOut65 x = unsafeCoerce# x
-{-# INLINE happyOut65 #-}
-happyIn66 :: t66 -> (HappyAbsSyn t66)
-happyIn66 x = unsafeCoerce# x
-{-# INLINE happyIn66 #-}
-happyOut66 :: (HappyAbsSyn t66) -> t66
-happyOut66 x = unsafeCoerce# x
-{-# INLINE happyOut66 #-}
-happyIn67 :: ([ConParse]) -> (HappyAbsSyn t66)
-happyIn67 x = unsafeCoerce# x
-{-# INLINE happyIn67 #-}
-happyOut67 :: (HappyAbsSyn t66) -> ([ConParse])
-happyOut67 x = unsafeCoerce# x
-{-# INLINE happyOut67 #-}
-happyIn68 :: (ConParse) -> (HappyAbsSyn t66)
-happyIn68 x = unsafeCoerce# x
-{-# INLINE happyIn68 #-}
-happyOut68 :: (HappyAbsSyn t66) -> (ConParse)
-happyOut68 x = unsafeCoerce# x
-{-# INLINE happyOut68 #-}
-happyIn69 :: (RawTerm) -> (HappyAbsSyn t66)
-happyIn69 x = unsafeCoerce# x
-{-# INLINE happyIn69 #-}
-happyOut69 :: (HappyAbsSyn t66) -> (RawTerm)
-happyOut69 x = unsafeCoerce# x
-{-# INLINE happyOut69 #-}
-happyIn70 :: (ITactic) -> (HappyAbsSyn t66)
-happyIn70 x = unsafeCoerce# x
-{-# INLINE happyIn70 #-}
-happyOut70 :: (HappyAbsSyn t66) -> (ITactic)
-happyOut70 x = unsafeCoerce# x
-{-# INLINE happyOut70 #-}
-happyIn71 :: ([ITactic]) -> (HappyAbsSyn t66)
-happyIn71 x = unsafeCoerce# x
-{-# INLINE happyIn71 #-}
-happyOut71 :: (HappyAbsSyn t66) -> ([ITactic])
-happyOut71 x = unsafeCoerce# x
-{-# INLINE happyOut71 #-}
-happyIn72 :: ([ITactic]) -> (HappyAbsSyn t66)
-happyIn72 x = unsafeCoerce# x
-{-# INLINE happyIn72 #-}
-happyOut72 :: (HappyAbsSyn t66) -> ([ITactic])
-happyOut72 x = unsafeCoerce# x
-{-# INLINE happyOut72 #-}
-happyIn73 :: (LineNumber) -> (HappyAbsSyn t66)
-happyIn73 x = unsafeCoerce# x
-{-# INLINE happyIn73 #-}
-happyOut73 :: (HappyAbsSyn t66) -> (LineNumber)
-happyOut73 x = unsafeCoerce# x
-{-# INLINE happyOut73 #-}
-happyIn74 :: (String) -> (HappyAbsSyn t66)
-happyIn74 x = unsafeCoerce# x
-{-# INLINE happyIn74 #-}
-happyOut74 :: (HappyAbsSyn t66) -> (String)
-happyOut74 x = unsafeCoerce# x
-{-# INLINE happyOut74 #-}
-happyIn75 :: (Fixities) -> (HappyAbsSyn t66)
-happyIn75 x = unsafeCoerce# x
-{-# INLINE happyIn75 #-}
-happyOut75 :: (HappyAbsSyn t66) -> (Fixities)
-happyOut75 x = unsafeCoerce# x
-{-# INLINE happyOut75 #-}
-happyInTok :: (Token) -> (HappyAbsSyn t66)
-happyInTok x = unsafeCoerce# x
-{-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn t66) -> (Token)
-happyOutTok x = unsafeCoerce# x
-{-# INLINE happyOutTok #-}
-
-
-happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\x16\x00\x21\x05\x57\x0d\x00\x00\x20\x04\x6e\x01\x6e\x01\x21\x05\x00\x00\x3b\x03\xea\x02\x00\x00\x6e\x01\x00\x00\x21\x05\x21\x05\x00\x00\x21\x05\x21\x05\x21\x05\x21\x05\x00\x00\x00\x00\x00\x00\x85\x01\x00\x00\x00\x00\x00\x00\x00\x00\x61\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x01\xfd\x08\x48\x02\x21\x05\x21\x05\x06\x08\x21\x05\x00\x00\x6e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x05\x00\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x21\x05\x5b\x00\x1f\x04\x01\x00\x00\x00\x00\x00\x01\x00\x57\x04\x00\x00\x6f\x04\x00\x00\xf5\x01\x5b\x04\x5a\x04\x58\x04\x56\x04\x39\x09\xd1\x01\x4a\x04\x00\x00\x00\x00\x00\x00\x4b\x04\x49\x04\x48\x04\x5b\x00\x53\x04\x1b\x04\x43\x04\x51\x04\x21\x05\x50\x04\x46\x04\x00\x00\x00\x00\x1e\x04\x3d\x04\x5b\x00\x28\x04\x3c\x04\x5b\x00\x5b\x00\x5b\x00\x5b\x00\x5b\x00\x12\x02\x32\x04\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x13\x00\x00\x00\x00\x00\x99\x02\x00\x00\x00\x00\x00\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\x00\x00\xca\x07\x37\x04\xfc\xff\xe3\x08\x2d\x04\x77\x00\x39\x09\xd1\x01\x00\x00\x00\x00\x30\x04\xe4\x03\x14\x02\x00\x00\x26\x04\xd0\x04\x00\x00\x00\x00\x27\x04\x00\x00\x27\x04\x00\x00\xaa\x05\xa3\x08\xfa\x01\x4e\x04\x7f\x04\x1a\x04\x7f\x04\x7f\x04\x18\x04\x13\x04\x7f\x04\x7f\x04\x9e\x01\x67\x00\x00\x00\x7f\x04\xa6\x08\x5b\x00\x19\x04\xf3\x03\x00\x00\x06\x08\x0c\x04\x00\x00\x7f\x04\xfe\x03\x7f\x04\x7f\x04\x7f\x04\x7f\x04\x7f\x04\x00\x00\x78\x01\x5f\x01\x51\x01\x4f\x01\x42\x01\x1a\x01\x00\x00\x18\x01\x7f\x04\xf1\x00\x7f\x04\xb8\x00\x00\x00\xf6\x03\x00\x00\x5b\x00\x41\x00\x07\x00\x00\x00\x17\x04\x17\x04\x17\x04\x17\x04\x17\x04\x00\x00\x7f\x04\x17\x04\x06\x08\x00\x00\x00\x00\x00\x00\x7f\x04\xf5\x03\xfd\x08\x0f\x04\x07\x04\xe8\x03\xbe\x01\xfc\x03\x20\x01\xfa\x03\xd2\x08\xfd\x08\x00\x00\xfd\x08\xf7\x03\x00\x00\x22\x06\x00\x00\x22\x06\x00\x00\x22\x06\x00\x00\x22\x06\x00\x00\x7f\x04\x00\x00\x7f\x04\x7f\x04\x7f\x04\x7f\x04\x7f\x04\xfb\x03\x00\x00\x00\x00\x7f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xff\x22\x06\xee\x03\x2e\x04\x5b\x00\xe6\x03\x00\x00\xdd\x03\xdd\x03\xe3\x03\xf4\x03\xda\x03\xef\x03\xdd\x03\xdd\x03\xdd\x03\xa3\x03\x57\x0d\xed\x03\x50\x01\x0c\x00\xd0\x03\xca\x07\xdd\x03\x00\x00\x00\x00\xe1\x03\xdc\x03\xdb\x03\xd7\x03\x00\x00\x00\x00\x4c\x04\xe0\x03\x00\x00\x00\x00\xdd\x03\xdd\x03\xdd\x03\x00\x00\xd4\x03\xc1\x03\x00\x00\x00\x00\x84\x01\xde\x03\xce\x03\xb2\x03\xc8\x03\x5b\x00\xb1\x03\x01\x00\x5b\x00\xbd\x03\xad\x03\x00\x00\xdd\x03\x29\x0a\xc7\x03\x00\x00\xa4\x03\x00\x00\xdd\x03\x00\x00\x00\x00\x5b\x00\x00\x00\xe3\x08\x00\x00\x5b\x00\x5b\x00\xa8\x03\xe3\x08\x00\x00\x00\x00\x12\x02\x00\x00\x41\x05\x3f\x05\x11\x05\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x04\x00\x00\x5b\x00\x00\x00\x8f\x00\xc3\x03\x00\x00\x00\x00\x00\x00\xb6\x03\xa9\x03\xfd\x08\xaf\x03\xa6\x03\x00\x00\x5b\x03\xb5\x01\xc0\x04\x00\x00\xd1\x01\x00\x00\xdd\x03\x9b\x00\xb3\x01\xdd\x03\x93\x03\x00\x00\x00\x00\x00\x00\x68\x03\x69\x08\x00\x00\x42\x08\xe6\x05\x00\x00\xfd\x08\x00\x00\xac\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x03\x00\x00\x99\x03\x00\x00\x06\x08\x00\x00\x89\x03\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x08\xfd\x08\x84\x03\xe3\x08\x5b\x00\x70\x03\xe3\x08\x0c\x00\x5b\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x08\x42\x08\x42\x08\x42\x08\x42\x08\x42\x08\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x08\x00\x00\x02\x00\xfd\x08\x04\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x07\x00\x00\x52\x07\x00\x00\x16\x07\x00\x00\xda\x06\x97\x03\x95\x03\x94\x03\x92\x03\x8f\x03\x65\x00\x00\x00\x00\x00\xdd\x03\x9e\x06\x77\x03\x22\x06\xdd\x03\xcf\x00\x00\x00\x99\x00\x8d\x03\x82\x03\x00\x00\x57\x0d\x0c\x00\x60\x03\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x06\x00\x00\x99\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\xf8\xff\x00\x00\x26\x06\x7c\x03\x75\x03\x00\x00\x00\x00\x56\x03\x6f\x03\x0a\x03\x5b\x00\x51\x03\x00\x00\x5b\x00\x6e\x03\x00\x00\x00\x00\x5b\x00\x00\x00\x5b\x00\x00\x00\x06\x08\x00\x00\x00\x00\xe3\x08\x00\x00\x35\x03\x00\x00\x00\x00\x00\x00\x5b\x00\x99\x00\x67\x03\x00\x00\x00\x00\x00\x00\x6b\x03\xaa\x00\x64\x03\xe3\x08\x00\x00\x5b\x00\x00\x00\x58\x03\x5b\x00\x66\x03\x00\x00\xdd\x03\x00\x00\x22\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x03\x3a\x03\x50\x03\x00\x00\x00\x00\x00\x00\xcf\x00\xea\x05\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x03\x00\x00\x00\x00\x33\x03\x5b\x00\x00\x00\x00\x00\x00\x00\x42\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x69\x08\x8c\x03\x00\x00\xae\x05\x00\x00\x00\x00\x00\x00\x72\x05\x3f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x0c\x0a\x49\x0d\x0f\x03\x00\x00\x00\x00\xa2\x01\x3e\x03\x38\x0d\x00\x00\x27\x0d\x16\x0d\x00\x00\x3d\x03\x00\x00\x05\x0d\xf4\x0c\x00\x00\xe3\x0c\xd2\x0c\xc1\x0c\xb0\x0c\x00\x00\x00\x00\x09\x03\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x01\x35\x08\xc2\x01\x9f\x0c\x8e\x0c\x7a\x0d\x7d\x0c\x00\x00\x31\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x0c\x00\x00\x03\x03\x02\x03\x00\x00\x01\x03\x5b\x0c\x54\x01\x00\x00\xef\x09\x00\x00\x00\x00\xdc\x09\x00\x00\x00\x00\x38\x03\x00\x00\xf0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x2b\x03\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x0f\x01\x00\x00\x00\x00\x69\x01\x48\x00\x19\x03\x21\x00\x18\x03\x3d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x03\xe7\x02\x1c\x01\x00\x00\xe5\x02\x70\x05\x00\x00\xe4\x02\xe2\x02\xbf\x09\xac\x09\x8f\x09\x7c\x09\x00\x00\x28\x0a\x00\x00\x00\x00\x73\x0d\x00\x00\xf0\x02\x33\x00\x18\x02\x00\x00\x00\x00\xfe\x02\x00\x00\x14\x01\xe1\x02\xda\x02\x14\x07\xd7\x02\xd5\x02\x0c\x01\xd3\x02\x07\x01\x00\x00\x06\x01\x06\x01\x40\x01\x93\x00\x39\x0c\x00\x00\x28\x0c\x17\x0c\x00\x00\x00\x00\xd9\x03\x88\x03\x05\x01\x00\x00\x00\x00\x06\x0c\x92\x04\x19\x02\xcf\x02\x00\x00\xcd\x02\x68\x0d\x00\x00\xcb\x02\xf5\x0b\xc4\x02\xe4\x0b\xd3\x0b\xc2\x0b\xb1\x0b\xa0\x0b\xc3\x02\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\x00\x00\xff\x00\x8f\x0b\xff\x00\x7e\x0b\xff\x00\x00\x00\x00\x00\x00\x00\x7f\x01\xff\x00\xff\x00\x00\x00\xfe\x00\xf5\x00\xf4\x00\xe9\x00\xe7\x00\xc1\x02\x6d\x0b\xd5\x00\x59\x0d\xbf\x02\xba\x02\x00\x00\x5c\x0b\x00\x00\xf9\x07\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\xc8\x00\xfe\x05\x00\x00\x6e\x05\x00\x00\xb9\x02\xab\x00\xb8\x02\xa3\x00\xa4\x02\x9e\x00\xb3\x02\x9d\x00\xb1\x02\x37\x03\x00\x00\xe6\x02\x4b\x0b\x3a\x0b\x44\x02\x95\x02\x00\x00\x00\x00\xa8\x02\x29\x0b\xa3\x02\x9d\x02\x9c\x02\x00\x00\x00\x00\xd1\x00\x95\x00\x00\x00\xd8\x06\xbd\x00\x00\x00\x00\x00\x18\x0b\x07\x0b\x00\x00\x00\x00\x00\x00\xd9\x02\xf6\x0a\xe5\x0a\xd4\x0a\x00\x00\xcf\x01\xb0\x02\x10\x02\x00\x00\x00\x00\x0a\x0a\xc3\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x02\x97\x02\x94\x00\x00\x00\x94\x02\x93\x02\xb2\x0a\xa1\x0a\x90\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x00\x00\x42\x09\xbe\x02\x00\x00\x00\x00\x00\x00\x7f\x0a\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x0a\x00\x00\x00\x00\xbd\x02\x00\x00\xbd\x07\x8f\x02\x0a\x00\x43\x00\x00\x00\x81\x07\x83\x02\x82\x02\xc9\x01\x00\x00\x94\x00\x94\x00\x94\x00\x00\x00\x00\x00\x80\x02\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x00\x7b\x02\x7c\x01\x60\x02\xc1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x04\x00\x00\x00\x00\x00\x00\x94\x00\x03\x00\x94\x00\x00\x00\x4b\x01\x00\x00\x5d\x0a\x94\x00\x94\x00\x4c\x0a\x35\x02\x00\x00\x00\x00\x7a\x02\x00\x00\x4d\x0d\x00\x00\x4d\x0d\x94\x00\x74\x02\xb2\x02\x72\x02\x94\x00\x00\x00\x70\x02\x6f\x02\x6d\x02\x6a\x02\x68\x02\x67\x02\x63\x02\x00\x00\x62\x02\x00\x00\x4c\x02\x36\x09\x5f\x02\x00\x00\x52\x02\x00\x00\x51\x02\x00\x00\x61\x02\xe9\x01\x00\x00\x45\x07\xab\x01\x00\x00\x09\x07\x00\x00\x60\x00\x94\x00\x4b\x02\x4a\x02\x00\x00\x47\x02\x94\x00\x00\x00\x46\x02\x43\x02\x42\x02\x41\x02\x40\x02\x00\x00\x2e\x08\x2e\x08\x2e\x08\x2e\x08\x2e\x08\x2e\x08\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x02\x00\x00\x00\x00\x0e\x02\x00\x00\x00\x00\x3e\x02\x32\x02\x29\x02\x21\x02\x00\x00\x2e\x08\x00\x00\x2e\x08\x00\x00\x2e\x08\x00\x00\x2e\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x01\x3b\x0a\x2e\x08\x00\x00\x6c\x00\xc8\x07\x4b\x00\x00\x00\x2c\x02\x00\x00\x00\x00\x00\x00\x63\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x1e\x02\x00\x00\x1c\x02\xf9\x08\x05\x02\x0b\x02\x00\x00\x00\x00\x00\x00\xf7\x01\xef\x01\xd6\x01\xa5\x01\x8a\x06\x00\x00\x00\x00\x00\x00\xdb\x01\x00\x00\x00\x00\x4b\x00\xcd\x01\x00\x00\x00\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x37\x00\x00\x00\xf2\x07\x00\x00\x00\x00\xcd\x06\x9d\x01\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x01\x56\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x06\x00\x00\x2f\x00\x17\x01\x00\x00\xf9\xff\x0b\x00\x91\x01\x8c\x07\x00\x00\x05\x00\x6f\x01\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x01\x00\x00\x00\x00\x00\x00\x36\x01\x00\x00\x25\x01\xf7\xff\x04\x08\xce\x00\x00\x00\x5e\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x01\x1c\x00\x00\x00\xec\xff\x04\x08\x60\x06\xd5\xff\x04\x08\x00\x00\x00\x00\x00\x00\x04\x08\x00\x00\x00\x00\xc5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\x39\xff\x00\x00\x00\x00\x00\x00\x00\x00\x27\xff\x00\x00\x00\x00\x24\xff\x00\x00\x00\x00\x1f\xff\x00\x00\x1d\xff\x00\x00\x00\x00\x1a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x15\xff\x14\xff\x0f\xff\x0f\xff\xa5\xff\x8a\xff\x58\xff\x59\xff\xac\xff\x57\xff\x5c\xff\x0f\xff\xb5\xff\x41\xff\x43\xff\x3f\xff\x42\xff\x40\xff\x63\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xff\x00\x00\x49\xff\x48\xff\x47\xff\x4a\xff\x45\xff\x46\xff\x44\xff\x4b\xff\x00\x00\x60\xff\x0f\xff\x0f\xff\x00\x00\x0f\xff\x00\x00\x00\x00\x00\x00\x39\xff\xf0\xff\xf8\xff\x39\xff\x00\x00\xf6\xff\xe0\xff\xf7\xff\xc3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\xff\xc8\xff\xca\xff\xc9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\xee\xff\x0f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\xcd\xff\xcc\xff\xcb\xff\x00\x00\x0f\xff\x0f\xff\xde\xff\x0f\xff\x00\x00\xaf\xff\x0f\xff\x0f\xff\x39\xff\x39\xff\x39\xff\x39\xff\xc4\xff\xc3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x7a\xff\x00\x00\x0f\xff\x10\xff\x7a\xff\x00\x00\x10\xff\x10\xff\x0f\xff\x0f\xff\x0f\xff\x64\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x00\x00\x00\x00\xce\xff\xcd\xff\x7c\xff\x7b\xff\x0f\xff\x0f\xff\x0f\xff\x00\x00\x6b\xff\x00\x00\x00\x00\x00\x00\x7a\xff\x00\x00\x10\xff\x00\x00\x00\x00\x10\xff\x00\x00\x0f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x1e\xff\x0f\xff\x00\x00\x0f\xff\x00\x00\x0f\xff\x26\xff\x9e\xff\x28\xff\x00\x00\x0f\xff\x0f\xff\x67\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x10\xff\x00\x00\x0f\xff\x00\x00\x0f\xff\x0f\xff\x61\xff\x00\x00\xa3\xff\x00\x00\x00\x00\x00\x00\xa0\xff\x0f\xff\x00\x00\x00\x00\x00\x00\x0f\xff\x00\x00\xab\xff\x00\x00\x00\x00\x10\xff\x0f\xff\x10\xff\x0f\xff\x10\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x0f\xff\x65\xff\x0f\xff\x7c\xff\x7b\xff\x0f\xff\x0f\xff\x00\x00\x5b\xff\x0f\xff\x00\x00\x10\xff\x10\xff\x10\xff\x5f\xff\x5e\xff\x0f\xff\x0f\xff\x00\x00\x4f\xff\x00\x00\x00\x00\x66\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\xe0\xff\x00\x00\x00\x00\x00\x00\xe3\xff\x00\x00\x78\xff\xd9\xff\x75\xff\x98\xff\xc3\xff\x00\x00\xea\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x10\xff\x10\xff\x0f\xff\x00\x00\x10\xff\x10\xff\x00\x00\x00\x00\x00\x00\xb4\xff\x00\x00\xb9\xff\xb7\xff\xb6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xff\x00\x00\x39\xff\x00\x00\x00\x00\x00\x00\xf5\xff\x00\x00\x0f\xff\x00\x00\xc7\xff\x00\x00\xf9\xff\x00\x00\x95\xff\x35\xff\x00\x00\x38\xff\x00\x00\x0f\xff\x32\xff\x2e\xff\x00\x00\x00\x00\x0f\xff\x0f\xff\x00\x00\xba\xff\x0f\xff\x0f\xff\x0f\xff\xb1\xff\xb0\xff\x0f\xff\xdd\xff\x00\x00\xae\xff\xad\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\x0f\xff\x0f\xff\x00\x00\x0f\xff\xd9\xff\x00\x00\xd3\xff\xd7\xff\xd6\xff\xd4\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\x0f\xff\x0f\xff\x0f\xff\xe1\xff\x00\x00\xd1\xff\x00\x00\x0f\xff\x0f\xff\x00\x00\x7a\xff\x50\xff\x52\xff\x10\xff\x00\x00\xa8\xff\x62\xff\x90\xff\x0f\xff\x10\xff\x00\x00\x10\xff\x0f\xff\x53\xff\x10\xff\x10\xff\x10\xff\x10\xff\x10\xff\x10\xff\x10\xff\x00\x00\x10\xff\x00\x00\x10\xff\x00\x00\x0f\xff\x74\xff\x0f\xff\x6e\xff\x0f\xff\x71\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\xff\x00\x00\x0f\xff\x10\xff\x10\xff\xaa\xff\x10\xff\x0f\xff\x92\xff\x10\xff\x10\xff\x10\xff\x10\xff\x10\xff\x9d\xff\x8b\xff\x8e\xff\x8c\xff\x8d\xff\x8f\xff\x88\xff\xa9\xff\x89\xff\xa2\xff\x9f\xff\x00\x00\xa1\xff\x79\xff\x00\x00\x69\xff\x68\xff\x0f\xff\x10\xff\x10\xff\x10\xff\xb3\xff\x00\x00\x80\xff\x00\x00\x7f\xff\x00\x00\x5a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xff\x0f\xff\x00\x00\x00\x00\x00\x00\x0f\xff\x00\x00\x0f\xff\xcf\xff\x00\x00\x00\x00\x00\x00\x13\xff\x12\xff\x77\xff\x00\x00\x00\x00\xd2\xff\xd8\xff\x10\xff\x97\xff\x10\xff\xc3\xff\x10\xff\x00\x00\xe6\xff\x00\x00\xb8\xff\x10\xff\x10\xff\x39\xff\x0f\xff\x3e\xff\x00\x00\x2d\xff\x31\xff\x10\xff\x34\xff\x00\x00\x0f\xff\x00\x00\xc6\xff\xec\xff\x00\x00\x00\x00\xef\xff\x36\xff\x00\x00\xbf\xff\x2e\xff\xbe\xff\x3e\xff\x2a\xff\x2b\xff\x00\x00\x10\xff\x00\x00\xbd\xff\xbc\xff\x3b\xff\x00\x00\xda\xff\x00\x00\xdc\xff\xc0\xff\xc1\xff\x00\x00\x9b\xff\x00\x00\x00\x00\x11\xff\x00\x00\x0f\xff\x00\x00\x00\x00\x0f\xff\x10\xff\x00\x00\x4c\xff\x0f\xff\x10\xff\x0f\xff\x82\xff\x7e\xff\x83\xff\x86\xff\x84\xff\x85\xff\x87\xff\x7d\xff\x81\xff\xb2\xff\x6d\xff\x6c\xff\x10\xff\x73\xff\x72\xff\x00\x00\x10\xff\x56\xff\x10\xff\x0f\xff\x00\x00\x10\xff\x93\xff\x0f\xff\x10\xff\x00\x00\x76\xff\xd5\xff\x9c\xff\x00\x00\xeb\xff\xe4\xff\xdb\xff\x00\x00\x3c\xff\x3a\xff\x29\xff\x3d\xff\x2c\xff\x33\xff\x37\xff\xc5\xff\xe5\xff\x9a\xff\x00\x00\x0f\xff\xe7\xff\x10\xff\xa4\xff\x00\x00\x10\xff\x00\x00\x6a\xff\x70\xff\x4e\xff\x00\x00\x00\x00\xe9\xff\x10\xff\x99\xff\xe8\xff\x51\xff\x4d\xff"#
-
-happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x11\x00\x01\x00\x0b\x00\x02\x00\x0a\x00\x02\x00\x17\x00\x43\x00\x02\x00\x03\x00\x08\x00\x09\x00\x0c\x00\x02\x00\x13\x00\x17\x00\x10\x00\x0b\x00\x11\x00\x13\x00\x25\x00\x03\x00\x01\x00\x43\x00\x22\x00\x21\x00\x2b\x00\x20\x00\x2d\x00\x2e\x00\x0c\x00\x30\x00\x17\x00\x0c\x00\x33\x00\x1d\x00\x22\x00\x10\x00\x22\x00\x26\x00\x22\x00\x23\x00\x27\x00\x31\x00\x22\x00\x27\x00\x43\x00\x2e\x00\x41\x00\x2e\x00\x20\x00\x21\x00\x2e\x00\x17\x00\x3f\x00\x17\x00\x06\x00\x2e\x00\x44\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x02\x00\x03\x00\x3b\x00\x17\x00\x44\x00\x47\x00\x44\x00\x17\x00\x18\x00\x0b\x00\x4c\x00\x17\x00\x44\x00\x4f\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x45\x00\x3a\x00\x17\x00\x3a\x00\x01\x00\x47\x00\x1d\x00\x17\x00\x44\x00\x2e\x00\x4c\x00\x22\x00\x23\x00\x4f\x00\x33\x00\x02\x00\x27\x00\x02\x00\x69\x00\x10\x00\x06\x00\x22\x00\x6d\x00\x2e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x3d\x00\x3e\x00\x11\x00\x17\x00\x11\x00\x72\x00\x1a\x00\x02\x00\x03\x00\x17\x00\x18\x00\x69\x00\x3d\x00\x3e\x00\x3a\x00\x6d\x00\x0b\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x13\x00\x11\x00\x12\x00\x13\x00\x17\x00\x22\x00\x44\x00\x17\x00\x43\x00\x19\x00\x2e\x00\x2e\x00\x2e\x00\x1d\x00\x20\x00\x21\x00\x33\x00\x01\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x17\x00\x44\x00\x20\x00\x21\x00\x0c\x00\x0b\x00\x2e\x00\x2f\x00\x10\x00\x20\x00\x35\x00\x11\x00\x12\x00\x13\x00\x05\x00\x44\x00\x3b\x00\x17\x00\x72\x00\x19\x00\x22\x00\x22\x00\x22\x00\x1d\x00\x26\x00\x02\x00\x03\x00\x45\x00\x22\x00\x23\x00\x22\x00\x22\x00\x26\x00\x27\x00\x0b\x00\x01\x00\x22\x00\x4d\x00\x4e\x00\x45\x00\x2e\x00\x2f\x00\x52\x00\x53\x00\x22\x00\x55\x00\x0c\x00\x26\x00\x02\x00\x03\x00\x10\x00\x17\x00\x1d\x00\x13\x00\x44\x00\x44\x00\x44\x00\x22\x00\x23\x00\x4d\x00\x4e\x00\x21\x00\x27\x00\x44\x00\x44\x00\x44\x00\x6a\x00\x6b\x00\x6c\x00\x2e\x00\x44\x00\x4d\x00\x4e\x00\x22\x00\x72\x00\x1d\x00\x52\x00\x53\x00\x44\x00\x55\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x22\x00\x27\x00\x6a\x00\x6b\x00\x6c\x00\x0b\x00\x2e\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x6a\x00\x6b\x00\x6c\x00\x0f\x00\x22\x00\x47\x00\x22\x00\x44\x00\x72\x00\x1d\x00\x4c\x00\x17\x00\x43\x00\x4f\x00\x22\x00\x23\x00\x44\x00\x22\x00\x22\x00\x27\x00\x44\x00\x02\x00\x03\x00\x02\x00\x03\x00\x0f\x00\x2e\x00\x22\x00\x22\x00\x02\x00\x0b\x00\x55\x00\x0b\x00\x17\x00\x22\x00\x22\x00\x22\x00\x72\x00\x44\x00\x69\x00\x44\x00\x22\x00\x27\x00\x6d\x00\x11\x00\x6f\x00\x70\x00\x71\x00\x1d\x00\x22\x00\x1d\x00\x44\x00\x44\x00\x22\x00\x23\x00\x22\x00\x23\x00\x22\x00\x27\x00\x20\x00\x27\x00\x44\x00\x44\x00\x02\x00\x03\x00\x2e\x00\x27\x00\x2e\x00\x44\x00\x44\x00\x44\x00\x44\x00\x0b\x00\x2e\x00\x03\x00\x44\x00\x02\x00\x03\x00\x02\x00\x03\x00\x22\x00\x0b\x00\x0c\x00\x44\x00\x03\x00\x0b\x00\x44\x00\x0b\x00\x07\x00\x12\x00\x1d\x00\x44\x00\x02\x00\x03\x00\x72\x00\x22\x00\x23\x00\x10\x00\x27\x00\x43\x00\x27\x00\x0b\x00\x17\x00\x1d\x00\x17\x00\x1d\x00\x01\x00\x2e\x00\x22\x00\x23\x00\x22\x00\x23\x00\x21\x00\x27\x00\x44\x00\x27\x00\x43\x00\x02\x00\x03\x00\x1d\x00\x2e\x00\x10\x00\x2e\x00\x17\x00\x22\x00\x23\x00\x0b\x00\x44\x00\x01\x00\x27\x00\x02\x00\x03\x00\x20\x00\x72\x00\x17\x00\x72\x00\x2e\x00\x0a\x00\x0b\x00\x17\x00\x17\x00\x1e\x00\x17\x00\x10\x00\x1d\x00\x17\x00\x1e\x00\x1e\x00\x1d\x00\x22\x00\x23\x00\x1d\x00\x4d\x00\x4e\x00\x27\x00\x02\x00\x03\x00\x1d\x00\x40\x00\x20\x00\x42\x00\x2e\x00\x22\x00\x23\x00\x0b\x00\x0c\x00\x0d\x00\x27\x00\x17\x00\x43\x00\x11\x00\x1a\x00\x13\x00\x43\x00\x2e\x00\x72\x00\x02\x00\x03\x00\x02\x00\x03\x00\x17\x00\x6a\x00\x6b\x00\x6c\x00\x17\x00\x20\x00\x1d\x00\x0b\x00\x72\x00\x17\x00\x72\x00\x26\x00\x27\x00\x1b\x00\x1c\x00\x0a\x00\x08\x00\x09\x00\x0d\x00\x2e\x00\x2f\x00\x0c\x00\x31\x00\x1d\x00\x72\x00\x1d\x00\x02\x00\x43\x00\x22\x00\x23\x00\x22\x00\x23\x00\x17\x00\x27\x00\x19\x00\x27\x00\x3f\x00\x15\x00\x16\x00\x43\x00\x2e\x00\x44\x00\x2e\x00\x17\x00\x23\x00\x24\x00\x25\x00\x26\x00\x44\x00\x72\x00\x4d\x00\x4e\x00\x2b\x00\x1d\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x22\x00\x23\x00\x33\x00\x01\x00\x72\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x17\x00\x18\x00\x4d\x00\x4e\x00\x0a\x00\x10\x00\x53\x00\x0d\x00\x6a\x00\x6b\x00\x6c\x00\x16\x00\x36\x00\x18\x00\x03\x00\x40\x00\x1b\x00\x42\x00\x07\x00\x2a\x00\x2b\x00\x2c\x00\x02\x00\x03\x00\x08\x00\x09\x00\x25\x00\x10\x00\x33\x00\x28\x00\x43\x00\x6a\x00\x6b\x00\x6c\x00\x17\x00\x0b\x00\x0c\x00\x17\x00\x18\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x03\x00\x17\x00\x1d\x00\x43\x00\x07\x00\x1b\x00\x1c\x00\x22\x00\x23\x00\x2a\x00\x2b\x00\x43\x00\x27\x00\x10\x00\x44\x00\x49\x00\x4a\x00\x4b\x00\x33\x00\x2e\x00\x17\x00\x4f\x00\x50\x00\x17\x00\x18\x00\x43\x00\x01\x00\x02\x00\x56\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x15\x00\x16\x00\x42\x00\x43\x00\x0e\x00\x0f\x00\x10\x00\x2a\x00\x2b\x00\x17\x00\x27\x00\x19\x00\x16\x00\x43\x00\x18\x00\x43\x00\x33\x00\x1b\x00\x43\x00\x1d\x00\x52\x00\x23\x00\x24\x00\x25\x00\x22\x00\x23\x00\x43\x00\x25\x00\x26\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x43\x00\x2e\x00\x33\x00\x17\x00\x18\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x44\x00\x43\x00\x43\x00\x43\x00\x43\x00\x14\x00\x44\x00\x43\x00\x43\x00\x2a\x00\x2b\x00\x43\x00\x43\x00\x43\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x33\x00\x44\x00\x44\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x02\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x44\x00\x44\x00\x43\x00\x43\x00\x0e\x00\x0f\x00\x10\x00\x43\x00\x43\x00\x17\x00\x43\x00\x19\x00\x16\x00\x43\x00\x18\x00\x43\x00\x43\x00\x1b\x00\x43\x00\x1d\x00\x43\x00\x23\x00\x24\x00\x25\x00\x22\x00\x23\x00\x43\x00\x25\x00\x44\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x44\x00\x30\x00\x44\x00\x44\x00\x33\x00\x17\x00\x18\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x44\x00\x17\x00\x17\x00\x43\x00\x43\x00\x28\x00\x44\x00\x43\x00\x43\x00\x2a\x00\x2b\x00\x05\x00\x43\x00\x43\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x33\x00\x43\x00\x43\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x44\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x04\x00\x44\x00\x27\x00\x44\x00\x0e\x00\x0f\x00\x10\x00\x43\x00\x43\x00\x17\x00\x44\x00\x19\x00\x16\x00\x27\x00\x18\x00\x44\x00\x43\x00\x1b\x00\x43\x00\x1d\x00\x44\x00\x23\x00\x24\x00\x25\x00\x02\x00\x03\x00\x43\x00\x25\x00\x43\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x0b\x00\x30\x00\x44\x00\x43\x00\x33\x00\x43\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x43\x00\x27\x00\x44\x00\x1d\x00\x44\x00\x44\x00\x44\x00\x44\x00\x22\x00\x23\x00\x04\x00\x17\x00\x17\x00\x27\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x17\x00\x0c\x00\x2e\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x05\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x44\x00\x44\x00\x44\x00\x17\x00\x0e\x00\x0f\x00\x10\x00\x44\x00\x44\x00\x17\x00\x40\x00\x19\x00\x16\x00\x13\x00\x18\x00\x17\x00\x17\x00\x1b\x00\x15\x00\x1d\x00\x26\x00\x23\x00\x24\x00\x25\x00\x02\x00\x03\x00\x15\x00\x25\x00\x11\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x0b\x00\x30\x00\x2e\x00\x03\x00\x33\x00\x13\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x11\x00\x0b\x00\x26\x00\x1d\x00\x44\x00\x13\x00\x44\x00\x26\x00\x22\x00\x23\x00\x11\x00\x11\x00\x0c\x00\x27\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x0b\x00\x14\x00\x2e\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x2e\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x14\x00\x20\x00\x0b\x00\x31\x00\x0e\x00\x0f\x00\x10\x00\x0a\x00\x2e\x00\x17\x00\x11\x00\x19\x00\x16\x00\x11\x00\x18\x00\x11\x00\x11\x00\x1b\x00\x11\x00\x1d\x00\x11\x00\x23\x00\x24\x00\x25\x00\x02\x00\x03\x00\x11\x00\x25\x00\x2e\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x2e\x00\x30\x00\x13\x00\x0b\x00\x33\x00\x13\x00\x11\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x10\x00\x04\x00\x20\x00\x1d\x00\x26\x00\x04\x00\x44\x00\x20\x00\x22\x00\x23\x00\x13\x00\x20\x00\x26\x00\x27\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x26\x00\x11\x00\x2e\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x11\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x26\x00\x0a\x00\x15\x00\x13\x00\x0e\x00\x0f\x00\x10\x00\x13\x00\x13\x00\x17\x00\x11\x00\x19\x00\x16\x00\x13\x00\x18\x00\x26\x00\x0a\x00\x1b\x00\x56\x00\x1d\x00\x0c\x00\x23\x00\x24\x00\x25\x00\x0b\x00\x26\x00\x13\x00\x25\x00\x20\x00\x2b\x00\x28\x00\x2d\x00\x2e\x00\x0d\x00\x30\x00\x13\x00\x11\x00\x33\x00\x11\x00\x26\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x31\x00\x11\x00\x0a\x00\x03\x00\x26\x00\x26\x00\x44\x00\x20\x00\x13\x00\x02\x00\x03\x00\x2f\x00\x0a\x00\x11\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x11\x00\x03\x00\x11\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x0a\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x10\x00\x55\x00\x0a\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x12\x00\x22\x00\x23\x00\x0b\x00\x11\x00\x16\x00\x27\x00\x18\x00\x0b\x00\x0b\x00\x1b\x00\x04\x00\x1d\x00\x2e\x00\x2f\x00\x02\x00\x03\x00\x02\x00\x03\x00\x01\x00\x25\x00\x04\x00\x12\x00\x28\x00\x04\x00\x10\x00\x10\x00\x3f\x00\x10\x00\x05\x00\x11\x00\x14\x00\x11\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x12\x00\x1d\x00\x12\x00\x1d\x00\x12\x00\x12\x00\x22\x00\x23\x00\x22\x00\x23\x00\x26\x00\x27\x00\x26\x00\x27\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x2e\x00\x0c\x00\x2e\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x20\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x72\x00\x72\x00\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x0c\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x17\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x1c\x00\xff\xff\x13\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x1d\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x22\x00\x23\x00\xff\xff\x02\x00\x03\x00\x27\x00\x33\x00\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x2e\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x01\x00\x12\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x16\x00\x27\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x2e\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x1d\x00\xff\xff\x2a\x00\x2b\x00\xff\xff\x22\x00\x23\x00\xff\xff\x02\x00\x03\x00\x27\x00\x33\x00\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x2e\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x01\x00\x12\x00\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x16\x00\x27\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x2e\x00\xff\xff\x02\x00\x03\x00\x02\x00\x03\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x0b\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x1d\x00\xff\xff\x1d\x00\xff\xff\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x2e\x00\xff\xff\x2e\x00\x4f\x00\x50\x00\x51\x00\x01\x00\xff\xff\x54\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0c\x00\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x17\x00\x18\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x2a\x00\x2b\x00\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x33\x00\xff\xff\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x19\x00\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x19\x00\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x02\x00\x03\x00\xff\xff\x01\x00\x2a\x00\x2b\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x33\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\xff\xff\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x17\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x25\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x16\x00\x2b\x00\x18\x00\x2d\x00\x2e\x00\x1b\x00\x30\x00\xff\xff\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x11\x00\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x11\x00\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x11\x00\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\xff\xff\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x11\x00\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\xff\xff\x1f\x00\x4f\x00\x50\x00\x17\x00\x16\x00\x19\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x29\x00\x2a\x00\x2b\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x17\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x25\x00\xff\xff\x4f\x00\x50\x00\x17\x00\x16\x00\x2b\x00\x18\x00\x2d\x00\x2e\x00\x1b\x00\x30\x00\x2a\x00\x2b\x00\x33\x00\x34\x00\xff\xff\xff\xff\x25\x00\xff\xff\x25\x00\x33\x00\xff\xff\x28\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x17\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x17\x00\x18\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x10\x00\x25\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x16\x00\x2b\x00\x18\x00\x2d\x00\x2e\x00\x1b\x00\x30\x00\x2a\x00\x2b\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x33\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x25\x00\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x02\x00\x03\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x0f\x00\x10\x00\xff\xff\x4f\x00\x50\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\x1d\x00\xff\xff\x22\x00\x23\x00\xff\xff\x22\x00\x23\x00\x27\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x11\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x4a\x00\x4b\x00\x0f\x00\x10\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x2e\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\x25\x00\xff\xff\x11\x00\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x25\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x4a\x00\x4b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x4a\x00\x4b\x00\x10\x00\xff\xff\xff\xff\x0a\x00\x17\x00\xff\xff\x0d\x00\x0e\x00\x18\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\x25\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x17\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x17\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\x11\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x17\x00\xff\xff\x17\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\x11\x00\x30\x00\xff\xff\xff\xff\x33\x00\xff\xff\x17\x00\xff\xff\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x25\x00\xff\xff\xff\xff\x27\x00\xff\xff\x17\x00\x2b\x00\x19\x00\x2d\x00\x2e\x00\x2e\x00\x30\x00\xff\xff\xff\xff\x33\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x2b\x00\x17\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x23\x00\x24\x00\x25\x00\xff\xff\x17\x00\xff\xff\x25\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x2e\x00\x2b\x00\x30\x00\x2d\x00\x2e\x00\x33\x00\x30\x00\x25\x00\x17\x00\x33\x00\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\x17\x00\x18\x00\x33\x00\x25\x00\xff\xff\xff\xff\xff\xff\x17\x00\x1f\x00\x2b\x00\xff\xff\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x29\x00\x2a\x00\x2b\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\x33\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\xff\xff\xff\xff\x33\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
-
-happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\x7f\x00\x22\x00\x03\x02\xe1\x00\xd8\x00\xe1\x00\x17\x00\x57\x02\xaf\x00\xb0\x00\xd3\x01\x5c\x01\x50\x00\xe1\x00\x14\x01\x8a\x00\x51\x00\x20\xff\x75\xff\xfc\xff\x1b\x00\xb0\x00\x22\x00\x52\x02\xac\x00\x31\x02\x1c\x00\x15\x01\x80\x00\x1e\x00\xdf\xff\x1f\x00\x42\x01\x50\x00\x20\x00\xb1\x00\xac\x00\x51\x00\xac\x00\x75\xff\xb2\x00\xb3\x00\x93\x01\x7a\xff\xac\x00\xb4\x00\x54\x02\xe3\x00\x81\x00\xe3\x00\xdf\xff\xdf\xff\xb5\x00\x2a\x01\x56\x00\x2a\x01\x09\x01\xe3\x00\x4d\x02\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xaf\x00\xb0\x00\xec\x01\x34\x02\xad\x00\x59\x00\x2d\x02\x73\x00\x74\x00\x22\xff\x5a\x00\xe9\x01\x30\x02\x5b\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xdf\xff\x42\x02\xe9\x01\x2b\x01\x22\x00\x59\x00\xb1\x00\x2a\x01\x55\x02\x75\x00\x5a\x00\xb2\x00\xb3\x00\x5b\x00\x76\x00\xe1\x00\xb4\x00\xe1\x00\x5c\x00\x51\x00\x72\x00\xac\x00\x5d\x00\xb5\x00\x5e\x00\x5f\x00\x60\x00\xfc\xff\x41\x02\xeb\x01\x1b\x02\xa8\x00\xe2\x00\x20\xff\xaf\x01\xaf\x00\xb0\x00\x73\x00\x74\x00\x5c\x00\xea\x01\xeb\x01\x2d\x01\x5d\x00\xa7\xff\x5e\x00\x5f\x00\x60\x00\xfc\xff\x41\x01\xa7\xff\xa7\xff\xa7\xff\x42\x01\xac\x00\xad\x00\xa7\xff\x49\x02\xa7\xff\xe3\x00\x75\x00\xe3\x00\xb1\x00\x0c\x01\x0d\x01\x76\x00\x22\x00\xb2\x00\xb3\x00\xaf\x00\xb0\x00\xa7\xff\xb4\x00\x2e\x01\x4a\x02\x23\x01\x24\x01\x50\x00\xa6\xff\xb5\x00\xa7\xff\x51\x00\x3c\x01\x43\x01\xa6\xff\xa6\xff\xa6\xff\x38\x02\x15\x02\x44\x01\xa6\xff\x22\xff\xa6\xff\xac\x00\xac\x00\xac\x00\xb1\x00\xec\x00\xaf\x00\xb0\x00\x0e\x01\xb2\x00\xb3\x00\xac\x00\xac\x00\xa6\xff\xb4\x00\x25\xff\x22\x00\xac\x00\xa7\xff\xa7\xff\x0e\x01\xb5\x00\xa6\xff\xa7\xff\xa7\xff\xac\x00\xa7\xff\x50\x00\x39\x02\xaf\x00\xb0\x00\x51\x00\x71\x01\xb1\x00\xfc\xff\xad\x00\xad\x00\x74\x01\xb2\x00\xb3\x00\x5e\x01\x5f\x01\x8b\x00\xb4\x00\x2b\x02\x83\x01\x85\x01\xa7\xff\xa7\xff\xa7\xff\xb5\x00\x87\x01\xa6\xff\xa6\xff\xac\x00\xa7\xff\xb1\x00\xa6\xff\xa6\xff\x89\x01\xa6\xff\xb2\x00\xb3\x00\xaf\x00\xb0\x00\x14\x02\xb4\x00\xac\x00\x75\x01\x60\x01\x61\x01\x62\x01\x23\xff\xb5\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xa6\xff\xa6\xff\xa6\xff\x44\x02\xac\x00\x59\x00\xac\x00\xad\x00\xa6\xff\xb1\x00\x5a\x00\x33\x01\x4b\x02\x5b\x00\xb2\x00\xb3\x00\xb5\x00\xac\x00\xac\x00\xb4\x00\x9e\x01\xaf\x00\xb0\x00\xaf\x00\xb0\x00\x32\x01\xb5\x00\xac\x00\xac\x00\xe1\x00\x21\xff\x94\xff\x1c\xff\x33\x01\xe3\x00\xac\x00\xac\x00\x25\xff\xa1\x01\x5c\x00\xa2\x01\xac\x00\xf4\x00\x5d\x00\x91\x01\x5e\x00\x5f\x00\x60\x00\xb1\x00\xac\x00\xb1\x00\xa3\x01\xa4\x01\xb2\x00\xb3\x00\xb2\x00\xb3\x00\xe3\x00\xb4\x00\x92\x01\xb4\x00\xa5\x01\xad\x00\xaf\x00\xb0\x00\xb5\x00\x93\x01\xb5\x00\xe4\x00\xad\x00\xf8\x00\x20\x01\x1b\xff\xe3\x00\x8f\x00\xfa\x00\xaf\x00\xb0\x00\xaf\x00\xb0\x00\xac\x00\xd1\x01\x08\x01\xad\x00\x06\x02\x19\xff\x33\x02\x18\xff\x3b\x02\x90\x00\xb1\x00\xe4\x00\xaf\x00\xb0\x00\x23\xff\xb2\x00\xb3\x00\x48\x00\xf4\x00\x4e\x02\xb4\x00\x17\xff\x8a\x00\xb1\x00\x4a\x00\xb1\x00\x22\x00\xb5\x00\xb2\x00\xb3\x00\xb2\x00\xb3\x00\x8b\x00\xb4\x00\xad\x00\xb4\x00\x4f\x02\xaf\x00\xb0\x00\xb1\x00\xb5\x00\x51\x00\xb5\x00\x2e\x01\xb2\x00\xb3\x00\x16\xff\xb5\x00\x22\x00\xb4\x00\xaf\x00\xb0\x00\x2f\x01\x21\xff\x0c\x02\x1c\xff\xb5\x00\x46\x01\x47\x01\x0c\x02\x0c\x02\x56\x02\xc3\x00\x51\x00\xb1\x00\xc3\x00\x46\x02\x0d\x02\xdd\x01\xb2\x00\xb3\x00\xa6\x01\x5e\x01\x5f\x01\xb4\x00\x6f\xff\xb0\x00\xb1\x00\x64\x01\x48\x01\x0f\x02\xb5\x00\xb2\x00\xb3\x00\x6f\xff\x6f\xff\x6f\xff\xb4\x00\xa8\x00\x2a\x02\x6f\xff\xa9\x00\x6f\xff\x2c\x02\xb5\x00\x1b\xff\xaf\x00\xb0\x00\xaf\x00\xb0\x00\xc3\x00\x60\x01\x61\x01\x62\x01\x3c\x02\x6f\xff\xc4\x00\xd9\xff\x19\xff\xd8\x00\x18\xff\x6f\xff\x6f\xff\xb2\x01\xda\x00\x95\x01\xdb\x01\x5c\x01\x7a\xff\x6f\xff\x6f\xff\x6d\x00\x6f\xff\xb1\x00\x17\xff\xb1\x00\x6f\x00\x2f\x02\xb2\x00\xb3\x00\xb2\x00\xb3\x00\x98\x00\xb4\x00\x99\x00\xb4\x00\x6f\xff\xe4\x01\x26\x01\x3e\x02\xb5\x00\x6f\xff\xb5\x00\xf5\x01\x19\x00\x1a\x00\x1b\x00\x9a\x00\x00\x02\x16\xff\x6f\xff\x6f\xff\x1c\x00\x70\x00\x1d\x00\x1e\x00\x9b\x00\x1f\x00\x71\x00\x72\x00\x20\x00\x22\x00\xff\xff\x83\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x84\x00\x73\x00\xa2\x00\x5e\x01\x5f\x01\xd8\x00\x2b\x00\xd0\x01\x7a\xff\x6f\xff\x6f\xff\x6f\xff\x2c\x00\x01\x02\x2d\x00\x06\x02\x64\x01\x2e\x00\x65\x01\x07\x02\xb5\x01\xa4\x00\xb6\x01\xaf\x00\xb0\x00\x5b\x01\x5c\x01\x30\x00\x48\x00\x76\x00\x31\x00\xf9\x01\x60\x01\x61\x01\x62\x01\x4a\x00\x07\x01\x08\x01\x73\x00\xa2\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x06\x02\xd8\x00\xb1\x00\x03\x02\x12\x02\xd9\x00\xda\x00\xb2\x00\xb3\x00\x28\x02\xa4\x00\x04\x02\xb4\x00\x48\x00\x19\x02\x3b\x00\x3c\x00\x3d\x00\x76\x00\xb5\x00\x4a\x00\x3e\x00\x3f\x00\x73\x00\xa2\x00\x08\x02\x22\x00\x9d\x00\x85\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x25\x01\x26\x01\x28\x01\x29\x01\x29\x00\x2a\x00\x2b\x00\x29\x02\xa4\x00\x17\x00\xcd\x01\x7d\x01\x2c\x00\x0a\x02\x2d\x00\x0b\x02\x76\x00\x2e\x00\x24\x02\x9e\x00\x05\x01\x19\x00\x1a\x00\x1b\x00\x9f\x00\xa0\x00\x25\x02\x30\x00\xa1\x00\x1c\x00\x31\x00\x1d\x00\x1e\x00\x7e\x01\x1f\x00\x26\x02\xa2\x00\x20\x00\x73\x00\xa2\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x27\x02\xa7\x01\xa8\x01\xa9\x01\xaa\x01\x6b\x00\x7f\x01\xab\x01\xac\x01\xb7\x01\xa4\x00\xad\x01\xae\x01\xbc\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x76\x00\xb8\x01\xb9\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x6f\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xba\x01\xdc\x01\xbe\x01\xc0\x01\x29\x00\x2a\x00\x2b\x00\xc1\x01\xc2\x01\x17\x00\xc3\x01\xc9\x00\x2c\x00\xc4\x01\x2d\x00\xc5\x01\xc6\x01\x2e\x00\xc7\x01\x9e\x00\xc9\x01\x19\x00\x1a\x00\x1b\x00\x71\x00\x72\x00\xcc\x01\x30\x00\xde\x01\x1c\x00\x31\x00\x1d\x00\x1e\x00\xe0\x01\x1f\x00\xe5\x01\xe6\x01\x20\x00\x73\x00\xa2\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xed\x01\xef\x01\x39\x01\x4d\x01\x4e\x01\x62\x01\x7c\x01\x52\x01\x53\x01\xc8\x01\xa4\x00\x6a\x01\x76\x01\x77\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x76\x00\x78\x01\x86\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x7a\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x0a\x01\x82\x01\xd6\x00\x84\x01\x29\x00\x2a\x00\x2b\x00\x88\x01\x8a\x01\x17\x00\x9b\x01\xcd\x00\x2c\x00\x02\x01\x2d\x00\x9c\x01\xa0\x01\x2e\x00\xc8\x00\x2f\x00\xce\x00\x19\x00\x1a\x00\x1b\x00\xaf\x00\xb0\x00\xd1\x00\x30\x00\xd4\x00\x1c\x00\x31\x00\x1d\x00\x1e\x00\xf7\x01\x1f\x00\xf9\x00\xfb\x00\x20\x00\xfc\x00\xbf\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x03\x01\x06\x01\x1b\x01\xb1\x00\x1c\x01\x1f\x01\x80\x01\x20\x01\xb2\x00\xb3\x00\x21\x01\x29\x01\x2c\x01\xb4\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x67\x00\x6d\x00\xb5\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x85\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x8d\x00\x90\x00\x91\x00\x93\x00\x29\x00\x2a\x00\x2b\x00\xaa\x00\xb5\x00\x17\x00\x04\x00\xd0\x00\x2c\x00\x59\x02\x2d\x00\xbc\x00\xc2\x00\x2e\x00\x46\x02\x2f\x00\x48\x02\x19\x00\x1a\x00\x1b\x00\xaf\x00\xb0\x00\x49\x02\x30\x00\x51\x02\x1c\x00\x31\x00\x1d\x00\x1e\x00\xd5\x01\x1f\x00\xe3\x00\x00\x00\x20\x00\x33\x02\xc1\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x37\x02\x3a\x02\xf5\x01\xb1\x00\x3e\x02\x3b\x02\x81\x01\xf9\x01\xb2\x00\xb3\x00\x44\x02\xf8\x01\xfb\x01\xb4\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xfc\x01\x06\x02\xb5\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x0f\x02\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x11\x02\x17\x02\x12\x02\xcc\x01\x29\x00\x2a\x00\x2b\x00\xd8\x00\xb2\x01\x17\x00\x1c\x02\xe5\x00\x2c\x00\x1d\x02\x2d\x00\x1e\x02\x1f\x02\x2e\x00\x20\x02\x2f\x00\xbe\x01\x19\x00\x1a\x00\x1b\x00\xaf\x00\xb0\x00\xc0\x01\x30\x00\xb5\x01\x1c\x00\x31\x00\x1d\x00\x1e\x00\xe3\x00\x1f\x00\xd6\x01\xd7\x01\x20\x00\xd9\x01\x54\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xda\x01\xdb\x01\xe9\x01\xb1\x00\xf2\x01\xf3\x01\xe6\x00\x38\x01\xb2\x00\xb3\x00\x39\x01\x3c\x01\x52\x01\xb4\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3f\x01\x3e\x01\xb5\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x40\x01\x02\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x49\x01\x41\x01\x4a\x01\x55\x01\x29\x00\x2a\x00\x2b\x00\x56\x01\x57\x01\x17\x00\x50\x01\xe7\x00\x2c\x00\x58\x01\x2d\x00\x5b\x01\x64\x01\x2e\x00\x67\x01\x2f\x00\x87\x00\x19\x00\x1a\x00\x1b\x00\x6d\x01\x6c\x01\x74\x01\x30\x00\x6e\x01\x1c\x00\x31\x00\x1d\x00\x1e\x00\x7c\x01\x1f\x00\x8c\x01\x90\x01\x20\x00\x94\x01\x96\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x71\x01\x97\x01\x98\x01\x00\x00\x9a\x01\xc6\x00\xe8\x00\xd0\x00\xd3\x00\xaf\x00\xb0\x00\xd6\x00\xd8\x00\xcb\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xcc\xff\x00\x00\xeb\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\xd8\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x32\x01\x06\x01\xd8\x00\xb1\x00\x29\x00\x2a\x00\x2b\x00\x0f\x01\xb2\x00\xb3\x00\x16\x01\x25\x01\x2c\x00\xb4\x00\x2d\x00\x31\x01\x35\x01\x2e\x00\x61\x00\x2f\x00\xb5\x00\x36\x01\xaf\x00\xb0\x00\xee\x00\xb0\x00\x64\x00\x30\x00\x62\x00\x65\x00\x31\x00\x67\x00\x69\x00\x6a\x00\x66\x00\x6b\x00\x88\x00\x51\x01\x6d\x00\xef\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x7c\x00\xb1\x00\x7d\x00\xf0\x00\x7e\x00\x7f\x00\xb2\x00\xb3\x00\xf1\x00\xf2\x00\x52\x01\xb4\x00\xf3\x00\xb4\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x87\x00\xf4\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\xac\x00\x02\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x6d\x00\xaf\x00\xb0\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\xdb\x00\xa2\x00\x00\x00\x00\x00\xdc\x00\xda\x00\x00\x00\x91\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\xb1\x00\x00\x00\xdd\x00\xa4\x00\xde\x00\xb2\x00\xb3\x00\x00\x00\xaf\x00\xb0\x00\xb4\x00\x76\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\xd3\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\x2c\x00\xb4\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\xb5\x00\x00\x00\xaf\x00\xb0\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x73\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\xb1\x00\x00\x00\xd7\x01\xa4\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\xaf\x00\xb0\x00\xb4\x00\x76\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\xe2\x01\x02\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\x2c\x00\xb4\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\xb5\x00\x00\x00\xaf\x00\xb0\x00\xaf\x00\xb0\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\xe3\x01\x00\x00\xe4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\xb1\x00\x00\x00\xb1\x00\x00\x00\x00\x00\xb2\x00\xb3\x00\xb2\x00\xb3\x00\x00\x00\xb4\x00\x00\x00\xb4\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x00\x00\xb5\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x6d\x00\x5a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x73\x00\xa2\x00\x17\x00\x2c\x00\x1d\x01\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x8c\x01\xa4\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1e\x01\x1f\x00\x76\x00\x00\x00\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xaf\x00\xb0\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x52\x02\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\xf7\x00\x2c\x00\x00\x00\x2d\x00\xb1\x00\x00\x00\x2e\x00\x00\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\xf8\x00\xb4\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xaf\x00\xb0\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x4d\x02\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\xcb\x01\x2c\x00\x00\x00\x2d\x00\xb1\x00\x00\x00\x2e\x00\x00\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\x00\x00\xb4\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\xb5\x00\x73\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xaf\x00\xb0\x00\x00\x00\x22\x00\x8d\x01\xa4\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x02\x76\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\xb1\x00\x00\x00\x2e\x00\x00\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\x00\x00\xb4\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x83\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x00\x00\x0f\x01\x3e\x00\x3f\x00\xfd\x00\x2c\x00\xfe\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x35\x02\x11\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x53\x02\x00\x01\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x17\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x18\x02\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x1b\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x2c\x00\x1c\x00\x2d\x00\xfc\x01\x1e\x00\x2e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\xfe\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x21\x02\x0f\x01\x3e\x00\x3f\x00\xfd\x00\x2c\x00\xfe\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x3f\x02\x11\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x72\x01\x00\x01\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x22\x02\x0f\x01\x3e\x00\x3f\x00\xfd\x00\x2c\x00\xfe\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\xb0\x01\x11\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\xff\x00\x00\x01\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x23\x02\x0f\x01\x3e\x00\x3f\x00\x17\x00\x2c\x00\x7d\x01\x2d\x00\x00\x00\x00\x00\x2e\x00\xb0\x01\xb3\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x7e\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x24\x02\x0f\x01\x3e\x00\x3f\x00\x17\x00\x2c\x00\x2e\x02\x2d\x00\x00\x00\x00\x00\x2e\x00\xe7\x01\x11\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x83\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x00\x00\x0f\x01\x3e\x00\x3f\x00\x17\x00\x2c\x00\x14\x02\x2d\x00\x00\x00\x00\x00\x2e\x00\xee\x01\x11\x01\xa4\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x17\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x1b\x00\x00\x00\x3e\x00\x3f\x00\x17\x00\x2c\x00\x1c\x00\x2d\x00\xfc\x01\x1e\x00\x2e\x00\x1f\x00\x98\x01\xa4\x00\x20\x00\x40\x02\x00\x00\x00\x00\x1b\x00\x00\x00\x30\x00\x76\x00\x00\x00\x31\x00\x1c\x00\x00\x00\x9d\x01\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x17\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x73\x00\xa2\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2b\x00\x1b\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x2c\x00\x1c\x00\x2d\x00\x9d\x01\x1e\x00\x2e\x00\x1f\x00\xa3\x00\xa4\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x00\xb0\x00\x22\x00\x6f\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\xa7\x00\x00\x00\x00\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x00\x00\x00\x00\x70\x00\x00\x00\xb2\x00\xb3\x00\x00\x00\x71\x00\x72\x00\xb4\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\x00\x00\x00\x00\xaf\x00\xb0\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xa8\x00\x00\x00\x00\x00\x8f\x01\x22\x00\x00\x00\x13\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x7a\x00\x7b\x00\xa6\x00\xa7\x00\xb2\x00\xb3\x00\x00\x00\x00\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\xb5\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x79\x00\x00\x00\x09\x02\x00\x00\xa6\x00\xa7\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xa8\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x79\x00\x00\x00\x1c\x00\x00\x00\x80\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x7a\x00\x7b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xa8\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x3a\x01\x42\x00\x43\x00\x44\x00\x00\x00\x7a\x00\x7b\x00\x78\x00\x00\x00\x00\x00\x45\x00\x17\x00\x00\x00\x46\x00\x47\x00\x2d\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x79\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xbb\x01\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x17\x01\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x00\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x18\x01\x42\x00\x43\x00\x44\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x01\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x1a\x01\x42\x00\x43\x00\x44\x00\x4a\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x89\x00\x42\x00\x43\x00\x44\x00\x4a\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x59\x01\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x00\x00\xaf\x00\xb0\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x01\x1c\x00\x00\x00\x80\x00\x1e\x00\x16\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x17\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x00\xb3\x00\x1b\x00\x00\x00\x00\x00\xb4\x00\x00\x00\x17\x00\x1c\x00\x18\x02\x80\x00\x1e\x00\xb5\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xce\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xf0\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x36\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4a\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4b\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4c\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x58\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x67\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x68\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x69\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x6e\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x6f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x79\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcc\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9a\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc6\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc7\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc9\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xca\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcc\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xdf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x94\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xe9\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xeb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x62\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x8c\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x92\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x94\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x96\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x97\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xb6\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xb7\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xb8\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xb9\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xba\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc1\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x18\x00\x1c\x00\x17\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x17\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1c\x00\x1f\x00\x9d\x01\x1e\x00\x20\x00\x1f\x00\x1b\x00\x17\x00\x20\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x9d\x01\x1e\x00\x00\x00\x1f\x00\x73\x00\xa2\x00\x20\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x17\x00\x0f\x01\x1c\x00\x00\x00\xd3\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x10\x01\x11\x01\xa4\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x76\x00\x95\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyReduceArr = array (3, 241) [
-	(3 , happyReduce_3),
-	(4 , happyReduce_4),
-	(5 , happyReduce_5),
-	(6 , happyReduce_6),
-	(7 , happyReduce_7),
-	(8 , happyReduce_8),
-	(9 , happyReduce_9),
-	(10 , happyReduce_10),
-	(11 , happyReduce_11),
-	(12 , happyReduce_12),
-	(13 , happyReduce_13),
-	(14 , happyReduce_14),
-	(15 , happyReduce_15),
-	(16 , happyReduce_16),
-	(17 , happyReduce_17),
-	(18 , happyReduce_18),
-	(19 , happyReduce_19),
-	(20 , happyReduce_20),
-	(21 , happyReduce_21),
-	(22 , happyReduce_22),
-	(23 , happyReduce_23),
-	(24 , happyReduce_24),
-	(25 , happyReduce_25),
-	(26 , happyReduce_26),
-	(27 , happyReduce_27),
-	(28 , happyReduce_28),
-	(29 , happyReduce_29),
-	(30 , happyReduce_30),
-	(31 , happyReduce_31),
-	(32 , happyReduce_32),
-	(33 , happyReduce_33),
-	(34 , happyReduce_34),
-	(35 , happyReduce_35),
-	(36 , happyReduce_36),
-	(37 , happyReduce_37),
-	(38 , happyReduce_38),
-	(39 , happyReduce_39),
-	(40 , happyReduce_40),
-	(41 , happyReduce_41),
-	(42 , happyReduce_42),
-	(43 , happyReduce_43),
-	(44 , happyReduce_44),
-	(45 , happyReduce_45),
-	(46 , happyReduce_46),
-	(47 , happyReduce_47),
-	(48 , happyReduce_48),
-	(49 , happyReduce_49),
-	(50 , happyReduce_50),
-	(51 , happyReduce_51),
-	(52 , happyReduce_52),
-	(53 , happyReduce_53),
-	(54 , happyReduce_54),
-	(55 , happyReduce_55),
-	(56 , happyReduce_56),
-	(57 , happyReduce_57),
-	(58 , happyReduce_58),
-	(59 , happyReduce_59),
-	(60 , happyReduce_60),
-	(61 , happyReduce_61),
-	(62 , happyReduce_62),
-	(63 , happyReduce_63),
-	(64 , happyReduce_64),
-	(65 , happyReduce_65),
-	(66 , happyReduce_66),
-	(67 , happyReduce_67),
-	(68 , happyReduce_68),
-	(69 , happyReduce_69),
-	(70 , happyReduce_70),
-	(71 , happyReduce_71),
-	(72 , happyReduce_72),
-	(73 , happyReduce_73),
-	(74 , happyReduce_74),
-	(75 , happyReduce_75),
-	(76 , happyReduce_76),
-	(77 , happyReduce_77),
-	(78 , happyReduce_78),
-	(79 , happyReduce_79),
-	(80 , happyReduce_80),
-	(81 , happyReduce_81),
-	(82 , happyReduce_82),
-	(83 , happyReduce_83),
-	(84 , happyReduce_84),
-	(85 , happyReduce_85),
-	(86 , happyReduce_86),
-	(87 , happyReduce_87),
-	(88 , happyReduce_88),
-	(89 , happyReduce_89),
-	(90 , happyReduce_90),
-	(91 , happyReduce_91),
-	(92 , happyReduce_92),
-	(93 , happyReduce_93),
-	(94 , happyReduce_94),
-	(95 , happyReduce_95),
-	(96 , happyReduce_96),
-	(97 , happyReduce_97),
-	(98 , happyReduce_98),
-	(99 , happyReduce_99),
-	(100 , happyReduce_100),
-	(101 , happyReduce_101),
-	(102 , happyReduce_102),
-	(103 , happyReduce_103),
-	(104 , happyReduce_104),
-	(105 , happyReduce_105),
-	(106 , happyReduce_106),
-	(107 , happyReduce_107),
-	(108 , happyReduce_108),
-	(109 , happyReduce_109),
-	(110 , happyReduce_110),
-	(111 , happyReduce_111),
-	(112 , happyReduce_112),
-	(113 , happyReduce_113),
-	(114 , happyReduce_114),
-	(115 , happyReduce_115),
-	(116 , happyReduce_116),
-	(117 , happyReduce_117),
-	(118 , happyReduce_118),
-	(119 , happyReduce_119),
-	(120 , happyReduce_120),
-	(121 , happyReduce_121),
-	(122 , happyReduce_122),
-	(123 , happyReduce_123),
-	(124 , happyReduce_124),
-	(125 , happyReduce_125),
-	(126 , happyReduce_126),
-	(127 , happyReduce_127),
-	(128 , happyReduce_128),
-	(129 , happyReduce_129),
-	(130 , happyReduce_130),
-	(131 , happyReduce_131),
-	(132 , happyReduce_132),
-	(133 , happyReduce_133),
-	(134 , happyReduce_134),
-	(135 , happyReduce_135),
-	(136 , happyReduce_136),
-	(137 , happyReduce_137),
-	(138 , happyReduce_138),
-	(139 , happyReduce_139),
-	(140 , happyReduce_140),
-	(141 , happyReduce_141),
-	(142 , happyReduce_142),
-	(143 , happyReduce_143),
-	(144 , happyReduce_144),
-	(145 , happyReduce_145),
-	(146 , happyReduce_146),
-	(147 , happyReduce_147),
-	(148 , happyReduce_148),
-	(149 , happyReduce_149),
-	(150 , happyReduce_150),
-	(151 , happyReduce_151),
-	(152 , happyReduce_152),
-	(153 , happyReduce_153),
-	(154 , happyReduce_154),
-	(155 , happyReduce_155),
-	(156 , happyReduce_156),
-	(157 , happyReduce_157),
-	(158 , happyReduce_158),
-	(159 , happyReduce_159),
-	(160 , happyReduce_160),
-	(161 , happyReduce_161),
-	(162 , happyReduce_162),
-	(163 , happyReduce_163),
-	(164 , happyReduce_164),
-	(165 , happyReduce_165),
-	(166 , happyReduce_166),
-	(167 , happyReduce_167),
-	(168 , happyReduce_168),
-	(169 , happyReduce_169),
-	(170 , happyReduce_170),
-	(171 , happyReduce_171),
-	(172 , happyReduce_172),
-	(173 , happyReduce_173),
-	(174 , happyReduce_174),
-	(175 , happyReduce_175),
-	(176 , happyReduce_176),
-	(177 , happyReduce_177),
-	(178 , happyReduce_178),
-	(179 , happyReduce_179),
-	(180 , happyReduce_180),
-	(181 , happyReduce_181),
-	(182 , happyReduce_182),
-	(183 , happyReduce_183),
-	(184 , happyReduce_184),
-	(185 , happyReduce_185),
-	(186 , happyReduce_186),
-	(187 , happyReduce_187),
-	(188 , happyReduce_188),
-	(189 , happyReduce_189),
-	(190 , happyReduce_190),
-	(191 , happyReduce_191),
-	(192 , happyReduce_192),
-	(193 , happyReduce_193),
-	(194 , happyReduce_194),
-	(195 , happyReduce_195),
-	(196 , happyReduce_196),
-	(197 , happyReduce_197),
-	(198 , happyReduce_198),
-	(199 , happyReduce_199),
-	(200 , happyReduce_200),
-	(201 , happyReduce_201),
-	(202 , happyReduce_202),
-	(203 , happyReduce_203),
-	(204 , happyReduce_204),
-	(205 , happyReduce_205),
-	(206 , happyReduce_206),
-	(207 , happyReduce_207),
-	(208 , happyReduce_208),
-	(209 , happyReduce_209),
-	(210 , happyReduce_210),
-	(211 , happyReduce_211),
-	(212 , happyReduce_212),
-	(213 , happyReduce_213),
-	(214 , happyReduce_214),
-	(215 , happyReduce_215),
-	(216 , happyReduce_216),
-	(217 , happyReduce_217),
-	(218 , happyReduce_218),
-	(219 , happyReduce_219),
-	(220 , happyReduce_220),
-	(221 , happyReduce_221),
-	(222 , happyReduce_222),
-	(223 , happyReduce_223),
-	(224 , happyReduce_224),
-	(225 , happyReduce_225),
-	(226 , happyReduce_226),
-	(227 , happyReduce_227),
-	(228 , happyReduce_228),
-	(229 , happyReduce_229),
-	(230 , happyReduce_230),
-	(231 , happyReduce_231),
-	(232 , happyReduce_232),
-	(233 , happyReduce_233),
-	(234 , happyReduce_234),
-	(235 , happyReduce_235),
-	(236 , happyReduce_236),
-	(237 , happyReduce_237),
-	(238 , happyReduce_238),
-	(239 , happyReduce_239),
-	(240 , happyReduce_240),
-	(241 , happyReduce_241)
-	]
-
-happy_n_terms = 115 :: Int
-happy_n_nonterms = 70 :: Int
-
-happyReduce_3 = happySpecReduce_0  0# happyReduction_3
-happyReduction_3  =  happyIn6
-		 ([]
-	)
-
-happyReduce_4 = happySpecReduce_2  0# happyReduction_4
-happyReduction_4 happy_x_2
-	happy_x_1
-	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_5 = happySpecReduce_2  0# happyReduction_5
-happyReduction_5 happy_x_2
-	happy_x_1
-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (map RealDecl happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_6 = happyReduce 4# 0# happyReduction_6
-happyReduction_6 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	case happyOut6 happy_x_4 of { happy_var_4 -> 
-	happyIn6
-		 (RealDecl (PInclude happy_var_2) : happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_7 = happySpecReduce_1  1# happyReduction_7
-happyReduction_7 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (happy_var_1
-	)}
-
-happyReduce_8 = happySpecReduce_1  1# happyReduction_8
-happyReduction_8 happy_x_1
-	 =  case happyOut24 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl (DataDecl happy_var_1)
-	)}
-
-happyReduce_9 = happySpecReduce_1  1# happyReduction_9
-happyReduction_9 happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_10 = happySpecReduce_3  1# happyReduction_10
-happyReduction_10 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
-	happyIn7
-		 (RealDecl (Freeze happy_var_2)
-	)}
-
-happyReduce_11 = happyReduce 4# 1# happyReduction_11
-happyReduction_11 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut60 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_12 = happyReduce 4# 1# happyReduction_12
-happyReduction_12 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut61 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PDoUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_13 = happyReduce 4# 1# happyReduction_13
-happyReduction_13 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut62 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PIdiom happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_14 = happyReduce 4# 1# happyReduction_14
-happyReduction_14 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut63 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PParams happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_15 = happySpecReduce_1  1# happyReduction_15
-happyReduction_15 happy_x_1
-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_16 = happyReduce 6# 1# happyReduction_16
-happyReduction_16 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_2 of { happy_var_2 -> 
-	case happyOut38 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_5 of { happy_var_5 -> 
-	happyIn7
-		 (PSyntax happy_var_2 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_17 = happySpecReduce_2  1# happyReduction_17
-happyReduction_17 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CInclude happy_var_2)
-	)}
-
-happyReduce_18 = happySpecReduce_2  1# happyReduction_18
-happyReduction_18 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CLib happy_var_2)
-	)}
-
-happyReduce_19 = happyReduce 5# 2# happyReduction_19
-happyReduction_19 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn8
-		 (Transform happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_20 = happyReduce 7# 3# happyReduction_20
-happyReduction_20 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut14 happy_x_4 of { happy_var_4 -> 
-	case happyOut74 happy_x_5 of { happy_var_5 -> 
-	case happyOut73 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (FunType happy_var_1 happy_var_3 (nub happy_var_4) happy_var_5 happy_var_6
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_21 = happySpecReduce_3  3# happyReduction_21
-happyReduction_21 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut71 happy_x_2 of { happy_var_2 -> 
-	happyIn9
-		 (ProofScript happy_var_1 happy_var_2
-	)}}
-
-happyReduce_22 = happyReduce 9# 3# happyReduction_22
-happyReduction_22 (happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut22 happy_x_1 of { happy_var_1 -> 
-	case happyOut11 happy_x_2 of { happy_var_2 -> 
-	case happyOut10 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut13 happy_x_6 of { happy_var_6 -> 
-	case happyOut74 happy_x_8 of { happy_var_8 -> 
-	case happyOut73 happy_x_9 of { happy_var_9 -> 
-	happyIn9
-		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}}}}
-
-happyReduce_23 = happyReduce 10# 3# happyReduction_23
-happyReduction_23 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut22 happy_x_1 of { happy_var_1 -> 
-	case happyOut11 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut29 happy_x_7 of { happy_var_7 -> 
-	case happyOut74 happy_x_9 of { happy_var_9 -> 
-	case happyOut73 happy_x_10 of { happy_var_10 -> 
-	happyIn9
-		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_24 = happyReduce 8# 3# happyReduction_24
-happyReduction_24 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut22 happy_x_1 of { happy_var_1 -> 
-	case happyOut11 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut14 happy_x_5 of { happy_var_5 -> 
-	case happyOut74 happy_x_7 of { happy_var_7 -> 
-	case happyOut73 happy_x_8 of { happy_var_8 -> 
-	happyIn9
-		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_5)
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_25 = happyReduce 5# 3# happyReduction_25
-happyReduction_25 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn9
-		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
-	) `HappyStk` happyRest}}
-
-happyReduce_26 = happyReduce 8# 3# happyReduction_26
-happyReduction_26 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut29 happy_x_7 of { happy_var_7 -> 
-	happyIn9
-		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}
-
-happyReduce_27 = happyReduce 7# 3# happyReduction_27
-happyReduction_27 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut10 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut13 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_28 = happySpecReduce_1  4# happyReduction_28
-happyReduction_28 happy_x_1
-	 =  happyIn10
-		 (False
-	)
-
-happyReduce_29 = happySpecReduce_2  4# happyReduction_29
-happyReduction_29 happy_x_2
-	happy_x_1
-	 =  happyIn10
-		 (True
-	)
-
-happyReduce_30 = happySpecReduce_3  5# happyReduction_30
-happyReduction_30 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	happyIn11
-		 (happy_var_2:happy_var_3
-	)}}
-
-happyReduce_31 = happySpecReduce_0  5# happyReduction_31
-happyReduction_31  =  happyIn11
-		 ([]
-	)
-
-happyReduce_32 = happySpecReduce_1  6# happyReduction_32
-happyReduction_32 happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	happyIn12
-		 (happy_var_1
-	)}
-
-happyReduce_33 = happySpecReduce_1  6# happyReduction_33
-happyReduction_33 happy_x_1
-	 =  case happyOut52 happy_x_1 of { happy_var_1 -> 
-	happyIn12
-		 (happy_var_1
-	)}
-
-happyReduce_34 = happySpecReduce_3  6# happyReduction_34
-happyReduction_34 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn12
-		 (happy_var_2
-	)}
-
-happyReduce_35 = happyReduce 5# 6# happyReduction_35
-happyReduction_35 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut53 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn12
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_36 = happySpecReduce_2  7# happyReduction_36
-happyReduction_36 happy_x_2
-	happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	case happyOut13 happy_x_2 of { happy_var_2 -> 
-	happyIn13
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_37 = happySpecReduce_1  7# happyReduction_37
-happyReduction_37 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn13
-		 ([happy_var_1]
-	)}
-
-happyReduce_38 = happySpecReduce_0  8# happyReduction_38
-happyReduction_38  =  happyIn14
-		 ([]
-	)
-
-happyReduce_39 = happySpecReduce_2  8# happyReduction_39
-happyReduction_39 happy_x_2
-	happy_x_1
-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> 
-	case happyOut14 happy_x_2 of { happy_var_2 -> 
-	happyIn14
-		 (happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_40 = happySpecReduce_1  9# happyReduction_40
-happyReduction_40 happy_x_1
-	 =  happyIn15
-		 ([NoCG]
-	)
-
-happyReduce_41 = happySpecReduce_1  9# happyReduction_41
-happyReduction_41 happy_x_1
-	 =  happyIn15
-		 ([CGEval, Inline]
-	)
-
-happyReduce_42 = happyReduce 4# 9# happyReduction_42
-happyReduction_42 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut36 happy_x_3 of { happy_var_3 -> 
-	happyIn15
-		 ([CGSpec happy_var_3]
-	) `HappyStk` happyRest}
-
-happyReduce_43 = happySpecReduce_1  9# happyReduction_43
-happyReduction_43 happy_x_1
-	 =  happyIn15
-		 ([CGSpec []]
-	)
-
-happyReduce_44 = happySpecReduce_1  9# happyReduction_44
-happyReduction_44 happy_x_1
-	 =  happyIn15
-		 ([Inline]
-	)
-
-happyReduce_45 = happySpecReduce_2  9# happyReduction_45
-happyReduction_45 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn15
-		 ([CExport happy_var_2]
-	)}
-
-happyReduce_46 = happyReduce 4# 10# happyReduction_46
-happyReduction_46 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut19 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut17 happy_x_3 of { happy_var_3 -> 
-	happyIn16
-		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
-	) `HappyStk` happyRest}}}
-
-happyReduce_47 = happySpecReduce_1  11# happyReduction_47
-happyReduction_47 happy_x_1
-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
-	happyIn17
-		 ([happy_var_1]
-	)}
-
-happyReduce_48 = happySpecReduce_3  11# happyReduction_48
-happyReduction_48 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
-	case happyOut17 happy_x_3 of { happy_var_3 -> 
-	happyIn17
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_49 = happySpecReduce_1  12# happyReduction_49
-happyReduction_49 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
-	happyIn18
-		 (happy_var_1
-	)}
-
-happyReduce_50 = happySpecReduce_1  12# happyReduction_50
-happyReduction_50 happy_x_1
-	 =  happyIn18
-		 ("-"
-	)
-
-happyReduce_51 = happySpecReduce_1  12# happyReduction_51
-happyReduction_51 happy_x_1
-	 =  happyIn18
-		 ("<"
-	)
-
-happyReduce_52 = happySpecReduce_1  12# happyReduction_52
-happyReduction_52 happy_x_1
-	 =  happyIn18
-		 (">"
-	)
-
-happyReduce_53 = happySpecReduce_1  13# happyReduction_53
-happyReduction_53 happy_x_1
-	 =  happyIn19
-		 (LeftAssoc
-	)
-
-happyReduce_54 = happySpecReduce_1  13# happyReduction_54
-happyReduction_54 happy_x_1
-	 =  happyIn19
-		 (RightAssoc
-	)
-
-happyReduce_55 = happySpecReduce_1  13# happyReduction_55
-happyReduction_55 happy_x_1
-	 =  happyIn19
-		 (NonAssoc
-	)
-
-happyReduce_56 = happyReduce 4# 14# happyReduction_56
-happyReduction_56 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut21 happy_x_3 of { happy_var_3 -> 
-	happyIn20
-		 (LatexDefs happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_57 = happySpecReduce_3  15# happyReduction_57
-happyReduction_57 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	happyIn21
-		 ([(happy_var_1,happy_var_3)]
-	)}}
-
-happyReduce_58 = happyReduce 5# 15# happyReduction_58
-happyReduction_58 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	case happyOut21 happy_x_5 of { happy_var_5 -> 
-	happyIn21
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_59 = happySpecReduce_2  16# happyReduction_59
-happyReduction_59 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut23 happy_x_2 of { happy_var_2 -> 
-	happyIn22
-		 ((happy_var_1, happy_var_2)
-	)}}
-
-happyReduce_60 = happySpecReduce_0  17# happyReduction_60
-happyReduction_60  =  happyIn23
-		 ([]
-	)
-
-happyReduce_61 = happySpecReduce_2  17# happyReduction_61
-happyReduction_61 happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	case happyOut23 happy_x_2 of { happy_var_2 -> 
-	happyIn23
-		 ((happy_var_1,Nothing):happy_var_2
-	)}}
-
-happyReduce_62 = happyReduce 5# 17# happyReduction_62
-happyReduction_62 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut23 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn23
-		 ((RVar happy_var_4 happy_var_5 happy_var_1, Just happy_var_1):happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_63 = happyReduce 5# 17# happyReduction_63
-happyReduction_63 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut23 happy_x_5 of { happy_var_5 -> 
-	happyIn23
-		 ((happy_var_3, Just happy_var_1):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_64 = happyReduce 6# 18# happyReduction_64
-happyReduction_64 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut26 happy_x_2 of { happy_var_2 -> 
-	case happyOut29 happy_x_3 of { happy_var_3 -> 
-	case happyOut25 happy_x_4 of { happy_var_4 -> 
-	case happyOut74 happy_x_5 of { happy_var_5 -> 
-	case happyOut73 happy_x_6 of { happy_var_6 -> 
-	happyIn24
-		 (mkDatatype happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_65 = happySpecReduce_3  19# happyReduction_65
-happyReduction_65 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
-	case happyOut67 happy_x_2 of { happy_var_2 -> 
-	happyIn25
-		 (Right (happy_var_1,happy_var_2)
-	)}}
-
-happyReduce_66 = happySpecReduce_3  19# happyReduction_66
-happyReduction_66 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut47 happy_x_2 of { happy_var_2 -> 
-	happyIn25
-		 (Left happy_var_2
-	)}
-
-happyReduce_67 = happySpecReduce_3  19# happyReduction_67
-happyReduction_67 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn25
-		 (Left (RConst happy_var_2 happy_var_3 TYPE)
-	)}}
-
-happyReduce_68 = happySpecReduce_0  20# happyReduction_68
-happyReduction_68  =  happyIn26
-		 ([]
-	)
-
-happyReduce_69 = happySpecReduce_3  20# happyReduction_69
-happyReduction_69 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut27 happy_x_2 of { happy_var_2 -> 
-	happyIn26
-		 (happy_var_2
-	)}
-
-happyReduce_70 = happySpecReduce_1  21# happyReduction_70
-happyReduction_70 happy_x_1
-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> 
-	happyIn27
-		 ([happy_var_1]
-	)}
-
-happyReduce_71 = happySpecReduce_3  21# happyReduction_71
-happyReduction_71 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> 
-	case happyOut27 happy_x_3 of { happy_var_3 -> 
-	happyIn27
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_72 = happySpecReduce_1  22# happyReduction_72
-happyReduction_72 happy_x_1
-	 =  happyIn28
-		 (NoElim
-	)
-
-happyReduce_73 = happySpecReduce_1  22# happyReduction_73
-happyReduction_73 happy_x_1
-	 =  happyIn28
-		 (Collapsible
-	)
-
-happyReduce_74 = happySpecReduce_1  23# happyReduction_74
-happyReduction_74 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
-	happyIn29
-		 (happy_var_1
-	)}
-
-happyReduce_75 = happySpecReduce_3  23# happyReduction_75
-happyReduction_75 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut18 happy_x_2 of { happy_var_2 -> 
-	happyIn29
-		 (useropFn happy_var_2
-	)}
-
-happyReduce_76 = happyReduce 4# 24# happyReduction_76
-happyReduction_76 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut30 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	case happyOut51 happy_x_4 of { happy_var_4 -> 
-	happyIn30
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_77 = happyReduce 5# 24# happyReduction_77
-happyReduction_77 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut30 happy_x_1 of { happy_var_1 -> 
-	case happyOut40 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn30
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_78 = happySpecReduce_3  24# happyReduction_78
-happyReduction_78 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn30
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_79 = happySpecReduce_3  24# happyReduction_79
-happyReduction_79 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn30
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_80 = happySpecReduce_1  24# happyReduction_80
-happyReduction_80 happy_x_1
-	 =  happyIn30
-		 (RPlaceholder
-	)
-
-happyReduce_81 = happySpecReduce_3  24# happyReduction_81
-happyReduction_81 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn30
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_82 = happySpecReduce_3  24# happyReduction_82
-happyReduction_82 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn30
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_83 = happySpecReduce_1  25# happyReduction_83
-happyReduction_83 happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	happyIn31
-		 (happy_var_1
-	)}
-
-happyReduce_84 = happySpecReduce_3  25# happyReduction_84
-happyReduction_84 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> 
-	happyIn31
-		 (happy_var_2
-	)}
-
-happyReduce_85 = happyReduce 4# 25# happyReduction_85
-happyReduction_85 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	case happyOut51 happy_x_4 of { happy_var_4 -> 
-	happyIn31
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_86 = happyReduce 5# 25# happyReduction_86
-happyReduction_86 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut40 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn31
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_87 = happyReduce 4# 25# happyReduction_87
-happyReduction_87 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn31
-		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy")) RPlaceholder) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_88 = happyReduce 4# 25# happyReduction_88
-happyReduction_88 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut32 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn31
-		 (doBind Lam happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_89 = happyReduce 4# 25# happyReduction_89
-happyReduction_89 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut39 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn31
-		 (doLetBind happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_90 = happySpecReduce_1  25# happyReduction_90
-happyReduction_90 happy_x_1
-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> 
-	happyIn31
-		 (happy_var_1
-	)}
-
-happyReduce_91 = happyReduce 8# 25# happyReduction_91
-happyReduction_91 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_6 of { happy_var_6 -> 
-	case happyOut74 happy_x_7 of { happy_var_7 -> 
-	case happyOut73 happy_x_8 of { happy_var_8 -> 
-	happyIn31
-		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else")) [happy_var_2,happy_var_4,happy_var_6]
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_92 = happySpecReduce_2  26# happyReduction_92
-happyReduction_92 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut45 happy_x_2 of { happy_var_2 -> 
-	happyIn32
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_93 = happyReduce 4# 26# happyReduction_93
-happyReduction_93 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut45 happy_x_2 of { happy_var_2 -> 
-	case happyOut32 happy_x_4 of { happy_var_4 -> 
-	happyIn32
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_94 = happySpecReduce_3  27# happyReduction_94
-happyReduction_94 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn33
-		 (happy_var_1 ++ happy_var_3
-	)}}
-
-happyReduce_95 = happySpecReduce_1  27# happyReduction_95
-happyReduction_95 happy_x_1
-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_96 = happySpecReduce_3  28# happyReduction_96
-happyReduction_96 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	happyIn34
-		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
-	)}}
-
-happyReduce_97 = happySpecReduce_1  29# happyReduction_97
-happyReduction_97 happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	happyIn35
-		 ([happy_var_1]
-	)}
-
-happyReduce_98 = happySpecReduce_3  29# happyReduction_98
-happyReduction_98 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut35 happy_x_3 of { happy_var_3 -> 
-	happyIn35
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_99 = happySpecReduce_2  30# happyReduction_99
-happyReduction_99 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	happyIn36
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_100 = happySpecReduce_1  30# happyReduction_100
-happyReduction_100 happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	happyIn36
-		 ([(happy_var_1, 0)]
-	)}
-
-happyReduce_101 = happySpecReduce_3  30# happyReduction_101
-happyReduction_101 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut36 happy_x_3 of { happy_var_3 -> 
-	happyIn36
-		 ((happy_var_1,0):happy_var_3
-	)}}
-
-happyReduce_102 = happyReduce 4# 30# happyReduction_102
-happyReduction_102 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut36 happy_x_4 of { happy_var_4 -> 
-	happyIn36
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_103 = happySpecReduce_1  31# happyReduction_103
-happyReduction_103 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	happyIn37
-		 ([happy_var_1]
-	)}
-
-happyReduce_104 = happySpecReduce_3  31# happyReduction_104
-happyReduction_104 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut35 happy_x_3 of { happy_var_3 -> 
-	happyIn37
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_105 = happySpecReduce_1  32# happyReduction_105
-happyReduction_105 happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	happyIn38
-		 ([happy_var_1]
-	)}
-
-happyReduce_106 = happySpecReduce_2  32# happyReduction_106
-happyReduction_106 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut38 happy_x_2 of { happy_var_2 -> 
-	happyIn38
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_107 = happyReduce 4# 33# happyReduction_107
-happyReduction_107 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut45 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	happyIn39
-		 ([(happy_var_1,happy_var_2,happy_var_4)]
-	) `HappyStk` happyRest}}}
-
-happyReduce_108 = happyReduce 6# 33# happyReduction_108
-happyReduction_108 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut45 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut39 happy_x_6 of { happy_var_6 -> 
-	happyIn39
-		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_109 = happySpecReduce_3  34# happyReduction_109
-happyReduction_109 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn40
-		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1)
-	)}}}
-
-happyReduce_110 = happySpecReduce_3  34# happyReduction_110
-happyReduction_110 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	happyIn40
-		 ((happy_var_1, happy_var_3)
-	)}}
-
-happyReduce_111 = happyReduce 4# 35# happyReduction_111
-happyReduction_111 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn41
-		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_112 = happyReduce 5# 35# happyReduction_112
-happyReduction_112 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn41
-		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_113 = happyReduce 5# 35# happyReduction_113
-happyReduction_113 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn41
-		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) [happy_var_1, happy_var_3]
-	) `HappyStk` happyRest}}}}
-
-happyReduce_114 = happyReduce 5# 35# happyReduction_114
-happyReduction_114 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn41
-		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_115 = happyReduce 5# 35# happyReduction_115
-happyReduction_115 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn41
-		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_116 = happyReduce 5# 35# happyReduction_116
-happyReduction_116 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	happyIn41
-		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_117 = happySpecReduce_1  35# happyReduction_117
-happyReduction_117 happy_x_1
-	 =  case happyOut42 happy_x_1 of { happy_var_1 -> 
-	happyIn41
-		 (happy_var_1
-	)}
-
-happyReduce_118 = happyReduce 5# 35# happyReduction_118
-happyReduction_118 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut51 happy_x_1 of { happy_var_1 -> 
-	case happyOut51 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn41
-		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_119 = happyReduce 5# 36# happyReduction_119
-happyReduction_119 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn42
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_120 = happyReduce 6# 37# happyReduction_120
-happyReduction_120 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_121 = happyReduce 6# 37# happyReduction_121
-happyReduction_121 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_122 = happyReduce 6# 37# happyReduction_122
-happyReduction_122 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut44 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_123 = happyReduce 6# 37# happyReduction_123
-happyReduction_123 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut44 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_124 = happyReduce 6# 37# happyReduction_124
-happyReduction_124 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_125 = happyReduce 6# 37# happyReduction_125
-happyReduction_125 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex Eager happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_126 = happyReduce 6# 37# happyReduction_126
-happyReduction_126 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex Eager (RVar happy_var_4 happy_var_5 (MN "X" 0))) happy_var_3)
-	) `HappyStk` happyRest}}}
-
-happyReduce_127 = happyReduce 5# 37# happyReduction_127
-happyReduction_127 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (RBind (MN "X" 1) (Lam RPlaceholder)
-                    (RBind (MN "X" 2) (Pi Ex Eager (RVar happy_var_3 happy_var_4 (MN "X" 0)))
-                       (RVar happy_var_3 happy_var_4 (MN "X" 1))))
-	) `HappyStk` happyRest}}
-
-happyReduce_128 = happyReduce 5# 37# happyReduction_128
-happyReduction_128 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                   (RBind (MN "X" 1) (Lam RPlaceholder)
-                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair"))
-                                    [RVar happy_var_3 happy_var_4 (MN "X" 0),
-                                     RVar happy_var_3 happy_var_4 (MN "X" 1)]))
-	) `HappyStk` happyRest}}
-
-happyReduce_129 = happyReduce 6# 37# happyReduction_129
-happyReduction_129 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [happy_var_2,
-                                     RVar happy_var_4 happy_var_5 (MN "X" 0)])
-	) `HappyStk` happyRest}}}
-
-happyReduce_130 = happyReduce 6# 37# happyReduction_130
-happyReduction_130 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [RVar happy_var_4 happy_var_5 (MN "X" 0), happy_var_3])
-	) `HappyStk` happyRest}}}
-
-happyReduce_131 = happySpecReduce_1  38# happyReduction_131
-happyReduction_131 happy_x_1
-	 =  happyIn44
-		 ("<"
-	)
-
-happyReduce_132 = happySpecReduce_1  38# happyReduction_132
-happyReduction_132 happy_x_1
-	 =  happyIn44
-		 (">"
-	)
-
-happyReduce_133 = happySpecReduce_0  39# happyReduction_133
-happyReduction_133  =  happyIn45
-		 (RPlaceholder
-	)
-
-happyReduce_134 = happySpecReduce_2  39# happyReduction_134
-happyReduction_134 happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> 
-	happyIn45
-		 (happy_var_2
-	)}
-
-happyReduce_135 = happySpecReduce_0  40# happyReduction_135
-happyReduction_135  =  happyIn46
-		 (RPlaceholder
-	)
-
-happyReduce_136 = happySpecReduce_2  40# happyReduction_136
-happyReduction_136 happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> 
-	happyIn46
-		 (happy_var_2
-	)}
-
-happyReduce_137 = happyReduce 5# 41# happyReduction_137
-happyReduction_137 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut37 happy_x_1 of { happy_var_1 -> 
-	case happyOut46 happy_x_2 of { happy_var_2 -> 
-	case happyOut47 happy_x_5 of { happy_var_5 -> 
-	happyIn47
-		 (doBind (Pi Im Eager) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_138 = happySpecReduce_1  41# happyReduction_138
-happyReduction_138 happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	happyIn47
-		 (happy_var_1
-	)}
-
-happyReduce_139 = happySpecReduce_3  42# happyReduction_139
-happyReduction_139 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	case happyOut48 happy_x_3 of { happy_var_3 -> 
-	happyIn48
-		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
-	)}}
-
-happyReduce_140 = happyReduce 5# 42# happyReduction_140
-happyReduction_140 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut48 happy_x_5 of { happy_var_5 -> 
-	happyIn48
-		 (doBind (Pi Ex Eager) happy_var_2 happy_var_5
-	) `HappyStk` happyRest}}
-
-happyReduce_141 = happyReduce 5# 42# happyReduction_141
-happyReduction_141 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut48 happy_x_5 of { happy_var_5 -> 
-	happyIn48
-		 (doBind (Pi Ex Lazy) happy_var_2 happy_var_5
-	) `HappyStk` happyRest}}
-
-happyReduce_142 = happySpecReduce_3  42# happyReduction_142
-happyReduction_142 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> 
-	happyIn48
-		 (bracket happy_var_2
-	)}
-
-happyReduce_143 = happyReduce 7# 42# happyReduction_143
-happyReduction_143 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut48 happy_x_2 of { happy_var_2 -> 
-	case happyOut48 happy_x_4 of { happy_var_4 -> 
-	case happyOut74 happy_x_5 of { happy_var_5 -> 
-	case happyOut73 happy_x_6 of { happy_var_6 -> 
-	happyIn48
-		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_144 = happySpecReduce_1  42# happyReduction_144
-happyReduction_144 happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	happyIn48
-		 (happy_var_1
-	)}
-
-happyReduce_145 = happySpecReduce_3  42# happyReduction_145
-happyReduction_145 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn48
-		 (happy_var_2
-	)}
-
-happyReduce_146 = happyReduce 5# 42# happyReduction_146
-happyReduction_146 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut48 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut48 happy_x_3 of { happy_var_3 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn48
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_147 = happyReduce 5# 42# happyReduction_147
-happyReduction_147 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut50 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn48
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_148 = happySpecReduce_1  42# happyReduction_148
-happyReduction_148 happy_x_1
-	 =  case happyOut49 happy_x_1 of { happy_var_1 -> 
-	happyIn48
-		 (happy_var_1
-	)}
-
-happyReduce_149 = happyReduce 8# 43# happyReduction_149
-happyReduction_149 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_2 of { happy_var_2 -> 
-	case happyOut45 happy_x_3 of { happy_var_3 -> 
-	case happyOut48 happy_x_5 of { happy_var_5 -> 
-	case happyOut74 happy_x_7 of { happy_var_7 -> 
-	case happyOut73 happy_x_8 of { happy_var_8 -> 
-	happyIn49
-		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_150 = happySpecReduce_3  44# happyReduction_150
-happyReduction_150 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	case happyOut48 happy_x_3 of { happy_var_3 -> 
-	happyIn50
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_151 = happySpecReduce_3  44# happyReduction_151
-happyReduction_151 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	happyIn50
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_152 = happySpecReduce_3  45# happyReduction_152
-happyReduction_152 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_153 = happySpecReduce_3  45# happyReduction_153
-happyReduction_153 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (RReturn happy_var_2 happy_var_3
-	)}}
-
-happyReduce_154 = happySpecReduce_3  45# happyReduction_154
-happyReduction_154 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn51
-		 (bracket happy_var_2
-	)}
-
-happyReduce_155 = happySpecReduce_2  45# happyReduction_155
-happyReduction_155 happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
-	happyIn51
-		 (RPure happy_var_2
-	)}
-
-happyReduce_156 = happySpecReduce_1  45# happyReduction_156
-happyReduction_156 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
-	happyIn51
-		 (RMetavar happy_var_1
-	)}
-
-happyReduce_157 = happyReduce 4# 45# happyReduction_157
-happyReduction_157 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn51
-		 (RExpVar happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_158 = happySpecReduce_3  45# happyReduction_158
-happyReduction_158 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_159 = happySpecReduce_1  45# happyReduction_159
-happyReduction_159 happy_x_1
-	 =  happyIn51
-		 (RRefl
-	)
-
-happyReduce_160 = happySpecReduce_3  45# happyReduction_160
-happyReduction_160 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_161 = happySpecReduce_3  45# happyReduction_161
-happyReduction_161 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn51
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_162 = happySpecReduce_1  45# happyReduction_162
-happyReduction_162 happy_x_1
-	 =  happyIn51
-		 (RPlaceholder
-	)
-
-happyReduce_163 = happySpecReduce_1  45# happyReduction_163
-happyReduction_163 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn51
-		 (RDo happy_var_1
-	)}
-
-happyReduce_164 = happySpecReduce_3  45# happyReduction_164
-happyReduction_164 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn51
-		 (RIdiom happy_var_2
-	)}
-
-happyReduce_165 = happyReduce 5# 45# happyReduction_165
-happyReduction_165 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut53 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn51
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_166 = happySpecReduce_1  45# happyReduction_166
-happyReduction_166 happy_x_1
-	 =  case happyOut49 happy_x_1 of { happy_var_1 -> 
-	happyIn51
-		 (happy_var_1
-	)}
-
-happyReduce_167 = happySpecReduce_1  45# happyReduction_167
-happyReduction_167 happy_x_1
-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
-	happyIn51
-		 (happy_var_1
-	)}
-
-happyReduce_168 = happySpecReduce_1  45# happyReduction_168
-happyReduction_168 happy_x_1
-	 =  case happyOut52 happy_x_1 of { happy_var_1 -> 
-	happyIn51
-		 (happy_var_1
-	)}
-
-happyReduce_169 = happyReduce 7# 46# happyReduction_169
-happyReduction_169 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut74 happy_x_6 of { happy_var_6 -> 
-	case happyOut73 happy_x_7 of { happy_var_7 -> 
-	happyIn52
-		 (RApp happy_var_6 happy_var_7 (RAppImp happy_var_6 happy_var_7 (UN "a") (RVar happy_var_6 happy_var_7 (UN "Exists")) happy_var_2) happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_170 = happyReduce 5# 46# happyReduction_170
-happyReduction_170 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut74 happy_x_4 of { happy_var_4 -> 
-	case happyOut73 happy_x_5 of { happy_var_5 -> 
-	happyIn52
-		 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_171 = happySpecReduce_3  47# happyReduction_171
-happyReduction_171 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_172 = happySpecReduce_3  47# happyReduction_172
-happyReduction_172 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut53 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_173 = happyReduce 4# 48# happyReduction_173
-happyReduction_173 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut55 happy_x_3 of { happy_var_3 -> 
-	happyIn54
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_174 = happyReduce 10# 48# happyReduction_174
-happyReduction_174 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
-	case happyOut45 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_5 of { happy_var_5 -> 
-	case happyOut74 happy_x_6 of { happy_var_6 -> 
-	case happyOut73 happy_x_7 of { happy_var_7 -> 
-	case happyOut55 happy_x_9 of { happy_var_9 -> 
-	happyIn54
-		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_175 = happySpecReduce_2  49# happyReduction_175
-happyReduction_175 happy_x_2
-	happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	case happyOut55 happy_x_2 of { happy_var_2 -> 
-	happyIn55
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_176 = happySpecReduce_1  49# happyReduction_176
-happyReduction_176 happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	happyIn55
-		 ([happy_var_1]
-	)}
-
-happyReduce_177 = happyReduce 7# 50# happyReduction_177
-happyReduction_177 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut45 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut74 happy_x_5 of { happy_var_5 -> 
-	case happyOut73 happy_x_6 of { happy_var_6 -> 
-	happyIn56
-		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_178 = happyReduce 8# 50# happyReduction_178
-happyReduction_178 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_2 of { happy_var_2 -> 
-	case happyOut45 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_5 of { happy_var_5 -> 
-	case happyOut74 happy_x_6 of { happy_var_6 -> 
-	case happyOut73 happy_x_7 of { happy_var_7 -> 
-	happyIn56
-		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_179 = happyReduce 4# 50# happyReduction_179
-happyReduction_179 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (DoExp happy_var_2 happy_var_3 happy_var_1
-	) `HappyStk` happyRest}}}
-
-happyReduce_180 = happySpecReduce_1  51# happyReduction_180
-happyReduction_180 happy_x_1
-	 =  happyIn57
-		 (TYPE
-	)
-
-happyReduce_181 = happySpecReduce_1  51# happyReduction_181
-happyReduction_181 happy_x_1
-	 =  happyIn57
-		 (StringType
-	)
-
-happyReduce_182 = happySpecReduce_1  51# happyReduction_182
-happyReduction_182 happy_x_1
-	 =  happyIn57
-		 (IntType
-	)
-
-happyReduce_183 = happySpecReduce_1  51# happyReduction_183
-happyReduction_183 happy_x_1
-	 =  happyIn57
-		 (CharType
-	)
-
-happyReduce_184 = happySpecReduce_1  51# happyReduction_184
-happyReduction_184 happy_x_1
-	 =  happyIn57
-		 (FloatType
-	)
-
-happyReduce_185 = happySpecReduce_1  51# happyReduction_185
-happyReduction_185 happy_x_1
-	 =  happyIn57
-		 (PtrType
-	)
-
-happyReduce_186 = happySpecReduce_1  51# happyReduction_186
-happyReduction_186 happy_x_1
-	 =  happyIn57
-		 (Builtin "Handle"
-	)
-
-happyReduce_187 = happySpecReduce_1  51# happyReduction_187
-happyReduction_187 happy_x_1
-	 =  happyIn57
-		 (Builtin "Lock"
-	)
-
-happyReduce_188 = happySpecReduce_1  51# happyReduction_188
-happyReduction_188 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
-	happyIn57
-		 (Num happy_var_1
-	)}
-
-happyReduce_189 = happySpecReduce_1  51# happyReduction_189
-happyReduction_189 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
-	happyIn57
-		 (Ch happy_var_1
-	)}
-
-happyReduce_190 = happySpecReduce_1  51# happyReduction_190
-happyReduction_190 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
-	happyIn57
-		 (Str happy_var_1
-	)}
-
-happyReduce_191 = happySpecReduce_1  51# happyReduction_191
-happyReduction_191 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
-	happyIn57
-		 (Bo happy_var_1
-	)}
-
-happyReduce_192 = happySpecReduce_1  51# happyReduction_192
-happyReduction_192 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
-	happyIn57
-		 (Fl happy_var_1
-	)}
-
-happyReduce_193 = happySpecReduce_0  52# happyReduction_193
-happyReduction_193  =  happyIn58
-		 ([]
-	)
-
-happyReduce_194 = happySpecReduce_2  52# happyReduction_194
-happyReduction_194 happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	case happyOut58 happy_x_2 of { happy_var_2 -> 
-	happyIn58
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_195 = happyReduce 4# 53# happyReduction_195
-happyReduction_195 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut60 happy_x_3 of { happy_var_3 -> 
-	happyIn59
-		 ((happy_var_2, happy_var_3)
-	) `HappyStk` happyRest}}
-
-happyReduce_196 = happySpecReduce_3  53# happyReduction_196
-happyReduction_196 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_2 of { happy_var_2 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn59
-		 ((RConst happy_var_2 happy_var_3 TYPE, [])
-	)}}
-
-happyReduce_197 = happyReduce 4# 53# happyReduction_197
-happyReduction_197 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut65 happy_x_1 of { happy_var_1 -> 
-	case happyOut74 happy_x_3 of { happy_var_3 -> 
-	case happyOut73 happy_x_4 of { happy_var_4 -> 
-	happyIn59
-		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
-	) `HappyStk` happyRest}}}
-
-happyReduce_198 = happySpecReduce_0  54# happyReduction_198
-happyReduction_198  =  happyIn60
-		 ([]
-	)
-
-happyReduce_199 = happyReduce 4# 54# happyReduction_199
-happyReduction_199 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut64 happy_x_3 of { happy_var_3 -> 
-	happyIn60
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_200 = happyReduce 7# 55# happyReduction_200
-happyReduction_200 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_4 of { happy_var_4 -> 
-	case happyOut29 happy_x_6 of { happy_var_6 -> 
-	happyIn61
-		 ((happy_var_4,happy_var_6)
-	) `HappyStk` happyRest}}
-
-happyReduce_201 = happyReduce 6# 56# happyReduction_201
-happyReduction_201 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_3 of { happy_var_3 -> 
-	case happyOut29 happy_x_5 of { happy_var_5 -> 
-	happyIn62
-		 ((happy_var_3,happy_var_5)
-	) `HappyStk` happyRest}}
-
-happyReduce_202 = happyReduce 4# 57# happyReduction_202
-happyReduction_202 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut64 happy_x_3 of { happy_var_3 -> 
-	happyIn63
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_203 = happySpecReduce_3  58# happyReduction_203
-happyReduction_203 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	happyIn64
-		 ([(happy_var_1, happy_var_3)]
-	)}}
-
-happyReduce_204 = happyReduce 5# 58# happyReduction_204
-happyReduction_204 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut64 happy_x_5 of { happy_var_5 -> 
-	happyIn64
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_205 = happySpecReduce_1  59# happyReduction_205
-happyReduction_205 happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	happyIn65
-		 ([happy_var_1]
-	)}
-
-happyReduce_206 = happySpecReduce_2  59# happyReduction_206
-happyReduction_206 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut65 happy_x_2 of { happy_var_2 -> 
-	happyIn65
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_207 = happySpecReduce_1  60# happyReduction_207
-happyReduction_207 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn66
-		 (happy_var_1
-	)}
-
-happyReduce_208 = happySpecReduce_1  60# happyReduction_208
-happyReduction_208 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn66
-		 (happy_var_1
-	)}
-
-happyReduce_209 = happySpecReduce_0  61# happyReduction_209
-happyReduction_209  =  happyIn67
-		 ([]
-	)
-
-happyReduce_210 = happySpecReduce_1  61# happyReduction_210
-happyReduction_210 happy_x_1
-	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
-	happyIn67
-		 ([happy_var_1]
-	)}
-
-happyReduce_211 = happySpecReduce_3  61# happyReduction_211
-happyReduction_211 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut68 happy_x_1 of { happy_var_1 -> 
-	case happyOut67 happy_x_3 of { happy_var_3 -> 
-	happyIn67
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_212 = happySpecReduce_2  62# happyReduction_212
-happyReduction_212 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut69 happy_x_2 of { happy_var_2 -> 
-	happyIn68
-		 (Full happy_var_1 happy_var_2
-	)}}
-
-happyReduce_213 = happySpecReduce_2  62# happyReduction_213
-happyReduction_213 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> 
-	case happyOut58 happy_x_2 of { happy_var_2 -> 
-	happyIn68
-		 (Simple happy_var_1 happy_var_2
-	)}}
-
-happyReduce_214 = happySpecReduce_2  63# happyReduction_214
-happyReduction_214 happy_x_2
-	happy_x_1
-	 =  case happyOut47 happy_x_2 of { happy_var_2 -> 
-	happyIn69
-		 (happy_var_2
-	)}
-
-happyReduce_215 = happySpecReduce_2  64# happyReduction_215
-happyReduction_215 happy_x_2
-	happy_x_1
-	 =  case happyOut35 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Intro happy_var_2
-	)}
-
-happyReduce_216 = happySpecReduce_1  64# happyReduction_216
-happyReduction_216 happy_x_1
-	 =  happyIn70
-		 (Intro []
-	)
-
-happyReduce_217 = happySpecReduce_2  64# happyReduction_217
-happyReduction_217 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Refine happy_var_2
-	)}
-
-happyReduce_218 = happySpecReduce_2  64# happyReduction_218
-happyReduction_218 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Generalise happy_var_2
-	)}
-
-happyReduce_219 = happySpecReduce_1  64# happyReduction_219
-happyReduction_219 happy_x_1
-	 =  happyIn70
-		 (ReflP
-	)
-
-happyReduce_220 = happySpecReduce_2  64# happyReduction_220
-happyReduction_220 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Rewrite False False happy_var_2
-	)}
-
-happyReduce_221 = happySpecReduce_3  64# happyReduction_221
-happyReduction_221 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_3 of { happy_var_3 -> 
-	happyIn70
-		 (Rewrite False True happy_var_3
-	)}
-
-happyReduce_222 = happySpecReduce_2  64# happyReduction_222
-happyReduction_222 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Rewrite True False happy_var_2
-	)}
-
-happyReduce_223 = happySpecReduce_3  64# happyReduction_223
-happyReduction_223 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_3 of { happy_var_3 -> 
-	happyIn70
-		 (Rewrite True True happy_var_3
-	)}
-
-happyReduce_224 = happySpecReduce_1  64# happyReduction_224
-happyReduction_224 happy_x_1
-	 =  happyIn70
-		 (Compute
-	)
-
-happyReduce_225 = happySpecReduce_2  64# happyReduction_225
-happyReduction_225 happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Unfold happy_var_2
-	)}
-
-happyReduce_226 = happySpecReduce_1  64# happyReduction_226
-happyReduction_226 happy_x_1
-	 =  happyIn70
-		 (Undo
-	)
-
-happyReduce_227 = happySpecReduce_2  64# happyReduction_227
-happyReduction_227 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Induction happy_var_2
-	)}
-
-happyReduce_228 = happySpecReduce_2  64# happyReduction_228
-happyReduction_228 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Fill happy_var_2
-	)}
-
-happyReduce_229 = happySpecReduce_1  64# happyReduction_229
-happyReduction_229 happy_x_1
-	 =  happyIn70
-		 (Trivial
-	)
-
-happyReduce_230 = happySpecReduce_2  64# happyReduction_230
-happyReduction_230 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (RunTactic happy_var_2
-	)}
-
-happyReduce_231 = happySpecReduce_2  64# happyReduction_231
-happyReduction_231 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Believe happy_var_2
-	)}
-
-happyReduce_232 = happySpecReduce_2  64# happyReduction_232
-happyReduction_232 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Use happy_var_2
-	)}
-
-happyReduce_233 = happySpecReduce_2  64# happyReduction_233
-happyReduction_233 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn70
-		 (Decide happy_var_2
-	)}
-
-happyReduce_234 = happySpecReduce_1  64# happyReduction_234
-happyReduction_234 happy_x_1
-	 =  happyIn70
-		 (Abandon
-	)
-
-happyReduce_235 = happySpecReduce_1  64# happyReduction_235
-happyReduction_235 happy_x_1
-	 =  happyIn70
-		 (Qed
-	)
-
-happyReduce_236 = happyReduce 4# 65# happyReduction_236
-happyReduction_236 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut72 happy_x_3 of { happy_var_3 -> 
-	happyIn71
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_237 = happySpecReduce_2  66# happyReduction_237
-happyReduction_237 happy_x_2
-	happy_x_1
-	 =  case happyOut70 happy_x_1 of { happy_var_1 -> 
-	happyIn72
-		 ([happy_var_1]
-	)}
-
-happyReduce_238 = happySpecReduce_3  66# happyReduction_238
-happyReduction_238 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut70 happy_x_1 of { happy_var_1 -> 
-	case happyOut72 happy_x_3 of { happy_var_3 -> 
-	happyIn72
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_239 = happyMonadReduce 0# 67# happyReduction_239
-happyReduction_239 (happyRest) tk
-	 = happyThen (( getLineNo)
-	) (\r -> happyReturn (happyIn73 r))
-
-happyReduce_240 = happyMonadReduce 0# 68# happyReduction_240
-happyReduction_240 (happyRest) tk
-	 = happyThen (( getFileName)
-	) (\r -> happyReturn (happyIn74 r))
-
-happyReduce_241 = happyMonadReduce 0# 69# happyReduction_241
-happyReduction_241 (happyRest) tk
-	 = happyThen (( getOps)
-	) (\r -> happyReturn (happyIn75 r))
-
-happyNewToken action sts stk
-	= lexer(\tk -> 
-	let cont i = happyDoAction i tk action sts stk in
-	case tk of {
-	TokenEOF -> happyDoAction 114# tk action sts stk;
-	TokenName happy_dollar_dollar -> cont 1#;
-	TokenInfixName happy_dollar_dollar -> cont 2#;
-	TokenBrackName happy_dollar_dollar -> cont 3#;
-	TokenString happy_dollar_dollar -> cont 4#;
-	TokenInt happy_dollar_dollar -> cont 5#;
-	TokenFloat happy_dollar_dollar -> cont 6#;
-	TokenChar happy_dollar_dollar -> cont 7#;
-	TokenBool happy_dollar_dollar -> cont 8#;
-	TokenMetavar happy_dollar_dollar -> cont 9#;
-	TokenColon -> cont 10#;
-	TokenSemi -> cont 11#;
-	TokenBar -> cont 12#;
-	TokenStars -> cont 13#;
-	TokenLambda -> cont 14#;
-	TokenHashOB -> cont 15#;
-	TokenOB -> cont 16#;
-	TokenCB -> cont 17#;
-	TokenOCB -> cont 18#;
-	TokenCCB -> cont 19#;
-	TokenOSB -> cont 20#;
-	TokenCSB -> cont 21#;
-	TokenOId -> cont 22#;
-	TokenCId -> cont 23#;
-	TokenLPair -> cont 24#;
-	TokenRPair -> cont 25#;
-	TokenExists -> cont 26#;
-	TokenTilde -> cont 27#;
-	TokenPlus -> cont 28#;
-	TokenMinus -> cont 29#;
-	TokenTimes -> cont 30#;
-	TokenDivide -> cont 31#;
-	TokenEquals -> cont 32#;
-	TokenMightEqual -> cont 33#;
-	TokenLT -> cont 34#;
-	TokenGT -> cont 35#;
-	TokenEllipsis -> cont 36#;
-	TokenUnderscore -> cont 37#;
-	TokenComma -> cont 38#;
-	TokenTuple -> cont 39#;
-	TokenBang -> cont 40#;
-	TokenConcat -> cont 41#;
-	TokenGE -> cont 42#;
-	TokenLE -> cont 43#;
-	TokenOr -> cont 44#;
-	TokenAnd -> cont 45#;
-	TokenArrow -> cont 46#;
-	TokenFatArrow -> cont 47#;
-	TokenTransArrow -> cont 48#;
-	TokenLeftArrow -> cont 49#;
-	TokenIntType -> cont 50#;
-	TokenCharType -> cont 51#;
-	TokenFloatType -> cont 52#;
-	TokenStringType -> cont 53#;
-	TokenHandleType -> cont 54#;
-	TokenPtrType -> cont 55#;
-	TokenLockType -> cont 56#;
-	TokenType -> cont 57#;
-	TokenLazyBracket -> cont 58#;
-	TokenDataType -> cont 59#;
-	TokenInfix -> cont 60#;
-	TokenInfixL -> cont 61#;
-	TokenInfixR -> cont 62#;
-	TokenUsing -> cont 63#;
-	TokenIdiom -> cont 64#;
-	TokenParams -> cont 65#;
-	TokenNoElim -> cont 66#;
-	TokenCollapsible -> cont 67#;
-	TokenWhere -> cont 68#;
-	TokenWith -> cont 69#;
-	TokenPartial -> cont 70#;
-	TokenSyntax -> cont 71#;
-	TokenLazy -> cont 72#;
-	TokenRefl -> cont 73#;
-	TokenEmptyType -> cont 74#;
-	TokenUnitType -> cont 75#;
-	TokenInclude -> cont 76#;
-	TokenExport -> cont 77#;
-	TokenInline -> cont 78#;
-	TokenDo -> cont 79#;
-	TokenReturn -> cont 80#;
-	TokenIf -> cont 81#;
-	TokenThen -> cont 82#;
-	TokenElse -> cont 83#;
-	TokenLet -> cont 84#;
-	TokenIn -> cont 85#;
-	TokenProof -> cont 86#;
-	TokenIntro -> cont 87#;
-	TokenRefine -> cont 88#;
-	TokenGeneralise -> cont 89#;
-	TokenReflP -> cont 90#;
-	TokenRewrite -> cont 91#;
-	TokenRewriteAll -> cont 92#;
-	TokenCompute -> cont 93#;
-	TokenUnfold -> cont 94#;
-	TokenUndo -> cont 95#;
-	TokenInduction -> cont 96#;
-	TokenFill -> cont 97#;
-	TokenTrivial -> cont 98#;
-	TokenMkTac -> cont 99#;
-	TokenBelieve -> cont 100#;
-	TokenUse -> cont 101#;
-	TokenDecide -> cont 102#;
-	TokenAbandon -> cont 103#;
-	TokenQED -> cont 104#;
-	TokenLaTeX -> cont 105#;
-	TokenNoCG -> cont 106#;
-	TokenEval -> cont 107#;
-	TokenSpec -> cont 108#;
-	TokenFreeze -> cont 109#;
-	TokenThaw -> cont 110#;
-	TokenTransform -> cont 111#;
-	TokenCInclude -> cont 112#;
-	TokenCLib -> cont 113#;
-	_ -> happyError' tk
-	})
-
-happyError_ tk = happyError' tk
-
-happyThen :: () => P a -> (a -> P b) -> P b
-happyThen = (thenP)
-happyReturn :: () => a -> P a
-happyReturn = (returnP)
-happyThen1 = happyThen
-happyReturn1 :: () => a -> P a
-happyReturn1 = happyReturn
-happyError' :: () => (Token) -> P a
-happyError' tk = (\token -> happyError) tk
-
-mkparse = happySomeParser where
-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
-
-mkparseTerm = happySomeParser where
-  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut31 x))
-
-mkparseTactic = happySomeParser where
-  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut70 x))
-
-happySeq = happyDontSeq
-
-
-data ConParse = Full Id RawTerm
-              | Simple Id [RawTerm]
-
-parse :: String -> FilePath -> Result [Decl]
-parse s fn = do ds <- mkparse s fn 1 []
-                collectDecls ds
-
-processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
-                  IO ([Decl], [FilePath])
-processImports opts imped (Success ds) = pi imped [] ds
-  where pi imps decls ((PInclude fp):xs)
-           | fp `elem` imps = pi imps decls xs
-           | otherwise = do
-                 f <- readLibFile defaultLibPath fp
-                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
-                 case parse f fp of
-                   Success t -> pi (fp:imps) decls (t++xs)
-                   Failure e f l ->
-                     fail $ f ++ ":" ++ show l ++ ":" ++ e
-        pi imps decls ((Using t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Using t ds']) xs
-        pi imps decls ((Params t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Params t ds']) xs
-        pi imps decls ((DoUsing b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[DoUsing b r ds']) xs
-        pi imps decls ((Idiom b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Idiom b r ds']) xs
-        pi imps decls (x:xs) = pi imps (decls++[x]) xs
-        pi imps decls [] = return (decls, imps)
-
-processImports _ imped (Failure e f l) 
-    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
-
-
-parseTerm :: String -> Result RawTerm
-parseTerm s = mkparseTerm s "(input)" 0 []
-
-parseTactic :: String -> Result ITactic
-parseTactic s = mkparseTactic s "(tactic)" 0 []
-
-mkCon :: RawTerm -> ConParse -> (Id,RawTerm)
-mkCon _ (Full n t) = (n,t)
-mkCon ty (Simple n args) = (n, mkConTy args ty)
-   where mkConTy [] ty = ty
-         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex Eager a) (mkConTy as ty)
-
-mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
-   where mkImpApp f [] = f
-         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
-         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
-
-doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
-doBind b [] t = t
-doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
-
-doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
-doLetBind [] t = t
-doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
-
-mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
-mkTyApp file line n ty = mkApp file line (RVar file line n) (getTyArgs ty)
-   where getTyArgs (RBind n _ t) = (RVar file line n):(getTyArgs t)
-         getTyArgs x = []
-
-mkTyParams :: String -> Int -> [Id] -> RawTerm
-mkTyParams f l [] = RConst f l TYPE
-mkTyParams f l (x:xs) = RBind x (Pi Ex Eager (RConst f l TYPE)) (mkTyParams f l xs)
-
-mkDatatype :: String -> Int ->
-              Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
-                    [TyOpt] -> Datatype
-mkDatatype file line n (Right ((t, using), cons)) opts
-    = Datatype n t (map (mkCon (mkTyApp file line n t)) cons) using opts file line 
-mkDatatype file line n (Left t) opts
-    = Latatype n t file line
-
-bracket (RUserInfix f l _ op x y) = RUserInfix f l True op x y
-bracket x = x
-
-pairDesugar :: String -> Int -> RawTerm -> [RawTerm] -> RawTerm
-pairDesugar file line pair [x,y] = mkApp file line pair [x,y]
-pairDesugar file line pair (x:y:xs) 
-    = pairDesugar file line pair ((mkApp file line pair [x,y]):xs)
-
-sigDesugar :: String -> Int -> (Id, RawTerm) -> RawTerm -> RawTerm
-sigDesugar file line (n, tm) sc
-    = mkApp file line (RVar file line (UN "Sigma")) [tm, lam]
-   where lam = RBind n (Lam tm) sc
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "<built-in>" #-}
-{-# LINE 1 "<command line>" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
-
-{-# LINE 28 "templates/GenericTemplate.hs" #-}
-
-
-data Happy_IntList = HappyCons Int# Happy_IntList
-
-
-
-
-
-{-# LINE 49 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 59 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 68 "templates/GenericTemplate.hs" #-}
-
-infixr 9 `HappyStk`
-data HappyStk a = HappyStk a (HappyStk a)
-
------------------------------------------------------------------------------
--- starting the parse
-
-happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
-
------------------------------------------------------------------------------
--- Accepting the parse
-
--- If the current token is 0#, it means we've just accepted a partial
--- parse (a %partial parser).  We must ignore the saved token on the top of
--- the stack in this case.
-happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
-	happyReturn1 ans
-happyAccept j tk st sts (HappyStk ans _) = 
-	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)
-
------------------------------------------------------------------------------
--- Arrays only: do the next action
-
-
-
-happyDoAction i tk st
-	= {- nothing -}
-
-
-	  case action of
-		0#		  -> {- nothing -}
-				     happyFail i tk st
-		-1# 	  -> {- nothing -}
-				     happyAccept i tk st
-		n | (n <# (0# :: Int#)) -> {- nothing -}
-
-				     (happyReduceArr ! rule) i tk st
-				     where rule = (I# ((negateInt# ((n +# (1# :: Int#))))))
-		n		  -> {- nothing -}
-
-
-				     happyShift new_state i tk st
-				     where new_state = (n -# (1# :: Int#))
-   where off    = indexShortOffAddr happyActOffsets st
-	 off_i  = (off +# i)
-	 check  = if (off_i >=# (0# :: Int#))
-			then (indexShortOffAddr happyCheck off_i ==#  i)
-			else False
- 	 action | check     = indexShortOffAddr happyTable off_i
-		| otherwise = indexShortOffAddr happyDefActions st
-
-{-# LINE 127 "templates/GenericTemplate.hs" #-}
-
-
-indexShortOffAddr (HappyA# arr) off =
-#if __GLASGOW_HASKELL__ > 500
-	narrow16Int# i
-#elif __GLASGOW_HASKELL__ == 500
-	intToInt16# i
-#else
-	(i `iShiftL#` 16#) `iShiftRA#` 16#
-#endif
-  where
-#if __GLASGOW_HASKELL__ >= 503
-	i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)
-#else
-	i = word2Int# ((high `shiftL#` 8#) `or#` low)
-#endif
-	high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))
-	low  = int2Word# (ord# (indexCharOffAddr# arr off'))
-	off' = off *# 2#
-
-
-
-
-
-data HappyAddr = HappyA# Addr#
-
-
-
-
------------------------------------------------------------------------------
--- HappyState data type (not arrays)
-
-{-# LINE 170 "templates/GenericTemplate.hs" #-}
-
------------------------------------------------------------------------------
--- Shifting a token
-
-happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
-     let i = (case unsafeCoerce# x of { (I# (i)) -> i }) in
---     trace "shifting the error token" $
-     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
-
-happyShift new_state i tk st sts stk =
-     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
-
--- happyReduce is specialised for the common cases.
-
-happySpecReduce_0 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_0 nt fn j tk st@((action)) sts stk
-     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
-
-happySpecReduce_1 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
-     = let r = fn v1 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_2 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
-     = let r = fn v1 v2 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_3 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
-     = let r = fn v1 v2 v3 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happyReduce k i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyReduce k nt fn j tk st sts stk
-     = case happyDrop (k -# (1# :: Int#)) sts of
-	 sts1@((HappyCons (st1@(action)) (_))) ->
-        	let r = fn stk in  -- it doesn't hurt to always seq here...
-       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)
-
-happyMonadReduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonadReduce k nt fn j tk st sts stk =
-        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-happyMonad2Reduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonad2Reduce k nt fn j tk st sts stk =
-       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-             off    = indexShortOffAddr happyGotoOffsets st1
-             off_i  = (off +# nt)
-             new_state = indexShortOffAddr happyTable off_i
-
-
-
-
-happyDrop 0# l = l
-happyDrop n (HappyCons (_) (t)) = happyDrop (n -# (1# :: Int#)) t
-
-happyDropStk 0# l = l
-happyDropStk n (x `HappyStk` xs) = happyDropStk (n -# (1#::Int#)) xs
-
------------------------------------------------------------------------------
--- Moving to a new state after a reduction
-
-
-happyGoto nt j tk st = 
-   {- nothing -}
-   happyDoAction j tk new_state
-   where off    = indexShortOffAddr happyGotoOffsets st
-	 off_i  = (off +# nt)
- 	 new_state = indexShortOffAddr happyTable off_i
-
-
-
-
------------------------------------------------------------------------------
--- Error recovery (0# is the error token)
-
--- parse error if we are in recovery and we fail again
-happyFail  0# tk old_st _ stk =
---	trace "failing" $ 
-    	happyError_ tk
-
-{-  We don't need state discarding for our restricted implementation of
-    "error".  In fact, it can cause some bogus parses, so I've disabled it
-    for now --SDM
-
--- discard a state
-happyFail  0# tk old_st (HappyCons ((action)) (sts)) 
-						(saved_tok `HappyStk` _ `HappyStk` stk) =
---	trace ("discarding state, depth " ++ show (length stk))  $
-	happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))
--}
-
--- Enter error recovery: generate an error token,
---                       save the old token and carry on.
-happyFail  i tk (action) sts stk =
---      trace "entering error recovery" $
-	happyDoAction 0# tk action sts ( (unsafeCoerce# (I# (i))) `HappyStk` stk)
-
--- Internal happy errors:
-
-notHappyAtAll = error "Internal Happy error\n"
-
------------------------------------------------------------------------------
--- Hack to get the typechecker to accept our action functions
-
-
-happyTcHack :: Int# -> a -> a
+{-# OPTIONS_GHC -fno-warn-overlapping-patterns #-}
+{-# OPTIONS -fglasgow-exts -cpp #-}
+-- -*-Haskell-*-
+{-# OPTIONS_GHC -fglasgow-exts #-}
+
+module Idris.Parser where
+
+import Data.Char
+import Ivor.TT
+import System.IO.Unsafe
+import List
+import Control.Monad
+
+import Idris.AbsSyntax
+import Idris.Lexer
+import Idris.Lib
+
+import Debug.Trace
+#if __GLASGOW_HASKELL__ >= 503
+import qualified Data.Array as Happy_Data_Array
+#else
+import qualified Array as Happy_Data_Array
+#endif
+#if __GLASGOW_HASKELL__ >= 503
+import qualified GHC.Exts as Happy_GHC_Exts
+#else
+import qualified GlaExts as Happy_GHC_Exts
+#endif
+
+-- parser produced by Happy Version 1.18.4
+
+newtype HappyAbsSyn t69 = HappyAbsSyn HappyAny
+#if __GLASGOW_HASKELL__ >= 607
+type HappyAny = Happy_GHC_Exts.Any
+#else
+type HappyAny = forall a . a
+#endif
+happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t69)
+happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn6 #-}
+happyOut6 :: (HappyAbsSyn t69) -> ([ParseDecl])
+happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut6 #-}
+happyIn7 :: (ParseDecl) -> (HappyAbsSyn t69)
+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn7 #-}
+happyOut7 :: (HappyAbsSyn t69) -> (ParseDecl)
+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut7 #-}
+happyIn8 :: (Decl) -> (HappyAbsSyn t69)
+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn8 #-}
+happyOut8 :: (HappyAbsSyn t69) -> (Decl)
+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut8 #-}
+happyIn9 :: (ParseDecl) -> (HappyAbsSyn t69)
+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn9 #-}
+happyOut9 :: (HappyAbsSyn t69) -> (ParseDecl)
+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut9 #-}
+happyIn10 :: (CGFlag) -> (HappyAbsSyn t69)
+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn10 #-}
+happyOut10 :: (HappyAbsSyn t69) -> (CGFlag)
+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut10 #-}
+happyIn11 :: (Bool) -> (HappyAbsSyn t69)
+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn11 #-}
+happyOut11 :: (HappyAbsSyn t69) -> (Bool)
+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut11 #-}
+happyIn12 :: ([RawTerm]) -> (HappyAbsSyn t69)
+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn12 #-}
+happyOut12 :: (HappyAbsSyn t69) -> ([RawTerm])
+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut12 #-}
+happyIn13 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn13 #-}
+happyOut13 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut13 #-}
+happyIn14 :: ([ParseDecl]) -> (HappyAbsSyn t69)
+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn14 #-}
+happyOut14 :: (HappyAbsSyn t69) -> ([ParseDecl])
+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut14 #-}
+happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t69)
+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn15 #-}
+happyOut15 :: (HappyAbsSyn t69) -> ([CGFlag])
+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut15 #-}
+happyIn16 :: ([CGFlag]) -> (HappyAbsSyn t69)
+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn16 #-}
+happyOut16 :: (HappyAbsSyn t69) -> ([CGFlag])
+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut16 #-}
+happyIn17 :: ([CGFlag]) -> (HappyAbsSyn t69)
+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn17 #-}
+happyOut17 :: (HappyAbsSyn t69) -> ([CGFlag])
+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut17 #-}
+happyIn18 :: ([Decl]) -> (HappyAbsSyn t69)
+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn18 #-}
+happyOut18 :: (HappyAbsSyn t69) -> ([Decl])
+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut18 #-}
+happyIn19 :: ([String]) -> (HappyAbsSyn t69)
+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn19 #-}
+happyOut19 :: (HappyAbsSyn t69) -> ([String])
+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut19 #-}
+happyIn20 :: (String) -> (HappyAbsSyn t69)
+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn20 #-}
+happyOut20 :: (HappyAbsSyn t69) -> (String)
+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut20 #-}
+happyIn21 :: (Fixity) -> (HappyAbsSyn t69)
+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn21 #-}
+happyOut21 :: (HappyAbsSyn t69) -> (Fixity)
+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut21 #-}
+happyIn22 :: (Decl) -> (HappyAbsSyn t69)
+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn22 #-}
+happyOut22 :: (HappyAbsSyn t69) -> (Decl)
+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut22 #-}
+happyIn23 :: ([(Id,String)]) -> (HappyAbsSyn t69)
+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn23 #-}
+happyOut23 :: (HappyAbsSyn t69) -> ([(Id,String)])
+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut23 #-}
+happyIn24 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t69)
+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn24 #-}
+happyOut24 :: (HappyAbsSyn t69) -> ((Id, [(RawTerm, Maybe Id)]))
+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut24 #-}
+happyIn25 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t69)
+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn25 #-}
+happyOut25 :: (HappyAbsSyn t69) -> ([(RawTerm,Maybe Id)])
+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut25 #-}
+happyIn26 :: (Datatype) -> (HappyAbsSyn t69)
+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn26 #-}
+happyOut26 :: (HappyAbsSyn t69) -> (Datatype)
+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut26 #-}
+happyIn27 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t69)
+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn27 #-}
+happyOut27 :: (HappyAbsSyn t69) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut27 #-}
+happyIn28 :: ([TyOpt]) -> (HappyAbsSyn t69)
+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn28 #-}
+happyOut28 :: (HappyAbsSyn t69) -> ([TyOpt])
+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut28 #-}
+happyIn29 :: ([TyOpt]) -> (HappyAbsSyn t69)
+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn29 #-}
+happyOut29 :: (HappyAbsSyn t69) -> ([TyOpt])
+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut29 #-}
+happyIn30 :: (TyOpt) -> (HappyAbsSyn t69)
+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn30 #-}
+happyOut30 :: (HappyAbsSyn t69) -> (TyOpt)
+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut30 #-}
+happyIn31 :: (Id) -> (HappyAbsSyn t69)
+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn31 #-}
+happyOut31 :: (HappyAbsSyn t69) -> (Id)
+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut31 #-}
+happyIn32 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn32 #-}
+happyOut32 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut32 #-}
+happyIn33 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn33 #-}
+happyOut33 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut33 #-}
+happyIn34 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn34 #-}
+happyOut34 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut34 #-}
+happyIn35 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn35 #-}
+happyOut35 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut35 #-}
+happyIn36 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn36 #-}
+happyOut36 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut36 #-}
+happyIn37 :: ([Id]) -> (HappyAbsSyn t69)
+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn37 #-}
+happyOut37 :: (HappyAbsSyn t69) -> ([Id])
+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut37 #-}
+happyIn38 :: ([(Id, Int)]) -> (HappyAbsSyn t69)
+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn38 #-}
+happyOut38 :: (HappyAbsSyn t69) -> ([(Id, Int)])
+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut38 #-}
+happyIn39 :: ([Id]) -> (HappyAbsSyn t69)
+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn39 #-}
+happyOut39 :: (HappyAbsSyn t69) -> ([Id])
+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut39 #-}
+happyIn40 :: ([Id]) -> (HappyAbsSyn t69)
+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn40 #-}
+happyOut40 :: (HappyAbsSyn t69) -> ([Id])
+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut40 #-}
+happyIn41 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn41 #-}
+happyOut41 :: (HappyAbsSyn t69) -> ([(Id, RawTerm, RawTerm)])
+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut41 #-}
+happyIn42 :: ((Id, RawTerm)) -> (HappyAbsSyn t69)
+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn42 #-}
+happyOut42 :: (HappyAbsSyn t69) -> ((Id, RawTerm))
+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut42 #-}
+happyIn43 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn43 #-}
+happyOut43 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut43 #-}
+happyIn44 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn44 #-}
+happyOut44 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut44 #-}
+happyIn45 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn45 #-}
+happyOut45 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut45 #-}
+happyIn46 :: (String) -> (HappyAbsSyn t69)
+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn46 #-}
+happyOut46 :: (HappyAbsSyn t69) -> (String)
+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut46 #-}
+happyIn47 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn47 #-}
+happyOut47 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut47 #-}
+happyIn48 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn48 #-}
+happyOut48 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut48 #-}
+happyIn49 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn49 #-}
+happyOut49 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut49 #-}
+happyIn50 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn50 #-}
+happyOut50 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut50 #-}
+happyIn51 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn51 #-}
+happyOut51 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut51 #-}
+happyIn52 :: ([RawTerm]) -> (HappyAbsSyn t69)
+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn52 #-}
+happyOut52 :: (HappyAbsSyn t69) -> ([RawTerm])
+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut52 #-}
+happyIn53 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn53 #-}
+happyOut53 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut53 #-}
+happyIn54 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn54 #-}
+happyOut54 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut54 #-}
+happyIn55 :: ([RawTerm]) -> (HappyAbsSyn t69)
+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn55 #-}
+happyOut55 :: (HappyAbsSyn t69) -> ([RawTerm])
+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut55 #-}
+happyIn56 :: ([Do]) -> (HappyAbsSyn t69)
+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn56 #-}
+happyOut56 :: (HappyAbsSyn t69) -> ([Do])
+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut56 #-}
+happyIn57 :: ([Do]) -> (HappyAbsSyn t69)
+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn57 #-}
+happyOut57 :: (HappyAbsSyn t69) -> ([Do])
+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut57 #-}
+happyIn58 :: (Do) -> (HappyAbsSyn t69)
+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn58 #-}
+happyOut58 :: (HappyAbsSyn t69) -> (Do)
+happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut58 #-}
+happyIn59 :: (Constant) -> (HappyAbsSyn t69)
+happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn59 #-}
+happyOut59 :: (HappyAbsSyn t69) -> (Constant)
+happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut59 #-}
+happyIn60 :: ([RawTerm]) -> (HappyAbsSyn t69)
+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn60 #-}
+happyOut60 :: (HappyAbsSyn t69) -> ([RawTerm])
+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut60 #-}
+happyIn61 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t69)
+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn61 #-}
+happyOut61 :: (HappyAbsSyn t69) -> ((RawTerm, [(Id, RawTerm)]))
+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut61 #-}
+happyIn62 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn62 #-}
+happyOut62 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut62 #-}
+happyIn63 :: ((Id,Id)) -> (HappyAbsSyn t69)
+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn63 #-}
+happyOut63 :: (HappyAbsSyn t69) -> ((Id,Id))
+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut63 #-}
+happyIn64 :: ((Id,Id)) -> (HappyAbsSyn t69)
+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn64 #-}
+happyOut64 :: (HappyAbsSyn t69) -> ((Id,Id))
+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut64 #-}
+happyIn65 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn65 #-}
+happyOut65 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut65 #-}
+happyIn66 :: (Id) -> (HappyAbsSyn t69)
+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn66 #-}
+happyOut66 :: (HappyAbsSyn t69) -> (Id)
+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut66 #-}
+happyIn67 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t69)
+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn67 #-}
+happyOut67 :: (HappyAbsSyn t69) -> ([(Id, RawTerm)])
+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut67 #-}
+happyIn68 :: ([Id]) -> (HappyAbsSyn t69)
+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn68 #-}
+happyOut68 :: (HappyAbsSyn t69) -> ([Id])
+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut68 #-}
+happyIn69 :: t69 -> (HappyAbsSyn t69)
+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn69 #-}
+happyOut69 :: (HappyAbsSyn t69) -> t69
+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut69 #-}
+happyIn70 :: ([ConParse]) -> (HappyAbsSyn t69)
+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn70 #-}
+happyOut70 :: (HappyAbsSyn t69) -> ([ConParse])
+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut70 #-}
+happyIn71 :: (ConParse) -> (HappyAbsSyn t69)
+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn71 #-}
+happyOut71 :: (HappyAbsSyn t69) -> (ConParse)
+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut71 #-}
+happyIn72 :: (RawTerm) -> (HappyAbsSyn t69)
+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn72 #-}
+happyOut72 :: (HappyAbsSyn t69) -> (RawTerm)
+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut72 #-}
+happyIn73 :: (ITactic) -> (HappyAbsSyn t69)
+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn73 #-}
+happyOut73 :: (HappyAbsSyn t69) -> (ITactic)
+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut73 #-}
+happyIn74 :: ([ITactic]) -> (HappyAbsSyn t69)
+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn74 #-}
+happyOut74 :: (HappyAbsSyn t69) -> ([ITactic])
+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut74 #-}
+happyIn75 :: ([ITactic]) -> (HappyAbsSyn t69)
+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn75 #-}
+happyOut75 :: (HappyAbsSyn t69) -> ([ITactic])
+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut75 #-}
+happyIn76 :: (LineNumber) -> (HappyAbsSyn t69)
+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn76 #-}
+happyOut76 :: (HappyAbsSyn t69) -> (LineNumber)
+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut76 #-}
+happyIn77 :: (String) -> (HappyAbsSyn t69)
+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn77 #-}
+happyOut77 :: (HappyAbsSyn t69) -> (String)
+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut77 #-}
+happyIn78 :: (Fixities) -> (HappyAbsSyn t69)
+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn78 #-}
+happyOut78 :: (HappyAbsSyn t69) -> (Fixities)
+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut78 #-}
+happyInTok :: (Token) -> (HappyAbsSyn t69)
+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyInTok #-}
+happyOutTok :: (HappyAbsSyn t69) -> (Token)
+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOutTok #-}
+
+
+happyActOffsets :: HappyAddr
+happyActOffsets = HappyA# "\x1a\x00\x44\x05\x1e\x0e\x00\x00\xf2\x03\x13\x01\x13\x01\x44\x05\x00\x00\x46\x03\xf1\x02\x00\x00\x13\x01\x00\x00\x44\x05\x44\x05\x00\x00\x44\x05\x44\x05\x44\x05\x44\x05\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x01\x23\x09\x47\x02\x44\x05\x44\x05\x17\x08\x44\x05\x00\x00\x13\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x05\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x44\x05\x6a\x00\xeb\x03\x01\x00\x00\x00\x00\x00\x01\x00\x5a\x04\x00\x00\x36\x04\x00\x00\x0d\x02\x4a\x04\x40\x04\x3f\x04\x3d\x04\x35\x04\x5d\x09\xb9\x01\x27\x04\x00\x00\x00\x00\x00\x00\x31\x04\x30\x04\x2a\x04\x6a\x00\x6a\x00\x34\x04\xf6\x03\x1d\x04\x2b\x04\x44\x05\x18\x04\x17\x04\x00\x00\x00\x00\x8b\x03\x0f\x04\x6a\x00\x06\x04\x0e\x04\x6a\x00\x00\x00\x6a\x00\x6a\x00\x6a\x00\x6a\x00\x12\x02\x03\x04\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\x17\x00\x00\x00\x00\x00\x9c\x02\x00\x00\x00\x00\x00\x00\xcf\x00\xcf\x00\xcf\x00\xcf\x00\xcf\x00\x00\x00\xdd\x07\x08\x04\x0e\x01\xe9\x08\x00\x04\xe9\xff\x5d\x09\xb9\x01\x00\x00\x00\x00\x07\x04\xb7\x03\x8c\x02\x00\x00\x05\x04\xef\x04\x00\x00\x00\x00\x0b\x04\x00\x00\x0b\x04\x00\x00\x0c\x0a\xa8\x0a\xca\x01\xfc\x09\x9a\x04\xfb\x03\x9a\x04\x9a\x04\xf9\x03\xf8\x03\x9a\x04\x9a\x04\xb2\x01\x4e\x00\x00\x00\x9a\x04\xaf\x08\x6a\x00\xfd\x03\xce\x03\x00\x00\x17\x08\xe7\x03\x00\x00\x9a\x04\xdc\x03\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x00\x00\x8a\x01\x76\x01\x68\x01\x54\x01\x46\x01\x32\x01\x00\x00\x24\x01\x9a\x04\x10\x01\x9a\x04\xc4\x00\x00\x00\xd5\x03\x00\x00\x6a\x00\x5b\x00\x05\x00\x00\x00\xef\x03\xef\x03\xef\x03\xef\x03\xef\x03\x00\x00\x9a\x04\xef\x03\x17\x08\x00\x00\x00\x00\x00\x00\x9a\x04\xc7\x03\x23\x09\xe2\x03\xda\x03\xc0\x03\xb7\x01\xd4\x03\x86\x00\xcf\x03\x8f\x0a\x23\x09\x00\x00\x23\x09\xd0\x03\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x17\x09\x00\x00\x9a\x04\x00\x00\x9a\x04\x9a\x04\x9a\x04\x9a\x04\x9a\x04\xcd\x03\x00\x00\x00\x00\x9a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\x17\x09\xc4\x03\x45\x04\x6a\x00\x96\x03\x00\x00\xf0\x03\xf0\x03\xa6\x03\xba\x03\x9e\x03\xb3\x03\xf0\x03\xf0\x03\xf0\x03\x67\x03\x1e\x0e\xb4\x03\x97\x00\x03\x00\x97\x03\xdd\x07\xf0\x03\x00\x00\x00\x00\xa9\x03\xa8\x03\xa4\x03\xa2\x03\xa1\x03\x00\x00\x00\x00\xef\x09\x9f\x03\x00\x00\x00\x00\xf0\x03\xf0\x03\xf0\x03\x00\x00\x9a\x03\x86\x03\x00\x00\x00\x00\xe3\x00\x9d\x03\x94\x03\x80\x03\x87\x03\x6a\x00\x7d\x03\x01\x00\x6a\x00\x83\x03\x77\x03\x00\x00\xf0\x03\x82\x0a\x8d\x03\x00\x00\x69\x03\x00\x00\xf0\x03\x00\x00\x00\x00\x6a\x00\x00\x00\xe9\x08\x00\x00\x6a\x00\x6a\x00\x70\x03\xe9\x08\x00\x00\x00\x00\x12\x02\x00\x00\x80\x0a\x6d\x0a\x5a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x0a\x00\x00\x6a\x00\x00\x00\x00\x00\xcd\x01\xcd\x01\x82\x03\x00\x00\x00\x00\x00\x00\x7c\x03\x78\x03\x23\x09\x7f\x03\x76\x03\x00\x00\x46\x0a\xac\x01\x32\x0a\x00\x00\xb9\x01\x00\x00\xf0\x03\xa7\x00\x45\x00\xf0\x03\x7b\x03\x00\x00\x00\x00\x00\x00\x57\x03\x76\x08\x00\x00\x51\x08\x29\x0a\x00\x00\x23\x09\x00\x00\x0e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x03\x00\x00\x6f\x03\x00\x00\x17\x08\x00\x00\x55\x03\x00\x00\x00\x00\x00\x00\x00\x00\x23\x09\x23\x09\x54\x03\xe9\x08\x6a\x00\x53\x03\xe9\x08\x03\x00\x6a\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x08\x51\x08\x51\x08\x51\x08\x51\x08\x51\x08\x00\x00\x00\x00\x00\x00\x00\x00\x23\x09\x00\x00\x88\x00\x23\x09\x1d\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x07\x00\x00\x69\x07\x00\x00\x2f\x07\x00\x00\xf5\x06\x65\x03\x63\x03\x62\x03\x5b\x03\x59\x03\x1c\x00\x00\x00\x00\x00\xf0\x03\xbb\x06\x49\x03\x17\x09\xf0\x03\x0a\x02\x00\x00\x82\x01\x5d\x03\x4c\x03\x00\x00\x1e\x0e\x03\x00\x36\x03\x6a\x00\x00\x00\x4d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x81\x06\x00\x00\x82\x01\x00\x00\x4b\x03\x00\x00\x00\x00\x00\x00\xf6\xff\x00\x00\x47\x06\x52\x03\x4e\x03\x00\x00\x00\x00\x31\x03\x47\x03\x19\x0a\x6a\x00\x2b\x03\x00\x00\x6a\x00\x42\x03\x00\x00\x00\x00\x6a\x00\x00\x00\x6a\x00\x00\x00\x17\x08\x00\x00\x00\x00\xe9\x08\x00\x00\x08\x03\x00\x00\x00\x00\x00\x00\x6a\x00\x82\x01\x3f\x03\x00\x00\x00\x00\x00\x00\x3d\x03\x00\x00\xfe\xff\x32\x03\xe9\x08\x00\x00\x6a\x00\x00\x00\x2f\x03\x6a\x00\x3e\x03\x00\x00\xf0\x03\x00\x00\x17\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x03\x0d\x03\x29\x03\x00\x00\x00\x00\x00\x00\x0a\x02\x0d\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x03\x00\x00\x00\x00\x12\x03\x6a\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x76\x08\x9b\x03\x00\x00\xd3\x05\x00\x00\x00\x00\x00\x00\x99\x05\x20\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyGotoOffsets :: HappyAddr
+happyGotoOffsets = HappyA# "\x67\x09\x43\x0e\xef\x02\x00\x00\x00\x00\x91\x01\x16\x03\x32\x0e\x00\x00\x21\x0e\x10\x0e\x00\x00\x13\x03\x00\x00\xff\x0d\xee\x0d\x00\x00\xdd\x0d\xcc\x0d\xbb\x0d\xaa\x0d\x00\x00\x00\x00\xda\x02\x41\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x01\xaf\x06\xab\x0a\x99\x0d\x88\x0d\x58\x05\x77\x0d\x00\x00\x05\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x0d\x00\x00\xd6\x02\xd5\x02\x00\x00\xd1\x02\x55\x0d\x4d\x01\x00\x00\xf4\x08\x00\x00\x00\x00\x72\x05\x00\x00\x00\x00\x11\x03\x00\x00\xb8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x07\x03\xfe\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x02\xf9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x44\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x41\x01\x00\x00\x86\x01\x00\x00\x00\x00\x0f\x01\x00\x00\x60\x00\xf6\x02\x48\x00\xf4\x02\x1f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x03\xc4\x02\x40\x01\x00\x00\xc3\x02\xbe\x0a\x00\x00\xb7\x02\xb6\x02\x1d\x05\xc8\x04\x73\x04\x1e\x04\xc9\x03\x00\x00\x04\x04\x00\x00\x00\x00\xce\x07\x00\x00\xc1\x02\xff\xff\x0b\x02\x00\x00\x00\x00\xd3\x02\x00\x00\x3d\x01\xad\x02\xd2\x02\xf1\x0a\xa8\x02\xa7\x02\x39\x01\xa5\x02\x36\x01\x00\x00\x17\x01\x17\x01\x27\x01\x8d\x00\x33\x0d\x00\x00\x22\x0d\x11\x0d\x00\x00\x00\x00\xbe\x09\xba\x09\x15\x01\x00\x00\x00\x00\x00\x0d\xc7\x05\x11\x02\xbb\x02\x00\x00\xa1\x02\x36\x05\x00\x00\xa0\x02\xef\x0c\x9e\x02\xde\x0c\xcd\x0c\xbc\x0c\xab\x0c\x9a\x0c\x9b\x02\x14\x01\x14\x01\x14\x01\x14\x01\x14\x01\x14\x01\x00\x00\x14\x01\x89\x0c\x14\x01\x78\x0c\x14\x01\x00\x00\x00\x00\x00\x00\x87\x01\x14\x01\x14\x01\x00\x00\x0c\x01\x07\x01\x06\x01\x05\x01\xf8\x00\x9a\x02\x67\x0c\xe5\x00\x03\x05\x98\x02\x96\x02\x00\x00\x56\x0c\x00\x00\x75\x06\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\xde\x00\x3b\x06\x00\x00\x39\x06\x00\x00\x95\x02\xd7\x00\x92\x02\xd2\x00\x91\x02\xd1\x00\x82\x02\xc1\x00\x81\x02\x9f\x09\x00\x00\x9b\x09\x45\x0c\x34\x0c\x40\x03\x80\x09\x00\x00\x00\x00\x80\x02\x23\x0c\x7f\x02\x7d\x02\x7c\x02\x00\x00\x00\x00\xe2\xff\xba\x00\x00\x00\xe0\x0a\x3f\x01\x00\x00\x00\x00\x12\x0c\x01\x0c\x00\x00\x00\x00\x00\x00\xba\x02\xf0\x0b\xdf\x0b\xce\x0b\x00\x00\xa6\x01\xbc\x01\x48\x02\x00\x00\x00\x00\xaf\x03\xbd\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x02\x76\x02\xb8\x00\x00\x00\x75\x02\x6f\x02\xac\x0b\x9b\x0b\x8a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\xca\x02\x9f\x02\x00\x00\x00\x00\x00\x00\x79\x0b\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x0b\x00\x00\x00\x00\x9d\x02\x00\x00\x94\x07\x6a\x02\x08\x00\x30\x00\x00\x00\x5a\x07\x69\x02\x66\x02\xf1\x01\x00\x00\xb8\x00\xb8\x00\xb8\x00\x00\x00\x00\x00\x61\x02\x00\x00\x02\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x60\x02\x53\x01\x5f\x02\x00\x00\xee\x01\xbd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x06\x00\x00\x00\x00\x00\x00\xb8\x00\x0c\x00\xb8\x00\x00\x00\x95\x01\x00\x00\x57\x0b\xb8\x00\xb8\x00\x46\x0b\xd6\x01\x00\x00\x00\x00\x53\x02\x00\x00\xe1\x04\x00\x00\xe1\x04\xb8\x00\x52\x02\x7b\x05\x51\x02\xb8\x00\x00\x00\x4c\x02\x4b\x02\x43\x02\x41\x02\x40\x02\x3b\x02\x32\x02\x00\x00\x31\x02\x00\x00\x30\x02\xae\x04\x2c\x02\x00\x00\x2b\x02\x00\x00\x1e\x02\x00\x00\x01\x03\x57\x02\x00\x00\x20\x07\xd9\x01\x00\x00\xe6\x06\x00\x00\xf3\xff\xb8\x00\x25\x02\x22\x02\x00\x00\x20\x02\xb8\x00\x00\x00\x18\x02\x0e\x02\x04\x02\x01\x02\xf8\x01\x00\x00\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x8c\x04\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x01\x00\x00\x00\x00\xa0\x01\x00\x00\x00\x00\xed\x01\xf3\x01\xe5\x01\xe0\x01\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x8c\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\x35\x0b\x8c\x04\x00\x00\xb5\x00\x24\x0b\x99\x00\x00\x00\x21\x02\x00\x00\x00\x00\x00\x00\x9f\x01\x00\x00\x00\x00\x85\x01\x00\x00\x00\x00\x00\x00\xc5\x01\x00\x00\xaf\x01\x5b\x02\xaa\x01\x99\x01\x00\x00\x00\x00\x00\x00\x97\x01\x7c\x01\x71\x01\x4a\x01\x1d\x09\x00\x00\x00\x00\x00\x00\x38\x01\x00\x00\x00\x00\x99\x00\x31\x01\x00\x00\x00\x00\x56\x01\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\xf9\xff\x00\x00\x59\x04\x00\x00\x00\x00\x72\x06\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x01\x77\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x01\x00\x00\x0b\x01\xd9\x00\x00\x00\xe1\x00\x7b\x00\xa6\x00\x13\x0b\x00\x00\x3f\x00\x82\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x50\x00\xef\xff\x37\x04\x4b\x00\x00\x00\x38\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x01\x28\x00\x00\x00\xdf\xff\x37\x04\xcf\x0a\xda\xff\x37\x04\x00\x00\x00\x00\x00\x00\x37\x04\x00\x00\x00\x00\xc8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyDefActions :: HappyAddr
+happyDefActions = HappyA# "\x32\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xff\x00\x00\x00\x00\x1c\xff\x00\x00\x00\x00\x17\xff\x00\x00\x15\xff\x00\x00\x00\x00\x12\xff\x00\x00\x00\x00\x00\x00\x00\x00\x0d\xff\x0c\xff\x07\xff\x07\xff\x9e\xff\x83\xff\x51\xff\x52\xff\xa5\xff\x50\xff\x55\xff\x07\xff\xae\xff\x3a\xff\x3c\xff\x38\xff\x3b\xff\x39\xff\x5c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xff\x00\x00\x42\xff\x41\xff\x40\xff\x43\xff\x3e\xff\x3f\xff\x3d\xff\x44\xff\x00\x00\x59\xff\x07\xff\x07\xff\x00\x00\x07\xff\x00\x00\x00\x00\x00\x00\x32\xff\xef\xff\xf8\xff\x32\xff\x00\x00\xf6\xff\xdb\xff\xf7\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xff\xc1\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\xed\xff\x07\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\xc6\xff\xc5\xff\xc4\xff\x00\x00\x07\xff\x07\xff\xd9\xff\x07\xff\x00\x00\xa8\xff\x07\xff\x07\xff\x32\xff\x32\xff\x32\xff\x32\xff\x32\xff\xbd\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x73\xff\x00\x00\x07\xff\x08\xff\x73\xff\x00\x00\x08\xff\x08\xff\x07\xff\x07\xff\x07\xff\x5d\xff\x07\xff\x07\xff\x07\xff\x07\xff\x00\x00\x00\x00\xc7\xff\xc6\xff\x75\xff\x74\xff\x07\xff\x07\xff\x07\xff\x00\x00\x64\xff\x00\x00\x00\x00\x00\x00\x73\xff\x00\x00\x08\xff\x00\x00\x00\x00\x08\xff\x00\x00\x07\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x16\xff\x07\xff\x00\x00\x07\xff\x00\x00\x07\xff\x1e\xff\x97\xff\x20\xff\x00\x00\x07\xff\x07\xff\x60\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x08\xff\x00\x00\x07\xff\x00\x00\x07\xff\x07\xff\x5a\xff\x00\x00\x9c\xff\x00\x00\x00\x00\x00\x00\x99\xff\x07\xff\x00\x00\x00\x00\x00\x00\x07\xff\x00\x00\xa4\xff\x00\x00\x00\x00\x08\xff\x07\xff\x08\xff\x07\xff\x08\xff\x07\xff\x07\xff\x07\xff\x07\xff\x07\xff\x5e\xff\x07\xff\x75\xff\x74\xff\x07\xff\x07\xff\x00\x00\x54\xff\x07\xff\x00\x00\x08\xff\x08\xff\x08\xff\x58\xff\x57\xff\x07\xff\x07\xff\x00\x00\x48\xff\x00\x00\x00\x00\x5f\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xdb\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\x71\xff\xd2\xff\x6e\xff\x91\xff\xbc\xff\x00\x00\xe9\xff\xbb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xff\x08\xff\x07\xff\x00\x00\x08\xff\x08\xff\x00\x00\x00\x00\x00\x00\xad\xff\x00\x00\xb2\xff\xb0\xff\xaf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x32\xff\x00\x00\x00\x00\x00\x00\xf5\xff\x00\x00\x07\xff\x00\x00\xc0\xff\x00\x00\xf9\xff\x00\x00\x8e\xff\x2e\xff\x00\x00\x31\xff\x00\x00\x07\xff\x2a\xff\x26\xff\x00\x00\x00\x00\x07\xff\x07\xff\x00\x00\xb3\xff\x07\xff\x07\xff\x07\xff\xaa\xff\xa9\xff\x07\xff\xd8\xff\x00\x00\xa7\xff\xa6\xff\xf0\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\x07\xff\x07\xff\x00\x00\x07\xff\xd4\xff\xd2\xff\xd2\xff\x00\x00\xcc\xff\xd0\xff\xcf\xff\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\x07\xff\x07\xff\x07\xff\xdc\xff\x00\x00\xca\xff\x00\x00\x07\xff\x07\xff\x00\x00\x73\xff\x49\xff\x4b\xff\x08\xff\x00\x00\xa1\xff\x5b\xff\x89\xff\x07\xff\x08\xff\x00\x00\x08\xff\x07\xff\x4c\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x00\x00\x08\xff\x00\x00\x08\xff\x00\x00\x07\xff\x6d\xff\x07\xff\x67\xff\x07\xff\x6a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\xff\x00\x00\x07\xff\x08\xff\x08\xff\xa3\xff\x08\xff\x07\xff\x8b\xff\x08\xff\x08\xff\x08\xff\x08\xff\x08\xff\x96\xff\x84\xff\x87\xff\x85\xff\x86\xff\x88\xff\x81\xff\xa2\xff\x82\xff\x9b\xff\x98\xff\x00\x00\x9a\xff\x72\xff\x00\x00\x62\xff\x61\xff\x07\xff\x08\xff\x08\xff\x08\xff\xac\xff\x00\x00\x79\xff\x00\x00\x78\xff\x00\x00\x53\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xff\x07\xff\x00\x00\x00\x00\x00\x00\x07\xff\x00\x00\x07\xff\xc8\xff\x00\x00\x00\x00\x00\x00\x0b\xff\x0a\xff\x70\xff\x00\x00\x00\x00\xcb\xff\x00\x00\xd1\xff\x08\xff\x90\xff\x08\xff\xbc\xff\x08\xff\x00\x00\xe5\xff\x00\x00\xb1\xff\x08\xff\x08\xff\x32\xff\x07\xff\x37\xff\x00\x00\x25\xff\x29\xff\x08\xff\x2c\xff\x00\x00\x07\xff\x00\x00\xbf\xff\xeb\xff\x00\x00\x00\x00\xee\xff\x2f\xff\x00\x00\xb8\xff\x26\xff\xb7\xff\x37\xff\x22\xff\x23\xff\x00\x00\x08\xff\x00\x00\xb6\xff\xb5\xff\x34\xff\x00\x00\xd5\xff\x00\x00\xd7\xff\xb9\xff\xba\xff\x00\x00\xd3\xff\x94\xff\x00\x00\x00\x00\x09\xff\x00\x00\x07\xff\x00\x00\x00\x00\x07\xff\x08\xff\x00\x00\x45\xff\x07\xff\x08\xff\x07\xff\x7b\xff\x77\xff\x7c\xff\x7f\xff\x7d\xff\x7e\xff\x80\xff\x76\xff\x7a\xff\xab\xff\x66\xff\x65\xff\x08\xff\x6c\xff\x6b\xff\x00\x00\x08\xff\x4f\xff\x08\xff\x07\xff\x00\x00\x08\xff\x8c\xff\x07\xff\x08\xff\x00\x00\x6f\xff\xce\xff\x95\xff\x00\x00\xea\xff\xe3\xff\xd6\xff\x00\x00\x35\xff\x33\xff\x21\xff\x36\xff\x24\xff\x2b\xff\x30\xff\xbe\xff\xe4\xff\x93\xff\x00\x00\x07\xff\xe6\xff\x08\xff\x9d\xff\x00\x00\x08\xff\x00\x00\x63\xff\x69\xff\x47\xff\x00\x00\x00\x00\xe8\xff\x08\xff\x92\xff\xe7\xff\x4a\xff\x46\xff"#
+
+happyCheck :: HappyAddr
+happyCheck = HappyA# "\xff\xff\x0b\x00\x01\x00\x05\x00\x0a\x00\x02\x00\x07\x00\x02\x00\x03\x00\x20\x00\x21\x00\x29\x00\x19\x00\x0c\x00\x46\x00\x1c\x00\x0b\x00\x10\x00\x19\x00\x24\x00\x13\x00\x09\x00\x0a\x00\x0b\x00\x19\x00\x1a\x00\x03\x00\x01\x00\x20\x00\x21\x00\x02\x00\x02\x00\x46\x00\x19\x00\x1d\x00\x0c\x00\x26\x00\x46\x00\x0c\x00\x22\x00\x23\x00\x47\x00\x10\x00\x31\x00\x27\x00\x11\x00\x19\x00\x30\x00\x24\x00\x2e\x00\x49\x00\x2e\x00\x35\x00\x3f\x00\x47\x00\x20\x00\x21\x00\x40\x00\x41\x00\x07\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x27\x00\x49\x00\x3e\x00\x02\x00\x03\x00\x19\x00\x2e\x00\x2e\x00\x4b\x00\x19\x00\x1a\x00\x46\x00\x02\x00\x50\x00\x3d\x00\x47\x00\x53\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x02\x00\x03\x00\x11\x00\x49\x00\x19\x00\x1d\x00\x24\x00\x30\x00\x4b\x00\x0b\x00\x22\x00\x23\x00\x35\x00\x50\x00\x01\x00\x27\x00\x53\x00\x6d\x00\x47\x00\x40\x00\x41\x00\x71\x00\x2e\x00\x73\x00\x74\x00\x75\x00\x76\x00\x1d\x00\x19\x00\x10\x00\x76\x00\x2e\x00\x22\x00\x23\x00\x47\x00\x02\x00\x03\x00\x27\x00\x02\x00\x03\x00\x3d\x00\x47\x00\x6d\x00\x02\x00\x2e\x00\x02\x00\x71\x00\x0b\x00\x73\x00\x74\x00\x75\x00\x76\x00\x46\x00\x11\x00\x12\x00\x13\x00\x14\x00\x46\x00\x11\x00\x17\x00\x11\x00\x19\x00\x1d\x00\x57\x00\x3d\x00\x1d\x00\x24\x00\x22\x00\x23\x00\x46\x00\x22\x00\x23\x00\x27\x00\x20\x00\x26\x00\x27\x00\x02\x00\x03\x00\x14\x00\x2e\x00\x27\x00\x26\x00\x2e\x00\x2f\x00\x24\x00\x0b\x00\x46\x00\x2e\x00\x28\x00\x2e\x00\x47\x00\x11\x00\x12\x00\x13\x00\x14\x00\x03\x00\x24\x00\x17\x00\x29\x00\x19\x00\x15\x00\x47\x00\x19\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x46\x00\x22\x00\x23\x00\x12\x00\x22\x00\x26\x00\x27\x00\x0b\x00\x01\x00\x76\x00\x51\x00\x52\x00\x47\x00\x2e\x00\x2f\x00\x56\x00\x57\x00\x24\x00\x59\x00\x0c\x00\x24\x00\x47\x00\x24\x00\x10\x00\x47\x00\x1d\x00\x13\x00\x37\x00\x01\x00\x24\x00\x22\x00\x23\x00\x51\x00\x52\x00\x3e\x00\x27\x00\x46\x00\x0a\x00\x0b\x00\x6e\x00\x6f\x00\x70\x00\x2e\x00\x10\x00\x76\x00\x24\x00\x24\x00\x76\x00\x51\x00\x52\x00\x19\x00\x24\x00\x47\x00\x56\x00\x57\x00\x47\x00\x59\x00\x47\x00\x24\x00\x20\x00\x23\x00\x6e\x00\x6f\x00\x70\x00\x47\x00\x24\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x02\x00\x03\x00\x01\x00\x6e\x00\x6f\x00\x70\x00\x47\x00\x47\x00\x4b\x00\x0b\x00\x24\x00\x76\x00\x47\x00\x50\x00\x47\x00\x13\x00\x53\x00\x10\x00\x19\x00\x47\x00\x02\x00\x03\x00\x19\x00\x24\x00\x24\x00\x24\x00\x47\x00\x1d\x00\x20\x00\x0b\x00\x24\x00\x22\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x24\x00\x24\x00\x76\x00\x24\x00\x6d\x00\x0b\x00\x2e\x00\x47\x00\x71\x00\x1d\x00\x73\x00\x74\x00\x75\x00\x46\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x47\x00\x47\x00\x47\x00\x1d\x00\x29\x00\x0b\x00\x2e\x00\x47\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x24\x00\x47\x00\x47\x00\x24\x00\x47\x00\x0b\x00\x2e\x00\x24\x00\x23\x00\x1d\x00\x24\x00\x24\x00\x19\x00\x11\x00\x22\x00\x23\x00\x02\x00\x03\x00\x19\x00\x27\x00\x47\x00\x19\x00\x23\x00\x1d\x00\x1f\x00\x0b\x00\x2e\x00\x19\x00\x22\x00\x23\x00\x02\x00\x03\x00\x03\x00\x27\x00\x20\x00\x47\x00\x46\x00\x08\x00\x47\x00\x0b\x00\x2e\x00\x01\x00\x47\x00\x1d\x00\x76\x00\x47\x00\x47\x00\x12\x00\x22\x00\x23\x00\x02\x00\x03\x00\x0c\x00\x27\x00\x19\x00\x47\x00\x10\x00\x1d\x00\x19\x00\x0b\x00\x2e\x00\x11\x00\x22\x00\x23\x00\x76\x00\x20\x00\x03\x00\x27\x00\x19\x00\x19\x00\x19\x00\x08\x00\x0d\x00\x0e\x00\x2e\x00\x20\x00\x1f\x00\x1d\x00\x76\x00\x38\x00\x19\x00\x12\x00\x22\x00\x23\x00\x02\x00\x03\x00\x1f\x00\x27\x00\x19\x00\x19\x00\x02\x00\x03\x00\x1c\x00\x0b\x00\x2e\x00\x19\x00\x1a\x00\x02\x00\x76\x00\x0b\x00\x0c\x00\x0d\x00\x14\x00\x0a\x00\x46\x00\x11\x00\x0d\x00\x13\x00\x14\x00\x0a\x00\x0b\x00\x1d\x00\x76\x00\x13\x00\x2c\x00\x2d\x00\x22\x00\x23\x00\x47\x00\x19\x00\x20\x00\x27\x00\x0a\x00\x35\x00\x1d\x00\x0d\x00\x26\x00\x27\x00\x2e\x00\x22\x00\x23\x00\x46\x00\x76\x00\x27\x00\x2e\x00\x2f\x00\x43\x00\x31\x00\x45\x00\x2d\x00\x2a\x00\x2f\x00\x30\x00\x43\x00\x32\x00\x45\x00\x76\x00\x35\x00\x19\x00\x1a\x00\x46\x00\x3f\x00\x19\x00\x19\x00\x1a\x00\x46\x00\x1d\x00\x1e\x00\x0a\x00\x0b\x00\x48\x00\x21\x00\x44\x00\x51\x00\x52\x00\x29\x00\x76\x00\x2c\x00\x2d\x00\x51\x00\x52\x00\x2b\x00\x2c\x00\x2d\x00\x17\x00\x18\x00\x35\x00\x46\x00\x02\x00\x03\x00\x01\x00\x35\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0d\x00\x0e\x00\x6e\x00\x6f\x00\x70\x00\x10\x00\x51\x00\x52\x00\x6e\x00\x6f\x00\x70\x00\x16\x00\x03\x00\x18\x00\x46\x00\x1d\x00\x1b\x00\x08\x00\x19\x00\x46\x00\x22\x00\x23\x00\x1d\x00\x1e\x00\x26\x00\x27\x00\x25\x00\x12\x00\x47\x00\x28\x00\x17\x00\x18\x00\x2e\x00\x46\x00\x19\x00\x6e\x00\x6f\x00\x70\x00\x46\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x46\x00\x01\x00\x02\x00\x46\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x09\x00\x0a\x00\x0b\x00\x46\x00\x0e\x00\x0f\x00\x10\x00\x46\x00\x47\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\x46\x00\x18\x00\x53\x00\x54\x00\x1b\x00\x59\x00\x1d\x00\x47\x00\x46\x00\x5a\x00\x46\x00\x22\x00\x23\x00\x46\x00\x25\x00\x26\x00\x13\x00\x28\x00\x19\x00\x1a\x00\x47\x00\x47\x00\x19\x00\x2e\x00\x46\x00\x46\x00\x46\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x46\x00\x27\x00\x2c\x00\x2d\x00\x2e\x00\x46\x00\x46\x00\x2d\x00\x46\x00\x2f\x00\x30\x00\x35\x00\x32\x00\x02\x00\x03\x00\x35\x00\x46\x00\x46\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x46\x00\x46\x00\x46\x00\x53\x00\x54\x00\x55\x00\x01\x00\x02\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x47\x00\x47\x00\x47\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x47\x00\x22\x00\x23\x00\x47\x00\x47\x00\x16\x00\x27\x00\x18\x00\x46\x00\x19\x00\x1b\x00\x19\x00\x1d\x00\x2e\x00\x46\x00\x46\x00\x46\x00\x22\x00\x23\x00\x06\x00\x25\x00\x46\x00\x46\x00\x28\x00\x46\x00\x05\x00\x47\x00\x47\x00\x47\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x46\x00\x46\x00\x0f\x00\x10\x00\x46\x00\x12\x00\x47\x00\x14\x00\x47\x00\x46\x00\x46\x00\x56\x00\x19\x00\x29\x00\x47\x00\x46\x00\x46\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x47\x00\x46\x00\x46\x00\x53\x00\x54\x00\x55\x00\x01\x00\x46\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x29\x00\x29\x00\x47\x00\x47\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x05\x00\x18\x00\x47\x00\x47\x00\x1b\x00\x19\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x19\x00\x19\x00\x16\x00\x0e\x00\x25\x00\x06\x00\x47\x00\x28\x00\x19\x00\x1a\x00\x47\x00\x47\x00\x19\x00\x11\x00\x47\x00\x47\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x19\x00\x2c\x00\x2d\x00\x19\x00\x22\x00\x23\x00\x43\x00\x13\x00\x26\x00\x27\x00\x35\x00\x15\x00\x26\x00\x15\x00\x11\x00\x2e\x00\x2e\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x03\x00\x13\x00\x11\x00\x53\x00\x54\x00\x55\x00\x01\x00\x0b\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x48\x00\x26\x00\x13\x00\x11\x00\x0e\x00\x0f\x00\x10\x00\x26\x00\x11\x00\x19\x00\x0c\x00\x1b\x00\x16\x00\x0b\x00\x18\x00\x14\x00\x14\x00\x1b\x00\x15\x00\x1d\x00\x2e\x00\x25\x00\x26\x00\x27\x00\x0b\x00\x20\x00\x11\x00\x25\x00\x11\x00\x2d\x00\x28\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x11\x00\x11\x00\x35\x00\x11\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x11\x00\x2e\x00\x2e\x00\x2e\x00\x11\x00\x0a\x00\x04\x00\x47\x00\x31\x00\x13\x00\x0b\x00\x13\x00\x10\x00\x02\x00\x03\x00\x26\x00\x20\x00\x04\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x13\x00\x20\x00\x11\x00\x53\x00\x54\x00\x55\x00\x01\x00\x20\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x11\x00\x26\x00\x0a\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x26\x00\x22\x00\x23\x00\x15\x00\x11\x00\x16\x00\x27\x00\x18\x00\x13\x00\x13\x00\x1b\x00\x13\x00\x1d\x00\x2e\x00\x2f\x00\x13\x00\x13\x00\x26\x00\x0a\x00\x0c\x00\x25\x00\x5a\x00\x13\x00\x28\x00\x26\x00\x0b\x00\x20\x00\x31\x00\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\x13\x00\x0f\x00\x10\x00\x0d\x00\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\x11\x00\x32\x00\x19\x00\x13\x00\x35\x00\x11\x00\x26\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x11\x00\x0a\x00\x26\x00\x53\x00\x54\x00\x55\x00\x01\x00\x03\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x13\x00\x26\x00\x20\x00\x2f\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x0a\x00\x18\x00\x11\x00\x11\x00\x1b\x00\x11\x00\x1d\x00\x03\x00\x0a\x00\x59\x00\x0a\x00\x12\x00\x0b\x00\x11\x00\x25\x00\x10\x00\x13\x00\x28\x00\x0b\x00\x0b\x00\x04\x00\x04\x00\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\x01\x00\x0f\x00\x10\x00\x12\x00\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\x3f\x00\x32\x00\x19\x00\x04\x00\x35\x00\x10\x00\x14\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x10\x00\x10\x00\x0c\x00\x53\x00\x54\x00\x55\x00\x01\x00\x12\x00\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x12\x00\x19\x00\x12\x00\x12\x00\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x12\x00\x18\x00\x27\x00\x05\x00\x1b\x00\x76\x00\x1d\x00\x20\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x76\x00\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\x36\x00\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\xff\xff\x18\x00\x27\x00\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x25\x00\xff\xff\x35\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\x27\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x2d\x00\x14\x00\x2f\x00\x30\x00\xff\xff\x32\x00\x19\x00\xff\xff\x35\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x19\x00\x1a\x00\xff\xff\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x58\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x10\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x16\x00\x35\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\x0e\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\x1d\x00\x1e\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\x2e\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\x35\x00\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x35\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x16\x00\xff\xff\x18\x00\x53\x00\x54\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x4d\x00\x4e\x00\x4f\x00\x02\x00\x03\x00\xff\xff\x53\x00\x54\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x01\x00\x02\x00\x13\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\x4d\x00\x4e\x00\x4f\x00\x27\x00\xff\xff\xff\xff\x53\x00\x54\x00\xff\xff\x1d\x00\x2e\x00\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x0f\x00\x10\x00\x1d\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\x2e\x00\xff\xff\xff\xff\x25\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x42\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x0c\x00\xff\xff\x18\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\x19\x00\x35\x00\x1b\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x25\x00\x26\x00\x27\x00\x47\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x2d\x00\x32\x00\x2f\x00\x30\x00\x35\x00\x32\x00\xff\xff\x19\x00\x35\x00\x1b\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\x47\x00\x25\x00\x26\x00\x27\x00\x47\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x2d\x00\x32\x00\x2f\x00\x30\x00\x35\x00\x32\x00\x02\x00\x03\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\x11\x00\x47\x00\xff\xff\xff\xff\xff\xff\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x11\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\xff\xff\x1d\x00\xff\xff\x02\x00\x03\x00\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\x0b\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\x02\x00\x03\x00\x1d\x00\xff\xff\xff\xff\xff\xff\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x19\x00\xff\xff\x12\x00\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x1d\x00\x27\x00\x0b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x2e\x00\xff\xff\x27\x00\x02\x00\x03\x00\x02\x00\x03\x00\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x13\x00\x12\x00\x27\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x2e\x00\x1d\x00\xff\xff\x1d\x00\x0b\x00\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\x02\x00\x03\x00\x02\x00\x03\x00\x2e\x00\xff\xff\x2e\x00\xff\xff\x1d\x00\x0b\x00\xff\xff\x0b\x00\xff\xff\x22\x00\x23\x00\x02\x00\x03\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x1d\x00\xff\xff\x1d\x00\x11\x00\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\x02\x00\x03\x00\x1d\x00\xff\xff\x2e\x00\xff\xff\x2e\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x1d\x00\x1b\x00\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x0e\x00\xff\xff\xff\xff\x27\x00\x25\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\x2e\x00\x19\x00\x2d\x00\x1b\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
+
+happyTable :: HappyAddr
+happyTable = HappyA# "\x00\x00\x0c\x02\x22\x00\x42\x02\xdc\x00\xe5\x00\x0d\x01\xb3\x00\xb4\x00\x10\x01\x11\x01\x7d\x01\xac\x00\x51\x00\x61\x02\xb7\x01\x18\xff\x52\x00\xf2\x01\xb0\x00\xfc\xff\xdb\x01\x62\x01\x63\x01\x76\x00\x77\x00\xb4\x00\x22\x00\x28\x01\x29\x01\xe5\x00\xe5\x00\x5c\x02\x47\x01\xb5\x00\xda\xff\x43\x02\x5e\x02\x51\x00\xb6\x00\xb7\x00\xb9\x00\x52\x00\x73\xff\xb8\x00\x25\x02\x2f\x01\x78\x00\xb0\x00\xe7\x00\x12\x01\xb9\x00\x79\x00\x57\x00\x57\x02\xda\xff\xda\xff\x4b\x02\xf4\x01\x75\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x9b\x01\x12\x01\xf5\x01\xb3\x00\xb4\x00\xf2\x01\xe7\x00\xe7\x00\x5b\x00\x76\x00\x77\x00\x53\x02\xe5\x00\x5c\x00\x4c\x02\xb1\x00\x5d\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xb3\x00\xb4\x00\xe6\x00\xda\xff\x2f\x01\xb5\x00\xb0\x00\x78\x00\x5b\x00\x1a\xff\xb6\x00\xb7\x00\x79\x00\x5c\x00\x22\x00\xb8\x00\x5d\x00\x5e\x00\x5f\x02\xf3\x01\xf4\x01\x5f\x00\xb9\x00\x60\x00\x61\x00\x62\x00\xfc\xff\xb5\x00\x2f\x01\x52\x00\x18\xff\xe7\x00\xb6\x00\xb7\x00\x54\x02\xb3\x00\xb4\x00\xb8\x00\xb3\x00\xb4\x00\x30\x01\x37\x02\x5e\x00\xe5\x00\xb9\x00\xe5\x00\x5f\x00\xa0\xff\x60\x00\x61\x00\x62\x00\xfc\xff\x55\x02\xa0\xff\xa0\xff\xa0\xff\xa0\xff\x58\x02\x99\x01\xa0\xff\x6e\xff\xa0\xff\xb5\x00\xd8\x01\x32\x01\xb5\x00\xb0\x00\xb6\x00\xb7\x00\x59\x02\xb6\x00\xb7\x00\xb8\x00\x9a\x01\xa0\xff\xb8\x00\xb3\x00\xb4\x00\x65\x01\xb9\x00\x9b\x01\x6e\xff\xb9\x00\xa0\xff\xb0\x00\x9f\xff\x34\x02\xe7\x00\xf0\x00\xe7\x00\x35\x02\x9f\xff\x9f\xff\x9f\xff\x9f\xff\x93\x00\xb0\x00\x9f\xff\xf8\x00\x9f\xff\x46\x01\x3a\x02\x33\x01\xb5\x00\x47\x01\xb3\x00\xb4\x00\x36\x02\xb6\x00\xb7\x00\x94\x00\x41\x01\x9f\xff\xb8\x00\x1d\xff\x22\x00\x1a\xff\xa0\xff\xa0\xff\xb1\x00\xb9\x00\x9f\xff\xa0\xff\xa0\xff\xb0\x00\xa0\xff\x51\x00\xb0\x00\x25\x01\xb0\x00\x52\x00\xb1\x00\xb5\x00\xfc\xff\x48\x01\x22\x00\xb0\x00\xb6\x00\xb7\x00\x66\x01\x67\x01\x49\x01\xb8\x00\x39\x02\x4b\x01\x4c\x01\xa0\xff\xa0\xff\xa0\xff\xb9\x00\x52\x00\xff\xff\xb0\x00\xb0\x00\xa0\xff\x9f\xff\x9f\xff\x8e\x00\xb0\x00\x1f\x02\x9f\xff\x9f\xff\xb1\x00\x9f\xff\x7c\x01\xb0\x00\x4d\x01\x3b\x02\x68\x01\x69\x01\x6a\x01\x8b\x01\xb0\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xb3\x00\xb4\x00\x22\x00\x9f\xff\x9f\xff\x9f\xff\x8d\x01\x8f\x01\x5b\x00\x1b\xff\xb0\x00\x9f\xff\x91\x01\x5c\x00\x3d\x02\x18\x01\x5d\x00\x52\x00\x3e\x02\xb1\x00\xb3\x00\xb4\x00\x33\x01\xb0\x00\xb0\x00\xb0\x00\xa6\x01\xb5\x00\x19\x01\x19\xff\xb0\x00\x34\x01\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x46\x02\xb8\x00\xb0\x00\xe7\x00\x1d\xff\xb0\x00\x5e\x00\x14\xff\xb9\x00\xa9\x01\x5f\x00\xb5\x00\x60\x00\x61\x00\x62\x00\x48\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xfe\x01\xb8\x00\xaa\x01\xab\x01\xac\x01\xb5\x00\xf8\x00\x13\xff\xb9\x00\xad\x01\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x79\x01\xb8\x00\xb0\x00\xb1\x00\xe8\x00\xb0\x00\xb1\x00\x11\xff\xb9\x00\xb0\x00\x8f\x00\xb5\x00\xe7\x00\xb0\x00\x8e\x00\x4e\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xc7\x00\xb8\x00\xb9\x00\x38\x01\x8f\x00\xb5\x00\xe6\x01\x10\xff\xb9\x00\x16\x02\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x0f\x02\xb8\x00\x60\x02\xfc\x00\x02\x02\x45\x02\xfe\x00\x0f\xff\xb9\x00\x22\x00\xb1\x00\xb5\x00\x1b\xff\xe8\x00\xb1\x00\x48\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x51\x00\xb8\x00\x4a\x00\x09\x02\x52\x00\xb5\x00\x16\x02\x0e\xff\xb9\x00\x37\x01\xb6\x00\xb7\x00\x19\xff\x50\x02\x0f\x02\xb8\x00\x16\x02\x38\x01\xc7\x00\x10\x02\xd9\x01\x0c\x01\xb9\x00\x17\x02\xae\x01\xb5\x00\x14\xff\x0a\x02\xc7\x00\x48\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\xc8\x00\xb8\x00\x4a\x00\xac\x00\x68\xff\xb4\x00\xad\x00\xd2\xff\xb9\x00\x76\x00\xa6\x00\x72\x00\x13\xff\x68\xff\x68\xff\x68\xff\x65\x01\x9d\x01\x0c\x02\x68\xff\x73\xff\x68\xff\x68\xff\xe3\x01\x63\x01\xb5\x00\x11\xff\x83\x00\x32\x02\xa8\x00\xb6\x00\xb7\x00\x23\x02\x17\x00\x68\xff\xb8\x00\xdc\x00\x79\x00\x73\x00\x73\xff\x68\xff\x68\xff\xb9\x00\x74\x00\x75\x00\x0d\x02\x10\xff\x1b\x00\x68\xff\x68\xff\x6c\x01\x68\xff\x19\x02\x1c\x00\x6a\x01\x84\x00\x1e\x00\x6c\x01\x1f\x00\x6d\x01\x0f\xff\x20\x00\x76\x00\xa6\x00\x11\x02\x68\xff\xdc\x00\x76\x00\xa6\x00\x13\x02\xba\x01\xde\x00\xe4\x01\x63\x01\x68\xff\x13\x01\x85\x00\x66\x01\x67\x01\xd5\x01\x0e\xff\x33\x02\xa8\x00\x68\xff\x68\xff\x3f\x02\x15\x01\xa8\x00\xed\x01\x2b\x01\x79\x00\x14\x02\xb3\x00\xb4\x00\x22\x00\x79\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x88\x00\x0b\x01\x0c\x01\x68\x01\x69\x01\x6a\x01\x2b\x00\x66\x01\x67\x01\x68\xff\x68\xff\x68\xff\x2c\x00\x0f\x02\x2d\x00\x2e\x02\xb5\x00\x2e\x00\x1c\x02\xdc\x00\x2f\x02\xb6\x00\xb7\x00\xdd\x00\xde\x00\x1e\x02\xb8\x00\x30\x00\x48\x00\x31\x02\x31\x00\x2a\x01\x2b\x01\xb9\x00\x30\x02\x4a\x00\x68\x01\x69\x01\x6a\x01\xaf\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xb0\x01\x22\x00\xa1\x00\xb1\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x61\x01\x62\x01\x63\x01\xb2\x01\x29\x00\x2a\x00\x2b\x00\x2d\x01\x2e\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\xb3\x01\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x8d\xff\xa2\x00\xc0\x01\xb4\x01\x89\x00\xb5\x01\xa3\x00\xa4\x00\xb6\x01\x30\x00\xa5\x00\x12\x02\x31\x00\x76\x00\xa6\x00\xc1\x01\xc2\x01\x17\x00\xa6\x00\xc4\x01\xc6\x01\xc8\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xc9\x01\x1b\x00\xbd\x01\xa8\x00\xbe\x01\xca\x01\xcb\x01\x1c\x00\xcc\x01\x84\x00\x1e\x00\x79\x00\x1f\x00\xb3\x00\xb4\x00\x20\x00\xcd\x01\xce\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xcf\x01\xd1\x01\xd4\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x72\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xe5\x01\xe7\x01\xe9\x01\xb5\x00\x29\x00\x2a\x00\x2b\x00\xee\x01\xb6\x00\xb7\x00\xef\x01\xf6\x01\x2c\x00\xb8\x00\x2d\x00\x52\x01\xf8\x01\x2e\x00\x3e\x01\xa2\x00\xb9\x00\x53\x01\x57\x01\x58\x01\x74\x00\x75\x00\x72\x01\x30\x00\x7e\x01\x7f\x01\x31\x00\x80\x01\x0e\x01\x82\x01\x8a\x01\x8c\x01\x3f\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x8e\x01\x90\x01\x46\x00\x47\x00\x92\x01\x48\x00\xa3\x01\x49\x00\xa4\x01\xa8\x01\xcc\x00\x09\x01\x4a\x00\xda\x00\xd2\x00\xd5\x00\xd8\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xfd\x00\xff\x00\x00\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x07\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x06\x01\x0a\x01\x20\x01\x21\x01\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x26\x01\x2d\x00\x24\x01\x25\x01\x2e\x00\x2e\x01\x2f\x00\x31\x01\xb3\x00\xb4\x00\x69\x00\x6a\x00\x6e\x00\x70\x00\x30\x00\x89\x00\x91\x00\x31\x00\x76\x00\xa6\x00\x94\x00\x95\x00\x97\x00\x4d\xff\xae\x00\xb9\x00\xc3\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xb5\x00\xc0\x00\xbf\x01\xa8\x00\xc6\x00\xb6\x00\xb7\x00\x04\x00\x63\x02\x57\x01\xb8\x00\x79\x00\x50\x02\x52\x02\x53\x02\x5b\x02\xe7\x00\xb9\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x3d\x02\x41\x02\x3e\x00\x3f\x00\x40\x00\x22\x00\x44\x02\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x48\x02\xfe\x01\x45\x02\x4e\x02\x29\x00\x2a\x00\x2b\x00\x02\x02\x01\x02\x17\x00\x04\x02\x85\x01\x2c\x00\x05\x02\x2d\x00\x0f\x02\x1b\x02\x2e\x00\x16\x02\x2f\x00\x19\x02\x19\x00\x1a\x00\x1b\x00\x1c\x02\x21\x02\x26\x02\x30\x00\x27\x02\x1c\x00\x31\x00\x1d\x00\x1e\x00\x86\x01\x1f\x00\x28\x02\x29\x02\x20\x00\x2a\x02\xc5\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xc6\x01\xba\x01\xbd\x01\xe7\x00\xc8\x01\xdc\x00\xe3\x01\x87\x01\xd4\x01\xde\x01\xdf\x01\xe1\x01\xe2\x01\xb3\x00\xb4\x00\xfb\x01\xf2\x01\xfc\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x01\x3d\x01\x43\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x41\x01\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x45\x01\x44\x01\x46\x01\xb5\x00\x29\x00\x2a\x00\x2b\x00\x4e\x01\xb6\x00\xb7\x00\x4f\x01\x55\x01\x2c\x00\xb8\x00\x2d\x00\x5a\x01\x5b\x01\x2e\x00\x5c\x01\x2f\x00\xb9\x00\x3b\x01\x5d\x01\x5e\x01\x61\x01\x6c\x01\x8b\x00\x30\x00\x6f\x01\x5f\x01\x31\x00\x74\x01\x75\x01\x76\x01\x79\x01\x17\x00\x1b\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x7c\x01\x46\x00\x47\x00\x84\x01\x48\x00\x1c\x00\x49\x00\x84\x00\x1e\x00\x98\x01\x1f\x00\x4a\x00\x94\x01\x20\x00\x9c\x01\x9e\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x9f\x01\xa0\x01\xa2\x01\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xd7\x00\xca\x00\xd4\x00\xda\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\xdc\x00\x2d\x00\xc4\xff\xc5\xff\x2e\x00\xef\x00\x2f\x00\x00\x00\xdc\x00\x0a\x01\xdc\x00\x13\x01\x1a\x01\x2a\x01\x30\x00\x37\x01\x1a\x01\x31\x00\x36\x01\x3a\x01\x63\x00\x64\x00\x17\x00\x1c\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x66\x00\x46\x00\x47\x00\x67\x00\x48\x00\x1c\x00\x49\x00\x84\x00\x1e\x00\x68\x00\x1f\x00\x4a\x00\x69\x00\x20\x00\x6c\x00\x70\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x6d\x00\x6e\x00\x8b\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x7f\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x80\x00\x17\x00\x81\x00\x82\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x83\x00\x2d\x00\x1b\x00\x8c\x00\x2e\x00\xff\xff\x2f\x00\xb0\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\xff\xff\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1d\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\x05\x02\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x4a\x02\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1e\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\xc3\x01\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x1f\x01\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\xa5\x01\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x06\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x17\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x00\x00\x2d\x00\x1b\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x1c\x00\x00\x00\xd7\x00\x1e\x00\x00\x00\x1f\x00\x30\x00\x00\x00\x20\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x8c\x00\x42\x00\x43\x00\x44\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\x1b\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x1c\x00\x49\x00\x99\x00\x1e\x00\x00\x00\x1f\x00\x4a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x76\x00\xa6\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x22\x00\x00\x00\x41\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x64\x02\x00\x00\x00\x00\xd0\x01\xa8\x00\x2b\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x79\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x70\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x5c\x02\x00\x00\xdf\x00\xa6\x00\x00\x00\x2b\x00\xe0\x00\xde\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00\xa8\x00\xe2\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x57\x02\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x09\x02\x76\x00\xa6\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x94\x01\xa8\x00\x95\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x79\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x49\x02\x15\x01\xa8\x00\x00\x00\xa0\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x22\x02\x00\x00\x76\x00\xa6\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2b\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xb8\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xb8\x01\xbb\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2d\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xf0\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2e\x02\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\xf7\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x87\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x76\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x13\x01\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x14\x01\x15\x01\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x79\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x2c\x00\x00\x00\x2d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\xb3\x00\xb4\x00\x00\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x72\x00\x8a\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\x00\x00\xaa\x00\xab\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\xb9\x00\x00\x00\x00\x00\x00\x00\x74\x00\x75\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x00\x00\x17\x01\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x00\x00\x8d\x00\x42\x00\x43\x00\x44\x00\xaa\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x00\x00\x45\x00\x00\x00\x00\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x00\xb4\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x00\x00\xaa\x00\xab\x00\xb5\x00\x00\x00\x17\x00\x7d\x00\x7e\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\xb9\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x1c\x00\x00\x00\x05\x02\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x06\x02\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xac\x00\x22\x00\x07\x02\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x41\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x45\x00\x00\x00\x2d\x00\x46\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcd\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x17\x00\x20\x00\xd1\x00\x00\x00\x17\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x84\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1c\x00\x1f\x00\x1d\x00\x1e\x00\x20\x00\x1f\x00\x00\x00\x17\x00\x20\x00\xe9\x00\x00\x00\x17\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x88\x01\x19\x00\x1a\x00\x1b\x00\x89\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x1c\x00\x1f\x00\x1d\x00\x1e\x00\x20\x00\x1f\x00\xb3\x00\xb4\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x00\xb4\x00\x56\x01\xea\x00\x00\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xf3\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x57\x01\xb8\x00\x00\x00\x00\x00\xf4\x00\x00\x00\xb3\x00\xb4\x00\xb9\x00\xf5\x00\xf6\x00\x00\x00\x00\x00\xf7\x00\xb8\x00\x00\x02\xfb\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xf8\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\xfc\x00\xb8\x00\xb3\x00\xb4\x00\xb5\x00\x00\x00\x00\x00\x00\x00\xb9\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\xd3\x01\x00\x00\xdb\x01\x00\x00\xb5\x00\xb9\x00\xb3\x00\xb4\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\xb5\x00\xb8\x00\xdd\x01\x00\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\xb9\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb3\x00\xb4\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x00\x00\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x00\xb7\x00\x00\x00\xe9\x01\xeb\x01\xb8\x00\x00\x00\xb3\x00\xb4\x00\x00\x00\x00\x00\x00\x00\xb9\x00\xb5\x00\x00\x00\xb5\x00\xec\x01\x00\x00\xb6\x00\xb7\x00\xb6\x00\xb7\x00\x00\x00\xb8\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb3\x00\xb4\x00\xb9\x00\x00\x00\xb9\x00\x00\x00\xb5\x00\xed\x01\x00\x00\xfd\x01\x00\x00\xb6\x00\xb7\x00\xb3\x00\xb4\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\xb5\x00\x00\x00\xb5\x00\x97\x01\x00\x00\xb6\x00\xb7\x00\xb6\x00\xb7\x00\x00\x00\xb8\x00\x00\x00\xb8\x00\xb3\x00\xb4\x00\xb5\x00\x00\x00\xb9\x00\x00\x00\xb9\x00\xb6\x00\xb7\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x00\xb5\x00\x9d\x00\x00\x00\x00\x00\x00\x00\xb6\x00\xb7\x00\x70\x00\x00\x00\x00\x00\xb8\x00\x19\x00\x1a\x00\x1b\x00\x9e\x00\x00\x00\x00\x00\xb9\x00\x17\x00\x1c\x00\x22\x01\x1d\x00\x1e\x00\x9f\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x23\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x5d\x02\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x01\x01\x00\x00\x02\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x7a\x01\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x85\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x03\x01\x04\x01\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x38\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x86\x01\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x1e\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x22\x02\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd6\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd8\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xf9\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x3b\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x50\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x51\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x5e\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x6f\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x70\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x71\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x76\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x77\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x81\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xa2\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xa7\x01\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xca\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xce\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xcf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd0\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd1\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xd4\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xe3\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x98\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xed\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xef\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x64\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x90\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x96\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x98\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9a\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x9b\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xba\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbb\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbc\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbd\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbe\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xbf\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc1\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc3\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc5\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x17\x00\x00\x00\x18\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x19\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyReduceArr = Happy_Data_Array.array (3, 249) [
+	(3 , happyReduce_3),
+	(4 , happyReduce_4),
+	(5 , happyReduce_5),
+	(6 , happyReduce_6),
+	(7 , happyReduce_7),
+	(8 , happyReduce_8),
+	(9 , happyReduce_9),
+	(10 , happyReduce_10),
+	(11 , happyReduce_11),
+	(12 , happyReduce_12),
+	(13 , happyReduce_13),
+	(14 , happyReduce_14),
+	(15 , happyReduce_15),
+	(16 , happyReduce_16),
+	(17 , happyReduce_17),
+	(18 , happyReduce_18),
+	(19 , happyReduce_19),
+	(20 , happyReduce_20),
+	(21 , happyReduce_21),
+	(22 , happyReduce_22),
+	(23 , happyReduce_23),
+	(24 , happyReduce_24),
+	(25 , happyReduce_25),
+	(26 , happyReduce_26),
+	(27 , happyReduce_27),
+	(28 , happyReduce_28),
+	(29 , happyReduce_29),
+	(30 , happyReduce_30),
+	(31 , happyReduce_31),
+	(32 , happyReduce_32),
+	(33 , happyReduce_33),
+	(34 , happyReduce_34),
+	(35 , happyReduce_35),
+	(36 , happyReduce_36),
+	(37 , happyReduce_37),
+	(38 , happyReduce_38),
+	(39 , happyReduce_39),
+	(40 , happyReduce_40),
+	(41 , happyReduce_41),
+	(42 , happyReduce_42),
+	(43 , happyReduce_43),
+	(44 , happyReduce_44),
+	(45 , happyReduce_45),
+	(46 , happyReduce_46),
+	(47 , happyReduce_47),
+	(48 , happyReduce_48),
+	(49 , happyReduce_49),
+	(50 , happyReduce_50),
+	(51 , happyReduce_51),
+	(52 , happyReduce_52),
+	(53 , happyReduce_53),
+	(54 , happyReduce_54),
+	(55 , happyReduce_55),
+	(56 , happyReduce_56),
+	(57 , happyReduce_57),
+	(58 , happyReduce_58),
+	(59 , happyReduce_59),
+	(60 , happyReduce_60),
+	(61 , happyReduce_61),
+	(62 , happyReduce_62),
+	(63 , happyReduce_63),
+	(64 , happyReduce_64),
+	(65 , happyReduce_65),
+	(66 , happyReduce_66),
+	(67 , happyReduce_67),
+	(68 , happyReduce_68),
+	(69 , happyReduce_69),
+	(70 , happyReduce_70),
+	(71 , happyReduce_71),
+	(72 , happyReduce_72),
+	(73 , happyReduce_73),
+	(74 , happyReduce_74),
+	(75 , happyReduce_75),
+	(76 , happyReduce_76),
+	(77 , happyReduce_77),
+	(78 , happyReduce_78),
+	(79 , happyReduce_79),
+	(80 , happyReduce_80),
+	(81 , happyReduce_81),
+	(82 , happyReduce_82),
+	(83 , happyReduce_83),
+	(84 , happyReduce_84),
+	(85 , happyReduce_85),
+	(86 , happyReduce_86),
+	(87 , happyReduce_87),
+	(88 , happyReduce_88),
+	(89 , happyReduce_89),
+	(90 , happyReduce_90),
+	(91 , happyReduce_91),
+	(92 , happyReduce_92),
+	(93 , happyReduce_93),
+	(94 , happyReduce_94),
+	(95 , happyReduce_95),
+	(96 , happyReduce_96),
+	(97 , happyReduce_97),
+	(98 , happyReduce_98),
+	(99 , happyReduce_99),
+	(100 , happyReduce_100),
+	(101 , happyReduce_101),
+	(102 , happyReduce_102),
+	(103 , happyReduce_103),
+	(104 , happyReduce_104),
+	(105 , happyReduce_105),
+	(106 , happyReduce_106),
+	(107 , happyReduce_107),
+	(108 , happyReduce_108),
+	(109 , happyReduce_109),
+	(110 , happyReduce_110),
+	(111 , happyReduce_111),
+	(112 , happyReduce_112),
+	(113 , happyReduce_113),
+	(114 , happyReduce_114),
+	(115 , happyReduce_115),
+	(116 , happyReduce_116),
+	(117 , happyReduce_117),
+	(118 , happyReduce_118),
+	(119 , happyReduce_119),
+	(120 , happyReduce_120),
+	(121 , happyReduce_121),
+	(122 , happyReduce_122),
+	(123 , happyReduce_123),
+	(124 , happyReduce_124),
+	(125 , happyReduce_125),
+	(126 , happyReduce_126),
+	(127 , happyReduce_127),
+	(128 , happyReduce_128),
+	(129 , happyReduce_129),
+	(130 , happyReduce_130),
+	(131 , happyReduce_131),
+	(132 , happyReduce_132),
+	(133 , happyReduce_133),
+	(134 , happyReduce_134),
+	(135 , happyReduce_135),
+	(136 , happyReduce_136),
+	(137 , happyReduce_137),
+	(138 , happyReduce_138),
+	(139 , happyReduce_139),
+	(140 , happyReduce_140),
+	(141 , happyReduce_141),
+	(142 , happyReduce_142),
+	(143 , happyReduce_143),
+	(144 , happyReduce_144),
+	(145 , happyReduce_145),
+	(146 , happyReduce_146),
+	(147 , happyReduce_147),
+	(148 , happyReduce_148),
+	(149 , happyReduce_149),
+	(150 , happyReduce_150),
+	(151 , happyReduce_151),
+	(152 , happyReduce_152),
+	(153 , happyReduce_153),
+	(154 , happyReduce_154),
+	(155 , happyReduce_155),
+	(156 , happyReduce_156),
+	(157 , happyReduce_157),
+	(158 , happyReduce_158),
+	(159 , happyReduce_159),
+	(160 , happyReduce_160),
+	(161 , happyReduce_161),
+	(162 , happyReduce_162),
+	(163 , happyReduce_163),
+	(164 , happyReduce_164),
+	(165 , happyReduce_165),
+	(166 , happyReduce_166),
+	(167 , happyReduce_167),
+	(168 , happyReduce_168),
+	(169 , happyReduce_169),
+	(170 , happyReduce_170),
+	(171 , happyReduce_171),
+	(172 , happyReduce_172),
+	(173 , happyReduce_173),
+	(174 , happyReduce_174),
+	(175 , happyReduce_175),
+	(176 , happyReduce_176),
+	(177 , happyReduce_177),
+	(178 , happyReduce_178),
+	(179 , happyReduce_179),
+	(180 , happyReduce_180),
+	(181 , happyReduce_181),
+	(182 , happyReduce_182),
+	(183 , happyReduce_183),
+	(184 , happyReduce_184),
+	(185 , happyReduce_185),
+	(186 , happyReduce_186),
+	(187 , happyReduce_187),
+	(188 , happyReduce_188),
+	(189 , happyReduce_189),
+	(190 , happyReduce_190),
+	(191 , happyReduce_191),
+	(192 , happyReduce_192),
+	(193 , happyReduce_193),
+	(194 , happyReduce_194),
+	(195 , happyReduce_195),
+	(196 , happyReduce_196),
+	(197 , happyReduce_197),
+	(198 , happyReduce_198),
+	(199 , happyReduce_199),
+	(200 , happyReduce_200),
+	(201 , happyReduce_201),
+	(202 , happyReduce_202),
+	(203 , happyReduce_203),
+	(204 , happyReduce_204),
+	(205 , happyReduce_205),
+	(206 , happyReduce_206),
+	(207 , happyReduce_207),
+	(208 , happyReduce_208),
+	(209 , happyReduce_209),
+	(210 , happyReduce_210),
+	(211 , happyReduce_211),
+	(212 , happyReduce_212),
+	(213 , happyReduce_213),
+	(214 , happyReduce_214),
+	(215 , happyReduce_215),
+	(216 , happyReduce_216),
+	(217 , happyReduce_217),
+	(218 , happyReduce_218),
+	(219 , happyReduce_219),
+	(220 , happyReduce_220),
+	(221 , happyReduce_221),
+	(222 , happyReduce_222),
+	(223 , happyReduce_223),
+	(224 , happyReduce_224),
+	(225 , happyReduce_225),
+	(226 , happyReduce_226),
+	(227 , happyReduce_227),
+	(228 , happyReduce_228),
+	(229 , happyReduce_229),
+	(230 , happyReduce_230),
+	(231 , happyReduce_231),
+	(232 , happyReduce_232),
+	(233 , happyReduce_233),
+	(234 , happyReduce_234),
+	(235 , happyReduce_235),
+	(236 , happyReduce_236),
+	(237 , happyReduce_237),
+	(238 , happyReduce_238),
+	(239 , happyReduce_239),
+	(240 , happyReduce_240),
+	(241 , happyReduce_241),
+	(242 , happyReduce_242),
+	(243 , happyReduce_243),
+	(244 , happyReduce_244),
+	(245 , happyReduce_245),
+	(246 , happyReduce_246),
+	(247 , happyReduce_247),
+	(248 , happyReduce_248),
+	(249 , happyReduce_249)
+	]
+
+happy_n_terms = 119 :: Int
+happy_n_nonterms = 73 :: Int
+
+happyReduce_3 = happySpecReduce_0  0# happyReduction_3
+happyReduction_3  =  happyIn6
+		 ([]
+	)
+
+happyReduce_4 = happySpecReduce_2  0# happyReduction_4
+happyReduction_4 happy_x_2
+	happy_x_1
+	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_5 = happySpecReduce_2  0# happyReduction_5
+happyReduction_5 happy_x_2
+	happy_x_1
+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (map RealDecl happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_6 = happyReduce 4# 0# happyReduction_6
+happyReduction_6 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	case happyOut6 happy_x_4 of { happy_var_4 -> 
+	happyIn6
+		 (RealDecl (PInclude happy_var_2) : happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_7 = happySpecReduce_1  1# happyReduction_7
+happyReduction_7 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (happy_var_1
+	)}
+
+happyReduce_8 = happySpecReduce_1  1# happyReduction_8
+happyReduction_8 happy_x_1
+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl (DataDecl happy_var_1)
+	)}
+
+happyReduce_9 = happySpecReduce_1  1# happyReduction_9
+happyReduction_9 happy_x_1
+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_10 = happySpecReduce_3  1# happyReduction_10
+happyReduction_10 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
+	happyIn7
+		 (RealDecl (Freeze happy_var_2)
+	)}
+
+happyReduce_11 = happyReduce 4# 1# happyReduction_11
+happyReduction_11 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut62 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_12 = happyReduce 4# 1# happyReduction_12
+happyReduction_12 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut63 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PDoUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_13 = happyReduce 4# 1# happyReduction_13
+happyReduction_13 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut64 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PIdiom happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_14 = happyReduce 4# 1# happyReduction_14
+happyReduction_14 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut65 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PParams happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_15 = happyReduce 4# 1# happyReduction_15
+happyReduction_15 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut66 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PNamespace happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_16 = happySpecReduce_1  1# happyReduction_16
+happyReduction_16 happy_x_1
+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_17 = happyReduce 6# 1# happyReduction_17
+happyReduction_17 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut40 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	happyIn7
+		 (PSyntax happy_var_2 happy_var_3 happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_18 = happySpecReduce_2  1# happyReduction_18
+happyReduction_18 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CInclude happy_var_2)
+	)}
+
+happyReduce_19 = happySpecReduce_2  1# happyReduction_19
+happyReduction_19 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CLib happy_var_2)
+	)}
+
+happyReduce_20 = happyReduce 5# 2# happyReduction_20
+happyReduction_20 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn8
+		 (Transform happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_21 = happyReduce 7# 3# happyReduction_21
+happyReduction_21 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	case happyOut15 happy_x_4 of { happy_var_4 -> 
+	case happyOut77 happy_x_5 of { happy_var_5 -> 
+	case happyOut76 happy_x_6 of { happy_var_6 -> 
+	happyIn9
+		 (FunType happy_var_1 happy_var_3 (nub happy_var_4) happy_var_5 happy_var_6
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_22 = happySpecReduce_3  3# happyReduction_22
+happyReduction_22 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut74 happy_x_2 of { happy_var_2 -> 
+	happyIn9
+		 (ProofScript happy_var_1 happy_var_2
+	)}}
+
+happyReduce_23 = happyReduce 9# 3# happyReduction_23
+happyReduction_23 (happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	case happyOut77 happy_x_8 of { happy_var_8 -> 
+	case happyOut76 happy_x_9 of { happy_var_9 -> 
+	happyIn9
+		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}}}}
+
+happyReduce_24 = happyReduce 10# 3# happyReduction_24
+happyReduction_24 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_7 of { happy_var_7 -> 
+	case happyOut77 happy_x_9 of { happy_var_9 -> 
+	case happyOut76 happy_x_10 of { happy_var_10 -> 
+	happyIn9
+		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_25 = happyReduce 8# 3# happyReduction_25
+happyReduction_25 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut15 happy_x_5 of { happy_var_5 -> 
+	case happyOut77 happy_x_7 of { happy_var_7 -> 
+	case happyOut76 happy_x_8 of { happy_var_8 -> 
+	happyIn9
+		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_5)
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_26 = happyReduce 5# 3# happyReduction_26
+happyReduction_26 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn9
+		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
+	) `HappyStk` happyRest}}
+
+happyReduce_27 = happyReduce 8# 3# happyReduction_27
+happyReduction_27 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_7 of { happy_var_7 -> 
+	happyIn9
+		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}
+
+happyReduce_28 = happyReduce 7# 3# happyReduction_28
+happyReduction_28 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	happyIn9
+		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_29 = happySpecReduce_1  4# happyReduction_29
+happyReduction_29 happy_x_1
+	 =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_30 = happySpecReduce_1  4# happyReduction_30
+happyReduction_30 happy_x_1
+	 =  happyIn10
+		 (Vis Private
+	)
+
+happyReduce_31 = happySpecReduce_1  4# happyReduction_31
+happyReduction_31 happy_x_1
+	 =  happyIn10
+		 (Vis Abstract
+	)
+
+happyReduce_32 = happySpecReduce_0  4# happyReduction_32
+happyReduction_32  =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_33 = happySpecReduce_1  5# happyReduction_33
+happyReduction_33 happy_x_1
+	 =  happyIn11
+		 (False
+	)
+
+happyReduce_34 = happySpecReduce_2  5# happyReduction_34
+happyReduction_34 happy_x_2
+	happy_x_1
+	 =  happyIn11
+		 (True
+	)
+
+happyReduce_35 = happySpecReduce_3  6# happyReduction_35
+happyReduction_35 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut12 happy_x_3 of { happy_var_3 -> 
+	happyIn12
+		 (happy_var_2:happy_var_3
+	)}}
+
+happyReduce_36 = happySpecReduce_0  6# happyReduction_36
+happyReduction_36  =  happyIn12
+		 ([]
+	)
+
+happyReduce_37 = happySpecReduce_1  7# happyReduction_37
+happyReduction_37 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_38 = happySpecReduce_1  7# happyReduction_38
+happyReduction_38 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_39 = happySpecReduce_3  7# happyReduction_39
+happyReduction_39 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn13
+		 (happy_var_2
+	)}
+
+happyReduce_40 = happyReduce 5# 7# happyReduction_40
+happyReduction_40 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut55 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn13
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_41 = happySpecReduce_2  8# happyReduction_41
+happyReduction_41 happy_x_2
+	happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	case happyOut14 happy_x_2 of { happy_var_2 -> 
+	happyIn14
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_42 = happySpecReduce_1  8# happyReduction_42
+happyReduction_42 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn14
+		 ([happy_var_1]
+	)}
+
+happyReduce_43 = happySpecReduce_1  9# happyReduction_43
+happyReduction_43 happy_x_1
+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
+	happyIn15
+		 (happy_var_1
+	)}
+
+happyReduce_44 = happySpecReduce_3  9# happyReduction_44
+happyReduction_44 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn15
+		 (happy_var_2
+	)}
+
+happyReduce_45 = happySpecReduce_0  10# happyReduction_45
+happyReduction_45  =  happyIn16
+		 ([]
+	)
+
+happyReduce_46 = happySpecReduce_2  10# happyReduction_46
+happyReduction_46 happy_x_2
+	happy_x_1
+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
+	case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn16
+		 (happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_47 = happySpecReduce_1  11# happyReduction_47
+happyReduction_47 happy_x_1
+	 =  happyIn17
+		 ([NoCG]
+	)
+
+happyReduce_48 = happySpecReduce_1  11# happyReduction_48
+happyReduction_48 happy_x_1
+	 =  happyIn17
+		 ([CGEval, Inline]
+	)
+
+happyReduce_49 = happyReduce 4# 11# happyReduction_49
+happyReduction_49 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn17
+		 ([CGSpec happy_var_3]
+	) `HappyStk` happyRest}
+
+happyReduce_50 = happySpecReduce_1  11# happyReduction_50
+happyReduction_50 happy_x_1
+	 =  happyIn17
+		 ([CGSpec []]
+	)
+
+happyReduce_51 = happySpecReduce_1  11# happyReduction_51
+happyReduction_51 happy_x_1
+	 =  happyIn17
+		 ([Inline]
+	)
+
+happyReduce_52 = happySpecReduce_2  11# happyReduction_52
+happyReduction_52 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn17
+		 ([CExport happy_var_2]
+	)}
+
+happyReduce_53 = happyReduce 4# 12# happyReduction_53
+happyReduction_53 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut21 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn18
+		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
+	) `HappyStk` happyRest}}}
+
+happyReduce_54 = happySpecReduce_1  13# happyReduction_54
+happyReduction_54 happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	happyIn19
+		 ([happy_var_1]
+	)}
+
+happyReduce_55 = happySpecReduce_3  13# happyReduction_55
+happyReduction_55 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn19
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_56 = happySpecReduce_1  14# happyReduction_56
+happyReduction_56 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
+	happyIn20
+		 (happy_var_1
+	)}
+
+happyReduce_57 = happySpecReduce_1  14# happyReduction_57
+happyReduction_57 happy_x_1
+	 =  happyIn20
+		 ("-"
+	)
+
+happyReduce_58 = happySpecReduce_1  14# happyReduction_58
+happyReduction_58 happy_x_1
+	 =  happyIn20
+		 ("<"
+	)
+
+happyReduce_59 = happySpecReduce_1  14# happyReduction_59
+happyReduction_59 happy_x_1
+	 =  happyIn20
+		 (">"
+	)
+
+happyReduce_60 = happySpecReduce_1  15# happyReduction_60
+happyReduction_60 happy_x_1
+	 =  happyIn21
+		 (LeftAssoc
+	)
+
+happyReduce_61 = happySpecReduce_1  15# happyReduction_61
+happyReduction_61 happy_x_1
+	 =  happyIn21
+		 (RightAssoc
+	)
+
+happyReduce_62 = happySpecReduce_1  15# happyReduction_62
+happyReduction_62 happy_x_1
+	 =  happyIn21
+		 (NonAssoc
+	)
+
+happyReduce_63 = happyReduce 4# 16# happyReduction_63
+happyReduction_63 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut23 happy_x_3 of { happy_var_3 -> 
+	happyIn22
+		 (LatexDefs happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_64 = happySpecReduce_3  17# happyReduction_64
+happyReduction_64 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	happyIn23
+		 ([(happy_var_1,happy_var_3)]
+	)}}
+
+happyReduce_65 = happyReduce 5# 17# happyReduction_65
+happyReduction_65 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	case happyOut23 happy_x_5 of { happy_var_5 -> 
+	happyIn23
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_66 = happySpecReduce_2  18# happyReduction_66
+happyReduction_66 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn24
+		 ((happy_var_1, happy_var_2)
+	)}}
+
+happyReduce_67 = happySpecReduce_0  19# happyReduction_67
+happyReduction_67  =  happyIn25
+		 ([]
+	)
+
+happyReduce_68 = happySpecReduce_2  19# happyReduction_68
+happyReduction_68 happy_x_2
+	happy_x_1
+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn25
+		 ((happy_var_1,Nothing):happy_var_2
+	)}}
+
+happyReduce_69 = happyReduce 5# 19# happyReduction_69
+happyReduction_69 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut25 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((RVar happy_var_4 happy_var_5 happy_var_1, Just happy_var_1):happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_70 = happyReduce 5# 19# happyReduction_70
+happyReduction_70 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut25 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((happy_var_3, Just happy_var_1):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_71 = happyReduce 6# 20# happyReduction_71
+happyReduction_71 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut28 happy_x_2 of { happy_var_2 -> 
+	case happyOut31 happy_x_3 of { happy_var_3 -> 
+	case happyOut27 happy_x_4 of { happy_var_4 -> 
+	case happyOut77 happy_x_5 of { happy_var_5 -> 
+	case happyOut76 happy_x_6 of { happy_var_6 -> 
+	happyIn26
+		 (mkDatatype happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_72 = happySpecReduce_3  21# happyReduction_72
+happyReduction_72 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
+	case happyOut70 happy_x_2 of { happy_var_2 -> 
+	happyIn27
+		 (Right (happy_var_1,happy_var_2)
+	)}}
+
+happyReduce_73 = happySpecReduce_3  21# happyReduction_73
+happyReduction_73 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
+	happyIn27
+		 (Left happy_var_2
+	)}
+
+happyReduce_74 = happySpecReduce_3  21# happyReduction_74
+happyReduction_74 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn27
+		 (Left (RConst happy_var_2 happy_var_3 TYPE)
+	)}}
+
+happyReduce_75 = happySpecReduce_0  22# happyReduction_75
+happyReduction_75  =  happyIn28
+		 ([]
+	)
+
+happyReduce_76 = happySpecReduce_3  22# happyReduction_76
+happyReduction_76 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
+	happyIn28
+		 (happy_var_2
+	)}
+
+happyReduce_77 = happySpecReduce_1  23# happyReduction_77
+happyReduction_77 happy_x_1
+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
+	happyIn29
+		 ([happy_var_1]
+	)}
+
+happyReduce_78 = happySpecReduce_3  23# happyReduction_78
+happyReduction_78 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
+	case happyOut29 happy_x_3 of { happy_var_3 -> 
+	happyIn29
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_79 = happySpecReduce_1  24# happyReduction_79
+happyReduction_79 happy_x_1
+	 =  happyIn30
+		 (NoElim
+	)
+
+happyReduce_80 = happySpecReduce_1  24# happyReduction_80
+happyReduction_80 happy_x_1
+	 =  happyIn30
+		 (Collapsible
+	)
+
+happyReduce_81 = happySpecReduce_1  25# happyReduction_81
+happyReduction_81 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
+	happyIn31
+		 (happy_var_1
+	)}
+
+happyReduce_82 = happySpecReduce_3  25# happyReduction_82
+happyReduction_82 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_2 of { happy_var_2 -> 
+	happyIn31
+		 (useropFn happy_var_2
+	)}
+
+happyReduce_83 = happyReduce 4# 26# happyReduction_83
+happyReduction_83 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	case happyOut53 happy_x_4 of { happy_var_4 -> 
+	happyIn32
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_84 = happyReduce 5# 26# happyReduction_84
+happyReduction_84 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut42 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn32
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_85 = happySpecReduce_3  26# happyReduction_85
+happyReduction_85 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_86 = happySpecReduce_3  26# happyReduction_86
+happyReduction_86 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_87 = happySpecReduce_1  26# happyReduction_87
+happyReduction_87 happy_x_1
+	 =  happyIn32
+		 (RPlaceholder
+	)
+
+happyReduce_88 = happySpecReduce_3  26# happyReduction_88
+happyReduction_88 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
+	)}}
+
+happyReduce_89 = happySpecReduce_3  26# happyReduction_89
+happyReduction_89 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn32
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
+	)}}
+
+happyReduce_90 = happySpecReduce_1  27# happyReduction_90
+happyReduction_90 happy_x_1
+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
+	happyIn33
+		 (happy_var_1
+	)}
+
+happyReduce_91 = happySpecReduce_3  27# happyReduction_91
+happyReduction_91 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn33
+		 (happy_var_2
+	)}
+
+happyReduce_92 = happyReduce 4# 27# happyReduction_92
+happyReduction_92 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	case happyOut53 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_93 = happyReduce 5# 27# happyReduction_93
+happyReduction_93 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut42 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn33
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_94 = happyReduce 4# 27# happyReduction_94
+happyReduction_94 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy")) RPlaceholder) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_95 = happyReduce 4# 27# happyReduction_95
+happyReduction_95 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (doBind Lam happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_96 = happyReduce 4# 27# happyReduction_96
+happyReduction_96 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut41 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (doLetBind happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_97 = happySpecReduce_1  27# happyReduction_97
+happyReduction_97 happy_x_1
+	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
+	happyIn33
+		 (happy_var_1
+	)}
+
+happyReduce_98 = happyReduce 8# 27# happyReduction_98
+happyReduction_98 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut33 happy_x_6 of { happy_var_6 -> 
+	case happyOut77 happy_x_7 of { happy_var_7 -> 
+	case happyOut76 happy_x_8 of { happy_var_8 -> 
+	happyIn33
+		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else")) [happy_var_2,happy_var_4,happy_var_6]
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_99 = happySpecReduce_2  28# happyReduction_99
+happyReduction_99 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	happyIn34
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_100 = happyReduce 4# 28# happyReduction_100
+happyReduction_100 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_101 = happySpecReduce_3  29# happyReduction_101
+happyReduction_101 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
+	case happyOut35 happy_x_3 of { happy_var_3 -> 
+	happyIn35
+		 (happy_var_1 ++ happy_var_3
+	)}}
+
+happyReduce_102 = happySpecReduce_1  29# happyReduction_102
+happyReduction_102 happy_x_1
+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
+	happyIn35
+		 (happy_var_1
+	)}
+
+happyReduce_103 = happySpecReduce_3  30# happyReduction_103
+happyReduction_103 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	happyIn36
+		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
+	)}}
+
+happyReduce_104 = happySpecReduce_1  31# happyReduction_104
+happyReduction_104 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn37
+		 ([happy_var_1]
+	)}
+
+happyReduce_105 = happySpecReduce_3  31# happyReduction_105
+happyReduction_105 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut37 happy_x_3 of { happy_var_3 -> 
+	happyIn37
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_106 = happySpecReduce_2  32# happyReduction_106
+happyReduction_106 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	happyIn38
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_107 = happySpecReduce_1  32# happyReduction_107
+happyReduction_107 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn38
+		 ([(happy_var_1, 0)]
+	)}
+
+happyReduce_108 = happySpecReduce_3  32# happyReduction_108
+happyReduction_108 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn38
+		 ((happy_var_1,0):happy_var_3
+	)}}
+
+happyReduce_109 = happyReduce 4# 32# happyReduction_109
+happyReduction_109 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut38 happy_x_4 of { happy_var_4 -> 
+	happyIn38
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_110 = happySpecReduce_1  33# happyReduction_110
+happyReduction_110 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	happyIn39
+		 ([happy_var_1]
+	)}
+
+happyReduce_111 = happySpecReduce_3  33# happyReduction_111
+happyReduction_111 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut37 happy_x_3 of { happy_var_3 -> 
+	happyIn39
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_112 = happySpecReduce_1  34# happyReduction_112
+happyReduction_112 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn40
+		 ([happy_var_1]
+	)}
+
+happyReduce_113 = happySpecReduce_2  34# happyReduction_113
+happyReduction_113 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut40 happy_x_2 of { happy_var_2 -> 
+	happyIn40
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_114 = happyReduce 4# 35# happyReduction_114
+happyReduction_114 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	happyIn41
+		 ([(happy_var_1,happy_var_2,happy_var_4)]
+	) `HappyStk` happyRest}}}
+
+happyReduce_115 = happyReduce 6# 35# happyReduction_115
+happyReduction_115 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut41 happy_x_6 of { happy_var_6 -> 
+	happyIn41
+		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_116 = happySpecReduce_3  36# happyReduction_116
+happyReduction_116 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn42
+		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1)
+	)}}}
+
+happyReduce_117 = happySpecReduce_3  36# happyReduction_117
+happyReduction_117 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn42
+		 ((happy_var_1, happy_var_3)
+	)}}
+
+happyReduce_118 = happyReduce 4# 37# happyReduction_118
+happyReduction_118 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn43
+		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_119 = happyReduce 5# 37# happyReduction_119
+happyReduction_119 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_120 = happyReduce 5# 37# happyReduction_120
+happyReduction_120 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) [happy_var_1, happy_var_3]
+	) `HappyStk` happyRest}}}}
+
+happyReduce_121 = happyReduce 5# 37# happyReduction_121
+happyReduction_121 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_122 = happyReduce 5# 37# happyReduction_122
+happyReduction_122 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_123 = happyReduce 5# 37# happyReduction_123
+happyReduction_123 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn43
+		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_124 = happySpecReduce_1  37# happyReduction_124
+happyReduction_124 happy_x_1
+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
+	happyIn43
+		 (happy_var_1
+	)}
+
+happyReduce_125 = happyReduce 5# 37# happyReduction_125
+happyReduction_125 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut53 happy_x_1 of { happy_var_1 -> 
+	case happyOut53 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn43
+		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_126 = happyReduce 5# 38# happyReduction_126
+happyReduction_126 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_127 = happyReduce 6# 39# happyReduction_127
+happyReduction_127 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_128 = happyReduce 6# 39# happyReduction_128
+happyReduction_128 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_129 = happyReduce 6# 39# happyReduction_129
+happyReduction_129 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut46 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_130 = happyReduce 6# 39# happyReduction_130
+happyReduction_130 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut46 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_131 = happyReduce 6# 39# happyReduction_131
+happyReduction_131 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}
+
+happyReduce_132 = happyReduce 6# 39# happyReduction_132
+happyReduction_132 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex Eager happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0)))
+	) `HappyStk` happyRest}}}
+
+happyReduce_133 = happyReduce 6# 39# happyReduction_133
+happyReduction_133 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex Eager (RVar happy_var_4 happy_var_5 (MN "X" 0))) happy_var_3)
+	) `HappyStk` happyRest}}}
+
+happyReduce_134 = happyReduce 5# 39# happyReduction_134
+happyReduction_134 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (RBind (MN "X" 1) (Lam RPlaceholder)
+                    (RBind (MN "X" 2) (Pi Ex Eager (RVar happy_var_3 happy_var_4 (MN "X" 0)))
+                       (RVar happy_var_3 happy_var_4 (MN "X" 1))))
+	) `HappyStk` happyRest}}
+
+happyReduce_135 = happyReduce 5# 39# happyReduction_135
+happyReduction_135 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                   (RBind (MN "X" 1) (Lam RPlaceholder)
+                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair"))
+                                    [RVar happy_var_3 happy_var_4 (MN "X" 0),
+                                     RVar happy_var_3 happy_var_4 (MN "X" 1)]))
+	) `HappyStk` happyRest}}
+
+happyReduce_136 = happyReduce 6# 39# happyReduction_136
+happyReduction_136 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
+                                    [happy_var_2,
+                                     RVar happy_var_4 happy_var_5 (MN "X" 0)])
+	) `HappyStk` happyRest}}}
+
+happyReduce_137 = happyReduce 6# 39# happyReduction_137
+happyReduction_137 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
+                                    [RVar happy_var_4 happy_var_5 (MN "X" 0), happy_var_3])
+	) `HappyStk` happyRest}}}
+
+happyReduce_138 = happySpecReduce_1  40# happyReduction_138
+happyReduction_138 happy_x_1
+	 =  happyIn46
+		 ("<"
+	)
+
+happyReduce_139 = happySpecReduce_1  40# happyReduction_139
+happyReduction_139 happy_x_1
+	 =  happyIn46
+		 (">"
+	)
+
+happyReduce_140 = happySpecReduce_0  41# happyReduction_140
+happyReduction_140  =  happyIn47
+		 (RPlaceholder
+	)
+
+happyReduce_141 = happySpecReduce_2  41# happyReduction_141
+happyReduction_141 happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn47
+		 (happy_var_2
+	)}
+
+happyReduce_142 = happySpecReduce_0  42# happyReduction_142
+happyReduction_142  =  happyIn48
+		 (RPlaceholder
+	)
+
+happyReduce_143 = happySpecReduce_2  42# happyReduction_143
+happyReduction_143 happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn48
+		 (happy_var_2
+	)}
+
+happyReduce_144 = happyReduce 5# 43# happyReduction_144
+happyReduction_144 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut39 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut49 happy_x_5 of { happy_var_5 -> 
+	happyIn49
+		 (doBind (Pi Im Eager) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_145 = happySpecReduce_1  43# happyReduction_145
+happyReduction_145 happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	happyIn49
+		 (happy_var_1
+	)}
+
+happyReduce_146 = happySpecReduce_3  44# happyReduction_146
+happyReduction_146 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn50
+		 (RBind (MN "X" 0) (Pi Ex Eager happy_var_1) happy_var_3
+	)}}
+
+happyReduce_147 = happyReduce 5# 44# happyReduction_147
+happyReduction_147 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (doBind (Pi Ex Eager) happy_var_2 happy_var_5
+	) `HappyStk` happyRest}}
+
+happyReduce_148 = happyReduce 5# 44# happyReduction_148
+happyReduction_148 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (doBind (Pi Ex Lazy) happy_var_2 happy_var_5
+	) `HappyStk` happyRest}}
+
+happyReduce_149 = happySpecReduce_3  44# happyReduction_149
+happyReduction_149 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn50
+		 (bracket happy_var_2
+	)}
+
+happyReduce_150 = happyReduce 7# 44# happyReduction_150
+happyReduction_150 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut50 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_4 of { happy_var_4 -> 
+	case happyOut77 happy_x_5 of { happy_var_5 -> 
+	case happyOut76 happy_x_6 of { happy_var_6 -> 
+	happyIn50
+		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_151 = happySpecReduce_1  44# happyReduction_151
+happyReduction_151 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (happy_var_1
+	)}
+
+happyReduce_152 = happySpecReduce_3  44# happyReduction_152
+happyReduction_152 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn50
+		 (happy_var_2
+	)}
+
+happyReduce_153 = happyReduce 5# 44# happyReduction_153
+happyReduction_153 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_154 = happyReduce 5# 44# happyReduction_154
+happyReduction_154 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut52 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_155 = happySpecReduce_1  44# happyReduction_155
+happyReduction_155 happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (happy_var_1
+	)}
+
+happyReduce_156 = happyReduce 8# 45# happyReduction_156
+happyReduction_156 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	case happyOut77 happy_x_7 of { happy_var_7 -> 
+	case happyOut76 happy_x_8 of { happy_var_8 -> 
+	happyIn51
+		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_157 = happySpecReduce_3  46# happyReduction_157
+happyReduction_157 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn52
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_158 = happySpecReduce_3  46# happyReduction_158
+happyReduction_158 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
+	case happyOut52 happy_x_3 of { happy_var_3 -> 
+	happyIn52
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_159 = happySpecReduce_3  47# happyReduction_159
+happyReduction_159 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (RVar happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_160 = happySpecReduce_3  47# happyReduction_160
+happyReduction_160 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (RReturn happy_var_2 happy_var_3
+	)}}
+
+happyReduce_161 = happySpecReduce_3  47# happyReduction_161
+happyReduction_161 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn53
+		 (bracket happy_var_2
+	)}
+
+happyReduce_162 = happySpecReduce_2  47# happyReduction_162
+happyReduction_162 happy_x_2
+	happy_x_1
+	 =  case happyOut53 happy_x_2 of { happy_var_2 -> 
+	happyIn53
+		 (RPure happy_var_2
+	)}
+
+happyReduce_163 = happySpecReduce_1  47# happyReduction_163
+happyReduction_163 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
+	happyIn53
+		 (RMetavar happy_var_1
+	)}
+
+happyReduce_164 = happyReduce 4# 47# happyReduction_164
+happyReduction_164 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn53
+		 (RExpVar happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_165 = happySpecReduce_3  47# happyReduction_165
+happyReduction_165 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_166 = happySpecReduce_1  47# happyReduction_166
+happyReduction_166 happy_x_1
+	 =  happyIn53
+		 (RRefl
+	)
+
+happyReduce_167 = happySpecReduce_3  47# happyReduction_167
+happyReduction_167 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
+	)}}
+
+happyReduce_168 = happySpecReduce_3  47# happyReduction_168
+happyReduction_168 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn53
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
+	)}}
+
+happyReduce_169 = happySpecReduce_1  47# happyReduction_169
+happyReduction_169 happy_x_1
+	 =  happyIn53
+		 (RPlaceholder
+	)
+
+happyReduce_170 = happySpecReduce_1  47# happyReduction_170
+happyReduction_170 happy_x_1
+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 (RDo happy_var_1
+	)}
+
+happyReduce_171 = happySpecReduce_3  47# happyReduction_171
+happyReduction_171 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn53
+		 (RIdiom happy_var_2
+	)}
+
+happyReduce_172 = happyReduce 5# 47# happyReduction_172
+happyReduction_172 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut55 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn53
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_173 = happySpecReduce_1  47# happyReduction_173
+happyReduction_173 happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 (happy_var_1
+	)}
+
+happyReduce_174 = happySpecReduce_1  47# happyReduction_174
+happyReduction_174 happy_x_1
+	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 (happy_var_1
+	)}
+
+happyReduce_175 = happySpecReduce_1  47# happyReduction_175
+happyReduction_175 happy_x_1
+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
+	happyIn53
+		 (happy_var_1
+	)}
+
+happyReduce_176 = happyReduce 7# 48# happyReduction_176
+happyReduction_176 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut77 happy_x_6 of { happy_var_6 -> 
+	case happyOut76 happy_x_7 of { happy_var_7 -> 
+	happyIn54
+		 (RApp happy_var_6 happy_var_7 (RAppImp happy_var_6 happy_var_7 (UN "a") (RVar happy_var_6 happy_var_7 (UN "Exists")) happy_var_2) happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_177 = happyReduce 5# 48# happyReduction_177
+happyReduction_177 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
+	case happyOut77 happy_x_4 of { happy_var_4 -> 
+	case happyOut76 happy_x_5 of { happy_var_5 -> 
+	happyIn54
+		 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists")) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_178 = happySpecReduce_3  49# happyReduction_178
+happyReduction_178 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn55
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_179 = happySpecReduce_3  49# happyReduction_179
+happyReduction_179 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut55 happy_x_3 of { happy_var_3 -> 
+	happyIn55
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_180 = happyReduce 4# 50# happyReduction_180
+happyReduction_180 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut57 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_181 = happyReduce 10# 50# happyReduction_181
+happyReduction_181 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	case happyOut77 happy_x_6 of { happy_var_6 -> 
+	case happyOut76 happy_x_7 of { happy_var_7 -> 
+	case happyOut57 happy_x_9 of { happy_var_9 -> 
+	happyIn56
+		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_182 = happySpecReduce_2  51# happyReduction_182
+happyReduction_182 happy_x_2
+	happy_x_1
+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
+	case happyOut57 happy_x_2 of { happy_var_2 -> 
+	happyIn57
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_183 = happySpecReduce_1  51# happyReduction_183
+happyReduction_183 happy_x_1
+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
+	happyIn57
+		 ([happy_var_1]
+	)}
+
+happyReduce_184 = happyReduce 7# 52# happyReduction_184
+happyReduction_184 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut33 happy_x_4 of { happy_var_4 -> 
+	case happyOut77 happy_x_5 of { happy_var_5 -> 
+	case happyOut76 happy_x_6 of { happy_var_6 -> 
+	happyIn58
+		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_185 = happyReduce 8# 52# happyReduction_185
+happyReduction_185 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut33 happy_x_5 of { happy_var_5 -> 
+	case happyOut77 happy_x_6 of { happy_var_6 -> 
+	case happyOut76 happy_x_7 of { happy_var_7 -> 
+	happyIn58
+		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_186 = happyReduce 4# 52# happyReduction_186
+happyReduction_186 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn58
+		 (DoExp happy_var_2 happy_var_3 happy_var_1
+	) `HappyStk` happyRest}}}
+
+happyReduce_187 = happySpecReduce_1  53# happyReduction_187
+happyReduction_187 happy_x_1
+	 =  happyIn59
+		 (TYPE
+	)
+
+happyReduce_188 = happySpecReduce_1  53# happyReduction_188
+happyReduction_188 happy_x_1
+	 =  happyIn59
+		 (StringType
+	)
+
+happyReduce_189 = happySpecReduce_1  53# happyReduction_189
+happyReduction_189 happy_x_1
+	 =  happyIn59
+		 (IntType
+	)
+
+happyReduce_190 = happySpecReduce_1  53# happyReduction_190
+happyReduction_190 happy_x_1
+	 =  happyIn59
+		 (CharType
+	)
+
+happyReduce_191 = happySpecReduce_1  53# happyReduction_191
+happyReduction_191 happy_x_1
+	 =  happyIn59
+		 (FloatType
+	)
+
+happyReduce_192 = happySpecReduce_1  53# happyReduction_192
+happyReduction_192 happy_x_1
+	 =  happyIn59
+		 (PtrType
+	)
+
+happyReduce_193 = happySpecReduce_1  53# happyReduction_193
+happyReduction_193 happy_x_1
+	 =  happyIn59
+		 (Builtin "Handle"
+	)
+
+happyReduce_194 = happySpecReduce_1  53# happyReduction_194
+happyReduction_194 happy_x_1
+	 =  happyIn59
+		 (Builtin "Lock"
+	)
+
+happyReduce_195 = happySpecReduce_1  53# happyReduction_195
+happyReduction_195 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
+	happyIn59
+		 (Num happy_var_1
+	)}
+
+happyReduce_196 = happySpecReduce_1  53# happyReduction_196
+happyReduction_196 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
+	happyIn59
+		 (Ch happy_var_1
+	)}
+
+happyReduce_197 = happySpecReduce_1  53# happyReduction_197
+happyReduction_197 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
+	happyIn59
+		 (Str happy_var_1
+	)}
+
+happyReduce_198 = happySpecReduce_1  53# happyReduction_198
+happyReduction_198 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
+	happyIn59
+		 (Bo happy_var_1
+	)}
+
+happyReduce_199 = happySpecReduce_1  53# happyReduction_199
+happyReduction_199 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
+	happyIn59
+		 (Fl happy_var_1
+	)}
+
+happyReduce_200 = happySpecReduce_0  54# happyReduction_200
+happyReduction_200  =  happyIn60
+		 ([]
+	)
+
+happyReduce_201 = happySpecReduce_2  54# happyReduction_201
+happyReduction_201 happy_x_2
+	happy_x_1
+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> 
+	case happyOut60 happy_x_2 of { happy_var_2 -> 
+	happyIn60
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_202 = happyReduce 4# 55# happyReduction_202
+happyReduction_202 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut49 happy_x_2 of { happy_var_2 -> 
+	case happyOut62 happy_x_3 of { happy_var_3 -> 
+	happyIn61
+		 ((happy_var_2, happy_var_3)
+	) `HappyStk` happyRest}}
+
+happyReduce_203 = happySpecReduce_3  55# happyReduction_203
+happyReduction_203 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut77 happy_x_2 of { happy_var_2 -> 
+	case happyOut76 happy_x_3 of { happy_var_3 -> 
+	happyIn61
+		 ((RConst happy_var_2 happy_var_3 TYPE, [])
+	)}}
+
+happyReduce_204 = happyReduce 4# 55# happyReduction_204
+happyReduction_204 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_3 of { happy_var_3 -> 
+	case happyOut76 happy_x_4 of { happy_var_4 -> 
+	happyIn61
+		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
+	) `HappyStk` happyRest}}}
+
+happyReduce_205 = happySpecReduce_0  56# happyReduction_205
+happyReduction_205  =  happyIn62
+		 ([]
+	)
+
+happyReduce_206 = happyReduce 4# 56# happyReduction_206
+happyReduction_206 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut67 happy_x_3 of { happy_var_3 -> 
+	happyIn62
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_207 = happyReduce 7# 57# happyReduction_207
+happyReduction_207 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_4 of { happy_var_4 -> 
+	case happyOut31 happy_x_6 of { happy_var_6 -> 
+	happyIn63
+		 ((happy_var_4,happy_var_6)
+	) `HappyStk` happyRest}}
+
+happyReduce_208 = happyReduce 6# 58# happyReduction_208
+happyReduction_208 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_3 of { happy_var_3 -> 
+	case happyOut31 happy_x_5 of { happy_var_5 -> 
+	happyIn64
+		 ((happy_var_3,happy_var_5)
+	) `HappyStk` happyRest}}
+
+happyReduce_209 = happyReduce 4# 59# happyReduction_209
+happyReduction_209 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut67 happy_x_3 of { happy_var_3 -> 
+	happyIn65
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_210 = happySpecReduce_2  60# happyReduction_210
+happyReduction_210 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn66
+		 (happy_var_2
+	)}
+
+happyReduce_211 = happySpecReduce_3  61# happyReduction_211
+happyReduction_211 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	happyIn67
+		 ([(happy_var_1, happy_var_3)]
+	)}}
+
+happyReduce_212 = happyReduce 5# 61# happyReduction_212
+happyReduction_212 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_3 of { happy_var_3 -> 
+	case happyOut67 happy_x_5 of { happy_var_5 -> 
+	happyIn67
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_213 = happySpecReduce_1  62# happyReduction_213
+happyReduction_213 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn68
+		 ([happy_var_1]
+	)}
+
+happyReduce_214 = happySpecReduce_2  62# happyReduction_214
+happyReduction_214 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut68 happy_x_2 of { happy_var_2 -> 
+	happyIn68
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_215 = happySpecReduce_1  63# happyReduction_215
+happyReduction_215 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn69
+		 (happy_var_1
+	)}
+
+happyReduce_216 = happySpecReduce_1  63# happyReduction_216
+happyReduction_216 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn69
+		 (happy_var_1
+	)}
+
+happyReduce_217 = happySpecReduce_0  64# happyReduction_217
+happyReduction_217  =  happyIn70
+		 ([]
+	)
+
+happyReduce_218 = happySpecReduce_1  64# happyReduction_218
+happyReduction_218 happy_x_1
+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
+	happyIn70
+		 ([happy_var_1]
+	)}
+
+happyReduce_219 = happySpecReduce_3  64# happyReduction_219
+happyReduction_219 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> 
+	case happyOut70 happy_x_3 of { happy_var_3 -> 
+	happyIn70
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_220 = happySpecReduce_2  65# happyReduction_220
+happyReduction_220 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut72 happy_x_2 of { happy_var_2 -> 
+	happyIn71
+		 (Full happy_var_1 happy_var_2
+	)}}
+
+happyReduce_221 = happySpecReduce_2  65# happyReduction_221
+happyReduction_221 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut60 happy_x_2 of { happy_var_2 -> 
+	happyIn71
+		 (Simple happy_var_1 happy_var_2
+	)}}
+
+happyReduce_222 = happySpecReduce_2  66# happyReduction_222
+happyReduction_222 happy_x_2
+	happy_x_1
+	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
+	happyIn72
+		 (happy_var_2
+	)}
+
+happyReduce_223 = happySpecReduce_2  67# happyReduction_223
+happyReduction_223 happy_x_2
+	happy_x_1
+	 =  case happyOut37 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Intro happy_var_2
+	)}
+
+happyReduce_224 = happySpecReduce_1  67# happyReduction_224
+happyReduction_224 happy_x_1
+	 =  happyIn73
+		 (Intro []
+	)
+
+happyReduce_225 = happySpecReduce_2  67# happyReduction_225
+happyReduction_225 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Refine happy_var_2
+	)}
+
+happyReduce_226 = happySpecReduce_2  67# happyReduction_226
+happyReduction_226 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Generalise happy_var_2
+	)}
+
+happyReduce_227 = happySpecReduce_1  67# happyReduction_227
+happyReduction_227 happy_x_1
+	 =  happyIn73
+		 (ReflP
+	)
+
+happyReduce_228 = happySpecReduce_2  67# happyReduction_228
+happyReduction_228 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Rewrite False False happy_var_2
+	)}
+
+happyReduce_229 = happySpecReduce_3  67# happyReduction_229
+happyReduction_229 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn73
+		 (Rewrite False True happy_var_3
+	)}
+
+happyReduce_230 = happySpecReduce_2  67# happyReduction_230
+happyReduction_230 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Rewrite True False happy_var_2
+	)}
+
+happyReduce_231 = happySpecReduce_3  67# happyReduction_231
+happyReduction_231 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
+	happyIn73
+		 (Rewrite True True happy_var_3
+	)}
+
+happyReduce_232 = happySpecReduce_1  67# happyReduction_232
+happyReduction_232 happy_x_1
+	 =  happyIn73
+		 (Compute
+	)
+
+happyReduce_233 = happySpecReduce_2  67# happyReduction_233
+happyReduction_233 happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Unfold happy_var_2
+	)}
+
+happyReduce_234 = happySpecReduce_1  67# happyReduction_234
+happyReduction_234 happy_x_1
+	 =  happyIn73
+		 (Undo
+	)
+
+happyReduce_235 = happySpecReduce_2  67# happyReduction_235
+happyReduction_235 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Induction happy_var_2
+	)}
+
+happyReduce_236 = happySpecReduce_2  67# happyReduction_236
+happyReduction_236 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Fill happy_var_2
+	)}
+
+happyReduce_237 = happySpecReduce_1  67# happyReduction_237
+happyReduction_237 happy_x_1
+	 =  happyIn73
+		 (Trivial
+	)
+
+happyReduce_238 = happySpecReduce_2  67# happyReduction_238
+happyReduction_238 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (RunTactic happy_var_2
+	)}
+
+happyReduce_239 = happySpecReduce_2  67# happyReduction_239
+happyReduction_239 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Believe happy_var_2
+	)}
+
+happyReduce_240 = happySpecReduce_2  67# happyReduction_240
+happyReduction_240 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Use happy_var_2
+	)}
+
+happyReduce_241 = happySpecReduce_2  67# happyReduction_241
+happyReduction_241 happy_x_2
+	happy_x_1
+	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (Decide happy_var_2
+	)}
+
+happyReduce_242 = happySpecReduce_1  67# happyReduction_242
+happyReduction_242 happy_x_1
+	 =  happyIn73
+		 (Abandon
+	)
+
+happyReduce_243 = happySpecReduce_1  67# happyReduction_243
+happyReduction_243 happy_x_1
+	 =  happyIn73
+		 (Qed
+	)
+
+happyReduce_244 = happyReduce 4# 68# happyReduction_244
+happyReduction_244 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut75 happy_x_3 of { happy_var_3 -> 
+	happyIn74
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_245 = happySpecReduce_2  69# happyReduction_245
+happyReduction_245 happy_x_2
+	happy_x_1
+	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
+	happyIn75
+		 ([happy_var_1]
+	)}
+
+happyReduce_246 = happySpecReduce_3  69# happyReduction_246
+happyReduction_246 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut73 happy_x_1 of { happy_var_1 -> 
+	case happyOut75 happy_x_3 of { happy_var_3 -> 
+	happyIn75
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_247 = happyMonadReduce 0# 70# happyReduction_247
+happyReduction_247 (happyRest) tk
+	 = happyThen (( getLineNo)
+	) (\r -> happyReturn (happyIn76 r))
+
+happyReduce_248 = happyMonadReduce 0# 71# happyReduction_248
+happyReduction_248 (happyRest) tk
+	 = happyThen (( getFileName)
+	) (\r -> happyReturn (happyIn77 r))
+
+happyReduce_249 = happyMonadReduce 0# 72# happyReduction_249
+happyReduction_249 (happyRest) tk
+	 = happyThen (( getOps)
+	) (\r -> happyReturn (happyIn78 r))
+
+happyNewToken action sts stk
+	= lexer(\tk -> 
+	let cont i = happyDoAction i tk action sts stk in
+	case tk of {
+	TokenEOF -> happyDoAction 118# tk action sts stk;
+	TokenName happy_dollar_dollar -> cont 1#;
+	TokenInfixName happy_dollar_dollar -> cont 2#;
+	TokenBrackName happy_dollar_dollar -> cont 3#;
+	TokenString happy_dollar_dollar -> cont 4#;
+	TokenInt happy_dollar_dollar -> cont 5#;
+	TokenFloat happy_dollar_dollar -> cont 6#;
+	TokenChar happy_dollar_dollar -> cont 7#;
+	TokenBool happy_dollar_dollar -> cont 8#;
+	TokenMetavar happy_dollar_dollar -> cont 9#;
+	TokenColon -> cont 10#;
+	TokenSemi -> cont 11#;
+	TokenBar -> cont 12#;
+	TokenStars -> cont 13#;
+	TokenLambda -> cont 14#;
+	TokenHashOB -> cont 15#;
+	TokenOB -> cont 16#;
+	TokenCB -> cont 17#;
+	TokenOCB -> cont 18#;
+	TokenCCB -> cont 19#;
+	TokenOSB -> cont 20#;
+	TokenCSB -> cont 21#;
+	TokenOId -> cont 22#;
+	TokenCId -> cont 23#;
+	TokenLPair -> cont 24#;
+	TokenRPair -> cont 25#;
+	TokenExists -> cont 26#;
+	TokenTilde -> cont 27#;
+	TokenPlus -> cont 28#;
+	TokenMinus -> cont 29#;
+	TokenTimes -> cont 30#;
+	TokenDivide -> cont 31#;
+	TokenEquals -> cont 32#;
+	TokenMightEqual -> cont 33#;
+	TokenLT -> cont 34#;
+	TokenGT -> cont 35#;
+	TokenEllipsis -> cont 36#;
+	TokenUnderscore -> cont 37#;
+	TokenComma -> cont 38#;
+	TokenTuple -> cont 39#;
+	TokenBang -> cont 40#;
+	TokenConcat -> cont 41#;
+	TokenGE -> cont 42#;
+	TokenLE -> cont 43#;
+	TokenOr -> cont 44#;
+	TokenAnd -> cont 45#;
+	TokenArrow -> cont 46#;
+	TokenFatArrow -> cont 47#;
+	TokenTransArrow -> cont 48#;
+	TokenLeftArrow -> cont 49#;
+	TokenIntType -> cont 50#;
+	TokenCharType -> cont 51#;
+	TokenFloatType -> cont 52#;
+	TokenStringType -> cont 53#;
+	TokenHandleType -> cont 54#;
+	TokenPtrType -> cont 55#;
+	TokenLockType -> cont 56#;
+	TokenType -> cont 57#;
+	TokenLazyBracket -> cont 58#;
+	TokenDataType -> cont 59#;
+	TokenInfix -> cont 60#;
+	TokenInfixL -> cont 61#;
+	TokenInfixR -> cont 62#;
+	TokenUsing -> cont 63#;
+	TokenIdiom -> cont 64#;
+	TokenParams -> cont 65#;
+	TokenNamespace -> cont 66#;
+	TokenPublic -> cont 67#;
+	TokenPrivate -> cont 68#;
+	TokenAbstract -> cont 69#;
+	TokenNoElim -> cont 70#;
+	TokenCollapsible -> cont 71#;
+	TokenWhere -> cont 72#;
+	TokenWith -> cont 73#;
+	TokenPartial -> cont 74#;
+	TokenSyntax -> cont 75#;
+	TokenLazy -> cont 76#;
+	TokenRefl -> cont 77#;
+	TokenEmptyType -> cont 78#;
+	TokenUnitType -> cont 79#;
+	TokenInclude -> cont 80#;
+	TokenExport -> cont 81#;
+	TokenInline -> cont 82#;
+	TokenDo -> cont 83#;
+	TokenReturn -> cont 84#;
+	TokenIf -> cont 85#;
+	TokenThen -> cont 86#;
+	TokenElse -> cont 87#;
+	TokenLet -> cont 88#;
+	TokenIn -> cont 89#;
+	TokenProof -> cont 90#;
+	TokenIntro -> cont 91#;
+	TokenRefine -> cont 92#;
+	TokenGeneralise -> cont 93#;
+	TokenReflP -> cont 94#;
+	TokenRewrite -> cont 95#;
+	TokenRewriteAll -> cont 96#;
+	TokenCompute -> cont 97#;
+	TokenUnfold -> cont 98#;
+	TokenUndo -> cont 99#;
+	TokenInduction -> cont 100#;
+	TokenFill -> cont 101#;
+	TokenTrivial -> cont 102#;
+	TokenMkTac -> cont 103#;
+	TokenBelieve -> cont 104#;
+	TokenUse -> cont 105#;
+	TokenDecide -> cont 106#;
+	TokenAbandon -> cont 107#;
+	TokenQED -> cont 108#;
+	TokenLaTeX -> cont 109#;
+	TokenNoCG -> cont 110#;
+	TokenEval -> cont 111#;
+	TokenSpec -> cont 112#;
+	TokenFreeze -> cont 113#;
+	TokenThaw -> cont 114#;
+	TokenTransform -> cont 115#;
+	TokenCInclude -> cont 116#;
+	TokenCLib -> cont 117#;
+	_ -> happyError' tk
+	})
+
+happyError_ tk = happyError' tk
+
+happyThen :: () => P a -> (a -> P b) -> P b
+happyThen = (thenP)
+happyReturn :: () => a -> P a
+happyReturn = (returnP)
+happyThen1 = happyThen
+happyReturn1 :: () => a -> P a
+happyReturn1 = happyReturn
+happyError' :: () => (Token) -> P a
+happyError' tk = (\token -> happyError) tk
+
+mkparse = happySomeParser where
+  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
+
+mkparseTerm = happySomeParser where
+  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut33 x))
+
+mkparseTactic = happySomeParser where
+  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut73 x))
+
+happySeq = happyDontSeq
+
+
+data ConParse = Full Id RawTerm
+              | Simple Id [RawTerm]
+
+parse :: String -> FilePath -> Result [Decl]
+parse s fn = do ds <- mkparse s fn 1 []
+                collectDecls ds
+
+processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
+                  IO ([Decl], [FilePath])
+processImports opts imped (Success ds) = pi imped [] ds
+  where pi imps decls ((PInclude fp):xs)
+           | fp `elem` imps = pi imps decls xs
+           | otherwise = do
+                 f <- readLibFile defaultLibPath fp
+                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
+                 case parse f fp of
+                   Success t -> pi (fp:imps) decls (t++xs)
+                   Failure e f l ->
+                     fail $ f ++ ":" ++ show l ++ ":" ++ e
+        pi imps decls ((Using t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Using t ds']) xs
+        pi imps decls ((Params t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Params t ds']) xs
+        pi imps decls ((DoUsing b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[DoUsing b r ds']) xs
+        pi imps decls ((Idiom b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Idiom b r ds']) xs
+        pi imps decls ((Namespace n ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Namespace n ds']) xs
+        pi imps decls (x:xs) = pi imps (decls++[x]) xs
+        pi imps decls [] = return (decls, imps)
+
+processImports _ imped (Failure e f l) 
+    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
+
+
+parseTerm :: String -> Result RawTerm
+parseTerm s = mkparseTerm s "(input)" 0 []
+
+parseTactic :: String -> Result ITactic
+parseTactic s = mkparseTactic s "(tactic)" 0 []
+
+mkCon :: RawTerm -> ConParse -> (Id,RawTerm)
+mkCon _ (Full n t) = (n,t)
+mkCon ty (Simple n args) = (n, mkConTy args ty)
+   where mkConTy [] ty = ty
+         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex Eager a) (mkConTy as ty)
+
+mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
+   where mkImpApp f [] = f
+         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
+         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
+
+doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
+doBind b [] t = t
+doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
+
+doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
+doLetBind [] t = t
+doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
+
+mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
+mkTyApp file line n ty = mkApp file line (RVar file line n) (getTyArgs ty)
+   where getTyArgs (RBind n _ t) = (RVar file line n):(getTyArgs t)
+         getTyArgs x = []
+
+mkTyParams :: String -> Int -> [Id] -> RawTerm
+mkTyParams f l [] = RConst f l TYPE
+mkTyParams f l (x:xs) = RBind x (Pi Ex Eager (RConst f l TYPE)) (mkTyParams f l xs)
+
+mkDatatype :: String -> Int ->
+              Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
+                    [TyOpt] -> Datatype
+mkDatatype file line n (Right ((t, using), cons)) opts
+    = Datatype n t (map (mkCon (mkTyApp file line n t)) cons) using opts file line 
+mkDatatype file line n (Left t) opts
+    = Latatype n t file line
+
+bracket (RUserInfix f l _ op x y) = RUserInfix f l True op x y
+bracket x = x
+
+pairDesugar :: String -> Int -> RawTerm -> [RawTerm] -> RawTerm
+pairDesugar file line pair [x,y] = mkApp file line pair [x,y]
+pairDesugar file line pair (x:y:xs) 
+    = pairDesugar file line pair ((mkApp file line pair [x,y]):xs)
+
+sigDesugar :: String -> Int -> (Id, RawTerm) -> RawTerm -> RawTerm
+sigDesugar file line (n, tm) sc
+    = mkApp file line (RVar file line (UN "Sigma")) [tm, lam]
+   where lam = RBind n (Lam tm) sc
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+{-# LINE 1 "<built-in>" #-}
+{-# LINE 1 "<command line>" #-}
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+-- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
+
+{-# LINE 28 "templates/GenericTemplate.hs" #-}
+
+
+data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
+
+
+
+
+
+{-# LINE 49 "templates/GenericTemplate.hs" #-}
+
+{-# LINE 59 "templates/GenericTemplate.hs" #-}
+
+{-# LINE 68 "templates/GenericTemplate.hs" #-}
+
+infixr 9 `HappyStk`
+data HappyStk a = HappyStk a (HappyStk a)
+
+-----------------------------------------------------------------------------
+-- starting the parse
+
+happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
+
+-----------------------------------------------------------------------------
+-- Accepting the parse
+
+-- If the current token is 0#, it means we've just accepted a partial
+-- parse (a %partial parser).  We must ignore the saved token on the top of
+-- the stack in this case.
+happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
+	happyReturn1 ans
+happyAccept j tk st sts (HappyStk ans _) = 
+	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)
+
+-----------------------------------------------------------------------------
+-- Arrays only: do the next action
+
+
+
+happyDoAction i tk st
+	= {- nothing -}
+
+
+	  case action of
+		0#		  -> {- nothing -}
+				     happyFail i tk st
+		-1# 	  -> {- nothing -}
+				     happyAccept i tk st
+		n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
+
+				     (happyReduceArr Happy_Data_Array.! rule) i tk st
+				     where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
+		n		  -> {- nothing -}
+
+
+				     happyShift new_state i tk st
+				     where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
+   where off    = indexShortOffAddr happyActOffsets st
+	 off_i  = (off Happy_GHC_Exts.+# i)
+	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
+			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)
+			else False
+ 	 action | check     = indexShortOffAddr happyTable off_i
+		| otherwise = indexShortOffAddr happyDefActions st
+
+{-# LINE 127 "templates/GenericTemplate.hs" #-}
+
+
+indexShortOffAddr (HappyA# arr) off =
+#if __GLASGOW_HASKELL__ > 500
+	Happy_GHC_Exts.narrow16Int# i
+#elif __GLASGOW_HASKELL__ == 500
+	Happy_GHC_Exts.intToInt16# i
+#else
+	Happy_GHC_Exts.iShiftRA# (Happy_GHC_Exts.iShiftL# i 16#) 16#
+#endif
+  where
+#if __GLASGOW_HASKELL__ >= 503
+	i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
+#else
+	i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.shiftL# high 8#) low)
+#endif
+	high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
+	low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
+	off' = off Happy_GHC_Exts.*# 2#
+
+
+
+
+
+data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
+
+
+
+
+-----------------------------------------------------------------------------
+-- HappyState data type (not arrays)
+
+{-# LINE 170 "templates/GenericTemplate.hs" #-}
+
+-----------------------------------------------------------------------------
+-- Shifting a token
+
+happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
+     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
+--     trace "shifting the error token" $
+     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
+
+happyShift new_state i tk st sts stk =
+     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
+
+-- happyReduce is specialised for the common cases.
+
+happySpecReduce_0 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_0 nt fn j tk st@((action)) sts stk
+     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
+
+happySpecReduce_1 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
+     = let r = fn v1 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happySpecReduce_2 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
+     = let r = fn v1 v2 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happySpecReduce_3 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
+     = let r = fn v1 v2 v3 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happyReduce k i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyReduce k nt fn j tk st sts stk
+     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
+	 sts1@((HappyCons (st1@(action)) (_))) ->
+        	let r = fn stk in  -- it doesn't hurt to always seq here...
+       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)
+
+happyMonadReduce k nt fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyMonadReduce k nt fn j tk st sts stk =
+        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
+       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
+             drop_stk = happyDropStk k stk
+
+happyMonad2Reduce k nt fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyMonad2Reduce k nt fn j tk st sts stk =
+       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
+       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
+             drop_stk = happyDropStk k stk
+
+             off    = indexShortOffAddr happyGotoOffsets st1
+             off_i  = (off Happy_GHC_Exts.+# nt)
+             new_state = indexShortOffAddr happyTable off_i
+
+
+
+
+happyDrop 0# l = l
+happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
+
+happyDropStk 0# l = l
+happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
+
+-----------------------------------------------------------------------------
+-- Moving to a new state after a reduction
+
+
+happyGoto nt j tk st = 
+   {- nothing -}
+   happyDoAction j tk new_state
+   where off    = indexShortOffAddr happyGotoOffsets st
+	 off_i  = (off Happy_GHC_Exts.+# nt)
+ 	 new_state = indexShortOffAddr happyTable off_i
+
+
+
+
+-----------------------------------------------------------------------------
+-- Error recovery (0# is the error token)
+
+-- parse error if we are in recovery and we fail again
+happyFail  0# tk old_st _ stk =
+--	trace "failing" $ 
+    	happyError_ tk
+
+{-  We don't need state discarding for our restricted implementation of
+    "error".  In fact, it can cause some bogus parses, so I've disabled it
+    for now --SDM
+
+-- discard a state
+happyFail  0# tk old_st (HappyCons ((action)) (sts)) 
+						(saved_tok `HappyStk` _ `HappyStk` stk) =
+--	trace ("discarding state, depth " ++ show (length stk))  $
+	happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))
+-}
+
+-- Enter error recovery: generate an error token,
+--                       save the old token and carry on.
+happyFail  i tk (action) sts stk =
+--      trace "entering error recovery" $
+	happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)
+
+-- Internal happy errors:
+
+notHappyAtAll = error "Internal Happy error\n"
+
+-----------------------------------------------------------------------------
+-- Hack to get the typechecker to accept our action functions
+
+
+happyTcHack :: Happy_GHC_Exts.Int# -> a -> a
 happyTcHack x y = y
 {-# INLINE happyTcHack #-}
 
diff --git a/idris.cabal b/idris.cabal
--- a/idris.cabal
+++ b/idris.cabal
@@ -1,5 +1,5 @@
 Name:           idris
-Version:        0.1.3.1
+Version:        0.1.4
 License:        BSD3
 License-file:   LICENSE
 Author:         Edwin Brady
@@ -42,12 +42,12 @@
                          Idris.Compiler, Idris.LambdaLift, Idris.PMComp, 
                          Idris.MakeTerm, Idris.Prover, Idris.Fontlock,
                          Idris.ConTrans, Idris.SCTrans, Idris.RunIO,
-                         Idris.SimpleCase
+                         Idris.SimpleCase, Idris.Serialise
         Other-modules:   Paths_idris
 
         Build-depends:   base>=4 && <5, containers, array, parsec, mtl,
-                         readline, ivor>=0.1.10, directory, haskell98,
-                         old-time, old-locale, binary, epic>=0.1.3
+                         readline, ivor>=0.1.11, directory, haskell98,
+                         old-time, old-locale, binary, epic>=0.1.4
                                 
         Extensions:      MagicHash, UndecidableInstances, OverlappingInstances
 
@@ -58,7 +58,7 @@
                               Idris.Compiler, Idris.LambdaLift, Idris.PMComp, 
                               Idris.MakeTerm, Idris.Prover, Idris.Fontlock,
                               Idris.ConTrans, Idris.SCTrans, Idris.RunIO,
-                              Idris.SimpleCase
+                              Idris.SimpleCase, Idris.Serialise
 
                Build-depends:   base>=4 && <5, containers, array, parsec, mtl,
                                 readline, ivor>=0.1.10, directory, haskell98,
diff --git a/lib/io.idr b/lib/io.idr
--- a/lib/io.idr
+++ b/lib/io.idr
@@ -33,54 +33,60 @@
 fapp fNil fxs = fxs;
 fapp (fCons fx fxs) fys = fCons fx (fapp fxs fys);
 
-data IO : # -> #;
+namespace IO {
 
-data Command : # where
-    PutStr : String -> Command
-  | GetStr : Command
-  | Fork : {A:#} -> A -> Command
-  | NewLock : Int -> Command
-  | DoLock : Lock -> Command
-  | DoUnlock : Lock -> Command
-  | NewRef : Command
-  | ReadRef : # -> Int -> Command
-  | WriteRef : {A:#} -> Int -> A -> Command
-  | While : (IO Bool) -> (IO ()) -> Command
-  | WhileAcc : {A:#} -> (IO Bool) -> A -> (A -> IO A) -> Command
-  | Within : Int -> (IO A) -> (IO A) -> Command
-  | IOLift : {A:#} -> (IO A) -> Command 
-  | Foreign : (f:ForeignFun) -> 
-	      (args:FArgList (f_args f)) -> Command;
+  data IO : # -> #;
 
-Response : Command -> #;
-Response (PutStr s) = ();
-Response GetStr = String;
-Response (Fork proc) = ();
-Response (NewLock i) = Lock;
-Response (DoLock l) = ();
-Response (DoUnlock l) = ();
-Response NewRef = Int;
-Response (ReadRef A i) = A;
-Response (WriteRef i val) = ();
-Response (While test body) = ();
-Response (WhileAcc {A} test acc body) = A;
-Response (Within {A} time body failure) = A;
-Response (IOLift {A} f) = A;
-Response (Foreign t args) = i_ftype (f_retType t);
+  data Command : # where
+      PutStr : String -> Command
+    | GetStr : Command
+    | Fork : {A:#} -> A -> Command
+    | NewLock : Int -> Command
+    | DoLock : Lock -> Command
+    | DoUnlock : Lock -> Command
+    | NewRef : Command
+    | ReadRef : # -> Int -> Command
+    | WriteRef : {A:#} -> Int -> A -> Command
+    | While : (IO Bool) -> (IO ()) -> Command
+    | WhileAcc : {A:#} -> (IO Bool) -> A -> (A -> IO A) -> Command
+    | Within : Int -> (IO A) -> (IO A) -> Command
+    | IOLift : {A:#} -> (IO A) -> Command 
+    | Foreign : (f:ForeignFun) -> 
+  	        (args:FArgList (f_args f)) -> Command;
 
-data IO : # -> # where
-   IOReturn : A -> (IO A)
- | IODo : (c:Command) -> ((Response c) -> (IO A)) -> (IO A);
---  | IOError : String -> (IO A);
+  Response : Command -> #;
+  Response (PutStr s) = ();
+  Response GetStr = String;
+  Response (Fork proc) = ();
+  Response (NewLock i) = Lock;
+  Response (DoLock l) = ();
+  Response (DoUnlock l) = ();
+  Response NewRef = Int;
+  Response (ReadRef A i) = A;
+  Response (WriteRef i val) = ();
+  Response (While test body) = ();
+  Response (WhileAcc {A} test acc body) = A;
+  Response (Within {A} time body failure) = A;
+  Response (IOLift {A} f) = A;
+  Response (Foreign t args) = i_ftype (f_retType t);
 
-data IORef A = MkIORef Int;
 
-bind : (IO a) -> (a -> (IO b)) -> (IO b);
-bind (IOReturn a) k = k a;
--- bind (IODo (IOLift {A} c) p) k = bind (bind c p) k;
-bind (IODo c p) k = IODo c (\x => (bind (p x) k));
--- bind (IOError str) k = IOError str;
+  data IO : # -> # where
+     IOReturn : A -> (IO A)
+   | IODo : (c:Command) -> ((Response c) -> (IO A)) -> (IO A);
 
+  data IORef A = MkIORef Int;
+
+  bind : (IO a) -> (a -> (IO b)) -> (IO b);
+  bind (IOReturn a) k = k a;
+  -- bind (IODo (IOLift {A} c) p) k = bind (bind c p) k;
+  bind (IODo c p) k = IODo c (\x => (bind (p x) k));
+  -- bind (IOError str) k = IOError str;
+
+  ret : a -> IO a;
+  ret x = IOReturn x;
+}
+
 kbind : (IO a) -> (a -> b) -> (IO b);
 kbind (IOReturn a) k = IOReturn (k a);
 kbind (IODo c p) k = IODo c (\x => (kbind (p x) k));
@@ -108,10 +114,10 @@
 ioReturn x = IOReturn x;
 -}
 
-ioApp : IO (a -> b) -> IO a -> IO b;
-ioApp {a} {b} fn arg = do { f : (a->b) <- fn; -- grr
+apply : IO (a -> b) -> IO a -> IO b;
+apply {a} {b} fn arg = do { f : (a->b) <- fn; -- grr
                             x <- arg;
-		            return (f x); };
+              		    return (f x); };
 
 data IOException = IOExcept String; 
 
@@ -188,23 +194,23 @@
 
 mkFType' : (List FType) -> FType -> #   %nocg;
 
-mkFType' Nil ret = IO (i_ftype ret);
-mkFType' (Cons t ts) ret = #((i_ftype t) -> (mkFType' ts ret));
+mkFType' Nil rt = IO (i_ftype rt);
+mkFType' (Cons t ts) rt = #((i_ftype t) -> (mkFType' ts rt));
 
 mkFType : ForeignFun -> #    %nocg;
-mkFType (FFun fn args ret) = mkFType' args ret;
+mkFType (FFun fn args rt) = mkFType' args rt;
 
 mkFDef : String -> (ts:List FType) -> (xs:List FType) -> (FArgList xs) ->
-	 (ret:FType) -> (mkFType' ts ret)   %nocg;
-mkFDef nm Nil accA fs ret 
-   = IODo (Foreign (FFun nm accA ret) fs)
+	 (rt:FType) -> (mkFType' ts rt)   %nocg;
+mkFDef nm Nil accA fs rt 
+   = IODo (Foreign (FFun nm accA rt) fs)
 				 (\a => (IOReturn a));
-mkFDef nm (Cons t ts) accA fs ret 
+mkFDef nm (Cons t ts) accA fs rt 
    = \x:i_ftype t => mkFDef nm ts (app accA (Cons t Nil)) 
-				   (fapp fs (fCons x fNil)) ret;
+				   (fapp fs (fCons x fNil)) rt;
 
 mkForeign : (f:ForeignFun) -> (mkFType f)   %nocg;
-mkForeign (FFun fn args ret) = mkFDef fn args Nil fNil ret;
+mkForeign (FFun fn args rt) = mkFDef fn args Nil fNil rt;
 
 _isNull = mkForeign (FFun "isNull" (Cons FPtr Nil) FInt) %eval;
 
diff --git a/lib/prelude.idr b/lib/prelude.idr
--- a/lib/prelude.idr
+++ b/lib/prelude.idr
@@ -42,6 +42,7 @@
 include "either.idr";
 include "tactics.idr";
 include "vect.idr";
+include "string.idr";
 
 -- Function composition
 
