language-c-quote 0.3.0.1 → 0.3.1.0
raw patch · 17 files changed
+876/−7672 lines, 17 filesdep ~arraydep ~filepathdep ~template-haskellPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: array, filepath, template-haskell
API changes (from Hackage documentation)
- Language.C.Parser.Monad: ParseDirect :: ParseContext
- Language.C.Parser.Monad: ParseQuasiQuote :: ParseContext
- Language.C.Parser.Monad: alexGetCharOrFail :: P Char
- Language.C.Parser.Monad: alexMaybeGetChar :: P (Maybe Char)
- Language.C.Parser.Monad: data ParseContext
- Language.C.Parser.Monad: getBuffRange :: Pos -> Pos -> P String
- Language.C.Parser.Monad: getBuffer :: P ByteString
- Language.C.Parser.Monad: getLastPos :: P Pos
- Language.C.Parser.Monad: getParseContext :: P ParseContext
- Language.C.Parser.Monad: getPos :: P Pos
- Language.C.Parser.Monad: setBuffer :: ByteString -> P ()
- Language.C.Parser.Monad: setLastPos :: Pos -> P ()
- Language.C.Parser.Monad: setParseContext :: ParseContext -> P ()
- Language.C.Parser.Monad: setPos :: Pos -> P ()
- Language.C.Parser.Parser: TSconstant :: !SrcLoc -> TySpec
- Language.C.Parser.Parser: TSdevice :: !SrcLoc -> TySpec
- Language.C.Parser.Parser: TSglobal :: !SrcLoc -> TySpec
- Language.C.Parser.Parser: TShost :: !SrcLoc -> TySpec
- Language.C.Parser.Parser: TSnoinline :: !SrcLoc -> TySpec
- Language.C.Parser.Parser: TSshared :: !SrcLoc -> TySpec
- Language.C.Parser.Parser: badExecutionContext :: Loc -> [Exp] -> P a
- Language.C.Parser.Parser: badFunctionDeclaration :: Loc -> [Exp] -> P a
- Language.C.Parser.Parser: expected :: Loc -> [String] -> P a
- Language.C.Parser.Parser: unclosed :: Loc -> String -> P a
- Language.C.Parser.Tokens: T3gt :: Token
- Language.C.Parser.Tokens: T3lt :: Token
- Language.C.Parser.Tokens: Tconstant :: Token
- Language.C.Parser.Tokens: Tdevice :: Token
- Language.C.Parser.Tokens: Tglobal :: Token
- Language.C.Parser.Tokens: Thost :: Token
- Language.C.Parser.Tokens: Tnoinline :: Token
- Language.C.Parser.Tokens: Tshared :: Token
- Language.C.Syntax: Tconstant :: !SrcLoc -> TypeQual
- Language.C.Syntax: Tdevice :: !SrcLoc -> TypeQual
- Language.C.Syntax: Tglobal :: !SrcLoc -> TypeQual
- Language.C.Syntax: Thost :: !SrcLoc -> TypeQual
- Language.C.Syntax: Tnoinline :: !SrcLoc -> TypeQual
- Language.C.Syntax: Tshared :: !SrcLoc -> TypeQual
+ Language.C.Parser.Lexer: instance Functor AlexLastAcc
+ Language.C.Parser.Monad: LexerException :: Pos -> Doc -> LexerException
+ Language.C.Parser.Monad: alexGetByte :: AlexInput -> Maybe (Word8, AlexInput)
+ Language.C.Parser.Monad: alexInp :: AlexInput -> {-# UNPACK #-} !ByteString
+ Language.C.Parser.Monad: alexOff :: AlexInput -> {-# UNPACK #-} !Int
+ Language.C.Parser.Monad: alexPos :: AlexInput -> {-# UNPACK #-} !Pos
+ Language.C.Parser.Monad: alexPrevChar :: AlexInput -> {-# UNPACK #-} !Char
+ Language.C.Parser.Monad: antiquotationExts :: ExtensionsInt
+ Language.C.Parser.Monad: data LexerException
+ Language.C.Parser.Monad: emptyCharacterLiteral :: AlexInput -> P a
+ Language.C.Parser.Monad: expected :: [String] -> P b
+ Language.C.Parser.Monad: getCurToken :: P (L Token)
+ Language.C.Parser.Monad: illegalCharacterLiteral :: AlexInput -> P a
+ Language.C.Parser.Monad: illegalNumericalLiteral :: AlexInput -> P a
+ Language.C.Parser.Monad: instance Applicative P
+ Language.C.Parser.Monad: instance Exception LexerException
+ Language.C.Parser.Monad: instance Functor P
+ Language.C.Parser.Monad: instance Show LexerException
+ Language.C.Parser.Monad: instance Typeable LexerException
+ Language.C.Parser.Monad: lexerError :: AlexInput -> Doc -> P a
+ Language.C.Parser.Monad: maybePeekChar :: P (Maybe Char)
+ Language.C.Parser.Monad: nextChar :: P Char
+ Language.C.Parser.Monad: openCLExts :: ExtensionsInt
+ Language.C.Parser.Monad: parserError :: Loc -> Doc -> P a
+ Language.C.Parser.Monad: peekChar :: P Char
+ Language.C.Parser.Monad: setCurToken :: L Token -> P ()
+ Language.C.Parser.Monad: skipChar :: P ()
+ Language.C.Parser.Monad: type AlexPredicate = PState -> AlexInput -> Int -> AlexInput -> Bool
+ Language.C.Parser.Monad: unclosed :: Loc -> String -> P a
+ Language.C.Parser.Monad: unexpectedEOF :: AlexInput -> P a
+ Language.C.Parser.Monad: useOpenCLExts :: P Bool
+ Language.C.Parser.Parser: TSCLconstant :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCLglobal :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCLkernel :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCLlocal :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCLprivate :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCLreadonly :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCLwriteonly :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCUDAconstant :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCUDAdevice :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCUDAglobal :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCUDAhost :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCUDAnoinline :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSCUDAshared :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: getANTI_ARGS :: L Token -> String
+ Language.C.Parser.Parser: getANTI_CHAR :: L Token -> String
+ Language.C.Parser.Parser: getANTI_DECL :: L Token -> String
+ Language.C.Parser.Parser: getANTI_DECLS :: L Token -> String
+ Language.C.Parser.Parser: getANTI_DOUBLE :: L Token -> String
+ Language.C.Parser.Parser: getANTI_EDECL :: L Token -> String
+ Language.C.Parser.Parser: getANTI_EDECLS :: L Token -> String
+ Language.C.Parser.Parser: getANTI_ENUM :: L Token -> String
+ Language.C.Parser.Parser: getANTI_ENUMS :: L Token -> String
+ Language.C.Parser.Parser: getANTI_ESC :: L Token -> String
+ Language.C.Parser.Parser: getANTI_EXP :: L Token -> String
+ Language.C.Parser.Parser: getANTI_FLOAT :: L Token -> String
+ Language.C.Parser.Parser: getANTI_FUNC :: L Token -> String
+ Language.C.Parser.Parser: getANTI_ID :: L Token -> String
+ Language.C.Parser.Parser: getANTI_INT :: L Token -> String
+ Language.C.Parser.Parser: getANTI_ITEM :: L Token -> String
+ Language.C.Parser.Parser: getANTI_ITEMS :: L Token -> String
+ Language.C.Parser.Parser: getANTI_LINT :: L Token -> String
+ Language.C.Parser.Parser: getANTI_LONG_DOUBLE :: L Token -> String
+ Language.C.Parser.Parser: getANTI_PARAM :: L Token -> String
+ Language.C.Parser.Parser: getANTI_PARAMS :: L Token -> String
+ Language.C.Parser.Parser: getANTI_SDECL :: L Token -> String
+ Language.C.Parser.Parser: getANTI_SDECLS :: L Token -> String
+ Language.C.Parser.Parser: getANTI_SPEC :: L Token -> String
+ Language.C.Parser.Parser: getANTI_STM :: L Token -> String
+ Language.C.Parser.Parser: getANTI_STMS :: L Token -> String
+ Language.C.Parser.Parser: getANTI_STRING :: L Token -> String
+ Language.C.Parser.Parser: getANTI_TYPE :: L Token -> String
+ Language.C.Parser.Parser: getANTI_UINT :: L Token -> String
+ Language.C.Parser.Parser: getANTI_ULINT :: L Token -> String
+ Language.C.Parser.Parser: getCHAR :: L Token -> (String, Char)
+ Language.C.Parser.Parser: getDOUBLE :: L Token -> (String, Rational)
+ Language.C.Parser.Parser: getFLOAT :: L Token -> (String, Rational)
+ Language.C.Parser.Parser: getID :: L Token -> String
+ Language.C.Parser.Parser: getINT :: L Token -> (String, Signed, Integer)
+ Language.C.Parser.Parser: getLONG :: L Token -> (String, Signed, Integer)
+ Language.C.Parser.Parser: getLONG_DOUBLE :: L Token -> (String, Rational)
+ Language.C.Parser.Parser: getLONG_LONG :: L Token -> (String, Signed, Integer)
+ Language.C.Parser.Parser: getNAMED :: L Token -> String
+ Language.C.Parser.Parser: getSTRING :: L Token -> (String, String)
+ Language.C.Parser.Parser: happyAccept :: Int# -> t -> Int# -> t1 -> HappyStk a -> P a
+ Language.C.Parser.Parser: happyDoAction :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyDrop :: Int# -> Happy_IntList -> Happy_IntList
+ Language.C.Parser.Parser: happyDropStk :: Int# -> HappyStk t -> HappyStk t
+ Language.C.Parser.Parser: happyError_ :: L Token -> P a
+ Language.C.Parser.Parser: happyFail :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyGoto :: Int# -> Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyMonad2Reduce :: Int# -> Int# -> (HappyStk HappyAbsSyn -> L Token -> P HappyAbsSyn) -> Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyMonadReduce :: Int# -> Int# -> (HappyStk HappyAbsSyn -> L Token -> P HappyAbsSyn) -> Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyNewToken :: Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyParse :: Int# -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce :: Int# -> Int# -> (HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn) -> Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduceArr :: Array Int (Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn)
+ Language.C.Parser.Parser: happyReduce_100 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_101 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_102 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_103 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_104 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_105 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_106 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_107 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_108 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_109 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_11 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_110 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_111 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_112 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_113 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_114 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_115 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_116 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_117 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_118 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_119 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_12 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_120 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_121 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_122 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_123 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_124 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_125 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_126 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_127 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_128 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_129 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_13 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_130 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_131 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_132 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_133 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_134 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_135 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_136 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_137 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_138 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_139 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_14 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_140 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_141 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_142 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_143 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_144 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_145 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_146 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_147 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_148 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_149 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_15 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_150 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_151 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_152 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_153 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_154 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_155 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_156 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_157 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_158 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_159 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_16 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_160 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_161 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_162 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_163 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_164 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_165 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_166 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_167 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_168 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_169 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_17 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_170 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_171 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_172 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_173 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_174 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_175 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_176 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_177 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_178 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_179 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_18 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_180 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_181 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_182 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_183 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_184 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_185 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_186 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_187 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_188 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_189 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_19 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_190 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_191 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_192 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_193 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_194 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_195 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_196 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_197 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_198 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_199 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_20 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_200 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_201 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_202 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_203 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_204 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_205 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_206 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_207 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_208 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_209 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_21 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_210 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_211 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_212 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_213 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_214 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_215 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_216 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_217 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_218 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_219 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_22 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_220 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_221 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_222 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_223 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_224 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_225 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_226 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_227 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_228 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_229 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_23 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_230 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_231 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_232 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_233 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_234 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_235 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_236 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_237 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_238 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_239 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_24 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_240 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_241 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_242 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_243 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_244 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_245 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_246 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_247 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_248 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_249 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_25 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_250 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_251 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_252 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_253 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_254 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_255 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_256 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_257 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_258 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_259 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_26 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_260 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_261 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_262 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_263 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_264 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_265 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_266 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_267 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_268 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_269 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_27 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_270 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_271 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_272 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_273 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_274 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_275 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_276 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_277 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_278 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_279 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_28 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_280 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_281 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_282 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_283 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_284 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_285 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_286 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_287 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_288 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_289 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_29 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_290 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_291 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_292 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_293 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_294 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_295 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_296 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_297 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_298 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_299 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_30 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_300 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_301 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_302 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_303 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_304 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_305 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_306 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_307 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_308 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_309 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_31 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_310 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_311 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_312 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_313 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_314 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_315 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_316 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_317 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_318 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_319 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_32 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_320 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_321 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_322 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_323 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_324 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_325 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_326 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_327 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_328 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_329 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_33 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_330 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_331 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_332 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_333 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_334 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_335 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_336 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_337 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_338 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_339 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_34 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_340 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_341 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_342 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_343 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_344 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_345 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_346 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_347 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_348 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_349 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_35 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_350 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_351 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_352 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_353 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_354 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_355 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_356 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_357 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_358 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_359 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_36 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_360 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_361 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_362 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_363 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_364 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_365 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_366 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_367 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_368 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_369 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_37 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_370 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_371 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_372 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_373 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_374 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_375 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_376 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_377 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_378 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_379 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_38 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_380 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_381 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_382 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_383 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_384 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_385 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_386 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_387 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_388 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_389 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_39 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_390 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_391 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_392 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_393 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_394 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_395 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_396 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_397 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_398 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_399 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_40 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_400 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_401 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_402 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_403 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_404 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_405 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_406 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_407 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_408 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_409 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_41 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_410 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_411 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_412 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_413 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_414 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_415 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_416 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_417 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_418 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_419 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_42 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_420 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_421 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_422 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_423 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_424 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_425 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_426 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_427 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_428 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_429 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_43 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_430 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_431 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_432 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_433 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_434 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_435 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_436 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_437 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_438 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_439 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_44 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_440 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_441 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_442 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_443 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_444 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_445 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_446 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_447 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_448 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_449 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_45 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_450 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_451 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_452 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_453 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_454 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_455 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_456 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_457 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_458 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_459 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_46 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_460 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_461 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_462 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_463 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_464 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_465 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_47 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_48 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_49 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_50 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_51 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_52 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_53 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_54 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_55 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_56 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_57 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_58 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_59 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_60 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_61 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_62 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_63 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_64 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_65 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_66 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_67 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_68 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_69 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_70 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_71 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_72 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_73 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_74 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_75 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_76 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_77 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_78 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_79 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_80 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_81 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_82 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_83 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_84 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_85 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_86 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_87 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_88 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_89 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_90 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_91 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_92 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_93 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_94 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_95 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_96 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_97 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_98 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_99 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_100 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_101 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_102 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_103 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_104 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_105 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_106 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_107 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_108 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_109 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_11 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_110 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_111 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_112 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_113 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_114 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_115 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_116 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_117 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_118 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_119 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_12 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_120 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_121 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_122 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_123 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_124 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_125 :: t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_126 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_127 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_128 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_129 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_13 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_130 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_131 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_132 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_133 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_134 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_135 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_136 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_137 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_138 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_139 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_14 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_140 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_141 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_142 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_143 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_144 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_145 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_146 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_147 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_148 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_149 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_15 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_150 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_151 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_152 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_153 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_154 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_155 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_156 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_157 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_158 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_159 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_16 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_160 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_161 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_162 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_163 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_164 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_165 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_166 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_167 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_168 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_169 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_17 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_170 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_171 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_172 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_173 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_174 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_175 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_176 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_177 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_178 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_179 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_18 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_180 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_181 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_182 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_183 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_184 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_185 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_186 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_187 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_188 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_189 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_19 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_190 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_191 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_192 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_193 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_194 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_195 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_196 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_197 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_198 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_199 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_20 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_200 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_201 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_202 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_203 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_204 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_205 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_206 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_207 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_208 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_209 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_21 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_210 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_211 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_212 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_213 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_214 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_215 :: t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_216 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_217 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_218 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_219 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_22 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_220 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_221 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_222 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_223 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_224 :: t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_225 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_226 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_227 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_228 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_229 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_23 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_230 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_231 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_232 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_233 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_234 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_235 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_236 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_237 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_238 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_239 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_24 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_240 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_241 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_242 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_243 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_244 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_245 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_246 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_247 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_248 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_249 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_25 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_250 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_251 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_252 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_253 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_254 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_255 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_256 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_257 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_258 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_259 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_26 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_260 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_261 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_262 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_263 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_264 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_265 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_266 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_267 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_268 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_269 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_27 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_270 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_271 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_272 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_273 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_274 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_275 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_276 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_277 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_278 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_279 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_28 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_280 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_281 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_282 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_283 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_284 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_285 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_286 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_287 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_288 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_289 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_29 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_290 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_291 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_292 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_293 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_294 :: t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_295 :: HappyAbsSyn -> t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_296 :: HappyAbsSyn -> t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_297 :: HappyAbsSyn -> HappyAbsSyn -> t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_298 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_299 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_30 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_300 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_301 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_302 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_303 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_304 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_305 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_306 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_307 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_308 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_309 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_31 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_310 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_311 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_312 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_313 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_314 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_315 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_316 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_317 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_318 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_319 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_32 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_320 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_321 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_322 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_323 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_324 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_325 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_326 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_327 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_328 :: t -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_329 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_33 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_330 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_331 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_332 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_333 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_334 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_335 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_336 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_337 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_338 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_339 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_34 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_340 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_341 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_342 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_343 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_344 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_345 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_346 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_347 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_348 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_349 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_35 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_350 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_351 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_352 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_353 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_354 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_355 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_356 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_357 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_358 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_359 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_36 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_360 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_361 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_362 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_363 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_364 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_365 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_366 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_367 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_368 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_369 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_37 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_370 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_371 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_372 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_373 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_374 :: t -> t1 -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_375 :: t -> t1 -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_376 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_377 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_378 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_379 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_38 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_380 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_381 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_382 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_383 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_384 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_385 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_386 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_387 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_388 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_389 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_39 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_390 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_391 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_392 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_393 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_394 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_395 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_396 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_397 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_398 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_399 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_40 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_400 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_401 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_402 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_403 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_404 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_405 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_406 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_407 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_408 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_409 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_41 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_410 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_411 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_412 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_413 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_414 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_415 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_416 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_417 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_418 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_419 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_42 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_420 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_421 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_422 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_423 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_424 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_425 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_426 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_427 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_428 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_429 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_43 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_430 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_431 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_432 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_433 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_434 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_435 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_436 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_437 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_438 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_439 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_44 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_440 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_441 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_442 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_443 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_444 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_445 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_446 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_447 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_448 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_449 :: t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_45 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_450 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_451 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_452 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_453 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_454 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_455 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_456 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_457 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_458 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_459 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_46 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_460 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_461 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_462 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_463 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_464 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_465 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_47 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_48 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_49 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_50 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_51 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_52 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_53 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_54 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_55 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_56 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_57 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_58 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_59 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_60 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_61 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_62 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_63 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_64 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_65 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_66 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_67 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_68 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_69 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_70 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_71 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_72 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_73 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_74 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_75 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_76 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_77 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_78 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_79 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_80 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_81 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_82 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_83 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_84 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_85 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_86 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_87 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_88 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_89 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_90 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_91 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_92 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_93 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_94 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_95 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_96 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_97 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_98 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_99 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happySeq :: a -> b -> b
+ Language.C.Parser.Parser: happyShift :: Int# -> Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happySpecReduce_0 :: Int# -> HappyAbsSyn -> Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happySpecReduce_1 :: Int# -> (HappyAbsSyn -> HappyAbsSyn) -> Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happySpecReduce_2 :: Int# -> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn) -> Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happySpecReduce_3 :: Int# -> (HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn) -> Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyThen1 :: P a -> (a -> P b) -> P b
+ Language.C.Parser.Parser: happy_n_nonterms :: Int
+ Language.C.Parser.Parser: happy_n_terms :: Int
+ Language.C.Parser.Parser: indexShortOffAddr :: HappyAddr -> Int# -> Int#
+ Language.C.Parser.Parser: parseDecl :: P InitGroup
+ Language.C.Parser.Parser: parseEdecl :: P Definition
+ Language.C.Parser.Parser: parseEnum :: P CEnum
+ Language.C.Parser.Parser: parseExp :: P Exp
+ Language.C.Parser.Parser: parseFunc :: P Func
+ Language.C.Parser.Parser: parseInit :: P Initializer
+ Language.C.Parser.Parser: parseParam :: P Param
+ Language.C.Parser.Parser: parseStm :: P Stm
+ Language.C.Parser.Parser: parseStructDecl :: P FieldGroup
+ Language.C.Parser.Parser: parseType :: P Type
+ Language.C.Parser.Parser: parseUnit :: P [Definition]
+ Language.C.Parser.Tokens: TCLconstant :: Token
+ Language.C.Parser.Tokens: TCLglobal :: Token
+ Language.C.Parser.Tokens: TCLkernel :: Token
+ Language.C.Parser.Tokens: TCLlocal :: Token
+ Language.C.Parser.Tokens: TCLprivate :: Token
+ Language.C.Parser.Tokens: TCLreadonly :: Token
+ Language.C.Parser.Tokens: TCLwriteonly :: Token
+ Language.C.Parser.Tokens: TCUDA3gt :: Token
+ Language.C.Parser.Tokens: TCUDA3lt :: Token
+ Language.C.Parser.Tokens: TCUDAconstant :: Token
+ Language.C.Parser.Tokens: TCUDAdevice :: Token
+ Language.C.Parser.Tokens: TCUDAglobal :: Token
+ Language.C.Parser.Tokens: TCUDAhost :: Token
+ Language.C.Parser.Tokens: TCUDAnoinline :: Token
+ Language.C.Parser.Tokens: TCUDAshared :: Token
+ Language.C.Quote.OpenCL: cdecl :: QuasiQuoter
+ Language.C.Quote.OpenCL: cedecl :: QuasiQuoter
+ Language.C.Quote.OpenCL: cenum :: QuasiQuoter
+ Language.C.Quote.OpenCL: cexp :: QuasiQuoter
+ Language.C.Quote.OpenCL: cfun :: QuasiQuoter
+ Language.C.Quote.OpenCL: cinit :: QuasiQuoter
+ Language.C.Quote.OpenCL: class ToExp a
+ Language.C.Quote.OpenCL: cparam :: QuasiQuoter
+ Language.C.Quote.OpenCL: csdecl :: QuasiQuoter
+ Language.C.Quote.OpenCL: cstm :: QuasiQuoter
+ Language.C.Quote.OpenCL: cty :: QuasiQuoter
+ Language.C.Quote.OpenCL: cunit :: QuasiQuoter
+ Language.C.Quote.OpenCL: toExp :: ToExp a => a -> SrcLoc -> Exp
+ Language.C.Syntax: Antiquotation :: Extensions
+ Language.C.Syntax: OpenCL :: Extensions
+ Language.C.Syntax: TCLconstant :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCLglobal :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCLkernel :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCLlocal :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCLprivate :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCLreadonly :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCLwriteonly :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCUDAconstant :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCUDAdevice :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCUDAglobal :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCUDAhost :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCUDAnoinline :: !SrcLoc -> TypeQual
+ Language.C.Syntax: TCUDAshared :: !SrcLoc -> TypeQual
- Language.C.Parser: parse :: [Extensions] -> [String] -> ParseContext -> P a -> ByteString -> Pos -> Either SomeException a
+ Language.C.Parser: parse :: [Extensions] -> [String] -> P a -> ByteString -> Pos -> Either SomeException a
- Language.C.Parser.Monad: AlexInput :: {-# UNPACK #-} !Pos -> {-# UNPACK #-} !ByteString -> {-# UNPACK #-} !Int -> AlexInput
+ Language.C.Parser.Monad: AlexInput :: {-# UNPACK #-} !Pos -> {-# UNPACK #-} !Char -> {-# UNPACK #-} !ByteString -> {-# UNPACK #-} !Int -> AlexInput
- Language.C.Parser.Monad: emptyPState :: [Extensions] -> [String] -> ParseContext -> ByteString -> Pos -> PState
+ Language.C.Parser.Monad: emptyPState :: [Extensions] -> [String] -> ByteString -> Pos -> PState
Files
- LICENSE +1/−1
- Language/C/Parser.hs +2/−3
- Language/C/Parser/Lexer.x +204/−222
- Language/C/Parser/Monad.hs +248/−162
- Language/C/Parser/Parser.y +157/−120
- Language/C/Parser/Tokens.hs +58/−23
- Language/C/Pretty.hs +20/−12
- Language/C/Quote.hs +19/−13
- Language/C/Quote/Base.hs +11/−1
- Language/C/Quote/CUDA.hs +8/−9
- Language/C/Quote/OpenCL.hs +81/−0
- Language/C/Smart.hs +6/−2
- Language/C/Syntax.hs +34/−15
- dist/build/Language/C/Parser/Lexer.hs +0/−718
- dist/build/Language/C/Parser/Parser.hs +0/−6361
- language-c-quote.cabal +16/−7
- tests/unit/Main.hs +11/−3
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2006-2010+Copyright (c) 2006-2011 The President and Fellows of Harvard College. Redistribution and use in source and binary forms, with or without
Language/C/Parser.hs view
@@ -53,10 +53,9 @@ parse :: [Extensions] -> [String]- -> ParseContext -> P a -> B.ByteString -> Pos -> Either SomeException a-parse exts typnames ctx p bs pos =- evalP p (emptyPState exts typnames ctx bs pos)+parse exts typnames p bs pos =+ evalP p (emptyPState exts typnames bs pos)
Language/C/Parser/Lexer.x view
@@ -42,6 +42,7 @@ lexToken ) where +import Control.Applicative import Control.Monad (when) import Control.Monad.Error import Control.Monad.Exception@@ -100,7 +101,7 @@ c :- -<qq> {+<0> { "typename" / { allowAnti } { token Ttypename } "$id:" / { allowAnti } { lexAnti Tanti_id }@@ -136,7 +137,7 @@ "$" / { allowAnti } { lexAnti Tanti_exp } } -<0, qq> {+<0> { ^ "#line" $whitechar+ $digit+ $whitechar+ \" [^\"]* \" .* { setLineFromPragma } ^ "#" $whitechar+ $digit+ $whitechar+ \" [^\"]* \" .* { setLineFromPragma } @@ -209,98 +210,95 @@ ">>=" { token Trsh_assign } "<<<" / { ifExtension cudaExts }- { token T3lt }+ { token TCUDA3lt } ">>>" / { ifExtension cudaExts }- { token T3gt }+ { token TCUDA3gt } } {-charEscapes :: [(Char, Char)]-charEscapes = [('n', '\n'),- ('t', '\t'),- ('v', '\v'),- ('b', '\b'),- ('r', '\r'),- ('f', '\f'),- ('a', '\a'),- ('\\', '\\'),- ('?', '?'),- ('\'', '\''),- ('\"', '\"')- ]+type Action = AlexInput -> AlexInput -> P (L Token) -type Action = Pos -> B.ByteString -> Int -> P (L Token)+inputString :: AlexInput -> AlexInput -> String+inputString beg end =+ (B.unpack . B.take (alexOff end - alexOff beg)) (alexInp beg) +locateTok :: AlexInput -> AlexInput -> Token -> L Token+locateTok beg end tok =+ L (Loc (alexPos beg) (alexPos end)) tok++token :: Token -> Action+token tok beg end =+ return $ locateTok beg end tok+ setLineFromPragma :: Action-setLineFromPragma pos buf len = do- setPos pos'+setLineFromPragma beg end = do+ inp <- getInput+ setInput inp { alexPos = pos' } lexToken where- (_ : l : ws) = (words . B.unpack . B.take len) buf+ (_ : l : ws) = words (inputString beg end) line = read l - 1 filename = (takeWhile (/= '\"') . drop 1 . concat . intersperse " ") ws pos' :: Pos- pos' = Pos (intern filename) line 1 (posCoff pos)--locateTok :: Pos -> Token -> P (L Token)-locateTok end tok = do- start <- getLastPos- setLastPos end- return $ L (Loc start end) tok--token :: Token -> Action-token tok pos buf len =- locateTok pos tok+ pos' = Pos (intern filename) line 1 (posCoff (alexPos beg)) identifier :: Action-identifier pos buf len =- case Map.lookup kw keywordMap of- Nothing -> nonKeyword- Just (tok, Nothing) -> keyword tok- Just (tok, Just i) -> do isKw <- useExts i- if isKw then keyword tok else nonKeyword+identifier beg end =+ case Map.lookup ident keywordMap of+ Nothing -> nonKeyword+ Just (tok, Nothing) -> keyword tok+ Just (tok, Just i) -> do isKw <- useExts i+ if isKw then keyword tok else nonKeyword where- kw = (B.unpack . B.take len) buf+ ident :: String+ ident = inputString beg end - keyword tok = locateTok pos tok+ keyword :: Token -> P (L Token)+ keyword tok =+ return $ locateTok beg end tok + nonKeyword :: P (L Token) nonKeyword = do- test <- isTypedef kw- if test- then locateTok pos (Tnamed kw)- else locateTok pos (Tidentifier kw)+ test <- isTypedef ident+ return $+ if test+ then locateTok beg end (Tnamed ident)+ else locateTok beg end (Tidentifier ident) lexAnti ::(String -> Token) -> Action-lexAnti antiTok pos buf len = do- c <- alexGetCharOrFail+lexAnti antiTok beg end = do+ c <- nextChar s <- case c of '(' -> lexExpression 0 "" _ | isIdStartChar c -> lexIdChars [c]- | otherwise -> illegalCharacterLiteral pos- end <- getPos- locateTok end (antiTok s)+ | otherwise -> lexerError beg (text "Illegal anitquotation")+ return $ locateTok beg end (antiTok s) where lexIdChars :: String -> P String lexIdChars s = do- inp <- getInput- maybe_c <- alexMaybeGetChar+ maybe_c <- maybePeekChar case maybe_c of- Nothing -> return (reverse s)- Just c | isIdChar c -> lexIdChars (c : s)- | otherwise -> setInput inp >> return (reverse s)+ Just c | isIdChar c -> skipChar >> lexIdChars (c : s)+ _ -> return (reverse s) lexExpression :: Int -> String -> P String lexExpression depth s = do- inp <- getInput- maybe_c <- alexMaybeGetChar+ maybe_c <- maybePeekChar case maybe_c of- Nothing -> return (reverse s)- Just '(' -> lexExpression (depth+1) ('(' : s)- Just ')' | depth == 0 -> return (reverse s)- | otherwise -> lexExpression (depth-1) (')' : s)- Just c -> lexExpression depth (c : s)+ Nothing -> do end <- getInput+ parserError (Loc (alexPos beg) (alexPos end))+ (text "Unterminated antiquotation")+ Just '(' -> skipChar >> lexExpression (depth+1) ('(' : s)+ Just ')' | depth == 0 -> skipChar >> return (unescape (reverse s))+ | otherwise -> skipChar >> lexExpression (depth-1) (')' : s)+ Just c -> skipChar >> lexExpression depth (c : s)+ where+ unescape :: String -> String+ unescape ('\\':'|':'\\':']':s) = '|' : ']' : unescape s+ unescape (c:s) = c : unescape s+ unescape [] = [] isIdStartChar :: Char -> Bool isIdStartChar '_' = True@@ -312,125 +310,65 @@ isIdChar c = isAlphaNum c lexCharTok :: Action-lexCharTok pos buf len = do- c <- alexGetCharOrFail- case c of- '\'' -> emptyCharacterLiteral pos- '\\' -> do c <- lexEscape- quote <- alexGetCharOrFail- when (quote /= '\'') $- illegalCharacterLiteral pos- end <- getPos- raw <- liftM ('\'' :) (getBuffRange pos end)- locateTok end (TcharConst (raw, c))- _ -> do quote <- alexGetCharOrFail- when (quote /= '\'') $- illegalCharacterLiteral pos- end <- getPos- raw <- liftM ('\'' :) (getBuffRange pos end)- locateTok end (TcharConst (raw, c))+lexCharTok beg cur = do+ c <- nextChar >>= lexChar+ end <- getInput+ return $ locateTok beg end (TcharConst (inputString beg end, c))+ where+ lexChar :: Char -> P Char+ lexChar '\'' = emptyCharacterLiteral beg+ lexChar '\\' = do c <- lexCharEscape+ assertNextChar '\''+ return c+ lexChar c = do assertNextChar '\''+ return c + assertNextChar :: Char -> P ()+ assertNextChar c = do+ c' <- nextChar+ when (c' /= c) $+ illegalCharacterLiteral cur+ lexStringTok :: Action-lexStringTok pos buf len = do+lexStringTok beg _ = do s <- lexString ""- end <- getPos- raw <- liftM ('"' :) (getBuffRange pos end)- locateTok end (TstringConst (raw, s))+ end <- getInput+ return $ locateTok beg end (TstringConst (inputString beg end, s)) where lexString :: String -> P String lexString s = do- c <- alexGetCharOrFail+ c <- nextChar case c of- '"' -> return (reverse s)- '\\' -> do c' <- lexEscape- lexString (c' : s)- _ -> lexString (c : s)+ '"' -> return (reverse s)+ '\\' -> do c' <- lexCharEscape+ lexString (c' : s)+ _ -> lexString (c : s) -lexEscape :: P Char-lexEscape = do- inp <- getInput- c <- alexGetCharOrFail+lexCharEscape :: P Char+lexCharEscape = do+ cur <- getInput+ c <- nextChar case c of- 'x' -> do i <- checkedReadNum isHexDigit 16 hexDigit- return $ chr i- n | isDigit n ->- do setInput inp- i <- checkedReadNum isOctDigit 8 octDigit- return $ chr i- c -> case lookup c charEscapes of- Nothing -> return c- Just c' -> return c'--type Radix = (Integer, Char -> Int)--decDigit :: Char -> Int-decDigit c | c >= '0' && c <= '9' = ord c - ord '0'- | otherwise = error "error in decimal constant"--octDigit :: Char -> Int-octDigit c | c >= '0' && c <= '7' = ord c - ord '0'- | otherwise = error "error in octal constant"--hexDigit :: Char -> Int-hexDigit c | c >= 'a' && c <= 'f' = ord c - ord 'a'- | c >= 'A' && c <= 'F' = ord c - ord 'A'- | c >= '0' && c <= '9' = ord c - ord '0'- | otherwise = error "error in hexadecimal constant"--decimal :: Radix-decimal = (10, decDigit)--octal :: Radix-octal = (8, octDigit)--hexadecimal :: Radix-hexadecimal = (16, hexDigit)--readInteger :: Radix -> ReadS Integer-readInteger (radix, charToInt) =- go 0- where- go :: Integer -> ReadS Integer- go x [] = return (x, "")- go x (c : cs) | isDigit c = go (x * radix + toInteger (charToInt c)) cs- | otherwise = return (x, c : cs)--readRational :: ReadS Rational-readRational s = do- (n, d, t) <- readFix s- (x, u) <- readExponent t- return ((n % 1) * 10^^(x - toInteger d), t)- where- readFix :: String -> [(Integer, Int, String)]- readFix s =- return (read (i ++ f), length f, u)- where- (i, t) = span isDigit s- (f, u) = case t of- '.' : u -> span isDigit u- _ -> ("", t)-- readExponent :: ReadS Integer- readExponent "" = return (0, "")- readExponent (e : s) | e `elem` "eE" = go s- | otherwise = return (0, s)- where- go :: ReadS Integer- go ('+' : s) = readDecimal s- go ('-' : s) = do (x, t) <- readDecimal s- return (-x, t)- go s = readDecimal s-- readDecimal :: ReadS Integer- readDecimal = readInteger decimal+ 'a' -> return '\a'+ 'b' -> return '\b'+ 'f' -> return '\f'+ 'n' -> return '\n'+ 'r' -> return '\r'+ 't' -> return '\t'+ 'v' -> return '\v'+ '\\' -> return '\\'+ '\'' -> return '\''+ '"' -> return '"'+ '?' -> return '?'+ 'x' -> chr <$> checkedReadNum isHexDigit 16 hexDigit+ n | isOctDigit n -> setInput cur >> chr <$> checkedReadNum isOctDigit 8 octDigit+ c -> return c -lexInteger :: Int- -> Radix- -> Action-lexInteger ndrop radix pos buf len =+lexInteger :: Int -> Radix -> Action+lexInteger ndrop radix beg end = case i of- [n] -> locateTok pos (toToken n)- _ -> fail "bad parse for integer"+ [n] -> return $ locateTok beg end (toToken n)+ _ -> fail "bad parse for integer" where num :: String num = (takeWhile isDigit . drop ndrop) s@@ -439,7 +377,7 @@ suffix = (map toLower . takeWhile (not . isDigit) . reverse) s s :: String- s = (B.unpack . B.take len) buf+ s = inputString beg end i :: [Integer] i = do (n, _) <- readInteger radix s@@ -459,13 +397,13 @@ isUnsigned = if 'u' `elem` suffix then C.Unsigned else C.Signed lexFloat :: Action-lexFloat pos buf len =+lexFloat beg end = case i of- [n] -> locateTok pos (toToken n)- _ -> fail "bad parse for integer"+ [n] -> return $ locateTok beg end (toToken n)+ _ -> fail "bad parse for integer" where s :: String- s = (B.unpack . B.take len) buf+ s = inputString beg end prefix :: String prefix = takeWhile (not . isSuffix) s@@ -483,61 +421,105 @@ toToken :: Rational -> Token toToken n = case suffix of- "" -> TdoubleConst (s, n)- "f" -> TfloatConst (s, n)- "l" -> TlongDoubleConst (s, n)+ "" -> TdoubleConst (s, n)+ "f" -> TfloatConst (s, n)+ "l" -> TlongDoubleConst (s, n) +type Radix = (Integer, Char -> Bool, Char -> Int)++decDigit :: Char -> Int+decDigit c | c >= '0' && c <= '9' = ord c - ord '0'+ | otherwise = error "error in decimal constant"++octDigit :: Char -> Int+octDigit c | c >= '0' && c <= '7' = ord c - ord '0'+ | otherwise = error "error in octal constant"++hexDigit :: Char -> Int+hexDigit c | c >= 'a' && c <= 'f' = 10 + ord c - ord 'a'+ | c >= 'A' && c <= 'F' = 10 + ord c - ord 'A'+ | c >= '0' && c <= '9' = ord c - ord '0'+ | otherwise = error "error in hexadecimal constant"++decimal :: Radix+decimal = (10, isDigit, decDigit)++octal :: Radix+octal = (8, isOctDigit, octDigit)++hexadecimal :: Radix+hexadecimal = (16, isHexDigit, hexDigit)++readInteger :: Radix -> ReadS Integer+readInteger (radix, isRadixDigit, charToInt) =+ go 0+ where+ go :: Integer -> ReadS Integer+ go x [] = return (x, "")+ go x (c : cs)+ | isRadixDigit c = go (x * radix + toInteger (charToInt c)) cs+ | otherwise = return (x, c : cs)++readDecimal :: ReadS Integer+readDecimal = readInteger decimal++readRational :: ReadS Rational+readRational s = do+ (n, d, t) <- readFix s+ (x, _) <- readExponent t+ return ((n % 1) * 10^^(x - toInteger d), t)+ where+ readFix :: String -> [(Integer, Int, String)]+ readFix s =+ return (read (i ++ f), length f, u)+ where+ (i, t) = span isDigit s+ (f, u) = case t of+ '.' : u -> span isDigit u+ _ -> ("", t)++ readExponent :: ReadS Integer+ readExponent "" = return (0, "")+ readExponent (e : s) | e `elem` "eE" = go s+ | otherwise = return (0, s)+ where+ go :: ReadS Integer+ go ('+' : s) = readDecimal s+ go ('-' : s) = do (x, t) <- readDecimal s+ return (-x, t)+ go s = readDecimal s+ checkedReadNum :: (Char -> Bool) -> Int -> (Char -> Int) -> P Int checkedReadNum isDigit base conv = do- c <- alexGetCharOrFail+ cur <- getInput+ c <- peekChar when (not $ isDigit c) $- getPos >>= illegalNumericalLiteral+ illegalNumericalLiteral cur readNum isDigit base conv++readNum :: (Char -> Bool) -> Int -> (Char -> Int) -> P Int+readNum isDigit base conv =+ read 0 where- readNum :: (Char -> Bool) -> Int -> (Char -> Int) -> P Int- readNum isDigit base conv = read 0- where- read :: Int -> P Int- read i = do- inp <- getInput- c <- alexGetCharOrFail- if isDigit c- then read (i*base + conv c)- else setInput inp >> return i+ read :: Int -> P Int+ read n = do+ c <- peekChar+ if isDigit c+ then do let n' = n*base + conv c+ n' `seq` skipChar >> read n'+ else return n lexToken :: P (L Token) lexToken = do- inp@(AlexInput pos buf off) <- getInput- sc <- getLexState- st <- get- case alexScanUser st inp sc of- AlexEOF -> return $ L (Loc pos pos) Teof- AlexError (AlexInput pos2 _ _) ->- lexerError pos2 ((text . B.unpack . B.take (min 80 (B.length rest))) rest)- where- rest = B.drop off buf- AlexSkip inp2 _ -> do- setInput inp2- pos <- getPos- setLastPos pos- lexToken- AlexToken inp2@(AlexInput end _ _) len t -> do- setInput inp2- t end (B.drop off buf) len--emptyCharacterLiteral :: Pos -> P a-emptyCharacterLiteral pos =- throw $ ParserException (getLoc pos) (text "empty character literal")--illegalCharacterLiteral :: Pos -> P a-illegalCharacterLiteral pos =- throw $ ParserException (getLoc pos) (text "illegal character literal")--illegalNumericalLiteral :: Pos -> P a-illegalNumericalLiteral pos =- throw $ ParserException (getLoc pos) (text "illegal numerical literal")--lexerError :: Pos -> Doc -> P a-lexerError pos s =- throw $ ParserException (getLoc pos) (text "lexer error on" <+> squotes s)+ beg <- getInput+ sc <- getLexState+ st <- get+ case alexScanUser st beg sc of+ AlexEOF -> return $ L (Loc (alexPos beg) (alexPos beg)) Teof+ AlexError end -> lexerError end (text rest)+ where+ rest :: String+ rest = B.unpack $ B.take 80 (alexInp end)+ AlexSkip end _ -> setInput end >> lexToken+ AlexToken end len t -> setInput end >> t beg end }
Language/C/Parser/Monad.hs view
@@ -36,42 +36,23 @@ {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-} module Language.C.Parser.Monad (- AlexInput(..),- alexGetChar,- alexMaybeGetChar,- alexGetCharOrFail,- alexInputPrevChar,- allowAnti,- ifExtension,-- ParserException(..),- ParseContext(..),- PState,- emptyPState,- P, runP, evalP, - failAt,+ PState,+ emptyPState, - getBuffer,- setBuffer,- getBuffRange,- getLastPos,- setLastPos,- getPos,- setPos,+ getInput,+ setInput, pushLexState, popLexState, getLexState,- getParseContext,- setParseContext,- getInput,- setInput,+ getCurToken,+ setCurToken, addTypedef, addVariable,@@ -82,169 +63,141 @@ gccExts, cudaExts,+ openCLExts, useExts,+ antiquotationExts, useGccExts,- useCUDAExts+ useCUDAExts,+ useOpenCLExts,++ LexerException(..),+ ParserException(..),+ failAt,+ lexerError,+ unexpectedEOF,+ emptyCharacterLiteral,+ illegalCharacterLiteral,+ illegalNumericalLiteral,+ parserError,+ unclosed,+ expected,++ AlexInput(..),+ alexGetChar,+ alexGetByte,+ alexInputPrevChar,+ nextChar,+ peekChar,+ maybePeekChar,+ skipChar,++ AlexPredicate,+ allowAnti,+ ifExtension ) where +import Control.Applicative (Applicative(..)) import Control.Monad.Exception import Control.Monad.Identity import Control.Monad.State import Data.Bits import qualified Data.ByteString.Char8 as B+import Data.ByteString.Internal (c2w) import Data.List (foldl') import Data.Loc import qualified Data.Set as Set import Data.Typeable (Typeable)+import Data.Word import Text.PrettyPrint.Mainland import Language.C.Parser.Tokens import Language.C.Syntax -data AlexInput = AlexInput {-#UNPACK#-} !Pos- {-#UNPACK#-} !B.ByteString- {-#UNPACK#-} !Int--alexGetChar :: AlexInput -> Maybe (Char, AlexInput)-alexGetChar (AlexInput pos buf off)- | off < B.length buf = c `seq` pos' `seq` off' `seq`- Just (c, AlexInput pos' buf off')- | otherwise = Nothing- where- c = B.index buf off- pos' = advancePos pos c- off' = off + 1--alexMaybeGetChar :: P (Maybe Char)-alexMaybeGetChar = do- inp <- getInput- case alexGetChar inp of- Nothing -> return Nothing- Just (c, inp') -> setInput inp' >> return (Just c)--alexGetCharOrFail :: P Char-alexGetCharOrFail = do- inp <- getInput- case alexGetChar inp of- Nothing -> fail "unexpected end of file"- Just (c, inp') -> setInput inp' >> return c--alexInputPrevChar :: AlexInput -> Char-alexInputPrevChar (AlexInput _ _ 0) = '\n'-alexInputPrevChar (AlexInput _ buf off) = B.index buf (off - 1)---- | The components of an 'AlexPredicate' are the predicate state, input stream--- before the token, length of the token, input stream after the token.-type AlexPredicate = PState- -> AlexInput- -> Int- -> AlexInput- -> Bool--allowAnti :: AlexPredicate-allowAnti (PState { context = ParseQuasiQuote }) _ _ _ = True-allowAnti _ _ _ _ = False--ifExtension :: ExtensionsInt -> AlexPredicate-ifExtension i s _ _ _ = extensions s .&. i /= 0--data ParserException = ParserException Loc Doc- deriving (Typeable)--instance Exception ParserException where--instance Show ParserException where- show (ParserException loc msg) =- show $ nest 4 $ ppr loc <> text ":" </> msg--data ParseContext = ParseDirect- | ParseQuasiQuote- data PState = PState- { buf :: !B.ByteString -- ^ Buffer we're parsing- , off :: !Int -- ^ Current offset in the buffer- , lastPos :: !Pos -- ^ End position of last token parsed- , pos :: !Pos -- ^ Current source code position- , lexState :: ![Int]- , context :: !ParseContext- , extensions :: !ExtensionsInt-- , typedefs :: !(Set.Set String)- , scopes :: [Set.Set String]+ { inp :: !AlexInput+ , curToken :: L Token+ , lexState :: ![Int]+ , extensions :: !ExtensionsInt+ , typedefs :: !(Set.Set String)+ , scopes :: [Set.Set String] } emptyPState :: [Extensions] -> [String]- -> ParseContext -> B.ByteString -> Pos -> PState-emptyPState exts typnames ctx bs pos = PState- { buf = bs- , off = 0- , lastPos = pos- , pos = pos- , lexState = [sc]- , context = ctx+emptyPState exts typnames buf pos = PState+ { inp = inp+ , curToken = error "no token"+ , lexState = [0] , extensions = foldl' setBit 0 (map fromEnum exts)- , typedefs = Set.fromList typnames , scopes = [] } where- sc :: Int- sc = case ctx of- ParseDirect -> 0- ParseQuasiQuote -> 1 {- qq lexer state -}+ inp :: AlexInput+ inp = AlexInput+ { alexPos = pos+ , alexPrevChar = '\n'+ , alexInp = buf+ , alexOff = 0+ } -newtype P a = P { unP :: StateT PState (ExceptionT Identity) a }- deriving (MonadException,- MonadState PState)+newtype P a = P { runP :: PState -> Either SomeException (a, PState) } -instance Monad P where- m >>= f = P $ unP m >>= unP . f- m1 >> m2 = P $ unP m1 >> unP m2- return = P . return- fail msg = do pos <- getPos- throw $ ParserException (getLoc pos) (text msg)+instance Functor P where+ fmap f x = x >>= return . f -runP :: P a -> PState -> Either SomeException (a, PState)-runP m = runIdentity . runExceptionT . runStateT (unP m)+instance Applicative P where+ pure = return+ (<*>) = ap -evalP :: P a -> PState -> Either SomeException a-evalP m = runIdentity . runExceptionT . evalStateT (unP m)+instance Monad P where+ m >>= k = P $ \s ->+ case runP m s of+ Left e -> Left e+ Right (a, s') -> runP (k a) s' -failAt :: Loc -> String -> P a-failAt loc msg =- throw $ ParserException loc (text msg)+ m1 >> m2 = P $ \s ->+ case runP m1 s of+ Left e -> Left e+ Right (_, s') -> runP m2 s' -getBuffer :: P B.ByteString-getBuffer = gets buf+ return a = P $ \s -> Right (a, s) -setBuffer :: B.ByteString -> P ()-setBuffer buf = modify $ \s ->- s { buf = buf }+ fail msg = do inp <- getInput+ throw (ParserException (Loc (alexPos inp) (alexPos inp)) (ppr (alexPos inp))) -getBuffRange :: Pos -> Pos -> P String-getBuffRange (Pos _ _ _ start) (Pos _ _ _ end) = do- b <- gets buf- return $ (B.unpack . B.take (end - start) . B.drop start) b+instance MonadState PState P where+ get = P $ \s -> Right (s, s)+ put s = P $ \_ -> Right ((), s) -getLastPos :: P Pos-getLastPos = gets lastPos+instance MonadException P where+ throw e = P $ \_ -> Left (toException e) -setLastPos :: Pos -> P ()-setLastPos pos = modify $ \s ->- s { lastPos = pos }+ m `catch` h = P $ \s ->+ case runP m s of+ Left e ->+ case fromException e of+ Just e' -> runP (h e') s+ Nothing -> Left e+ Right (a, s') -> Right (a, s') -getPos :: P Pos-getPos = gets pos+evalP :: P a -> PState -> Either SomeException a+evalP comp st =+ case runP comp st of+ Left e -> Left e+ Right (a, _) -> Right a -setPos :: Pos -> P ()-setPos pos = modify $ \s ->- s { pos = pos }+getInput :: P AlexInput+getInput = gets inp +setInput :: AlexInput -> P ()+setInput inp= modify $ \s ->+ s { inp = inp }+ pushLexState :: Int -> P () pushLexState ls = modify $ \s -> s { lexState = ls : lexState s }@@ -259,27 +212,18 @@ getLexState :: P Int getLexState = gets (head . lexState) -getParseContext :: P ParseContext-getParseContext = gets context--setParseContext :: ParseContext -> P ()-setParseContext ctx = modify $ \s ->- s { context = ctx }--getInput :: P AlexInput-getInput = gets $ \s ->- AlexInput (pos s) (buf s) (off s)+getCurToken :: P (L Token)+getCurToken = gets curToken -setInput :: AlexInput -> P ()-setInput (AlexInput p b o) = modify $ \s ->- s { buf = b, off = o, pos = p }+setCurToken :: L Token -> P ()+setCurToken tok = modify $ \s -> s { curToken = tok } addTypedef :: String -> P ()-addTypedef id = modify $ \s ->+addTypedef id = modify $ \s -> s { typedefs = Set.insert id (typedefs s) } addVariable :: String -> P ()-addVariable id = modify $ \s ->+addVariable id = modify $ \s -> s { typedefs = Set.delete id (typedefs s) } isTypedef :: String -> P Bool@@ -296,9 +240,8 @@ , typedefs = (head . scopes) s } -useExts :: ExtensionsInt -> P Bool-useExts ext = gets $ \s ->- extensions s .&. ext /= 0+antiquotationExts :: ExtensionsInt+antiquotationExts = (bit . fromEnum) Antiquotation gccExts :: ExtensionsInt gccExts = (bit . fromEnum) Gcc@@ -306,8 +249,151 @@ cudaExts :: ExtensionsInt cudaExts = (bit . fromEnum) CUDA +openCLExts :: ExtensionsInt+openCLExts = (bit . fromEnum) OpenCL++useExts :: ExtensionsInt -> P Bool+useExts ext = gets $ \s ->+ extensions s .&. ext /= 0+ useGccExts :: P Bool useGccExts = useExts gccExts useCUDAExts :: P Bool useCUDAExts = useExts cudaExts++useOpenCLExts :: P Bool+useOpenCLExts = useExts openCLExts++data LexerException = LexerException Pos Doc+ deriving (Typeable)++instance Exception LexerException where++instance Show LexerException where+ show (LexerException pos msg) =+ show $ nest 4 $ ppr pos <> text ":" </> msg++data ParserException = ParserException Loc Doc+ deriving (Typeable)++instance Exception ParserException where++instance Show ParserException where+ show (ParserException loc msg) =+ show $ nest 4 $ ppr loc <> text ":" </> msg++failAt :: Loc -> String -> P a+failAt loc msg =+ throw $ ParserException loc (text msg)++lexerError :: AlexInput -> Doc -> P a+lexerError inp s =+ throw $ LexerException (alexPos inp) (text "lexer error on" <+> squotes s)++unexpectedEOF :: AlexInput -> P a+unexpectedEOF inp =+ lexerError inp (text "unexpected end of file")++emptyCharacterLiteral :: AlexInput -> P a+emptyCharacterLiteral inp =+ lexerError inp (text "empty character literal")++illegalCharacterLiteral :: AlexInput -> P a+illegalCharacterLiteral inp =+ lexerError inp (text "illegal character literal")++illegalNumericalLiteral :: AlexInput -> P a+illegalNumericalLiteral inp =+ lexerError inp (text "illegal numerical literal")++parserError :: Loc -> Doc -> P a+parserError loc msg =+ throw $ ParserException loc msg++unclosed :: Loc -> String -> P a+unclosed loc x =+ parserError (locEnd loc) (text "unclosed" <+> squotes (text x))++expected :: [String] -> P b+expected alts = do+ tok@(L loc _) <- getCurToken+ parserError (locStart loc) (text "expected" <+> pprAlts alts <+> pprGot tok)+ where+ pprAlts :: [String] -> Doc+ pprAlts [] = empty+ pprAlts [s] = text s+ pprAlts [s1, s2] = text s1 <+> text "or" <+> text s2+ pprAlts (s : ss) = text s <> comma <+> pprAlts ss++ pprGot :: L Token -> Doc+ pprGot (L _ Teof) = text "but reached end of file"+ pprGot (L _ t) = text "but got" <+> text (show t)++data AlexInput = AlexInput+ { alexPos :: {-#UNPACK#-} !Pos+ , alexPrevChar :: {-#UNPACK#-} !Char+ , alexInp :: {-#UNPACK#-} !B.ByteString+ , alexOff :: {-#UNPACK#-} !Int+ }++alexGetChar :: AlexInput -> Maybe (Char, AlexInput)+alexGetChar inp =+ case B.uncons (alexInp inp) of+ Nothing -> Nothing+ Just (c, bs) -> Just (c, inp { alexPos = advancePos (alexPos inp) c+ , alexPrevChar = c+ , alexInp = bs+ , alexOff = alexOff inp + 1+ })++alexGetByte :: AlexInput -> Maybe (Word8, AlexInput)+alexGetByte inp =+ case alexGetChar inp of+ Nothing -> Nothing+ Just (c, inp') -> Just (c2w c, inp')++alexInputPrevChar :: AlexInput -> Char+alexInputPrevChar = alexPrevChar++nextChar :: P Char+nextChar = do+ inp <- getInput+ case alexGetChar inp of+ Nothing -> unexpectedEOF inp+ Just (c, inp') -> setInput inp' >> return c++peekChar ::P Char+peekChar = do+ inp <- getInput+ case B.uncons (alexInp inp) of+ Nothing -> unexpectedEOF inp+ Just (c, _) -> return c++maybePeekChar :: P (Maybe Char)+maybePeekChar = do+ inp <- getInput+ case alexGetChar inp of+ Nothing -> return Nothing+ Just (c, _) -> return (Just c)++skipChar :: P ()+skipChar = do+ inp <- getInput+ case alexGetChar inp of+ Nothing -> unexpectedEOF inp+ Just (_, inp') -> setInput inp'++-- | The components of an 'AlexPredicate' are the predicate state, input stream+-- before the token, length of the token, input stream after the token.+type AlexPredicate = PState+ -> AlexInput+ -> Int+ -> AlexInput+ -> Bool++allowAnti :: AlexPredicate+allowAnti = ifExtension antiquotationExts++ifExtension :: ExtensionsInt -> AlexPredicate+ifExtension i s _ _ _ = extensions s .&. i /= 0
Language/C/Parser/Parser.y view
@@ -163,15 +163,30 @@ '__builtin_va_list' { L _ T.Tbuiltin_va_list } '__typeof__' { L _ T.Ttypeof } - '<<<' { L _ T.T3lt }- '>>>' { L _ T.T3gt }- '__device__' { L _ T.Tdevice }- '__global__' { L _ T.Tglobal }- '__host__' { L _ T.Thost }- '__constant__' { L _ T.Tconstant }- '__shared__' { L _ T.Tshared }- '__noinline__' { L _ T.Tnoinline }+ '<<<' { L _ T.TCUDA3lt }+ '>>>' { L _ T.TCUDA3gt }+ '__device__' { L _ T.TCUDAdevice }+ '__global__' { L _ T.TCUDAglobal }+ '__host__' { L _ T.TCUDAhost }+ '__constant__' { L _ T.TCUDAconstant }+ '__shared__' { L _ T.TCUDAshared }+ '__noinline__' { L _ T.TCUDAnoinline } + 'private' { L _ T.TCLprivate }+ '__private' { L _ T.TCLprivate }+ 'local' { L _ T.TCLlocal }+ '__local' { L _ T.TCLlocal }+ 'global' { L _ T.TCLglobal }+ '__global' { L _ T.TCLglobal }+ 'constant' { L _ T.TCLconstant }+ '__constant' { L _ T.TCLconstant }+ 'read_only' { L _ T.TCLreadonly }+ '__read_only' { L _ T.TCLreadonly }+ 'write_only' { L _ T.TCLwriteonly }+ '__write_only' { L _ T.TCLwriteonly }+ 'kernel' { L _ T.TCLkernel }+ '__kernel' { L _ T.TCLkernel }+ 'typename' { L _ T.Ttypename } ANTI_ID { L _ (T.Tanti_id _) }@@ -383,8 +398,10 @@ execution_configuration : argument_expression_list {%do { let args = rev $1- ; when (length args < 2 || length args > 4) $- badExecutionContext (getLoc args) args+ ; when (length args < 2 || length args > 4) $ do+ parserError (locOf (rev $1)) $+ text "execution context should have 2-4 arguments, but saw" <+>+ ppr (length args) ; return $ case args of [gridDim, blockDim] ->@@ -612,7 +629,7 @@ } | declaration_specifiers error {% do{ let (_, decl) = $1- ; expected (locOf decl) ["';'"]+ ; expected ["';'"] } } | ANTI_DECL@@ -759,7 +776,7 @@ | declarator error {% do{ let (ident, declToDecl) = $1 ; let decl = declToDecl (declRoot ident)- ; expected (locOf decl) ["'='"]+ ; expected ["'='"] } } @@ -942,13 +959,29 @@ | 'volatile' { TSvolatile (locOf $1) } {- Extension: CUDA -}- | '__device__' { TSdevice (locOf $1) }- | '__global__' { TSglobal (locOf $1) }- | '__host__' { TShost (locOf $1) }- | '__constant__' { TSconstant (locOf $1) }- | '__shared__' { TSshared (locOf $1) }- | '__noinline__' { TSnoinline (locOf $1) }+ | '__device__' { TSCUDAdevice (locOf $1) }+ | '__global__' { TSCUDAglobal (locOf $1) }+ | '__host__' { TSCUDAhost (locOf $1) }+ | '__constant__' { TSCUDAconstant (locOf $1) }+ | '__shared__' { TSCUDAshared (locOf $1) }+ | '__noinline__' { TSCUDAnoinline (locOf $1) } + {- Extension: OpenCL -}+ | 'private' { TSCLprivate (locOf $1) }+ | '__private' { TSCLprivate (locOf $1) }+ | 'local' { TSCLlocal (locOf $1) }+ | '__local' { TSCLlocal (locOf $1) }+ | 'global' { TSCLglobal (locOf $1) }+ | '__global' { TSCLglobal (locOf $1) }+ | 'constant' { TSCLconstant (locOf $1) }+ | '__constant' { TSCLconstant (locOf $1) }+ | 'read_only' { TSCLreadonly (locOf $1) }+ | '__read_only' { TSCLreadonly (locOf $1) }+ | 'write_only' { TSCLwriteonly (locOf $1) }+ | '__write_only' { TSCLwriteonly (locOf $1) }+ | 'kernel' { TSCLkernel (locOf $1) }+ | '__kernel' { TSCLkernel (locOf $1) }+ -- Consider the following C program: -- -- typedef struct foo {@@ -1313,7 +1346,7 @@ | 'typename' identifier { TSnamed $2 ($1 <--> $2) } | 'typename' error- {% expected (locOf $1) ["identifier"] }+ {% expected ["identifier"] } | '__typeof__' '(' unary_expression ')' { TStypeofExp $3 ($1 <--> $4) } | '__typeof__' '(' type_name ')'@@ -1435,7 +1468,7 @@ expression_statement: ';' { Exp Nothing (locOf $1) } | expression ';' { Exp (Just $1) ($1 <--> $2) }- | expression error {% expected (locOf $1) ["';'"] }+ | expression error {% expected ["';'"] } selection_statement :: { Stm } selection_statement :@@ -1461,7 +1494,7 @@ | 'do' statement 'while' '(' expression error {% unclosed ($4 <--> $5) "(" } | 'for' '(' error- {% expected (locOf $2) ["expression", "declaration"] }+ {% expected ["expression", "declaration"] } | 'for' '(' declaration maybe_expression ';' ')' statement { For (Left $3) $4 Nothing $7 ($1 <--> $7) } | 'for' '(' maybe_expression ';' maybe_expression ';' ')' statement@@ -1478,16 +1511,16 @@ jump_statement :: { Stm } jump_statement : 'goto' identifier ';' { Goto $2 ($1 <--> $3) }- | 'goto' error {% expected (locOf $1) ["identifier"] }- | 'goto' identifier error {% expected (locOf $2) ["';'"] }+ | 'goto' error {% expected ["identifier"] }+ | 'goto' identifier error {% expected ["';'"] } | 'continue' ';' { Continue ($1 <--> $2) }- | 'continue' error {% expected (locOf $1) ["';'"] }+ | 'continue' error {% expected ["';'"] } | 'break' ';' { Break ($1 <--> $2) }- | 'break' error {% expected (locOf $1) ["';'"] }+ | 'break' error {% expected ["';'"] } | 'return' ';' { Return Nothing ($1 <--> $2) }- | 'return' error {% expected (locOf $1) ["';'"] }+ | 'return' error {% expected ["';'"] } | 'return' expression ';' { Return (Just $2) ($1 <--> $3) }- | 'return' expression error {% expected (locOf $2) ["';'"] }+ | 'return' expression error {% expected ["';'"] } {------------------------------------------------------------------------------ -@@ -1497,8 +1530,7 @@ translation_unit :: { [Definition] } translation_unit :- {- empty -}- { [] }+ {- empty -} { [] } | translation_unit_ { rev $1 } translation_unit_ :: { RevList Definition }@@ -1541,8 +1573,8 @@ OldFunc dspec ident protoDecl args Nothing blockItems (decl <--> blockItems)- ; _ -> failAt (decl <--> blockItems :: Loc)- "bad function declaration"+ ; _ -> parserError (decl <--> blockItems :: Loc)+ (text "bad function declaration") } } }@@ -1557,8 +1589,8 @@ OldFunc dspec ident protoDecl args (Just (rev argDecls)) blockItems (decl <--> blockItems)- ; _ -> failAt (decl <--> blockItems :: Loc)- "bad function declaration"+ ; _ -> parserError (decl <--> blockItems :: Loc)+ (text "bad function declaration") } } }@@ -1665,8 +1697,8 @@ { happyError :: L T.Token -> P a-happyError (L (Loc start _) _) =- throw $ ParserException (Loc start start) (text "parse error")+happyError (L loc _) =+ parserError (locStart loc) (text "parse error") getCHAR (L _ (T.TcharConst x)) = x getSTRING (L _ (T.TstringConst x)) = x@@ -1676,8 +1708,8 @@ getFLOAT (L _ (T.TfloatConst x)) = x getDOUBLE (L _ (T.TdoubleConst x)) = x getLONG_DOUBLE (L _ (T.TlongDoubleConst x)) = x-getID (L _ (T.Tidentifier id)) = id-getNAMED (L _ (T.Tnamed id)) = id+getID (L _ (T.Tidentifier ident)) = ident+getNAMED (L _ (T.Tnamed ident)) = ident getANTI_ID (L _ (T.Tanti_id v)) = v getANTI_INT (L _ (T.Tanti_int v)) = v@@ -1711,8 +1743,10 @@ getANTI_PARAMS (L _ (T.Tanti_params v)) = v lexer :: (L T.Token -> P a) -> P a-lexer cont =- lexToken >>= cont+lexer cont = do+ t <- lexToken+ setCurToken t+ cont t locate :: Loc -> (SrcLoc -> a) -> L a locate loc f = L loc (f (SrcLoc loc))@@ -1755,13 +1789,22 @@ | TSrestrict !SrcLoc -- CUDA- | TSdevice !SrcLoc- | TSglobal !SrcLoc- | TShost !SrcLoc- | TSconstant !SrcLoc- | TSshared !SrcLoc- | TSnoinline !SrcLoc+ | TSCUDAdevice !SrcLoc+ | TSCUDAglobal !SrcLoc+ | TSCUDAhost !SrcLoc+ | TSCUDAconstant !SrcLoc+ | TSCUDAshared !SrcLoc+ | TSCUDAnoinline !SrcLoc + -- OpenCL+ | TSCLprivate !SrcLoc+ | TSCLlocal !SrcLoc+ | TSCLglobal !SrcLoc+ | TSCLconstant !SrcLoc+ | TSCLreadonly !SrcLoc+ | TSCLwriteonly !SrcLoc+ | TSCLkernel !SrcLoc+ instance Located DeclTySpec where getLoc (DeclTySpec _ loc) = getLoc loc getLoc (AntiDeclTySpec _ loc) = getLoc loc@@ -1800,13 +1843,21 @@ getLoc (TSrestrict loc) = getLoc loc - getLoc (TSdevice loc) = getLoc loc- getLoc (TSglobal loc) = getLoc loc- getLoc (TShost loc) = getLoc loc- getLoc (TSconstant loc) = getLoc loc- getLoc (TSshared loc) = getLoc loc- getLoc (TSnoinline loc) = getLoc loc+ getLoc (TSCUDAdevice loc) = getLoc loc+ getLoc (TSCUDAglobal loc) = getLoc loc+ getLoc (TSCUDAhost loc) = getLoc loc+ getLoc (TSCUDAconstant loc) = getLoc loc+ getLoc (TSCUDAshared loc) = getLoc loc+ getLoc (TSCUDAnoinline loc) = getLoc loc + getLoc (TSCLprivate loc) = getLoc loc+ getLoc (TSCLlocal loc) = getLoc loc+ getLoc (TSCLglobal loc) = getLoc loc+ getLoc (TSCLconstant loc) = getLoc loc+ getLoc (TSCLreadonly loc) = getLoc loc+ getLoc (TSCLwriteonly loc) = getLoc loc+ getLoc (TSCLkernel loc) = getLoc loc+ instance Pretty TySpec where ppr (TSauto _) = text "auto" ppr (TSregister _) = text "register"@@ -1846,13 +1897,21 @@ ppr (TSva_list _) = text "__builtin_va_list" - ppr (TSdevice _) = text "__device__"- ppr (TSglobal _) = text "__global__"- ppr (TShost _) = text "__host__"- ppr (TSconstant _) = text "__constant__"- ppr (TSshared _) = text "__shared__"- ppr (TSnoinline _) = text "__noinline__"+ ppr (TSCUDAdevice _) = text "__device__"+ ppr (TSCUDAglobal _) = text "__global__"+ ppr (TSCUDAhost _) = text "__host__"+ ppr (TSCUDAconstant _) = text "__constant__"+ ppr (TSCUDAshared _) = text "__shared__"+ ppr (TSCUDAnoinline _) = text "__noinline__" + ppr (TSCLprivate _) = text "__private"+ ppr (TSCLlocal _) = text "__local"+ ppr (TSCLglobal _) = text "__global"+ ppr (TSCLconstant _) = text "__constant"+ ppr (TSCLreadonly _) = text "read_only"+ ppr (TSCLwriteonly _) = text "write_only"+ ppr (TSCLkernel _) = text "__kernel"+ isStorage :: TySpec -> Bool isStorage (TSauto _) = True isStorage (TSregister _) = True@@ -1875,33 +1934,47 @@ mk _ = error "internal error in mkStorage" isTypeQual :: TySpec -> Bool-isTypeQual (TSconst _) = True-isTypeQual (TSvolatile _) = True-isTypeQual (TSinline _) = True-isTypeQual (TSrestrict _) = True-isTypeQual (TSdevice _) = True-isTypeQual (TSglobal _) = True-isTypeQual (TShost _) = True-isTypeQual (TSconstant _) = True-isTypeQual (TSshared _) = True-isTypeQual (TSnoinline _) = True-isTypeQual _ = False+isTypeQual (TSconst _) = True+isTypeQual (TSvolatile _) = True+isTypeQual (TSinline _) = True+isTypeQual (TSrestrict _) = True+isTypeQual (TSCUDAdevice _) = True+isTypeQual (TSCUDAglobal _) = True+isTypeQual (TSCUDAhost _) = True+isTypeQual (TSCUDAconstant _) = True+isTypeQual (TSCUDAshared _) = True+isTypeQual (TSCUDAnoinline _) = True+isTypeQual (TSCLprivate _) = True+isTypeQual (TSCLlocal _) = True+isTypeQual (TSCLglobal _) = True+isTypeQual (TSCLconstant _) = True+isTypeQual (TSCLreadonly _) = True+isTypeQual (TSCLwriteonly _) = True+isTypeQual (TSCLkernel _) = True+isTypeQual _ = False mkTypeQuals :: [TySpec] -> [TypeQual] mkTypeQuals specs = map mk (filter isTypeQual specs) where mk :: TySpec -> TypeQual- mk (TSconst loc) = Tconst loc- mk (TSvolatile loc) = Tvolatile loc- mk (TSinline loc) = Tinline loc- mk (TSrestrict loc) = Trestrict loc- mk (TSdevice loc) = Tdevice loc- mk (TSglobal loc) = Tglobal loc- mk (TShost loc) = Thost loc- mk (TSconstant loc) = Tconstant loc- mk (TSshared loc) = Tshared loc- mk (TSnoinline loc) = Tnoinline loc- mk _ = error "internal error in mkTypeQual"+ mk (TSconst loc) = Tconst loc+ mk (TSvolatile loc) = Tvolatile loc+ mk (TSinline loc) = Tinline loc+ mk (TSrestrict loc) = Trestrict loc+ mk (TSCUDAdevice loc) = TCUDAdevice loc+ mk (TSCUDAglobal loc) = TCUDAglobal loc+ mk (TSCUDAhost loc) = TCUDAhost loc+ mk (TSCUDAconstant loc) = TCUDAconstant loc+ mk (TSCUDAshared loc) = TCUDAshared loc+ mk (TSCUDAnoinline loc) = TCUDAnoinline loc+ mk (TSCLprivate loc) = TCLprivate loc+ mk (TSCLlocal loc) = TCLlocal loc+ mk (TSCLglobal loc) = TCLglobal loc+ mk (TSCLconstant loc) = TCLconstant loc+ mk (TSCLreadonly loc) = TCLreadonly loc+ mk (TSCLwriteonly loc) = TCLwriteonly loc+ mk (TSCLkernel loc) = TCLkernel loc+ mk _ = error "internal error in mkTypeQual" isSign :: TySpec -> Bool isSign (TSsigned _) = True@@ -1914,11 +1987,11 @@ mkSign :: [TySpec] -> P (Maybe Sign) mkSign specs = case filter isSign specs of- [] -> return Nothing- [TSunsigned loc] -> return (Just (Tunsigned loc))- [TSsigned loc] -> return (Just (Tsigned loc))- [_] -> fail "internal error in mkSign"- _ -> fail "multiple signs specified"+ [] -> return Nothing+ [TSunsigned loc] -> return (Just (Tunsigned loc))+ [TSsigned loc] -> return (Just (Tsigned loc))+ [_] -> fail "internal error in mkSign"+ _ -> fail "multiple signs specified" checkNoSign :: [TySpec] -> String -> P () checkNoSign spec msg | hasSign spec = fail msg@@ -2145,40 +2218,4 @@ where go l RNil = l go l (RCons x xs) = go (x : l) xs--expected :: Loc- -> [String]- -> P a-expected loc alts =- throw $ ParserException (locEnd loc)- (text "unclosed" <+> go alts)- where- go :: [String] -> Doc- go [] = empty- go [x] = text x- go [x, y] = text x <+> text "or" <+> text y- go (x : xs) = text x <> comma <+> go xs--unclosed :: Loc- -> String- -> P a-unclosed loc x =- throw $ ParserException (locEnd loc)- (text "unclosed" <+> squotes (text x))--badExecutionContext :: Loc- -> [Exp]- -> P a-badExecutionContext loc es =- throw $ ParserException (locEnd loc) $- text "execution context should have 2-4 arguments, but saw" <+>- ppr (length es)--badFunctionDeclaration :: Loc- -> [Exp]- -> P a-badFunctionDeclaration loc es =- throw $ ParserException (locEnd loc) $- text "execution context should have 2-4 arguments, but saw" <+>- ppr (length es) }
Language/C/Parser/Tokens.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2006-2010+-- Copyright (c) 2006-2011 -- The President and Fellows of Harvard College. -- -- Redistribution and use in source and binary forms, with or without@@ -28,7 +28,7 @@ -------------------------------------------------------------------------------- -- | -- Module : Language.C.Parser.Tokens--- Copyright : (c) Harvard University 2006-2010+-- Copyright : (c) Harvard University 2006-2011 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu --@@ -159,15 +159,24 @@ | Ttypeof -- CUDA- | T3lt- | T3gt- | Tdevice- | Tglobal- | Thost- | Tconstant- | Tshared- | Tnoinline+ | TCUDA3lt+ | TCUDA3gt+ | TCUDAdevice+ | TCUDAglobal+ | TCUDAhost+ | TCUDAconstant+ | TCUDAshared+ | TCUDAnoinline + -- OpenCL+ | TCLprivate+ | TCLlocal+ | TCLglobal+ | TCLconstant+ | TCLreadonly+ | TCLwriteonly+ | TCLkernel+ -- Antiquoting | Ttypename @@ -213,7 +222,7 @@ show (TlongDoubleConst (s, _)) = s show (TcharConst (s, _)) = s show (TstringConst (s, _)) = s- show (Tidentifier s) = "identifier: " ++ show s+ show (Tidentifier s) = s show t = fromMaybe (error "internal error: unknown token") (lookup t tokenStrings) @@ -319,12 +328,23 @@ -- -- CUDA extensions --- (Tdevice, "__device__"),- (Tglobal, "__global__"),- (Thost, "__host__"),- (Tconstant, "__constant__"),- (Tshared, "__shared__"),- (Tnoinline, "__noinline__")+ (TCUDAdevice, "__device__"),+ (TCUDAglobal, "__global__"),+ (TCUDAhost, "__host__"),+ (TCUDAconstant, "__constant__"),+ (TCUDAshared, "__shared__"),+ (TCUDAnoinline, "__noinline__"),++ --+ -- OpenCL extensions+ --+ (TCLprivate, "__private"),+ (TCLlocal, "__local"),+ (TCLglobal, "__global"),+ (TCLconstant, "__constant"),+ (TCLreadonly, "read_only"),+ (TCLwriteonly, "write_only"),+ (TCLkernel, "__kernel") ] keywords :: [(String, Token, Maybe [Extensions])]@@ -384,12 +404,27 @@ ("__volatile", Tvolatile, Just [Gcc]), ("__volatile__", Tvolatile, Just [Gcc]), - ("__device__", Tdevice, Just [CUDA]),- ("__global__", Tglobal, Just [CUDA]),- ("__host__", Thost, Just [CUDA]),- ("__constant__", Tconstant, Just [CUDA]),- ("__shared__", Tshared, Just [CUDA]),- ("__noinline__", Tnoinline, Just [CUDA])+ ("__device__", TCUDAdevice, Just [CUDA]),+ ("__global__", TCUDAglobal, Just [CUDA]),+ ("__host__", TCUDAhost, Just [CUDA]),+ ("__constant__", TCUDAconstant, Just [CUDA]),+ ("__shared__", TCUDAshared, Just [CUDA]),+ ("__noinline__", TCUDAnoinline, Just [CUDA]),++ ("private", TCLprivate, Just [OpenCL]),+ ("__private", TCLprivate, Just [OpenCL]),+ ("local", TCLlocal, Just [OpenCL]),+ ("__local", TCLlocal, Just [OpenCL]),+ ("global", TCLglobal, Just [OpenCL]),+ ("__global", TCLglobal, Just [OpenCL]),+ ("constant", TCLconstant, Just [OpenCL]),+ ("__constant", TCLconstant, Just [OpenCL]),+ ("read_only", TCLreadonly, Just [OpenCL]),+ ("__read_only", TCLreadonly, Just [OpenCL]),+ ("write_only", TCLwriteonly, Just [OpenCL]),+ ("__write_only", TCLwriteonly, Just [OpenCL]),+ ("kernel", TCLkernel, Just [OpenCL]),+ ("__kernel", TCLkernel, Just [OpenCL]) ] type ExtensionsInt = Word32
Language/C/Pretty.hs view
@@ -2,7 +2,7 @@ {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE FlexibleInstances #-} --- Copyright (c) 2006-2010+-- Copyright (c) 2006-2011 -- The President and Fellows of Harvard College. -- -- Redistribution and use in source and binary forms, with or without@@ -32,7 +32,7 @@ -------------------------------------------------------------------------------- -- | -- Module : Language.C.Pretty--- Copyright : (c) Harvard University 2006-2010+-- Copyright : (c) Harvard University 2006-2011 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu --@@ -133,18 +133,26 @@ ppr (Ttypedef _) = text "typedef" instance Pretty TypeQual where- ppr (Tconst _) = text "const"- ppr (Tvolatile _) = text "volatile"- ppr (Tinline _) = text "inline"+ ppr (Tconst _) = text "const"+ ppr (Tvolatile _) = text "volatile"+ ppr (Tinline _) = text "inline" - ppr (Trestrict _) = text "__restrict"+ ppr (Trestrict _) = text "__restrict" - ppr (Tdevice _) = text "__device__"- ppr (Tglobal _) = text "__global__"- ppr (Thost _) = text "__host__"- ppr (Tconstant _) = text "__constant__"- ppr (Tshared _) = text "__shared__"- ppr (Tnoinline _) = text "__noinline__"+ ppr (TCUDAdevice _) = text "__device__"+ ppr (TCUDAglobal _) = text "__global__"+ ppr (TCUDAhost _) = text "__host__"+ ppr (TCUDAconstant _) = text "__constant__"+ ppr (TCUDAshared _) = text "__shared__"+ ppr (TCUDAnoinline _) = text "__noinline__"++ ppr (TCLprivate _) = text "__private"+ ppr (TCLlocal _) = text "__local"+ ppr (TCLglobal _) = text "__global"+ ppr (TCLconstant _) = text "__constant"+ ppr (TCLreadonly _) = text "read_only"+ ppr (TCLwriteonly _) = text "write_only"+ ppr (TCLkernel _) = text "__kernel" instance Pretty Sign where ppr (Tsigned _) = text "signed"
Language/C/Quote.hs view
@@ -32,21 +32,25 @@ -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu ----- There are three modules that provide quasiquoters, each for a different C+-- There are four modules that provide quasiquoters, each for a different C -- variant. 'Language.C.Quote.C' parses C99, 'Language.C.Quote.GCC' parses C99--- plus GNU extensions, and 'Language.C.Quote.CUDA' parses C99 plus GNU and CUDA--- extensions. The quasiquoters generate Template Haskell expressions that use--- data constructors that must be in scope where the quasiquoted expression--- occurs. You will be safe if you add the following imports to any module using--- the quasiquoters provided by this package:+-- plus GNU extensions, 'Language.C.Quote.CUDA' parses C99 plus GNU and CUDA+-- extensions, and 'Language.C.Quote.OpenCL' parses C99 plus GNU and OpenCL+-- extensions. --+-- For version of GHC prior to 7.4, the quasiquoters generate Template Haskell+-- expressions that use data constructors that must be in scope where the+-- quasiquoted expression occurs. You will be safe if you add the following+-- imports to any module using the quasiquoters provided by this package:+-- -- > import qualified Data.Loc -- > import qualified Data.Symbol -- > import qualified Language.C.Syntax ----- These modules may also be imported unqualified, of course. The quasioquoters+-- These modules may also be imported unqualified, of course. The quasiquoters -- also use some constructors defined in the standard Prelude, so if it is not--- imported by default, it must be imported qualified.+-- imported by default, it must be imported qualified. On GHC 7.4 and above, you+-- can use the quasiquoters without worrying about what names are in scope. -- -- The following quasiquoters are defined: --@@ -74,11 +78,13 @@ -- Antiquotations allow splicing in subterms during quotation. These subterms -- may bound to a Haskell variable or may be the value of a Haskell -- expression. Antiquotations appear in a quasiquotation in the form--- @$ANTI:VARID@, where @VARID@ is a Haskell variable identifier, or in the form--- @$ANTI:(EXP)@, where @EXP@ is a Haskell expressions (the parentheses must--- appear in this case). Additionally, @$VARID@ is shorthand for @$exp:VARID@--- and @$(EXP)@ is shorthand for @$exp:(EXP)@. The following antiquotations--- (ANTI) are supported:+-- @$ANTI:VARID@, where @ANTI@ is a valid antiquote specifier and @VARID@ is a+-- Haskell variable identifier, or in the form @$ANTI:(EXP)@, where @EXP@ is a+-- Haskell expressions (the parentheses must appear in this case). The Haskell+-- expression may itself contain a quasiquote, but in that case the final @|]@+-- must be escaped as @\|\]@. Additionally, @$VARID@ is shorthand for+-- @$exp:VARID@ and @$(EXP)@ is shorthand for @$exp:(EXP)@, i.e., @exp@ is the+-- default antiquote specifier. Valid antiquote specifiers are: -- -- [@id@] A C identifier. The argument must have type @'String'@. --
Language/C/Quote/Base.hs view
@@ -48,13 +48,21 @@ ) where import Control.Monad ((>=>))+import Data.Bits import qualified Data.ByteString.Char8 as B import Data.Generics import Data.Loc import Data.Symbol import Language.Haskell.Meta (parseExp, parsePat) import Language.Haskell.TH+#if MIN_VERSION_template_haskell(2,7,0)+import Language.Haskell.TH.Quote (QuasiQuoter(..),+ dataToQa,+ dataToExpQ,+ dataToPatQ)+#else /* !MIN_VERSION_template_haskell(2,7,0) */ import Language.Haskell.TH.Quote (QuasiQuoter(..))+#endif /* !MIN_VERSION_template_haskell(2,7,0) */ import Language.Haskell.TH.Syntax import qualified Language.C.Parser as P@@ -486,7 +494,7 @@ -> Q a parse exts typenames p s = do loc <- location- case P.parse exts typenames P.ParseQuasiQuote p (B.pack s) (locToPos loc) of+ case P.parse (C.Antiquotation : exts) typenames p (B.pack s) (locToPos loc) of Left err -> fail (show err) Right x -> return x where@@ -506,6 +514,7 @@ , quotePat = parse exts typenames p >=> dataToPatQ qqPat } +#if !MIN_VERSION_template_haskell(2,7,0) dataToQa :: forall a k q. Data a => (Name -> k) -> (Lit -> Q q)@@ -574,3 +583,4 @@ -> a -> Q Pat dataToPatQ = dataToQa id litP conP+#endif /* !MIN_VERSION_template_haskell(2,7,0) */
Language/C/Quote/CUDA.hs view
@@ -58,15 +58,14 @@ typenames :: [String] typenames =- [ "char1", "uchar1", "char2", "uchar2", "char3", "uchar3", "char4", "uchar4"- , "short1", "ushort1", "short2", "ushort2", "short3", "ushort3"- , "short4", "ushort4"- , "int1", "uint1", "int2", "uint2", "int3", "uint3", "int4", "uint4"- , "long1", "ulong1", "long2", "ulong2", "long3", "ulong3", "long4", "ulong4"- , "longlong1", "longlong2"- , "float1", "float2", "float3"," float4", "double1", "double2"- , "dim3"- ]+ concatMap (typeN 4) ["char", "uchar", "short", "ushort",+ "int", "uint", "long", "ulong",+ "float"] +++ concatMap (typeN 2) ["longlong", "double"] +++ ["dim3"]++typeN :: Int -> String -> [String]+typeN k typename = [typename ++ show n | n <- [1..k]] cdecl = quasiquote exts typenames P.parseDecl cedecl = quasiquote exts typenames P.parseEdecl
+ Language/C/Quote/OpenCL.hs view
@@ -0,0 +1,81 @@+-- Copyright (c) 2006-2011+-- The President and Fellows of Harvard College.+--+-- Redistribution and use in source and binary forms, with or without+-- modification, are permitted provided that the following conditions+-- are met:+-- 1. Redistributions of source code must retain the above copyright+-- notice, this list of conditions and the following disclaimer.+-- 2. Redistributions in binary form must reproduce the above copyright+-- notice, this list of conditions and the following disclaimer in the+-- documentation and/or other materials provided with the distribution.+-- 3. Neither the name of the University nor the names of its contributors+-- may be used to endorse or promote products derived from this software+-- without specific prior written permission.++-- THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND CONTRIBUTORS ``AS IS'' AND+-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+-- ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE+-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL+-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT+-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY+-- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF+-- SUCH DAMAGE.++--------------------------------------------------------------------------------+-- |+-- Module : Language.C.Quote.OpenCL+-- Copyright : (c) Harvard University 2006-2011+-- License : BSD-style+-- Maintainer : Martin Dybdal <dybber@dybber.dk>+--+--------------------------------------------------------------------------------++module Language.C.Quote.OpenCL (+ ToExp(..),+ cexp,+ cedecl,+ cdecl,+ csdecl,+ cenum,+ cty,+ cparam,+ cinit,+ cstm,+ cunit,+ cfun+ ) where++import qualified Language.C.Parser as P+import qualified Language.C.Syntax as C+import Language.C.Quote.Base (ToExp(..), quasiquote)++exts :: [C.Extensions]+exts = [C.OpenCL]+++typenames :: [String]+typenames =+ concatMap typeN+ ["char", "uchar", "short", "ushort", "int", "uint",+ "long" , "ulong", "float", "double", "bool", "half", "quad"] +++ ["uchar", "ushort", "uint", "ulong",+ "half", "quad", "image2d_t", "image3d_t", "sampler_t", "event_t"]++typeN :: String -> [String]+typeN typename = [typename ++ show n | n <- [2, 3, 4, 8, 16]]++cdecl = quasiquote exts typenames P.parseDecl+cedecl = quasiquote exts typenames P.parseEdecl+cenum = quasiquote exts typenames P.parseEnum+cexp = quasiquote exts typenames P.parseExp+cfun = quasiquote exts typenames P.parseFunc+cinit = quasiquote exts typenames P.parseInit+cparam = quasiquote exts typenames P.parseParam+csdecl = quasiquote exts typenames P.parseStructDecl+cstm = quasiquote exts typenames P.parseStm+cty = quasiquote exts typenames P.parseType+cunit = quasiquote exts typenames P.parseUnit
Language/C/Smart.hs view
@@ -34,15 +34,19 @@ -- -------------------------------------------------------------------------------- +{-# LANGUAGE CPP #-} {-# LANGUAGE QuasiQuotes #-} module Language.C.Smart where -import qualified Data.Loc-import qualified Data.Symbol import Language.C.Quote.C import Language.C.Syntax as C++#if !MIN_VERSION_template_haskell(2,7,0)+import qualified Data.Loc+import qualified Data.Symbol import qualified Language.C.Syntax+#endif /* !MIN_VERSION_template_haskell(2,7,0) */ instance Enum Exp where toEnum n = [cexp|$int:n|]
Language/C/Syntax.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2006-2010+-- Copyright (c) 2006-2011 -- The President and Fellows of Harvard College. -- -- Redistribution and use in source and binary forms, with or without@@ -28,7 +28,7 @@ -------------------------------------------------------------------------------- -- | -- Module : Language.C.Syntax--- Copyright : (c) Harvard University 2006-2010+-- Copyright : (c) Harvard University 2006-2011 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu --@@ -44,8 +44,10 @@ import Data.Loc -data Extensions = Gcc+data Extensions = Antiquotation+ | Gcc | CUDA+ | OpenCL deriving (Eq, Ord, Enum, Show) data Id = Id String !SrcLoc@@ -68,12 +70,21 @@ | Trestrict !SrcLoc -- CUDA- | Tdevice !SrcLoc- | Tglobal !SrcLoc- | Thost !SrcLoc- | Tconstant !SrcLoc- | Tshared !SrcLoc- | Tnoinline !SrcLoc+ | TCUDAdevice !SrcLoc+ | TCUDAglobal !SrcLoc+ | TCUDAhost !SrcLoc+ | TCUDAconstant !SrcLoc+ | TCUDAshared !SrcLoc+ | TCUDAnoinline !SrcLoc++ -- OpenCL+ | TCLprivate !SrcLoc+ | TCLlocal !SrcLoc+ | TCLglobal !SrcLoc+ | TCLconstant !SrcLoc+ | TCLreadonly !SrcLoc+ | TCLwriteonly !SrcLoc+ | TCLkernel !SrcLoc deriving (Eq, Ord, Data, Typeable) data Sign = Tsigned !SrcLoc@@ -356,12 +367,20 @@ getLoc (Trestrict loc) = getLoc loc - getLoc (Tdevice loc) = getLoc loc- getLoc (Tglobal loc) = getLoc loc- getLoc (Thost loc) = getLoc loc- getLoc (Tconstant loc) = getLoc loc- getLoc (Tshared loc) = getLoc loc- getLoc (Tnoinline loc) = getLoc loc+ getLoc (TCUDAdevice loc) = getLoc loc+ getLoc (TCUDAglobal loc) = getLoc loc+ getLoc (TCUDAhost loc) = getLoc loc+ getLoc (TCUDAconstant loc) = getLoc loc+ getLoc (TCUDAshared loc) = getLoc loc+ getLoc (TCUDAnoinline loc) = getLoc loc++ getLoc (TCLprivate loc) = getLoc loc+ getLoc (TCLlocal loc) = getLoc loc+ getLoc (TCLglobal loc) = getLoc loc+ getLoc (TCLconstant loc) = getLoc loc+ getLoc (TCLreadonly loc) = getLoc loc+ getLoc (TCLwriteonly loc) = getLoc loc+ getLoc (TCLkernel loc) = getLoc loc instance Located Sign where getLoc (Tsigned loc) = getLoc loc
− dist/build/Language/C/Parser/Lexer.hs
@@ -1,718 +0,0 @@-{-# LANGUAGE CPP,MagicHash #-} -{-# LINE 1 "Language\C\Parser\Lexer.x" #-} - -{-# OPTIONS -w #-} -{-# LANGUAGE CPP #-} - --- Copyright (c) 2006-2011 --- The President and Fellows of Harvard College. --- --- Redistribution and use in source and binary forms, with or without --- modification, are permitted provided that the following conditions --- are met: --- 1. Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- 2. Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in the --- documentation and/or other materials provided with the distribution. --- 3. Neither the name of the University nor the names of its contributors --- may be used to endorse or promote products derived from this software --- without specific prior written permission. - --- THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND CONTRIBUTORS ``AS IS'' AND --- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE --- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE --- ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE --- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL --- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS --- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) --- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT --- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY --- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --- SUCH DAMAGE. - --------------------------------------------------------------------------------- --- | --- Module : Language.C.Parser.Lexer --- Copyright : (c) Harvard University 2006-2011 --- License : BSD-style --- Maintainer : mainland@eecs.harvard.edu --- --------------------------------------------------------------------------------- - -module Language.C.Parser.Lexer ( - lexToken - ) where - -import Control.Monad (when) -import Control.Monad.Error -import Control.Monad.Exception -import Control.Monad.Identity -import Control.Monad.State -import Control.Monad.Trans -import qualified Data.ByteString.Char8 as B -import Data.Char (isAlphaNum, - isDigit, - isOctDigit, - isHexDigit, - isLower, - isSpace, - chr, - toLower) -import Data.List (foldl', intersperse) -import Data.Loc -import qualified Data.Map as Map -import Data.Ratio ((%)) -import qualified Data.Set as Set -import Data.Symbol -import Data.Maybe (fromMaybe) -import Text.PrettyPrint.Mainland - -import qualified Language.C.Syntax as C -import Language.C.Parser.Monad -import Language.C.Parser.Tokens - -#if __GLASGOW_HASKELL__ >= 603 -#include "ghcconfig.h" -#elif defined(__GLASGOW_HASKELL__) -#include "config.h" -#endif -#if __GLASGOW_HASKELL__ >= 503 -import Data.Array -import Data.Char (ord) -import Data.Array.Base (unsafeAt) -#else -import Array -import Char (ord) -#endif -#if __GLASGOW_HASKELL__ >= 503 -import GHC.Exts -#else -import GlaExts -#endif -alex_base :: AlexAddr -alex_base = AlexA# "\xf8\xff\xff\xff\x6e\x00\x00\x00\xbd\x00\x00\x00\x08\x01\x00\x00\x53\x01\x00\x00\x9e\x01\x00\x00\xe9\x01\x00\x00\x34\x02\x00\x00\x7f\x02\x00\x00\xca\x02\x00\x00\x00\x00\x00\x00\xe4\x02\x00\x00\xa2\xff\xff\xff\xcd\xff\xff\xff\x00\x00\x00\x00\x94\xff\xff\xff\xcf\xff\xff\xff\x00\x00\x00\x00\xa1\xff\xff\xff\x9d\xff\xff\xff\x98\xff\xff\xff\xd4\xff\xff\xff\x00\x00\x00\x00\xab\xff\xff\xff\xa3\xff\xff\xff\x9e\xff\xff\xff\xd9\xff\xff\xff\x00\x00\x00\x00\xac\xff\xff\xff\xa9\xff\xff\xff\xa8\xff\xff\xff\xfe\xff\xff\xff\x00\x00\x00\x00\x10\x00\x00\x00\xe5\xff\xff\xff\xf7\xff\xff\xff\x09\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x0b\x00\x00\x00\x1f\x00\x00\x00\x16\x00\x00\x00\x1e\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x26\x00\x00\x00\x20\x00\x00\x00\x25\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x2c\x00\x00\x00\x58\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\xe2\x02\x00\x00\x8a\x00\x00\x00\x8f\x00\x00\x00\x8b\x00\x00\x00\x93\x00\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\xe7\x02\x00\x00\x8d\x00\x00\x00\xde\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\xb7\x00\x00\x00\xe1\x00\x00\x00\x00\x00\x00\x00\xd0\x00\x00\x00\xb6\x00\x00\x00\xd1\x00\x00\x00\x09\x01\x00\x00\x00\x00\x00\x00\xe2\x00\x00\x00\xda\x00\x00\x00\xeb\x02\x00\x00\x00\x00\x00\x00\x0d\x01\x00\x00\x00\x00\x00\x00\xe3\x00\x00\x00\x00\x01\x00\x00\xf8\x00\x00\x00\xed\x02\x00\x00\x00\x00\x00\x00\x2b\x01\x00\x00\x00\x00\x00\x00\xf1\x00\x00\x00\xfb\x00\x00\x00\xee\x02\x00\x00\x00\x00\x00\x00\x54\x01\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x55\x01\x00\x00\x00\x00\x00\x00\x2c\x01\x00\x00\x2d\x01\x00\x00\x26\x01\x00\x00\xf0\x02\x00\x00\x00\x00\x00\x00\x59\x01\x00\x00\x00\x00\x00\x00\x49\x01\x00\x00\x42\x01\x00\x00\x12\x03\x00\x00\x00\x00\x00\x00\x76\x01\x00\x00\x00\x00\x00\x00\x14\x03\x00\x00\x00\x00\x00\x00\x77\x01\x00\x00\x00\x00\x00\x00\x3a\x01\x00\x00\x9f\x01\x00\x00\x00\x00\x00\x00\x73\x01\x00\x00\x78\x01\x00\x00\xa0\x01\x00\x00\x00\x00\x00\x00\x7b\x01\x00\x00\x6b\x01\x00\x00\x7d\x01\x00\x00\x8c\x01\x00\x00\x15\x03\x00\x00\x00\x00\x00\x00\xc0\x01\x00\x00\xf1\x01\x00\x00\xf2\x01\x00\x00\xf4\x01\x00\x00\x19\x02\x00\x00\x47\x03\x00\x00\x49\x03\x00\x00\x51\x03\x00\x00\x52\x03\x00\x00\x5b\x03\x00\x00\x64\x03\x00\x00\x6c\x03\x00\x00\x76\x03\x00\x00\xa7\x03\x00\x00\xb1\x03\x00\x00\xac\x03\x00\x00\xb6\x03\x00\x00\x60\x03\x00\x00\xfe\x02\x00\x00\xfd\x02\x00\x00\x1a\x02\x00\x00\x1b\x02\x00\x00\x1c\x02\x00\x00\x1d\x02\x00\x00\x68\x03\x00\x00\x70\x03\x00\x00\x72\x03\x00\x00\xc9\x03\x00\x00\xe3\x03\x00\x00\xe8\x03\x00\x00\xf3\x03\x00\x00\x0d\x04\x00\x00\x27\x04\x00\x00\x41\x04\x00\x00\x1e\x02\x00\x00\x1f\x02\x00\x00\xcc\x03\x00\x00\x00\x00\x00\x00\x44\x02\x00\x00\x45\x02\x00\x00\x46\x02\x00\x00\x3a\x02\x00\x00\x2f\x04\x00\x00\x4b\x04\x00\x00\x96\x04\x00\x00\xe1\x04\x00\x00\x2c\x05\x00\x00\x77\x05\x00\x00\xc2\x05\x00\x00\x0d\x06\x00\x00\x58\x06\x00\x00\xa3\x06\x00\x00\xee\x06\x00\x00\x39\x07\x00\x00\x84\x07\x00\x00\xcf\x07\x00\x00\x1a\x08\x00\x00\x65\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\xba\x08\x00\x00\xd7\x08\x00\x00\xf8\x08\x00\x00\x34\x04\x00\x00\x17\x09\x00\x00\x35\x09\x00\x00\x5b\x09\x00\x00\x81\x09\x00\x00\xac\x09\x00\x00\xd2\x09\x00\x00\x02\x09\x00\x00\xf2\x09\x00\x00\x21\x09\x00\x00\x00\x00\x00\x00\x25\x02\x00\x00\xac\x08\x00\x00\x65\x02\x00\x00\x26\x02\x00\x00\x00\x00\x00\x00\x28\x02\x00\x00\xad\x08\x00\x00\x66\x02\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\xfc\x09\x00\x00\x71\x02\x00\x00\xaf\x08\x00\x00\x6a\x02\x00\x00\xba\x02\x00\x00\x42\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x03\x00\x00\x00\x00\x00\x00\x17\x02\x00\x00\x53\x03\x00\x00\x09\x02\x00\x00\x0a\x02\x00\x00\x00\x00\x00\x00\xd1\x03\x00\x00\x4e\x03\x00\x00\x0c\x02\x00\x00\x53\x02\x00\x00\xc8\x02\x00\x00\xcc\x02\x00\x00\x50\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# - -alex_table :: AlexAddr -alex_table = AlexA# "\x00\x00\xac\x00\xac\x00\xac\x00\xac\x00\xac\x00\x0d\x00\x0a\x00\x10\x00\x0e\x00\x13\x00\x14\x00\x15\x00\x1c\x00\x11\x00\x2e\x00\x0f\x00\x19\x00\x1a\x00\x16\x00\x18\x00\x1d\x00\x6b\x00\x1e\x00\xac\x00\xf9\x00\xdd\x00\x92\x00\x1f\x00\xee\x00\xf0\x00\xdc\x00\xde\x00\xdf\x00\xed\x00\xec\x00\xe4\x00\xe9\x00\xc1\x00\xa6\x00\xc5\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xe6\x00\xe5\x00\xf4\x00\xfd\x00\xf6\x00\xe7\x00\x1b\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xe0\x00\x23\x00\xe1\x00\xf2\x00\xae\x00\x24\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xe2\x00\xf1\x00\xe3\x00\xef\x00\xac\x00\xac\x00\xac\x00\xac\x00\xac\x00\x22\x00\x25\x00\x20\x00\x4e\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x26\x00\x45\x00\x2f\x00\x30\x00\x31\x00\x28\x00\x33\x00\x2d\x00\x32\x00\x37\x00\xac\x00\xf9\x00\xdd\x00\x92\x00\x0b\x00\xee\x00\xf0\x00\xdc\x00\xde\x00\xdf\x00\xed\x00\xec\x00\xe4\x00\xe9\x00\xc1\x00\xa6\x00\xc5\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xc3\x00\xe6\x00\xe5\x00\xf4\x00\xfd\x00\xf6\x00\xe7\x00\x36\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xe0\x00\x38\x00\xe1\x00\xf2\x00\xae\x00\x34\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\x03\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xba\x00\xe2\x00\xf1\x00\xe3\x00\xef\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x71\x00\x3d\x00\x3e\x00\x3f\x00\x39\x00\x3c\x00\x43\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x40\x00\x46\x00\x47\x00\x44\x00\xbb\x00\x4b\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x4a\x00\x48\x00\x4c\x00\x4f\x00\x50\x00\x51\x00\x55\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x56\x00\x57\x00\x58\x00\x5c\x00\xbb\x00\x5d\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x04\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x62\x00\x5e\x00\x60\x00\x66\x00\x65\x00\x67\x00\x68\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x6c\x00\x6d\x00\x6e\x00\x72\x00\xbb\x00\x76\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x05\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x79\x00\x74\x00\x77\x00\x7a\x00\x7d\x00\x7e\x00\x7f\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x80\x00\x81\x00\xff\xff\xff\xff\xbb\x00\xff\xff\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x06\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xff\xff\xea\x00\x03\x01\x05\x01\xbb\x00\x08\x01\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x07\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xa8\x00\xa8\x00\xa8\x00\xcf\x00\xcb\x00\xa7\x00\xd4\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x0b\x01\x09\x01\xcf\x00\xcb\x00\xbb\x00\xd4\x00\x08\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xfe\x00\xcb\x00\xd0\x00\xd0\x00\xda\x00\xfc\x00\xd5\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xcb\x00\xd0\x00\xd0\x00\xda\x00\xbb\x00\xd5\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x09\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xf3\x00\xff\x00\xd5\x00\xff\xff\xff\xff\x0a\x01\x0c\x01\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x4d\x00\xd5\x00\x53\x00\x5a\x00\xbb\x00\x63\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x02\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x49\x00\x54\x00\x35\x00\x27\x00\x41\x00\x21\x00\x64\x00\x6a\x00\x0c\x00\x70\x00\x7b\x00\x17\x00\xff\xff\x78\x00\xff\xff\x7c\x00\x5b\x00\x3b\x00\x3a\x00\x75\x00\x12\x00\x61\x00\xff\xff\xff\xff\x00\x00\x52\x00\x42\x00\x59\x00\x5f\x00\x91\x00\x69\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x83\x00\xff\xff\x84\x00\x95\x00\x8c\x00\x8b\x00\x8c\x00\x8c\x00\x8c\x00\xff\xff\x83\x00\x84\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\xff\xff\x8b\x00\xff\xff\x87\x00\xf7\x00\x8c\x00\x8b\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x6f\x00\x88\x00\x73\x00\x82\x00\xf8\x00\x96\x00\x07\x01\x8b\x00\x00\x01\xf5\x00\x00\x00\x01\x01\x00\x00\x97\x00\x00\x00\x96\x00\x00\x00\x8c\x00\x00\x00\x00\x00\x02\x01\xe8\x00\x00\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x8f\x00\x90\x00\x8f\x00\x90\x00\x90\x00\x90\x00\x90\x00\x8f\x00\x90\x00\x90\x00\x90\x00\xa3\x00\xa2\x00\xa3\x00\xa3\x00\xa3\x00\x00\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x94\x00\xfb\x00\x00\x00\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x00\x00\xff\xff\x00\x00\x00\x00\xa3\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x97\x00\x9e\x00\x9e\x00\x9e\x00\x9e\x00\x9e\x00\x9f\x00\x9e\x00\x9f\x00\x9f\x00\x9f\x00\xa9\x00\xfa\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x9e\x00\x9e\x00\x9e\x00\x9e\x00\x9e\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x9f\x00\x04\x01\x9b\x00\x00\x00\x00\x00\x00\x00\x06\x01\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x00\x00\x9f\x00\x9e\x00\x9f\x00\x9f\x00\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\x9f\x00\x00\x00\x00\x00\xa2\x00\xa2\x00\xa2\x00\xa2\x00\xa2\x00\x00\x00\x00\x00\x00\x00\xac\x00\xac\x00\xac\x00\xac\x00\xac\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa2\x00\x00\x00\x00\x00\xa3\x00\xa2\x00\xa3\x00\xa3\x00\xa3\x00\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa0\x00\xa3\x00\xeb\x00\x00\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\x00\x00\x00\x00\x00\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xa1\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xb0\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xb1\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xb2\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xb3\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xb4\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xb5\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xb6\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xb7\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xb8\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\xbe\x00\x00\x00\xc7\x00\xbc\x00\x00\x00\xce\x00\xd3\x00\x00\x00\xd9\x00\xbc\x00\x00\x00\x00\x00\xc7\x00\xbc\x00\xcb\x00\xd0\x00\x00\x00\xd5\x00\x00\x00\xbc\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x00\xbc\x00\x00\x00\xce\x00\xd3\x00\x00\x00\xd9\x00\xbc\x00\xbc\x00\x00\x00\xc7\x00\xbc\x00\xcb\x00\xd0\x00\xbc\x00\xd5\x00\x00\x00\xbc\x00\x00\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\x00\x00\xbc\x00\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbc\x00\xbd\x00\x00\x00\xc2\x00\xc2\x00\xc2\x00\xc2\x00\xc2\x00\xc2\x00\xc2\x00\xc2\x00\xc2\x00\xc2\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\x00\x00\xc9\x00\x00\x00\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x00\xbc\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\x00\x00\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x00\xcc\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x00\xcc\x00\xc6\x00\xc6\x00\xc6\x00\xc6\x00\xc6\x00\xc6\x00\xc6\x00\xc6\x00\xc2\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x00\x00\x00\x00\x00\xdb\x00\xbd\x00\x00\x00\xc6\x00\xc6\x00\xc6\x00\xc6\x00\xc6\x00\xc6\x00\xc6\x00\xc6\x00\xc2\x00\xc2\x00\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\x00\x00\x00\x00\x00\x00\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x00\x00\x00\xd2\x00\xdb\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\xc8\x00\x00\x00\xd1\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x00\x00\xca\x00\x00\x00\xd1\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# - -alex_check :: AlexAddr -alex_check = AlexA# "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x64\x00\x3a\x00\x74\x00\x3a\x00\x69\x00\x6e\x00\x74\x00\x6c\x00\x3a\x00\x64\x00\x6e\x00\x6e\x00\x74\x00\x3a\x00\x69\x00\x69\x00\x74\x00\x6e\x00\x20\x00\x21\x00\x22\x00\x23\x00\x74\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x3a\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x6f\x00\x5d\x00\x5e\x00\x5f\x00\x61\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x6c\x00\x74\x00\x3a\x00\x65\x00\x75\x00\x62\x00\x6c\x00\x65\x00\x3a\x00\x75\x00\x6f\x00\x75\x00\x62\x00\x6f\x00\x65\x00\x3a\x00\x6c\x00\x61\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x68\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x72\x00\x5d\x00\x5e\x00\x5f\x00\x3a\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x6d\x00\x69\x00\x6e\x00\x67\x00\x3a\x00\x72\x00\x70\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x3a\x00\x6e\x00\x63\x00\x3a\x00\x5f\x00\x67\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x72\x00\x3a\x00\x73\x00\x63\x00\x6c\x00\x3a\x00\x65\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x63\x00\x6c\x00\x3a\x00\x75\x00\x5f\x00\x6d\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x63\x00\x3a\x00\x3a\x00\x63\x00\x65\x00\x6c\x00\x3a\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x65\x00\x6d\x00\x3a\x00\x3a\x00\x5f\x00\x79\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x65\x00\x3a\x00\x3a\x00\x63\x00\x61\x00\x72\x00\x61\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x6d\x00\x3a\x00\x0a\x00\x0a\x00\x5f\x00\x0a\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x0a\x00\x2e\x00\x3d\x00\x3d\x00\x5f\x00\x3d\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2a\x00\x2a\x00\x2a\x00\x4c\x00\x4c\x00\x2f\x00\x4c\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x3c\x00\x3d\x00\x6c\x00\x6c\x00\x5f\x00\x6c\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3d\x00\x55\x00\x55\x00\x4c\x00\x4c\x00\x3d\x00\x55\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x75\x00\x75\x00\x6c\x00\x6c\x00\x5f\x00\x75\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3c\x00\x3d\x00\x4c\x00\x0a\x00\x0a\x00\x3d\x00\x3e\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x3a\x00\x6c\x00\x3a\x00\x3a\x00\x5f\x00\x3a\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\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x61\x00\x64\x00\x63\x00\x64\x00\x65\x00\x66\x00\x64\x00\x3a\x00\x69\x00\x3a\x00\x3a\x00\x6c\x00\x0a\x00\x70\x00\x0a\x00\x70\x00\x6e\x00\x74\x00\x73\x00\x74\x00\x75\x00\x73\x00\x0a\x00\x0a\x00\xff\xff\x73\x00\x78\x00\x73\x00\x73\x00\x65\x00\x73\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x22\x00\x0a\x00\x22\x00\x6e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x22\x00\x22\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x20\x00\x0a\x00\x22\x00\x2b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x73\x00\x22\x00\x73\x00\x73\x00\x2d\x00\x22\x00\x3d\x00\x20\x00\x3d\x00\x3e\x00\xff\xff\x3d\x00\xff\xff\x22\x00\xff\xff\x22\x00\xff\xff\x20\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x69\x00\x7c\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x20\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x22\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x2a\x00\x26\x00\xff\xff\xff\xff\xff\xff\x2f\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\xff\xff\x20\x00\x3d\x00\x22\x00\xff\xff\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6c\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x20\x00\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x20\x00\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x20\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x45\x00\x46\x00\xff\xff\x4c\x00\x4c\x00\xff\xff\x4c\x00\x4c\x00\xff\xff\xff\xff\x45\x00\x46\x00\x55\x00\x55\x00\xff\xff\x55\x00\xff\xff\x4c\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\xff\xff\x6c\x00\x6c\x00\xff\xff\x6c\x00\x6c\x00\x46\x00\xff\xff\x65\x00\x66\x00\x75\x00\x75\x00\x4c\x00\x75\x00\xff\xff\x6c\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x66\x00\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\x6c\x00\x4c\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x45\x00\xff\xff\x66\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\x6c\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\x65\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\x55\x00\x30\x00\x31\x00\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\x65\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\x55\x00\x30\x00\x31\x00\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\x65\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\xff\xff\x58\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x65\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\x4c\x00\x78\x00\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\x55\x00\x30\x00\x31\x00\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\x65\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\x75\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x75\x00\x30\x00\x31\x00\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\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\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\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# - -alex_deflt :: AlexAddr -alex_deflt = AlexA# "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x85\x00\x86\x00\x85\x00\x86\x00\x89\x00\x8a\x00\x89\x00\x8a\x00\xff\xff\xab\x00\xff\xff\xab\x00\xff\xff\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\x98\x00\x99\x00\x98\x00\x99\x00\x9c\x00\x9d\x00\x9c\x00\x9d\x00\xff\xff\xab\x00\xff\xff\xab\x00\xff\xff\xab\x00\xa5\x00\xa5\x00\xff\xff\xff\xff\xaa\x00\xaa\x00\xaa\x00\xab\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# - -alex_accept = listArray (0::Int,268) [[],[],[(AlexAccPred (alex_action_0) ( allowAnti )),(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAccPred (alex_action_1) ( allowAnti ))],[(AlexAccPred (alex_action_31) ( allowAnti ))],[],[],[(AlexAccPred (alex_action_2) ( allowAnti ))],[],[],[(AlexAccPred (alex_action_3) ( allowAnti ))],[],[],[],[],[(AlexAccPred (alex_action_4) ( allowAnti ))],[],[],[],[],[(AlexAccPred (alex_action_5) ( allowAnti ))],[],[],[],[],[(AlexAccPred (alex_action_6) ( allowAnti ))],[],[],[],[],[],[(AlexAccPred (alex_action_7) ( allowAnti ))],[],[],[],[],[],[],[(AlexAccPred (alex_action_8) ( allowAnti ))],[],[],[],[],[],[],[(AlexAccPred (alex_action_9) ( allowAnti ))],[],[],[],[],[(AlexAccPred (alex_action_10) ( allowAnti ))],[],[],[],[],[],[],[(AlexAccPred (alex_action_11) ( allowAnti ))],[],[],[],[(AlexAccPred (alex_action_12) ( allowAnti ))],[],[],[],[(AlexAccPred (alex_action_13) ( allowAnti ))],[],[],[],[],[(AlexAccPred (alex_action_14) ( allowAnti ))],[],[],[],[(AlexAccPred (alex_action_15) ( allowAnti ))],[],[(AlexAccPred (alex_action_16) ( allowAnti ))],[],[],[],[],[(AlexAccPred (alex_action_17) ( allowAnti ))],[],[(AlexAccPred (alex_action_18) ( allowAnti ))],[],[],[],[(AlexAccPred (alex_action_19) ( allowAnti ))],[],[(AlexAccPred (alex_action_20) ( allowAnti ))],[],[],[(AlexAccPred (alex_action_21) ( allowAnti ))],[],[],[],[],[(AlexAccPred (alex_action_22) ( allowAnti ))],[],[(AlexAccPred (alex_action_23) ( allowAnti ))],[],[],[],[(AlexAccPred (alex_action_24) ( allowAnti ))],[],[(AlexAccPred (alex_action_25) ( allowAnti ))],[],[(AlexAccPred (alex_action_26) ( allowAnti ))],[],[(AlexAccPred (alex_action_27) ( allowAnti ))],[],[],[(AlexAccPred (alex_action_28) ( allowAnti ))],[],[],[],[(AlexAccPred (alex_action_29) ( allowAnti ))],[],[],[],[],[],[(AlexAccPred (alex_action_30) ( allowAnti ))],[],[(AlexAccPred (alex_action_32) (alexPrevCharIs '\n'))],[(AlexAccPred (alex_action_32) (alexPrevCharIs '\n')),(AlexAccSkipPred (alexPrevCharIs '\n'))],[(AlexAccPred (alex_action_32) (alexPrevCharIs '\n'))],[(AlexAccPred (alex_action_32) (alexPrevCharIs '\n')),(AlexAccSkipPred (alexPrevCharIs '\n'))],[],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[(AlexAccPred (alex_action_33) (alexPrevCharIs '\n'))],[(AlexAccPred (alex_action_33) (alexPrevCharIs '\n')),(AlexAccSkipPred (alexPrevCharIs '\n'))],[(AlexAccPred (alex_action_33) (alexPrevCharIs '\n'))],[(AlexAccPred (alex_action_33) (alexPrevCharIs '\n')),(AlexAccSkipPred (alexPrevCharIs '\n'))],[],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_62))],[(AlexAccSkip)],[],[],[],[(AlexAccSkipPred (alexPrevCharIs '\n'))],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_40))],[(AlexAcc (alex_action_40))],[(AlexAcc (alex_action_40))],[(AlexAcc (alex_action_40))],[(AlexAcc (alex_action_40))],[(AlexAcc (alex_action_56))],[],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_42))],[(AlexAcc (alex_action_42))],[],[],[],[],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_42))],[(AlexAcc (alex_action_42))],[(AlexAcc (alex_action_42))],[(AlexAcc (alex_action_42))],[(AlexAcc (alex_action_42))],[(AlexAcc (alex_action_43))],[(AlexAcc (alex_action_43))],[(AlexAcc (alex_action_43))],[(AlexAcc (alex_action_43))],[(AlexAcc (alex_action_43))],[(AlexAcc (alex_action_43))],[],[(AlexAcc (alex_action_44))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_46))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_49))],[(AlexAcc (alex_action_50))],[(AlexAcc (alex_action_51))],[(AlexAcc (alex_action_52))],[(AlexAcc (alex_action_53))],[(AlexAcc (alex_action_54))],[(AlexAcc (alex_action_55))],[(AlexAcc (alex_action_57))],[(AlexAcc (alex_action_60))],[(AlexAcc (alex_action_58))],[],[(AlexAcc (alex_action_59))],[(AlexAcc (alex_action_61))],[(AlexAcc (alex_action_63))],[(AlexAcc (alex_action_64))],[(AlexAcc (alex_action_65))],[(AlexAcc (alex_action_66))],[(AlexAcc (alex_action_67))],[(AlexAcc (alex_action_68))],[(AlexAcc (alex_action_77))],[(AlexAcc (alex_action_69))],[(AlexAcc (alex_action_78))],[(AlexAcc (alex_action_70))],[(AlexAcc (alex_action_71))],[(AlexAcc (alex_action_72))],[(AlexAcc (alex_action_73))],[(AlexAcc (alex_action_74))],[(AlexAcc (alex_action_75))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_76))],[(AlexAcc (alex_action_79))],[(AlexAcc (alex_action_80))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_84))],[(AlexAcc (alex_action_85))],[(AlexAcc (alex_action_86))],[(AlexAcc (alex_action_87))],[(AlexAcc (alex_action_88))],[(AlexAcc (alex_action_89))],[(AlexAcc (alex_action_90))],[(AlexAcc (alex_action_91))],[(AlexAccPred (alex_action_92) ( ifExtension cudaExts ))],[(AlexAccPred (alex_action_93) ( ifExtension cudaExts ))]] -{-# LINE 218 "Language\C\Parser\Lexer.x" #-} - -charEscapes :: [(Char, Char)] -charEscapes = [('n', '\n'), - ('t', '\t'), - ('v', '\v'), - ('b', '\b'), - ('r', '\r'), - ('f', '\f'), - ('a', '\a'), - ('\\', '\\'), - ('?', '?'), - ('\'', '\''), - ('\"', '\"') - ] - -type Action = Pos -> B.ByteString -> Int -> P (L Token) - -setLineFromPragma :: Action -setLineFromPragma pos buf len = do - setPos pos' - lexToken - where - (_ : l : ws) = (words . B.unpack . B.take len) buf - line = read l - 1 - filename = (takeWhile (/= '\"') . drop 1 . concat . intersperse " ") ws - - pos' :: Pos - pos' = Pos (intern filename) line 1 (posCoff pos) - -locateTok :: Pos -> Token -> P (L Token) -locateTok end tok = do - start <- getLastPos - setLastPos end - return $ L (Loc start end) tok - -token :: Token -> Action -token tok pos buf len = - locateTok pos tok - -identifier :: Action -identifier pos buf len = - case Map.lookup kw keywordMap of - Nothing -> nonKeyword - Just (tok, Nothing) -> keyword tok - Just (tok, Just i) -> do isKw <- useExts i - if isKw then keyword tok else nonKeyword - where - kw = (B.unpack . B.take len) buf - - keyword tok = locateTok pos tok - - nonKeyword = do - test <- isTypedef kw - if test - then locateTok pos (Tnamed kw) - else locateTok pos (Tidentifier kw) - -lexAnti ::(String -> Token) -> Action -lexAnti antiTok pos buf len = do - c <- alexGetCharOrFail - s <- case c of - '(' -> lexExpression 0 "" - _ | isIdStartChar c -> lexIdChars [c] - | otherwise -> illegalCharacterLiteral pos - end <- getPos - locateTok end (antiTok s) - where - lexIdChars :: String -> P String - lexIdChars s = do - inp <- getInput - maybe_c <- alexMaybeGetChar - case maybe_c of - Nothing -> return (reverse s) - Just c | isIdChar c -> lexIdChars (c : s) - | otherwise -> setInput inp >> return (reverse s) - - lexExpression :: Int -> String -> P String - lexExpression depth s = do - inp <- getInput - maybe_c <- alexMaybeGetChar - case maybe_c of - Nothing -> return (reverse s) - Just '(' -> lexExpression (depth+1) ('(' : s) - Just ')' | depth == 0 -> return (reverse s) - | otherwise -> lexExpression (depth-1) (')' : s) - Just c -> lexExpression depth (c : s) - - isIdStartChar :: Char -> Bool - isIdStartChar '_' = True - isIdStartChar c = isLower c - - isIdChar :: Char -> Bool - isIdChar '_' = True - isIdChar '\'' = True - isIdChar c = isAlphaNum c - -lexCharTok :: Action -lexCharTok pos buf len = do - c <- alexGetCharOrFail - case c of - '\'' -> emptyCharacterLiteral pos - '\\' -> do c <- lexEscape - quote <- alexGetCharOrFail - when (quote /= '\'') $ - illegalCharacterLiteral pos - end <- getPos - raw <- liftM ('\'' :) (getBuffRange pos end) - locateTok end (TcharConst (raw, c)) - _ -> do quote <- alexGetCharOrFail - when (quote /= '\'') $ - illegalCharacterLiteral pos - end <- getPos - raw <- liftM ('\'' :) (getBuffRange pos end) - locateTok end (TcharConst (raw, c)) - -lexStringTok :: Action -lexStringTok pos buf len = do - s <- lexString "" - end <- getPos - raw <- liftM ('"' :) (getBuffRange pos end) - locateTok end (TstringConst (raw, s)) - where - lexString :: String -> P String - lexString s = do - c <- alexGetCharOrFail - case c of - '"' -> return (reverse s) - '\\' -> do c' <- lexEscape - lexString (c' : s) - _ -> lexString (c : s) - -lexEscape :: P Char -lexEscape = do - inp <- getInput - c <- alexGetCharOrFail - case c of - 'x' -> do i <- checkedReadNum isHexDigit 16 hexDigit - return $ chr i - n | isDigit n -> - do setInput inp - i <- checkedReadNum isOctDigit 8 octDigit - return $ chr i - c -> case lookup c charEscapes of - Nothing -> return c - Just c' -> return c' - -type Radix = (Integer, Char -> Int) - -decDigit :: Char -> Int -decDigit c | c >= '0' && c <= '9' = ord c - ord '0' - | otherwise = error "error in decimal constant" - -octDigit :: Char -> Int -octDigit c | c >= '0' && c <= '7' = ord c - ord '0' - | otherwise = error "error in octal constant" - -hexDigit :: Char -> Int -hexDigit c | c >= 'a' && c <= 'f' = ord c - ord 'a' - | c >= 'A' && c <= 'F' = ord c - ord 'A' - | c >= '0' && c <= '9' = ord c - ord '0' - | otherwise = error "error in hexadecimal constant" - -decimal :: Radix -decimal = (10, decDigit) - -octal :: Radix -octal = (8, octDigit) - -hexadecimal :: Radix -hexadecimal = (16, hexDigit) - -readInteger :: Radix -> ReadS Integer -readInteger (radix, charToInt) = - go 0 - where - go :: Integer -> ReadS Integer - go x [] = return (x, "") - go x (c : cs) | isDigit c = go (x * radix + toInteger (charToInt c)) cs - | otherwise = return (x, c : cs) - -readRational :: ReadS Rational -readRational s = do - (n, d, t) <- readFix s - (x, u) <- readExponent t - return ((n % 1) * 10^^(x - toInteger d), t) - where - readFix :: String -> [(Integer, Int, String)] - readFix s = - return (read (i ++ f), length f, u) - where - (i, t) = span isDigit s - (f, u) = case t of - '.' : u -> span isDigit u - _ -> ("", t) - - readExponent :: ReadS Integer - readExponent "" = return (0, "") - readExponent (e : s) | e `elem` "eE" = go s - | otherwise = return (0, s) - where - go :: ReadS Integer - go ('+' : s) = readDecimal s - go ('-' : s) = do (x, t) <- readDecimal s - return (-x, t) - go s = readDecimal s - - readDecimal :: ReadS Integer - readDecimal = readInteger decimal - -lexInteger :: Int - -> Radix - -> Action -lexInteger ndrop radix pos buf len = - case i of - [n] -> locateTok pos (toToken n) - _ -> fail "bad parse for integer" - where - num :: String - num = (takeWhile isDigit . drop ndrop) s - - suffix :: String - suffix = (map toLower . takeWhile (not . isDigit) . reverse) s - - s :: String - s = (B.unpack . B.take len) buf - - i :: [Integer] - i = do (n, _) <- readInteger radix s - return n - - toToken :: Integer -> Token - toToken n = - case numElls of - 0 -> TintConst (s, isUnsigned, n) - 1 -> TlongIntConst (s, isUnsigned, n) - 2 -> TlongLongIntConst (s, isUnsigned, n) - where - numElls :: Int - numElls = (length . filter (== 'l')) suffix - - isUnsigned :: C.Signed - isUnsigned = if 'u' `elem` suffix then C.Unsigned else C.Signed - -lexFloat :: Action -lexFloat pos buf len = - case i of - [n] -> locateTok pos (toToken n) - _ -> fail "bad parse for integer" - where - s :: String - s = (B.unpack . B.take len) buf - - prefix :: String - prefix = takeWhile (not . isSuffix) s - - suffix :: String - suffix = (map toLower . takeWhile isSuffix . reverse) s - - isSuffix :: Char -> Bool - isSuffix = (`elem` ['l', 'L', 'f', 'F']) - - i :: [Rational] - i = do (n, _) <- readRational s - return n - - toToken :: Rational -> Token - toToken n = - case suffix of - "" -> TdoubleConst (s, n) - "f" -> TfloatConst (s, n) - "l" -> TlongDoubleConst (s, n) - -checkedReadNum :: (Char -> Bool) -> Int -> (Char -> Int) -> P Int -checkedReadNum isDigit base conv = do - c <- alexGetCharOrFail - when (not $ isDigit c) $ - getPos >>= illegalNumericalLiteral - readNum isDigit base conv - where - readNum :: (Char -> Bool) -> Int -> (Char -> Int) -> P Int - readNum isDigit base conv = read 0 - where - read :: Int -> P Int - read i = do - inp <- getInput - c <- alexGetCharOrFail - if isDigit c - then read (i*base + conv c) - else setInput inp >> return i - -lexToken :: P (L Token) -lexToken = do - inp@(AlexInput pos buf off) <- getInput - sc <- getLexState - st <- get - case alexScanUser st inp sc of - AlexEOF -> return $ L (Loc pos pos) Teof - AlexError (AlexInput pos2 _ _) -> - lexerError pos2 ((text . B.unpack . B.take (min 80 (B.length rest))) rest) - where - rest = B.drop off buf - AlexSkip inp2 _ -> do - setInput inp2 - pos <- getPos - setLastPos pos - lexToken - AlexToken inp2@(AlexInput end _ _) len t -> do - setInput inp2 - t end (B.drop off buf) len - -emptyCharacterLiteral :: Pos -> P a -emptyCharacterLiteral pos = - throw $ ParserException (getLoc pos) (text "empty character literal") - -illegalCharacterLiteral :: Pos -> P a -illegalCharacterLiteral pos = - throw $ ParserException (getLoc pos) (text "illegal character literal") - -illegalNumericalLiteral :: Pos -> P a -illegalNumericalLiteral pos = - throw $ ParserException (getLoc pos) (text "illegal numerical literal") - -lexerError :: Pos -> Doc -> P a -lexerError pos s = - throw $ ParserException (getLoc pos) (text "lexer error on" <+> squotes s) - - -qq :: Int -qq = 1 -alex_action_0 = token Ttypename -alex_action_1 = lexAnti Tanti_id -alex_action_2 = lexAnti Tanti_int -alex_action_3 = lexAnti Tanti_uint -alex_action_4 = lexAnti Tanti_lint -alex_action_5 = lexAnti Tanti_ulint -alex_action_6 = lexAnti Tanti_float -alex_action_7 = lexAnti Tanti_double -alex_action_8 = lexAnti Tanti_long_double -alex_action_9 = lexAnti Tanti_char -alex_action_10 = lexAnti Tanti_string -alex_action_11 = lexAnti Tanti_exp -alex_action_12 = lexAnti Tanti_func -alex_action_13 = lexAnti Tanti_args -alex_action_14 = lexAnti Tanti_decl -alex_action_15 = lexAnti Tanti_decls -alex_action_16 = lexAnti Tanti_sdecl -alex_action_17 = lexAnti Tanti_sdecls -alex_action_18 = lexAnti Tanti_enum -alex_action_19 = lexAnti Tanti_enums -alex_action_20 = lexAnti Tanti_esc -alex_action_21 = lexAnti Tanti_edecl -alex_action_22 = lexAnti Tanti_edecls -alex_action_23 = lexAnti Tanti_item -alex_action_24 = lexAnti Tanti_items -alex_action_25 = lexAnti Tanti_stm -alex_action_26 = lexAnti Tanti_stms -alex_action_27 = lexAnti Tanti_type -alex_action_28 = lexAnti Tanti_spec -alex_action_29 = lexAnti Tanti_param -alex_action_30 = lexAnti Tanti_params -alex_action_31 = lexAnti Tanti_exp -alex_action_32 = setLineFromPragma -alex_action_33 = setLineFromPragma -alex_action_39 = identifier -alex_action_40 = lexFloat -alex_action_41 = lexInteger 0 decimal -alex_action_42 = lexInteger 1 octal -alex_action_43 = lexInteger 2 hexadecimal -alex_action_44 = lexCharTok -alex_action_45 = lexStringTok -alex_action_46 = token Tlparen -alex_action_47 = token Trparen -alex_action_48 = token Tlbrack -alex_action_49 = token Trbrack -alex_action_50 = token Tlbrace -alex_action_51 = token Trbrace -alex_action_52 = token Tcomma -alex_action_53 = token Tsemi -alex_action_54 = token Tcolon -alex_action_55 = token Tquestion -alex_action_56 = token Tdot -alex_action_57 = token Tarrow -alex_action_58 = token Tellipses -alex_action_59 = token Tplus -alex_action_60 = token Tminus -alex_action_61 = token Tstar -alex_action_62 = token Tdiv -alex_action_63 = token Tmod -alex_action_64 = token Tnot -alex_action_65 = token Tand -alex_action_66 = token Tor -alex_action_67 = token Txor -alex_action_68 = token Tlsh -alex_action_69 = token Trsh -alex_action_70 = token Tinc -alex_action_71 = token Tdec -alex_action_72 = token Tlnot -alex_action_73 = token Tland -alex_action_74 = token Tlor -alex_action_75 = token Teq -alex_action_76 = token Tne -alex_action_77 = token Tlt -alex_action_78 = token Tgt -alex_action_79 = token Tle -alex_action_80 = token Tge -alex_action_81 = token Tassign -alex_action_82 = token Tadd_assign -alex_action_83 = token Tsub_assign -alex_action_84 = token Tmul_assign -alex_action_85 = token Tdiv_assign -alex_action_86 = token Tmod_assign -alex_action_87 = token Tand_assign -alex_action_88 = token Tor_assign -alex_action_89 = token Txor_assign -alex_action_90 = token Tlsh_assign -alex_action_91 = token Trsh_assign -alex_action_92 = token T3lt -alex_action_93 = token T3gt -{-# LINE 1 "templates\GenericTemplate.hs" #-} -{-# LINE 1 "templates\\GenericTemplate.hs" #-} -{-# LINE 1 "<built-in>" #-} -{-# LINE 1 "<command-line>" #-} -{-# LINE 1 "templates\\GenericTemplate.hs" #-} --- ----------------------------------------------------------------------------- --- ALEX TEMPLATE --- --- This code is in the PUBLIC DOMAIN; you may copy it freely and use --- it for any purpose whatsoever. - --- ----------------------------------------------------------------------------- --- INTERNALS and main scanner engine - -{-# LINE 37 "templates\\GenericTemplate.hs" #-} - -{-# LINE 47 "templates\\GenericTemplate.hs" #-} - - -data AlexAddr = AlexA# Addr# - -#if __GLASGOW_HASKELL__ < 503 -uncheckedShiftL# = shiftL# -#endif - -{-# INLINE alexIndexInt16OffAddr #-} -alexIndexInt16OffAddr (AlexA# arr) off = -#ifdef WORDS_BIGENDIAN - narrow16Int# i - where - i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low) - high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#))) - low = int2Word# (ord# (indexCharOffAddr# arr off')) - off' = off *# 2# -#else - indexInt16OffAddr# arr off -#endif - - - - - -{-# INLINE alexIndexInt32OffAddr #-} -alexIndexInt32OffAddr (AlexA# arr) off = -#ifdef WORDS_BIGENDIAN - narrow32Int# i - where - i = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#` - (b2 `uncheckedShiftL#` 16#) `or#` - (b1 `uncheckedShiftL#` 8#) `or#` b0) - b3 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#))) - b2 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#))) - b1 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#))) - b0 = int2Word# (ord# (indexCharOffAddr# arr off')) - off' = off *# 4# -#else - indexInt32OffAddr# arr off -#endif - - - - - -#if __GLASGOW_HASKELL__ < 503 -quickIndex arr i = arr ! i -#else --- GHC >= 503, unsafeAt is available from Data.Array.Base. -quickIndex = unsafeAt -#endif - - - - --- ----------------------------------------------------------------------------- --- Main lexing routines - -data AlexReturn a - = AlexEOF - | AlexError !AlexInput - | AlexSkip !AlexInput !Int - | AlexToken !AlexInput !Int a - --- alexScan :: AlexInput -> StartCode -> AlexReturn a -alexScan input (I# (sc)) - = alexScanUser undefined input (I# (sc)) - -alexScanUser user input (I# (sc)) - = case alex_scan_tkn user input 0# input sc AlexNone of - (AlexNone, input') -> - case alexGetChar input of - Nothing -> - - - - AlexEOF - Just _ -> - - - - AlexError input' - - (AlexLastSkip input'' len, _) -> - - - - AlexSkip input'' len - - (AlexLastAcc k input''' len, _) -> - - - - AlexToken input''' len k - - --- Push the input through the DFA, remembering the most recent accepting --- state it encountered. - -alex_scan_tkn user orig_input len input s last_acc = - input `seq` -- strict in the input - let - new_acc = check_accs (alex_accept `quickIndex` (I# (s))) - in - new_acc `seq` - case alexGetChar input of - Nothing -> (new_acc, input) - Just (c, new_input) -> - - - - let - (base) = alexIndexInt32OffAddr alex_base s - ((I# (ord_c))) = ord c - (offset) = (base +# ord_c) - (check) = alexIndexInt16OffAddr alex_check offset - - (new_s) = if (offset >=# 0#) && (check ==# ord_c) - then alexIndexInt16OffAddr alex_table offset - else alexIndexInt16OffAddr alex_deflt s - in - case new_s of - -1# -> (new_acc, input) - -- on an error, we want to keep the input *before* the - -- character that failed, not after. - _ -> alex_scan_tkn user orig_input (len +# 1#) - new_input new_s new_acc - - where - check_accs [] = last_acc - check_accs (AlexAcc a : _) = AlexLastAcc a input (I# (len)) - check_accs (AlexAccSkip : _) = AlexLastSkip input (I# (len)) - check_accs (AlexAccPred a predx : rest) - | predx user orig_input (I# (len)) input - = AlexLastAcc a input (I# (len)) - check_accs (AlexAccSkipPred predx : rest) - | predx user orig_input (I# (len)) input - = AlexLastSkip input (I# (len)) - check_accs (_ : rest) = check_accs rest - -data AlexLastAcc a - = AlexNone - | AlexLastAcc a !AlexInput !Int - | AlexLastSkip !AlexInput !Int - -data AlexAcc a user - = AlexAcc a - | AlexAccSkip - | AlexAccPred a (AlexAccPred user) - | AlexAccSkipPred (AlexAccPred user) - -type AlexAccPred user = user -> AlexInput -> Int -> AlexInput -> Bool - --- ----------------------------------------------------------------------------- --- Predicates on a rule - -alexAndPred p1 p2 user in1 len in2 - = p1 user in1 len in2 && p2 user in1 len in2 - ---alexPrevCharIsPred :: Char -> AlexAccPred _ -alexPrevCharIs c _ input _ _ = c == alexInputPrevChar input - ---alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _ -alexPrevCharIsOneOf arr _ input _ _ = arr ! alexInputPrevChar input - ---alexRightContext :: Int -> AlexAccPred _ -alexRightContext (I# (sc)) user _ _ input = - case alex_scan_tkn user input 0# input sc AlexNone of - (AlexNone, _) -> False - _ -> True - -- TODO: there's no need to find the longest - -- match when checking the right context, just - -- the first match will do. - --- used by wrappers -iUnbox (I# (i)) = i
− dist/build/Language/C/Parser/Parser.hs
@@ -1,6361 +0,0 @@-{-# OPTIONS_GHC -w #-} -{-# OPTIONS -fglasgow-exts -cpp #-} -{-# OPTIONS -w #-} - --- Copyright (c) 2006-2011 --- The President and Fellows of Harvard College. --- --- Redistribution and use in source and binary forms, with or without --- modification, are permitted provided that the following conditions --- are met: --- 1. Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- 2. Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in the --- documentation and/or other materials provided with the distribution. --- 3. Neither the name of the University nor the names of its contributors --- may be used to endorse or promote products derived from this software --- without specific prior written permission. - --- THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND CONTRIBUTORS ``AS IS'' AND --- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE --- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE --- ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE --- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL --- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS --- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) --- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT --- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY --- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --- SUCH DAMAGE. - --------------------------------------------------------------------------------- --- | --- Module : Language.C.Parser.Parser --- Copyright : (c) Harvard University 2006-2011 --- License : BSD-style --- Maintainer : mainland@eecs.harvard.edu --- --------------------------------------------------------------------------------- - -module Language.C.Parser.Parser where - -import Control.Monad (forM_, - when) -import Control.Monad.Exception -import Data.List (intersperse) -import Data.Loc -import Data.Maybe (catMaybes) -import Text.PrettyPrint.Mainland - -import Language.C.Parser.Lexer -import Language.C.Parser.Monad -import qualified Language.C.Parser.Tokens as T -import Language.C.Pretty -import Language.C.Syntax -import qualified Language.C.Syntax as C -import qualified Data.Array as Happy_Data_Array -import qualified GHC.Exts as Happy_GHC_Exts - --- parser produced by Happy Version 1.18.6 - -newtype HappyAbsSyn = HappyAbsSyn HappyAny -#if __GLASGOW_HASKELL__ >= 607 -type HappyAny = Happy_GHC_Exts.Any -#else -type HappyAny = forall a . a -#endif -happyIn14 :: (Id) -> (HappyAbsSyn ) -happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn14 #-} -happyOut14 :: (HappyAbsSyn ) -> (Id) -happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut14 #-} -happyIn15 :: (Id) -> (HappyAbsSyn ) -happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn15 #-} -happyOut15 :: (HappyAbsSyn ) -> (Id) -happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut15 #-} -happyIn16 :: (Const) -> (HappyAbsSyn ) -happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn16 #-} -happyOut16 :: (HappyAbsSyn ) -> (Const) -happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut16 #-} -happyIn17 :: (Exp) -> (HappyAbsSyn ) -happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn17 #-} -happyOut17 :: (HappyAbsSyn ) -> (Exp) -happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut17 #-} -happyIn18 :: (RevList (L (String, String))) -> (HappyAbsSyn ) -happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn18 #-} -happyOut18 :: (HappyAbsSyn ) -> (RevList (L (String, String))) -happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut18 #-} -happyIn19 :: (Exp) -> (HappyAbsSyn ) -happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn19 #-} -happyOut19 :: (HappyAbsSyn ) -> (Exp) -happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut19 #-} -happyIn20 :: (ExeConfig) -> (HappyAbsSyn ) -happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn20 #-} -happyOut20 :: (HappyAbsSyn ) -> (ExeConfig) -happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut20 #-} -happyIn21 :: (RevList Exp) -> (HappyAbsSyn ) -happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn21 #-} -happyOut21 :: (HappyAbsSyn ) -> (RevList Exp) -happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut21 #-} -happyIn22 :: (Exp) -> (HappyAbsSyn ) -happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn22 #-} -happyOut22 :: (HappyAbsSyn ) -> (Exp) -happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut22 #-} -happyIn23 :: (Exp) -> (HappyAbsSyn ) -happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn23 #-} -happyOut23 :: (HappyAbsSyn ) -> (Exp) -happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut23 #-} -happyIn24 :: (Exp) -> (HappyAbsSyn ) -happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn24 #-} -happyOut24 :: (HappyAbsSyn ) -> (Exp) -happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut24 #-} -happyIn25 :: (Exp) -> (HappyAbsSyn ) -happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn25 #-} -happyOut25 :: (HappyAbsSyn ) -> (Exp) -happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut25 #-} -happyIn26 :: (Exp) -> (HappyAbsSyn ) -happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn26 #-} -happyOut26 :: (HappyAbsSyn ) -> (Exp) -happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut26 #-} -happyIn27 :: (Exp) -> (HappyAbsSyn ) -happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn27 #-} -happyOut27 :: (HappyAbsSyn ) -> (Exp) -happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut27 #-} -happyIn28 :: (Exp) -> (HappyAbsSyn ) -happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn28 #-} -happyOut28 :: (HappyAbsSyn ) -> (Exp) -happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut28 #-} -happyIn29 :: (Exp) -> (HappyAbsSyn ) -happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn29 #-} -happyOut29 :: (HappyAbsSyn ) -> (Exp) -happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut29 #-} -happyIn30 :: (Exp) -> (HappyAbsSyn ) -happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn30 #-} -happyOut30 :: (HappyAbsSyn ) -> (Exp) -happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut30 #-} -happyIn31 :: (Exp) -> (HappyAbsSyn ) -happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn31 #-} -happyOut31 :: (HappyAbsSyn ) -> (Exp) -happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut31 #-} -happyIn32 :: (Exp) -> (HappyAbsSyn ) -happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn32 #-} -happyOut32 :: (HappyAbsSyn ) -> (Exp) -happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut32 #-} -happyIn33 :: (Exp) -> (HappyAbsSyn ) -happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn33 #-} -happyOut33 :: (HappyAbsSyn ) -> (Exp) -happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut33 #-} -happyIn34 :: (Exp) -> (HappyAbsSyn ) -happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn34 #-} -happyOut34 :: (HappyAbsSyn ) -> (Exp) -happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut34 #-} -happyIn35 :: (Exp) -> (HappyAbsSyn ) -happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn35 #-} -happyOut35 :: (HappyAbsSyn ) -> (Exp) -happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut35 #-} -happyIn36 :: (Exp) -> (HappyAbsSyn ) -happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn36 #-} -happyOut36 :: (HappyAbsSyn ) -> (Exp) -happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut36 #-} -happyIn37 :: (Maybe Exp) -> (HappyAbsSyn ) -happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn37 #-} -happyOut37 :: (HappyAbsSyn ) -> (Maybe Exp) -happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut37 #-} -happyIn38 :: (Exp) -> (HappyAbsSyn ) -happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn38 #-} -happyOut38 :: (HappyAbsSyn ) -> (Exp) -happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut38 #-} -happyIn39 :: (InitGroup) -> (HappyAbsSyn ) -happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn39 #-} -happyOut39 :: (HappyAbsSyn ) -> (InitGroup) -happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut39 #-} -happyIn40 :: (InitGroup) -> (HappyAbsSyn ) -happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn40 #-} -happyOut40 :: (HappyAbsSyn ) -> (InitGroup) -happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut40 #-} -happyIn41 :: ((DeclSpec, Decl)) -> (HappyAbsSyn ) -happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn41 #-} -happyOut41 :: (HappyAbsSyn ) -> ((DeclSpec, Decl)) -happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut41 #-} -happyIn42 :: ((DeclSpec, Decl)) -> (HappyAbsSyn ) -happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn42 #-} -happyOut42 :: (HappyAbsSyn ) -> ((DeclSpec, Decl)) -happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut42 #-} -happyIn43 :: ((DeclSpec, Decl)) -> (HappyAbsSyn ) -happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn43 #-} -happyOut43 :: (HappyAbsSyn ) -> ((DeclSpec, Decl)) -happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut43 #-} -happyIn44 :: ([TySpec]) -> (HappyAbsSyn ) -happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn44 #-} -happyOut44 :: (HappyAbsSyn ) -> ([TySpec]) -happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut44 #-} -happyIn45 :: ([TySpec]) -> (HappyAbsSyn ) -happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn45 #-} -happyOut45 :: (HappyAbsSyn ) -> ([TySpec]) -happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut45 #-} -happyIn46 :: (RevList Init) -> (HappyAbsSyn ) -happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn46 #-} -happyOut46 :: (HappyAbsSyn ) -> (RevList Init) -happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut46 #-} -happyIn47 :: (Maybe AsmLabel) -> (HappyAbsSyn ) -happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn47 #-} -happyOut47 :: (HappyAbsSyn ) -> (Maybe AsmLabel) -happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut47 #-} -happyIn48 :: (Init) -> (HappyAbsSyn ) -happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn48 #-} -happyOut48 :: (HappyAbsSyn ) -> (Init) -happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut48 #-} -happyIn49 :: (TySpec) -> (HappyAbsSyn ) -happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn49 #-} -happyOut49 :: (HappyAbsSyn ) -> (TySpec) -happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut49 #-} -happyIn50 :: (TySpec) -> (HappyAbsSyn ) -happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn50 #-} -happyOut50 :: (HappyAbsSyn ) -> (TySpec) -happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut50 #-} -happyIn51 :: (TySpec) -> (HappyAbsSyn ) -happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn51 #-} -happyOut51 :: (HappyAbsSyn ) -> (TySpec) -happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut51 #-} -happyIn52 :: (L (Maybe Id -> Maybe [FieldGroup] -> [Attr] -> SrcLoc -> TySpec)) -> (HappyAbsSyn ) -happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn52 #-} -happyOut52 :: (HappyAbsSyn ) -> (L (Maybe Id -> Maybe [FieldGroup] -> [Attr] -> SrcLoc -> TySpec)) -happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut52 #-} -happyIn53 :: (RevList FieldGroup) -> (HappyAbsSyn ) -happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn53 #-} -happyOut53 :: (HappyAbsSyn ) -> (RevList FieldGroup) -happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut53 #-} -happyIn54 :: (FieldGroup) -> (HappyAbsSyn ) -happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn54 #-} -happyOut54 :: (HappyAbsSyn ) -> (FieldGroup) -happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut54 #-} -happyIn55 :: ([TySpec]) -> (HappyAbsSyn ) -happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn55 #-} -happyOut55 :: (HappyAbsSyn ) -> ([TySpec]) -happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut55 #-} -happyIn56 :: ([TySpec]) -> (HappyAbsSyn ) -happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn56 #-} -happyOut56 :: (HappyAbsSyn ) -> ([TySpec]) -happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut56 #-} -happyIn57 :: (RevList Field) -> (HappyAbsSyn ) -happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn57 #-} -happyOut57 :: (HappyAbsSyn ) -> (RevList Field) -happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut57 #-} -happyIn58 :: (Field) -> (HappyAbsSyn ) -happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn58 #-} -happyOut58 :: (HappyAbsSyn ) -> (Field) -happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut58 #-} -happyIn59 :: (TySpec) -> (HappyAbsSyn ) -happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn59 #-} -happyOut59 :: (HappyAbsSyn ) -> (TySpec) -happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut59 #-} -happyIn60 :: (RevList CEnum) -> (HappyAbsSyn ) -happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn60 #-} -happyOut60 :: (HappyAbsSyn ) -> (RevList CEnum) -happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut60 #-} -happyIn61 :: (CEnum) -> (HappyAbsSyn ) -happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn61 #-} -happyOut61 :: (HappyAbsSyn ) -> (CEnum) -happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut61 #-} -happyIn62 :: (TySpec) -> (HappyAbsSyn ) -happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn62 #-} -happyOut62 :: (HappyAbsSyn ) -> (TySpec) -happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut62 #-} -happyIn63 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn ) -happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn63 #-} -happyOut63 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl)) -happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut63 #-} -happyIn64 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn ) -happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn64 #-} -happyOut64 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl)) -happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut64 #-} -happyIn65 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn ) -happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn65 #-} -happyOut65 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl)) -happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut65 #-} -happyIn66 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn ) -happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn66 #-} -happyOut66 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl)) -happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut66 #-} -happyIn67 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn ) -happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn67 #-} -happyOut67 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl)) -happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut67 #-} -happyIn68 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn ) -happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn68 #-} -happyOut68 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl)) -happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut68 #-} -happyIn69 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn ) -happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn69 #-} -happyOut69 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl)) -happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut69 #-} -happyIn70 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn ) -happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn70 #-} -happyOut70 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl)) -happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut70 #-} -happyIn71 :: (Decl -> Decl) -> (HappyAbsSyn ) -happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn71 #-} -happyOut71 :: (HappyAbsSyn ) -> (Decl -> Decl) -happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut71 #-} -happyIn72 :: (Decl -> Decl) -> (HappyAbsSyn ) -happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn72 #-} -happyOut72 :: (HappyAbsSyn ) -> (Decl -> Decl) -happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut72 #-} -happyIn73 :: (RevList TySpec) -> (HappyAbsSyn ) -happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn73 #-} -happyOut73 :: (HappyAbsSyn ) -> (RevList TySpec) -happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut73 #-} -happyIn74 :: (Params) -> (HappyAbsSyn ) -happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn74 #-} -happyOut74 :: (HappyAbsSyn ) -> (Params) -happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut74 #-} -happyIn75 :: (RevList Param) -> (HappyAbsSyn ) -happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn75 #-} -happyOut75 :: (HappyAbsSyn ) -> (RevList Param) -happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut75 #-} -happyIn76 :: (Param) -> (HappyAbsSyn ) -happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn76 #-} -happyOut76 :: (HappyAbsSyn ) -> (Param) -happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut76 #-} -happyIn77 :: (Type) -> (HappyAbsSyn ) -happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn77 #-} -happyOut77 :: (HappyAbsSyn ) -> (Type) -happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut77 #-} -happyIn78 :: (RevList Id) -> (HappyAbsSyn ) -happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn78 #-} -happyOut78 :: (HappyAbsSyn ) -> (RevList Id) -happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut78 #-} -happyIn79 :: (Type) -> (HappyAbsSyn ) -happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn79 #-} -happyOut79 :: (HappyAbsSyn ) -> (Type) -happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut79 #-} -happyIn80 :: (Decl -> Decl) -> (HappyAbsSyn ) -happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn80 #-} -happyOut80 :: (HappyAbsSyn ) -> (Decl -> Decl) -happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut80 #-} -happyIn81 :: (Decl -> Decl) -> (HappyAbsSyn ) -happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn81 #-} -happyOut81 :: (HappyAbsSyn ) -> (Decl -> Decl) -happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut81 #-} -happyIn82 :: (TySpec) -> (HappyAbsSyn ) -happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn82 #-} -happyOut82 :: (HappyAbsSyn ) -> (TySpec) -happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut82 #-} -happyIn83 :: (Initializer) -> (HappyAbsSyn ) -happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn83 #-} -happyOut83 :: (HappyAbsSyn ) -> (Initializer) -happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut83 #-} -happyIn84 :: (RevList (Maybe Designation, Initializer)) -> (HappyAbsSyn ) -happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn84 #-} -happyOut84 :: (HappyAbsSyn ) -> (RevList (Maybe Designation, Initializer)) -happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut84 #-} -happyIn85 :: (Designation) -> (HappyAbsSyn ) -happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn85 #-} -happyOut85 :: (HappyAbsSyn ) -> (Designation) -happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut85 #-} -happyIn86 :: (RevList Designator) -> (HappyAbsSyn ) -happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn86 #-} -happyOut86 :: (HappyAbsSyn ) -> (RevList Designator) -happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut86 #-} -happyIn87 :: (Designator) -> (HappyAbsSyn ) -happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn87 #-} -happyOut87 :: (HappyAbsSyn ) -> (Designator) -happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut87 #-} -happyIn88 :: (Stm) -> (HappyAbsSyn ) -happyIn88 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn88 #-} -happyOut88 :: (HappyAbsSyn ) -> (Stm) -happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut88 #-} -happyIn89 :: (Stm) -> (HappyAbsSyn ) -happyIn89 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn89 #-} -happyOut89 :: (HappyAbsSyn ) -> (Stm) -happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut89 #-} -happyIn90 :: (Stm) -> (HappyAbsSyn ) -happyIn90 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn90 #-} -happyOut90 :: (HappyAbsSyn ) -> (Stm) -happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut90 #-} -happyIn91 :: (RevList BlockItem) -> (HappyAbsSyn ) -happyIn91 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn91 #-} -happyOut91 :: (HappyAbsSyn ) -> (RevList BlockItem) -happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut91 #-} -happyIn92 :: (BlockItem) -> (HappyAbsSyn ) -happyIn92 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn92 #-} -happyOut92 :: (HappyAbsSyn ) -> (BlockItem) -happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut92 #-} -happyIn93 :: (()) -> (HappyAbsSyn ) -happyIn93 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn93 #-} -happyOut93 :: (HappyAbsSyn ) -> (()) -happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut93 #-} -happyIn94 :: (()) -> (HappyAbsSyn ) -happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn94 #-} -happyOut94 :: (HappyAbsSyn ) -> (()) -happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut94 #-} -happyIn95 :: (RevList InitGroup) -> (HappyAbsSyn ) -happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn95 #-} -happyOut95 :: (HappyAbsSyn ) -> (RevList InitGroup) -happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut95 #-} -happyIn96 :: (Stm) -> (HappyAbsSyn ) -happyIn96 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn96 #-} -happyOut96 :: (HappyAbsSyn ) -> (Stm) -happyOut96 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut96 #-} -happyIn97 :: (Stm) -> (HappyAbsSyn ) -happyIn97 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn97 #-} -happyOut97 :: (HappyAbsSyn ) -> (Stm) -happyOut97 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut97 #-} -happyIn98 :: (Stm) -> (HappyAbsSyn ) -happyIn98 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn98 #-} -happyOut98 :: (HappyAbsSyn ) -> (Stm) -happyOut98 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut98 #-} -happyIn99 :: (Stm) -> (HappyAbsSyn ) -happyIn99 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn99 #-} -happyOut99 :: (HappyAbsSyn ) -> (Stm) -happyOut99 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut99 #-} -happyIn100 :: ([Definition]) -> (HappyAbsSyn ) -happyIn100 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn100 #-} -happyOut100 :: (HappyAbsSyn ) -> ([Definition]) -happyOut100 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut100 #-} -happyIn101 :: (RevList Definition) -> (HappyAbsSyn ) -happyIn101 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn101 #-} -happyOut101 :: (HappyAbsSyn ) -> (RevList Definition) -happyOut101 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut101 #-} -happyIn102 :: (Definition) -> (HappyAbsSyn ) -happyIn102 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn102 #-} -happyOut102 :: (HappyAbsSyn ) -> (Definition) -happyOut102 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut102 #-} -happyIn103 :: (Func) -> (HappyAbsSyn ) -happyIn103 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn103 #-} -happyOut103 :: (HappyAbsSyn ) -> (Func) -happyOut103 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut103 #-} -happyIn104 :: ([Attr]) -> (HappyAbsSyn ) -happyIn104 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn104 #-} -happyOut104 :: (HappyAbsSyn ) -> ([Attr]) -happyOut104 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut104 #-} -happyIn105 :: ([Attr]) -> (HappyAbsSyn ) -happyIn105 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn105 #-} -happyOut105 :: (HappyAbsSyn ) -> ([Attr]) -happyOut105 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut105 #-} -happyIn106 :: (RevList Attr) -> (HappyAbsSyn ) -happyIn106 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn106 #-} -happyOut106 :: (HappyAbsSyn ) -> (RevList Attr) -happyOut106 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut106 #-} -happyIn107 :: (Attr) -> (HappyAbsSyn ) -happyIn107 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn107 #-} -happyOut107 :: (HappyAbsSyn ) -> (Attr) -happyOut107 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut107 #-} -happyIn108 :: (Id) -> (HappyAbsSyn ) -happyIn108 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn108 #-} -happyOut108 :: (HappyAbsSyn ) -> (Id) -happyOut108 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut108 #-} -happyIn109 :: (Bool) -> (HappyAbsSyn ) -happyIn109 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn109 #-} -happyOut109 :: (HappyAbsSyn ) -> (Bool) -happyOut109 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut109 #-} -happyIn110 :: (Stm) -> (HappyAbsSyn ) -happyIn110 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn110 #-} -happyOut110 :: (HappyAbsSyn ) -> (Stm) -happyOut110 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut110 #-} -happyIn111 :: (RevList String) -> (HappyAbsSyn ) -happyIn111 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn111 #-} -happyOut111 :: (HappyAbsSyn ) -> (RevList String) -happyOut111 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut111 #-} -happyIn112 :: ([(String, Exp)]) -> (HappyAbsSyn ) -happyIn112 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn112 #-} -happyOut112 :: (HappyAbsSyn ) -> ([(String, Exp)]) -happyOut112 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut112 #-} -happyIn113 :: (RevList (String, Exp)) -> (HappyAbsSyn ) -happyIn113 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn113 #-} -happyOut113 :: (HappyAbsSyn ) -> (RevList (String, Exp)) -happyOut113 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut113 #-} -happyIn114 :: ((String, Exp)) -> (HappyAbsSyn ) -happyIn114 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn114 #-} -happyOut114 :: (HappyAbsSyn ) -> ((String, Exp)) -happyOut114 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut114 #-} -happyIn115 :: ([String]) -> (HappyAbsSyn ) -happyIn115 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn115 #-} -happyOut115 :: (HappyAbsSyn ) -> ([String]) -happyOut115 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut115 #-} -happyIn116 :: (RevList String) -> (HappyAbsSyn ) -happyIn116 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn116 #-} -happyOut116 :: (HappyAbsSyn ) -> (RevList String) -happyOut116 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut116 #-} -happyIn117 :: (String) -> (HappyAbsSyn ) -happyIn117 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyIn117 #-} -happyOut117 :: (HappyAbsSyn ) -> (String) -happyOut117 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut117 #-} -happyInTok :: ((L T.Token)) -> (HappyAbsSyn ) -happyInTok x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyInTok #-} -happyOutTok :: (HappyAbsSyn ) -> ((L T.Token)) -happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOutTok #-} - - -happyActOffsets :: HappyAddr -happyActOffsets = HappyA# "\xf2\x10\x6d\x07\x5d\x08\x19\x09\x53\x00\xad\x08\x7c\x06\xf6\x0f\xda\x03\x1d\x07\xad\x08\xc3\x04\x00\x00\x31\x01\x00\x00\x00\x00\x4f\x09\xf7\x16\xcf\x16\x00\x00\x27\x01\x00\x00\xf7\x16\xf7\x16\x3f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xc7\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\xa8\x04\x15\x01\x2e\x04\xcd\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x04\x00\x00\x00\x00\xb5\x04\x13\x02\x9b\x09\x00\x00\xec\x03\xf8\x03\xed\x03\x6e\x03\xd1\x03\x97\x04\x90\x04\x95\x04\x89\x04\xfa\xff\x00\x00\x00\x00\x27\x00\x23\x04\x00\x00\x00\x00\x00\x00\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\x02\x00\x00\x00\x00\xf2\x10\xf2\x10\xf2\x10\xf2\x10\xf2\x10\xb8\x10\xb8\x10\x91\x10\xb3\x01\x91\x10\x53\x01\x9a\x04\xda\x03\x9c\x04\x0d\x00\x9b\x04\x42\x0c\x57\x10\x91\x04\x8d\x04\x3c\x04\x81\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x04\xf5\x0d\x1b\x01\x07\x04\x00\x00\x1b\x01\x07\x04\x5b\x04\xf5\x03\x00\x00\x54\x17\xf5\x03\x18\x01\x00\x00\x50\x11\xd4\x07\x00\x00\x18\x01\x57\x00\xf5\x03\x15\x01\xf5\x03\x0b\x00\x30\x10\x00\x00\x75\x04\x00\x00\x00\x00\x9c\x03\x00\x00\x86\x03\x7d\x01\x6c\x01\xae\x00\x00\x00\x00\x00\x00\x00\x23\x01\x58\x03\x74\x04\x00\x00\x6c\x04\x00\x00\xdc\x03\x00\x00\x88\x00\x30\x10\xd4\x07\x54\x17\x00\x00\xd4\x07\xb6\x03\x50\x11\x00\x00\x50\x11\x30\x10\x00\x00\x00\x00\x64\x03\x00\x00\x00\x00\xfd\x00\x00\x00\x33\x03\x00\x00\x38\x04\x2b\x0b\x00\x00\x00\x00\x00\x00\x34\x01\xf6\x0f\x02\x00\x00\x00\x30\x10\x0c\x00\x30\x10\x6f\x04\x00\x00\x30\x10\x30\x10\x00\x00\xec\x02\x20\x00\x00\x00\x00\x00\x30\x10\xd2\x00\x00\x00\x8a\x00\x1c\x04\xda\x03\x00\x00\x00\x00\x00\x00\x00\x00\x65\x04\x00\x00\x00\x00\x00\x00\x00\x00\xec\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\xef\x03\xe2\x01\x78\x02\x67\x04\xe2\x01\xe2\x01\x00\x00\x00\x00\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\x30\x10\xbc\x09\x69\x0c\x57\x00\x57\x00\x00\x00\x00\x00\xfc\x0a\x00\x00\xda\x03\x00\x00\x00\x00\x05\x01\x00\x00\x00\x00\x00\x00\x63\x03\x00\x00\x63\x04\x54\x00\x2d\x00\x00\x00\x00\x00\x61\x04\x54\x00\xe3\x08\x00\x00\xcf\x16\xcf\x16\xcf\x16\x00\x00\xcf\x16\xf7\x16\x00\x00\x0d\x08\x00\x00\x00\x00\xbd\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x60\x04\x00\x00\xe3\x08\xa7\x03\x00\x00\x00\x00\x00\x00\x2d\x00\x62\x04\x4d\x02\x29\x04\x3e\x03\x00\x00\x4a\x04\x00\x00\x18\x00\x43\x04\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x02\x00\x00\xe4\x03\x00\x00\x00\x00\x00\x00\x00\x00\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\x03\xec\x03\x6b\x03\x6b\x03\x25\x03\x25\x03\x25\x03\x25\x03\x6e\x03\x6e\x03\xda\x02\x40\x04\x39\x04\x37\x04\x2d\x04\x1f\x03\x13\x03\x00\x00\x82\x05\x00\x00\x00\x00\x00\x00\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x00\x00\x36\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x04\xda\x03\x00\x00\x33\x04\x2c\x04\x28\x04\x30\x10\x00\x00\x00\x00\x00\x00\x92\x03\x00\x00\x00\x00\x1b\x02\x79\x03\x27\x03\x35\x04\x1e\x04\x00\x00\x27\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x0b\x25\x04\xe0\x0c\x00\x00\x00\x00\x58\x0f\x57\x0d\xc8\x01\xfd\x00\x21\x04\x1b\x04\x00\x00\x37\x01\x38\x04\x00\x00\x00\x00\x00\x00\x2a\x06\x0d\x03\xd9\x02\xb6\x02\x00\x00\x2e\x05\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\xd4\x07\x00\x00\x00\x00\xc8\x03\x30\x10\x00\x00\x00\x00\x1a\x04\x00\x00\x58\x03\x99\x00\x13\x04\x03\x01\x00\x00\xdc\x04\x00\x00\x8a\x04\x96\x00\x00\x00\x00\x00\x00\x00\x17\x04\xd4\x02\x00\x00\x0f\x04\xd1\x02\x00\x00\x00\x00\x00\x00\x00\x00\x31\x11\x00\x00\x00\x00\x06\x04\x87\x02\x00\x00\x01\x04\x00\x00\x2a\x00\x00\x00\x00\x00\xd8\x05\x00\x00\xdb\x03\x00\x00\x00\x00\xf6\x03\x57\x0d\x00\x00\xee\x03\x00\x00\x31\x0f\x30\x10\x00\x00\x00\x00\xba\x0e\x00\x00\x00\x00\x00\x00\xad\x08\xd4\x01\x00\x00\x00\x00\xda\x03\x00\x00\xda\x03\x00\x00\xe7\x03\x00\x00\xda\x03\xdf\x03\x30\x10\x30\x10\x00\x00\xae\x03\x00\x00\x00\x00\xa5\x03\x00\x00\xf5\x0d\x30\x10\x00\x00\x00\x00\x83\x0a\x00\x00\x00\x00\xa4\x03\xa8\x03\x00\x00\x1c\x0e\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x2b\x00\xa7\x01\xe3\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x0e\x8a\x03\xe3\x09\x00\x00\x00\x00\x00\x00\x45\x02\x00\x00\x19\x03\x77\x03\x93\x0e\x3c\x03\x00\x00\x00\x00\x00\x00\x68\x03\x4e\x03\x35\x03\x00\x00\x2c\x03\x00\x00\x00\x00\x26\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x47\x02\x00\x00\x21\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x0a\x1a\x03\x31\x11\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x01\x0c\x03\x00\x00\xd8\x02\x00\x00\xda\x03\x11\x02\xda\x03\xca\x0b\x00\x00\xfc\x02\x00\x00\x7e\x0d\x83\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x01\x00\x00\xda\x03\x00\x00\xda\x03\x00\x00\x30\x10\x05\x03\xca\x02\xc2\x02\x00\x00\x00\x00\xdd\x01\x00\x00\xaf\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\xda\x03\x00\x00\x00\x00\x94\x02\x93\x02\x50\x02\x3b\x02\x00\x00\x00\x00\x00\x00\x42\x02\x2c\x02\x00\x00\x00\x00\x00\x00"# - -happyGotoOffsets :: HappyAddr -happyGotoOffsets = HappyA# "\x5c\x19\x95\x0a\x2e\x0e\x9e\x14\x8b\x01\xcd\x0e\x20\x13\xf0\x05\x8b\x14\xf5\x09\xe6\x03\x00\x00\x00\x00\x17\x03\x00\x00\x00\x00\x4c\x02\x27\x02\x38\x06\x00\x00\xb1\x00\x00\x00\x19\x02\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x02\x00\x00\x00\x00\x00\x00\x00\x00\x77\x04\x00\x00\xd0\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x15\xe1\x01\x00\x00\x21\x0c\xd7\x0b\x38\x0b\xf0\x09\x75\x09\x1c\x0a\xf7\x06\x3f\x09\x00\x00\x2f\x18\x00\x00\x00\x00\x32\x14\x00\x00\x1c\x02\x00\x00\x45\x19\xa5\x06\x00\x00\x00\x00\x9c\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\x00\x00\x00\x00\x90\x15\x54\x02\x00\x00\x00\x00\x95\x01\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x07\x00\x00\xe1\x02\x00\x00\xdb\x02\x22\x02\x00\x00\x47\x01\x03\x02\x00\x00\xe5\x01\x00\x00\x00\x00\xff\x1a\x00\x00\x00\x00\x00\x00\x00\x00\xba\x01\x00\x00\xad\x01\x69\x01\x7e\x01\x17\x06\x00\x00\x00\x00\x00\x00\xf9\x01\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x01\x18\x18\x9a\x01\x0c\x04\x00\x00\xf6\x01\x00\x00\x28\x15\x00\x00\xe3\x14\x01\x18\x00\x00\x00\x00\x82\x01\x00\x00\x00\x00\xa8\x01\x00\x00\x71\x01\x00\x00\x08\x16\xf0\x16\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x05\x6b\x01\x00\x00\xea\x17\x89\x01\xe9\x1a\x00\x00\x00\x00\x2e\x19\x17\x19\x00\x00\xf0\x14\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\xf0\x15\x00\x00\x1b\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x11\x00\x00\x86\x02\x00\x00\x00\x00\x58\x02\xd2\x01\x00\x00\x00\x00\xe9\x18\xd8\x0d\x56\x0b\x14\x0f\xab\x09\xdd\x0a\x66\x0a\x3d\x0a\x73\x0c\x7e\x0b\x06\x0b\x8d\x0a\xc9\x0c\x4e\x0c\x2c\x08\x50\x06\x09\x09\xb9\x08\x69\x08\xd3\x1a\xbd\x1a\xa7\x1a\x91\x1a\x7b\x1a\x65\x1a\x4f\x1a\x39\x1a\x23\x1a\x0d\x1a\xf7\x19\xb5\x19\xd2\x18\x61\x01\x38\x01\x00\x00\x00\x00\x73\x19\x00\x00\x04\x14\x00\x00\x00\x00\x9c\x16\x00\x00\x00\x00\x00\x00\x83\x16\x00\x00\x00\x00\x29\x01\x87\x01\x00\x00\x00\x00\x00\x00\xe5\x00\xca\x11\x00\x00\x98\x04\xf9\x03\x52\x03\x00\x00\xfe\x02\xb2\x01\x00\x00\xdc\x0b\x00\x00\x00\x00\x7b\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x12\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x0c\x00\x00\x00\x00\x00\x00\x00\x00\xee\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x00\x00\x00\xa5\x17\x00\x00\x00\x00\x00\x00\x79\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x13\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x15\x00\x00\x79\x17\x00\x00\x00\x00\xd8\x06\x3c\x11\x00\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x0c\x00\x00\x00\x00\x00\x00\x5f\x08\x30\x01\x20\x01\x13\x01\x00\x00\x5c\x16\x00\x00\x00\x00\x00\x00\x5f\x07\x00\x00\xa8\x00\x00\x00\x00\x00\x5f\x00\xcb\x16\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x01\x00\x00\x00\x00\x6d\x00\x00\x00\x32\x16\x00\x00\x7e\x06\x0c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x99\x12\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x63\x17\x00\x00\x00\x00\x00\x00\xd8\x06\xe1\x19\x00\x00\x00\x00\x4d\x05\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x94\x13\x00\x00\x7d\x13\x00\x00\x00\x00\x00\x00\x24\x13\x00\x00\x46\x18\xbb\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x15\x15\x1b\x00\x00\x00\x00\xcb\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x23\x12\x67\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x04\x00\x00\x9f\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x19\x00\x00\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x13\x00\x00\xf6\x12\x8d\x18\x00\x00\x00\x00\x00\x00\xa6\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x12\x00\x00\x86\x12\x00\x00\x76\x18\xdf\xff\x00\x00\x96\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x12\x00\x00\x00\x00\x00\x00\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\xff\x00\x00\x00\x00\x00\x00\x00\x00"# - -happyDefActions :: HappyAddr -happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\xfe\x00\x00\x00\x00\xf4\xff\x00\x00\x79\xff\x78\xff\x76\xff\x67\xff\x75\xff\x4b\xff\x00\x00\x4a\xff\x65\xff\x71\xff\x00\x00\xc1\xfe\x5a\xff\x53\xff\x19\xff\x4e\xff\x00\x00\x57\xff\x4f\xff\x18\xff\x51\xff\x50\xff\x59\xff\x17\xff\x52\xff\x4d\xff\x58\xff\x40\xff\x55\xff\x3f\xff\x4c\xff\x54\xff\x16\xff\x49\xff\x00\x00\x15\xff\x14\xff\x13\xff\x12\xff\x11\xff\x10\xff\x00\x00\x77\xff\x7b\xff\x6c\xfe\x00\x00\x00\x00\x00\x00\x72\xfe\x71\xfe\x6d\xfe\x6b\xfe\x7c\xff\x6a\xfe\x69\xfe\x70\xfe\xe0\xff\xdf\xff\xd7\xff\xde\xff\xc0\xff\xb4\xff\xb1\xff\xad\xff\xaa\xff\xa7\xff\xa2\xff\x9f\xff\x9d\xff\x9b\xff\x99\xff\x97\xff\x95\xff\x93\xff\x87\xff\x00\x00\x00\x00\xad\xfe\xac\xfe\xab\xfe\xaa\xfe\xa9\xfe\xa8\xfe\xa7\xfe\xea\xff\xd9\xff\xf0\xff\xef\xff\xee\xff\xed\xff\xec\xff\xeb\xff\x00\x00\x97\xfe\x91\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfe\x00\x00\xf3\xff\xe9\xff\xe8\xff\xe7\xff\xe6\xff\xe5\xff\xe4\xff\xe3\xff\xe2\xff\xe1\xff\xda\xff\xa6\xfe\xe0\xff\xbb\xfe\x00\x00\x00\x00\xdb\xfe\x00\x00\xd8\xfe\xd7\xfe\x00\x00\x1c\xff\x00\x00\x1a\xff\x30\xff\x00\x00\x00\x00\xe3\xfe\x00\x00\x34\xff\x37\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\xff\x7f\xff\x63\xff\xfd\xfe\x0f\xff\xfc\xfe\x06\xff\x00\x00\x00\x00\x80\xff\x66\xfe\x7d\xff\x04\xff\x00\x00\xe7\xfe\x00\x00\xf2\xff\x00\x00\xf1\xff\x00\x00\x2b\xff\x29\xff\x00\x00\x33\xff\x30\xff\xe2\xfe\x32\xff\x00\x00\x2f\xff\x36\xff\x2d\xff\x00\x00\xf3\xfe\xf2\xfe\xfb\xfe\xd6\xfe\xc7\xfe\xcc\xfe\xd5\xfe\xcb\xfe\xf9\xfe\x00\x00\x00\x00\xda\xfe\xd9\xfe\xb6\xfe\x00\x00\x00\x00\x00\x00\xb1\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfe\x00\x00\x00\x00\xb7\xff\x00\x00\x00\x00\x76\xfe\x77\xfe\x00\x00\x00\x00\x7d\xfe\x00\x00\x00\x00\x00\x00\x7a\xfe\x7b\xfe\xb4\xff\x83\xff\x00\x00\x78\xfe\x79\xfe\xb8\xff\xbe\xff\x00\x00\xbf\xff\xbd\xff\xb9\xff\xbc\xff\xba\xff\xbb\xff\x00\x00\x00\x00\xd1\xfe\x00\x00\x00\x00\xd2\xfe\xce\xfe\x8f\xfe\x90\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\xff\xc9\xff\x00\x00\xd8\xff\x00\x00\x6f\xfe\x6e\xfe\x00\x00\x82\xff\xc0\xfe\xbf\xfe\x00\x00\x56\xff\x25\xff\x00\x00\x00\x00\x70\xff\x64\xff\x48\xff\x00\x00\x00\x00\x74\xff\x6d\xff\x6b\xff\x69\xff\x66\xff\x73\xff\x6f\xff\x7a\xff\x00\x00\x95\xfe\x68\xfe\x00\x00\x94\xfe\x6e\xff\x72\xff\x68\xff\x6a\xff\x6c\xff\x00\x00\x3e\xff\x3d\xff\x47\xff\x65\xfe\x00\x00\x00\x00\x21\xff\x20\xff\x24\xff\x00\x00\x00\x00\x00\x00\x5f\xff\x61\xff\x5b\xff\x00\x00\xa5\xfe\x00\x00\xc5\xff\xc4\xff\xc3\xff\xcb\xff\xcc\xff\x00\x00\xd6\xff\x00\x00\xd4\xff\xd3\xff\x89\xff\x88\xff\x8a\xff\x8b\xff\x8c\xff\x8f\xff\x90\xff\x91\xff\x8d\xff\x8e\xff\x92\xff\xae\xff\xaf\xff\xb0\xff\xab\xff\xac\xff\xa8\xff\xa9\xff\xa3\xff\xa4\xff\xa5\xff\xa6\xff\xa0\xff\xa1\xff\x9e\xff\x9c\xff\x9a\xff\x98\xff\x96\xff\x00\x00\xcc\xfe\xcd\xfe\x00\x00\xd0\xfe\xdb\xff\xb2\xff\x00\x00\xcf\xfe\xdc\xff\xdd\xff\x9d\xfe\x9c\xfe\x96\xfe\x9f\xfe\x00\x00\xa1\xfe\x9b\xfe\x99\xfe\x98\xfe\x9a\xfe\x00\x00\x00\x00\xa3\xfe\x00\x00\x84\xff\x00\x00\x85\xff\x85\xfe\x7c\xfe\x7e\xfe\x00\x00\x74\xfe\x75\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\xfe\x00\x00\xb0\xfe\xb2\xfe\xb5\xfe\xb9\xfe\xba\xfe\x00\x00\x00\x00\x00\x00\xf0\xfe\xf1\xfe\x00\x00\x00\x00\x00\x00\xcc\xfe\x00\x00\xe1\xfe\xdf\xfe\x00\x00\x00\x00\xc5\xfe\xde\xfe\xc6\xfe\x00\x00\x0e\xff\xfa\xfe\xca\xfe\xf7\xfe\x00\x00\x1b\xff\x2c\xff\x2e\xff\x00\x00\x39\xff\x31\xff\x35\xff\x27\xff\x28\xff\x00\x00\x3a\xff\x38\xff\x00\x00\xe5\xfe\xe6\xfe\x00\x00\x7e\xff\x05\xff\x01\xff\x00\x00\x0a\xff\x00\x00\x00\x00\x86\xff\x62\xff\xd4\xfe\x00\x00\x00\x00\x09\xff\x00\x00\x00\x00\x00\xff\x02\xff\x03\xff\xe4\xfe\x00\x00\x26\xff\x2a\xff\x00\x00\x00\x00\xf6\xfe\x00\x00\xc3\xfe\xcc\xfe\xc8\xfe\xc9\xfe\x00\x00\xc4\xfe\x00\x00\x0b\xff\x0c\xff\x00\x00\x00\x00\xe9\xfe\x00\x00\xef\xfe\x00\x00\x00\x00\xee\xfe\xb4\xfe\x00\x00\xb7\xfe\xb8\xfe\xaf\xfe\x00\x00\x00\x00\x47\xfe\x88\xfe\x00\x00\x8a\xfe\x00\x00\xb5\xff\xb6\xff\x8c\xfe\x00\x00\x00\x00\x85\xff\x00\x00\xa4\xfe\x00\x00\xa2\xfe\x9e\xfe\x00\x00\xb3\xff\x00\x00\x00\x00\xd2\xff\xd1\xff\x00\x00\xd5\xff\xd0\xff\x00\x00\x00\x00\x5e\xff\x00\x00\xbc\xfe\xbd\xfe\xbe\xfe\x00\x00\x23\xff\x1f\xff\x00\x00\x00\x00\x3c\xff\x45\xff\x46\xff\x3b\xff\x93\xfe\x67\xfe\x92\xfe\x00\x00\x43\xff\x44\xff\x1e\xff\x1d\xff\x22\xff\x5d\xff\x00\x00\x00\x00\x00\x00\xc2\xff\xc1\xff\x94\xff\x00\x00\xa0\xfe\x00\x00\x00\x00\x00\x00\x8e\xfe\x8b\xfe\x89\xfe\x46\xfe\x00\x00\x45\xfe\x00\x00\xb3\xfe\x00\x00\xe8\xfe\xed\xfe\x00\x00\xec\xfe\xf8\xfe\xdd\xfe\xe0\xfe\xdc\xfe\xc2\xfe\xf4\xfe\x00\x00\xf5\xfe\x5f\xfe\x00\x00\x63\xfe\x61\xfe\x59\xfe\x51\xfe\x58\xfe\x4f\xfe\x5d\xfe\x50\xfe\x5a\xfe\x52\xfe\x55\xfe\x5c\xfe\x54\xfe\x53\xfe\x5e\xfe\x5b\xfe\x56\xfe\x4e\xfe\x57\xfe\xfe\xfe\xff\xfe\x07\xff\x08\xff\x00\x00\x00\x00\x00\x00\xd3\xfe\xeb\xfe\xea\xfe\xc6\xff\x00\x00\x44\xfe\x43\xfe\x00\x00\x4b\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x86\xfe\x00\x00\xc8\xff\x00\x00\x00\x00\xcf\xff\x60\xff\x5c\xff\x41\xff\x42\xff\xce\xff\xcd\xff\xc7\xff\x87\xfe\x00\x00\x82\xfe\x00\x00\x84\xfe\x00\x00\x8d\xfe\x00\x00\x00\x00\x00\x00\x45\xfe\x62\xfe\x64\xfe\x00\x00\x60\xfe\x00\x00\x4a\xfe\x42\xfe\x00\x00\x81\xfe\x83\xfe\x7f\xfe\x00\x00\x80\xfe\x41\xfe\x00\x00\x40\xfe\x00\x00\x3f\xfe\x3e\xfe\x3c\xfe\x49\xfe\x00\x00\x00\x00\x48\xfe\x3d\xfe"# - -happyCheck :: HappyAddr -happyCheck = HappyA# "\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x00\x00\x14\x00\x0d\x00\x0f\x00\x10\x00\x67\x00\x12\x00\x00\x00\x09\x00\x09\x00\x15\x00\x00\x00\x18\x00\x19\x00\x1a\x00\x11\x00\x09\x00\x1d\x00\x1e\x00\x00\x00\x27\x00\x00\x00\x01\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x01\x00\x0c\x00\x21\x00\x65\x00\x66\x00\x67\x00\x11\x00\x2e\x00\x11\x00\x12\x00\x09\x00\x09\x00\x0b\x00\x09\x00\x0d\x00\x11\x00\x12\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x64\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x09\x00\x09\x00\x0a\x00\x5e\x00\x09\x00\x0a\x00\x61\x00\x62\x00\x63\x00\x5b\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x6d\x00\x6d\x00\x7a\x00\x7b\x00\x65\x00\x5c\x00\x5d\x00\x5e\x00\x6d\x00\x5a\x00\x5b\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x8b\x00\x6d\x00\x6d\x00\x00\x00\x6d\x00\x13\x00\x12\x00\x00\x00\x39\x00\x09\x00\x0a\x00\x0b\x00\x18\x00\x19\x00\x1a\x00\x0c\x00\x39\x00\x1d\x00\x1e\x00\x7e\x00\x7f\x00\x7e\x00\x7f\x00\x23\x00\x24\x00\x25\x00\x1a\x00\x00\x00\x01\x00\x5f\x00\x09\x00\x0a\x00\x0b\x00\x09\x00\x0a\x00\x0b\x00\x5b\x00\x0c\x00\x00\x00\x01\x00\x13\x00\x30\x00\x6d\x00\x6d\x00\x13\x00\x39\x00\x6d\x00\x1a\x00\x3c\x00\x3d\x00\x1a\x00\x3a\x00\x3b\x00\x41\x00\x2f\x00\x43\x00\x44\x00\x45\x00\x00\x00\x7e\x00\x00\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x30\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x39\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x12\x00\x00\x00\x01\x00\x5f\x00\x43\x00\x09\x00\x0a\x00\x61\x00\x62\x00\x63\x00\x00\x00\x0f\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x32\x00\x6d\x00\x7a\x00\x00\x00\x09\x00\x0a\x00\x0b\x00\x39\x00\x0d\x00\x5a\x00\x5b\x00\x5f\x00\x0b\x00\x0a\x00\x0d\x00\x87\x00\x88\x00\x43\x00\x0f\x00\x00\x00\x11\x00\x12\x00\x6d\x00\x5d\x00\x5e\x00\x6d\x00\x2e\x00\x2f\x00\x09\x00\x0a\x00\x0b\x00\x09\x00\x0a\x00\x0b\x00\x09\x00\x0a\x00\x0b\x00\x12\x00\x0d\x00\x00\x00\x01\x00\x13\x00\x09\x00\x0a\x00\x0b\x00\x1a\x00\x09\x00\x0a\x00\x1a\x00\x2e\x00\x00\x00\x1a\x00\x0f\x00\x00\x00\x00\x00\x01\x00\x09\x00\x0a\x00\x0b\x00\x1a\x00\x39\x00\x5f\x00\x5b\x00\x3c\x00\x3d\x00\x0c\x00\x10\x00\x11\x00\x41\x00\x00\x00\x43\x00\x44\x00\x45\x00\x1a\x00\x39\x00\x6d\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x4f\x00\x50\x00\x00\x00\x52\x00\x53\x00\x39\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x00\x00\x0a\x00\x00\x00\x01\x00\x5e\x00\x5f\x00\x12\x00\x10\x00\x62\x00\x63\x00\x39\x00\x6d\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x2b\x00\x2c\x00\x5f\x00\x09\x00\x0a\x00\x0b\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x00\x00\x00\x00\x7a\x00\x7b\x00\x3a\x00\x6d\x00\x61\x00\x5b\x00\x6d\x00\x5f\x00\x00\x00\x6d\x00\x00\x00\x21\x00\x00\x00\x87\x00\x88\x00\x11\x00\x12\x00\x6d\x00\x32\x00\x3c\x00\x3d\x00\x6d\x00\x00\x00\x37\x00\x41\x00\x39\x00\x43\x00\x30\x00\x45\x00\x5a\x00\x5b\x00\x6d\x00\x49\x00\x4a\x00\x4b\x00\x43\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x00\x00\x00\x00\x53\x00\x39\x00\x2e\x00\x56\x00\x57\x00\x58\x00\x59\x00\x32\x00\x0a\x00\x34\x00\x00\x00\x49\x00\x2e\x00\x2f\x00\x10\x00\x62\x00\x63\x00\x2f\x00\x39\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x5a\x00\x5b\x00\x12\x00\x31\x00\x32\x00\x00\x00\x0c\x00\x30\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x13\x00\x1f\x00\x7c\x00\x7d\x00\x0c\x00\x23\x00\x02\x00\x42\x00\x43\x00\x6d\x00\x32\x00\x5e\x00\x5f\x00\x87\x00\x88\x00\x37\x00\x0c\x00\x39\x00\x30\x00\x3c\x00\x3d\x00\x00\x00\x39\x00\x13\x00\x41\x00\x0c\x00\x43\x00\x43\x00\x45\x00\x0b\x00\x11\x00\x0d\x00\x49\x00\x4a\x00\x4b\x00\x39\x00\x4d\x00\x00\x00\x4f\x00\x50\x00\x00\x00\x00\x00\x53\x00\x5f\x00\x1a\x00\x56\x00\x57\x00\x58\x00\x59\x00\x0c\x00\x0a\x00\x00\x00\x01\x00\x20\x00\x11\x00\x22\x00\x10\x00\x62\x00\x63\x00\x39\x00\x3a\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x42\x00\x43\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x00\x00\x00\x00\x0c\x00\x0b\x00\x3a\x00\x0d\x00\x1f\x00\x11\x00\x7c\x00\x7d\x00\x23\x00\x30\x00\x0c\x00\x15\x00\x16\x00\x31\x00\x32\x00\x33\x00\x34\x00\x87\x00\x88\x00\x4f\x00\x3b\x00\x30\x00\x3a\x00\x3c\x00\x3d\x00\x23\x00\x24\x00\x1f\x00\x41\x00\x00\x00\x43\x00\x23\x00\x45\x00\x12\x00\x5a\x00\x5b\x00\x49\x00\x4a\x00\x4b\x00\x02\x00\x4d\x00\x1f\x00\x4f\x00\x50\x00\x30\x00\x23\x00\x53\x00\x11\x00\x00\x00\x56\x00\x57\x00\x58\x00\x59\x00\x30\x00\x0c\x00\x00\x00\x10\x00\x11\x00\x30\x00\x11\x00\x0c\x00\x62\x00\x63\x00\x0c\x00\x3b\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x24\x00\x25\x00\x26\x00\x0f\x00\x7c\x00\x7d\x00\x12\x00\x64\x00\x00\x00\x2d\x00\x10\x00\x11\x00\x18\x00\x19\x00\x1a\x00\x87\x00\x88\x00\x1d\x00\x1e\x00\x00\x00\x0c\x00\x31\x00\x32\x00\x23\x00\x24\x00\x25\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x0c\x00\x44\x00\x39\x00\x3a\x00\x0c\x00\x11\x00\x02\x00\x42\x00\x43\x00\x11\x00\x0e\x00\x42\x00\x43\x00\x11\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x12\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x39\x00\x3a\x00\x0b\x00\x5e\x00\x0d\x00\x02\x00\x61\x00\x62\x00\x63\x00\x42\x00\x43\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x12\x00\x0c\x00\x7a\x00\x7b\x00\x0c\x00\x00\x00\x11\x00\x0b\x00\x0b\x00\x11\x00\x0d\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x62\x00\x63\x00\x64\x00\x0f\x00\x62\x00\x63\x00\x64\x00\x24\x00\x25\x00\x26\x00\x28\x00\x29\x00\x18\x00\x19\x00\x1a\x00\x02\x00\x2d\x00\x1d\x00\x1e\x00\x30\x00\x2b\x00\x2c\x00\x12\x00\x23\x00\x24\x00\x25\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x00\x00\x0b\x00\x00\x00\x0d\x00\x3a\x00\x1e\x00\x11\x00\x0b\x00\x44\x00\x0d\x00\x23\x00\x24\x00\x25\x00\x26\x00\x0c\x00\x0c\x00\x00\x00\x3c\x00\x3d\x00\x11\x00\x2d\x00\x0b\x00\x41\x00\x30\x00\x43\x00\x11\x00\x45\x00\x13\x00\x0c\x00\x0e\x00\x49\x00\x4a\x00\x4b\x00\x11\x00\x4d\x00\x0e\x00\x4f\x00\x50\x00\x51\x00\x0b\x00\x53\x00\x0d\x00\x0c\x00\x56\x00\x57\x00\x58\x00\x59\x00\x21\x00\x22\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x61\x00\x62\x00\x63\x00\x02\x00\x3a\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0b\x00\x1e\x00\x0d\x00\x1a\x00\x87\x00\x88\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x12\x00\x18\x00\x19\x00\x1a\x00\x42\x00\x2d\x00\x1d\x00\x1e\x00\x30\x00\x18\x00\x19\x00\x0c\x00\x23\x00\x24\x00\x25\x00\x12\x00\x11\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x0b\x00\x00\x00\x0d\x00\x2d\x00\x3d\x00\x0c\x00\x30\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x5e\x00\x5f\x00\x0c\x00\x3c\x00\x3d\x00\x49\x00\x3b\x00\x11\x00\x41\x00\x4d\x00\x43\x00\x0b\x00\x45\x00\x0d\x00\x02\x00\x44\x00\x49\x00\x4a\x00\x4b\x00\x0b\x00\x4d\x00\x59\x00\x4f\x00\x50\x00\x51\x00\x10\x00\x53\x00\x10\x00\x11\x00\x56\x00\x57\x00\x58\x00\x59\x00\x0f\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x61\x00\x62\x00\x63\x00\x11\x00\x12\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x0b\x00\x0b\x00\x0c\x00\x0d\x00\x0f\x00\x87\x00\x88\x00\x12\x00\x11\x00\x12\x00\x00\x00\x0c\x00\x12\x00\x18\x00\x19\x00\x1a\x00\x11\x00\x0f\x00\x1d\x00\x1e\x00\x28\x00\x29\x00\x0c\x00\x0e\x00\x23\x00\x24\x00\x25\x00\x11\x00\x1b\x00\x1c\x00\x1d\x00\x0e\x00\x1f\x00\x1a\x00\x1b\x00\x1c\x00\x23\x00\x24\x00\x25\x00\x26\x00\x0c\x00\x21\x00\x22\x00\x18\x00\x19\x00\x0c\x00\x2d\x00\x3a\x00\x3b\x00\x30\x00\x1e\x00\x3e\x00\x3f\x00\x40\x00\x0c\x00\x23\x00\x24\x00\x25\x00\x26\x00\x46\x00\x47\x00\x48\x00\x0c\x00\x11\x00\x0b\x00\x2d\x00\x5f\x00\x4e\x00\x30\x00\x44\x00\x51\x00\x11\x00\x0c\x00\x54\x00\x11\x00\x24\x00\x25\x00\x26\x00\x0e\x00\x5a\x00\x0e\x00\x2a\x00\x02\x00\x5e\x00\x2d\x00\x12\x00\x61\x00\x30\x00\x11\x00\x0b\x00\x59\x00\x0c\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x10\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x1a\x00\x26\x00\x11\x00\x0b\x00\x1f\x00\x2e\x00\x00\x00\x20\x00\x02\x00\x03\x00\x04\x00\x05\x00\x1e\x00\x85\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\x0c\x00\x0f\x00\x0f\x00\x39\x00\x0f\x00\x0c\x00\x3c\x00\x3d\x00\x5a\x00\x00\x00\x13\x00\x41\x00\x0b\x00\x43\x00\x44\x00\x45\x00\x12\x00\x0b\x00\x8b\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x11\x00\x4f\x00\x50\x00\x2e\x00\x52\x00\x53\x00\x0b\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x8b\x00\x09\x00\x0a\x00\x59\x00\x0c\x00\x20\x00\x0b\x00\x22\x00\x62\x00\x63\x00\x0b\x00\x45\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x0b\x00\x0b\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x13\x00\x8b\x00\x26\x00\x20\x00\x3a\x00\x5a\x00\x5b\x00\x1f\x00\x1e\x00\x1e\x00\x02\x00\x13\x00\x8b\x00\x12\x00\x23\x00\x24\x00\x25\x00\x26\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x39\x00\x0b\x00\x2d\x00\x3c\x00\x3d\x00\x30\x00\x02\x00\x8b\x00\x41\x00\x09\x00\x43\x00\x44\x00\x45\x00\xff\xff\x5a\x00\x5b\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\x09\x00\x0a\x00\xff\xff\x0c\x00\xff\xff\xff\xff\xff\xff\x62\x00\x63\x00\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\x87\x00\x88\x00\x89\x00\x8a\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\x09\x00\x0a\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x45\x00\x62\x00\x63\x00\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x5b\x00\xff\xff\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\x87\x00\x88\x00\x89\x00\x8a\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x62\x00\x63\x00\x45\x00\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1a\x00\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\x87\x00\x88\x00\x89\x00\x8a\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\x45\x00\x62\x00\x63\x00\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x17\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\x87\x00\x88\x00\x89\x00\x8a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\x00\x00\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\x0a\x00\x45\x00\x0c\x00\x20\x00\xff\xff\x22\x00\x62\x00\x63\x00\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\x00\x00\x3a\x00\x02\x00\x03\x00\x04\x00\x05\x00\x1e\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x23\x00\x24\x00\x25\x00\x26\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x39\x00\xff\xff\x2d\x00\x3c\x00\x3d\x00\x30\x00\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x5b\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\x00\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x62\x00\x63\x00\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x2d\x00\xff\xff\x08\x00\x30\x00\xff\xff\xff\xff\x87\x00\x88\x00\x89\x00\x8a\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\x3c\x00\x3d\x00\x3e\x00\x41\x00\x40\x00\x43\x00\x44\x00\x45\x00\x44\x00\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\x0a\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x62\x00\x63\x00\x08\x00\x09\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x2d\x00\xff\xff\x08\x00\x30\x00\xff\xff\xff\xff\x87\x00\x88\x00\x89\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\x00\x00\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x44\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x0a\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x62\x00\x63\x00\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\x78\x00\x3a\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\x88\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\x00\x00\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x0a\x00\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x62\x00\x63\x00\x08\x00\x09\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x78\x00\xff\xff\x7a\x00\xff\xff\x3a\x00\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\x88\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\x62\x00\x63\x00\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\x2d\x00\xff\xff\x78\x00\x30\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\x88\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\x3d\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x49\x00\xff\xff\x62\x00\x63\x00\x4d\x00\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\xff\xff\x00\x00\x59\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x7a\x00\x7b\x00\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\x88\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x0a\x00\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x62\x00\x63\x00\x08\x00\x09\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x7a\x00\x7b\x00\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\xff\xff\x87\x00\x88\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\x3c\x00\x3d\x00\x3e\x00\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\x44\x00\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x0a\x00\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x62\x00\x63\x00\x08\x00\x09\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xff\xff\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x87\x00\x88\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\x0a\x00\x41\x00\x3f\x00\x43\x00\x44\x00\x45\x00\xff\xff\x44\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x62\x00\x63\x00\x08\x00\x09\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\x3c\x00\x3d\x00\xff\xff\xff\xff\x0a\x00\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\xff\xff\x4f\x00\x50\x00\x87\x00\x88\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x62\x00\x63\x00\x08\x00\x09\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\x3c\x00\x3d\x00\xff\xff\xff\xff\x0a\x00\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\x7c\x00\x7d\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\xff\xff\x4f\x00\x50\x00\x87\x00\x88\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x62\x00\x63\x00\x08\x00\x09\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\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\x7c\x00\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x87\x00\x88\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x62\x00\x63\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x6c\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x0c\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x18\x00\x19\x00\x1a\x00\x88\x00\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x0c\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\x08\x00\x09\x00\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x61\x00\x02\x00\x03\x00\x04\x00\x05\x00\x2d\x00\xff\xff\x08\x00\x30\x00\xff\xff\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x51\x00\x79\x00\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x61\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\xff\xff\x79\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x0b\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x0b\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x51\x00\x79\x00\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x61\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\xff\xff\x58\x00\x59\x00\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\xff\xff\x79\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x0b\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x00\x00\x0e\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\x08\x00\x09\x00\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\x51\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x61\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x3d\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x49\x00\x79\x00\xff\xff\xff\xff\x4d\x00\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x59\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x0d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\x15\x00\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x0c\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\x08\x00\x09\x00\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x4c\x00\x08\x00\x09\x00\x61\x00\xff\xff\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x12\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x0b\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\xff\xff\x00\x00\x61\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x1c\x00\x1d\x00\x2d\x00\x1f\x00\xff\xff\x30\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3b\x00\x2d\x00\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\x44\x00\xff\xff\x49\x00\xff\xff\x39\x00\x3a\x00\x4d\x00\x3c\x00\x3d\x00\x3e\x00\x51\x00\x52\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\xff\xff\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\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\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x0d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\x15\x00\x3d\x00\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\x49\x00\x23\x00\x24\x00\x25\x00\x4d\x00\xff\xff\xff\xff\xff\xff\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x61\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\x0d\x00\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x15\x00\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x0c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x51\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x61\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\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\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x51\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\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\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\x61\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x51\x00\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x61\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\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\x61\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x51\x00\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x61\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\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\x61\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x51\x00\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\x0a\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x51\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x39\x00\xff\xff\x30\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\xff\xff\x44\x00\x45\x00\x3b\x00\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\x52\x00\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\x6d\x00\x4f\x00\x50\x00\xff\xff\xff\xff\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x62\x00\x63\x00\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\x3b\x00\xff\xff\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\xff\xff\x50\x00\x44\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x60\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\xff\xff\xff\xff\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\x3b\x00\xff\xff\x4a\x00\x4b\x00\x4c\x00\xff\xff\x4e\x00\xff\xff\x50\x00\x44\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x60\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\x4a\x00\x4b\x00\x4c\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x60\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x60\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x60\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\x4a\x00\x4b\x00\x4c\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x60\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x60\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x60\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x60\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x60\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x60\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x60\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x60\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x60\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\x29\x00\x4a\x00\x4b\x00\x4c\x00\x2d\x00\x3b\x00\xff\xff\x30\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\x3b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x60\x00\x41\x00\xff\xff\xff\xff\x44\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x4c\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\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\x29\x00\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\x29\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x3b\x00\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\x3b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\xff\xff\x44\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x4c\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\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\x29\x00\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\x29\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x3b\x00\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\x3b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\xff\xff\x44\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\x4c\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\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\x45\x00\x46\x00\x47\x00\x48\x00\x49\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\x45\x00\xff\xff\x47\x00\x48\x00\x49\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x44\x00\x2d\x00\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\x42\x00\x43\x00\x44\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\xff\xff\x44\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x2d\x00\xff\xff\x08\x00\x30\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\x29\x00\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\x3b\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x41\x00\xff\xff\xff\xff\x44\x00\xff\xff\x2d\x00\xff\xff\x00\x00\x30\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x44\x00\xff\xff\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x5a\x00\x5b\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\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\x30\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\x3b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x39\x00\x62\x00\xff\xff\xff\xff\x3d\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x44\x00\xff\xff\xff\xff\xff\xff\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\xff\xff\xff\xff\x55\x00\xff\xff\xff\xff\xff\xff\x59\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\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\x3c\x00\x3d\x00\xff\xff\x30\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\x53\x00\xff\xff\x30\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x62\x00\xff\xff\xff\xff\xff\xff\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\x42\x00\x43\x00\x44\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x00\x00\x18\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x00\x00\x18\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x00\x00\x18\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x00\x00\x18\x00\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x9a\x01\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x1a\x00\x6b\x00\xea\x00\x07\x01\xdc\x00\x6c\x00\x96\xfe\xbc\x02\x6d\x00\x33\x01\x0d\x00\x0d\x00\xdd\x00\x29\x02\x6e\x00\x6f\x00\x70\x00\xa9\x00\x0d\x00\x71\x00\x72\x00\xaa\x01\x08\x01\xb9\x00\x63\x02\x73\x00\x74\x00\x75\x00\x05\x01\xb9\x00\x35\x01\xb2\x02\x2b\x02\xb4\x02\xb5\x02\xb6\x02\xa9\x00\xb4\x01\xa9\x00\xab\x01\x0d\x00\x0d\x00\xc5\x01\x0d\x00\xd4\x00\xa9\x00\x06\x01\x1b\x00\x76\x00\x77\x00\x1c\x00\x1d\x00\x78\x00\x79\x00\x7a\x00\x1e\x00\xaa\x02\x1f\x00\x20\x00\x21\x00\x7b\x00\x7c\x00\x7d\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x7e\x00\x27\x00\x28\x00\x7f\x00\x29\x00\x2a\x00\x80\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x81\x00\x0d\x00\x0d\x00\xbc\x00\x82\x00\x0d\x00\xbc\x00\x83\x00\x30\x00\x31\x00\x53\x01\x7f\x02\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x84\x00\x84\x00\x43\x00\x9b\x01\x2a\x02\x64\x02\x65\x02\x66\x02\x84\x00\x36\x01\xb3\x00\x9c\x01\x9d\x01\x8f\x00\x9e\x01\x39\x00\x3a\x00\xa6\x01\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x1a\x00\x6b\x00\xff\xff\x84\x00\x84\x00\xef\x01\x84\x00\xd8\x01\x85\xff\x98\x00\xcc\x01\x0d\x00\xb6\x00\xb7\x00\x6e\x00\x6f\x00\x70\x00\xf0\x01\xe0\x01\x71\x00\x72\x00\x9b\x00\x41\x02\x9b\x00\x58\x01\x73\x00\x74\x00\x75\x00\xb8\x00\xb9\x00\x3a\x01\xb9\x00\x0d\x00\xb6\x00\xb7\x00\x0d\x00\xb6\x00\xb7\x00\x53\x01\xb3\x02\xb9\x00\x63\x02\xc0\x00\x9e\x00\x84\x00\x84\x00\xb4\x02\x1b\x00\x84\x00\xb8\x00\x1c\x00\x1d\x00\xb8\x00\xdb\x01\xdc\x01\x1e\x00\x3f\x02\x1f\x00\x20\x00\x21\x00\xa9\x00\x9b\x00\xa7\x01\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\xc2\x00\x27\x00\x28\x00\x7f\x00\x29\x00\x2a\x00\xcd\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xa8\x01\xb9\x00\x52\x01\xb9\x00\xcb\x01\x0d\x00\xbc\x00\x83\x00\x30\x00\x31\x00\x98\x00\x38\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\xc9\x01\x84\x00\x43\x00\x5f\x01\x0d\x00\xd2\x00\xd3\x00\xcd\x00\xd4\x00\x3b\x01\xb3\x00\xb9\x00\xe2\x01\x1a\x00\xd4\x00\x39\x00\x3a\x00\xcb\x01\x6c\x00\xb5\x00\x61\xff\x61\xff\x84\x00\xa4\x02\x66\x02\x84\x00\x30\x02\x56\x01\x0d\x00\xb6\x00\xb7\x00\x0d\x00\xb6\x00\xb7\x00\x0d\x00\xd2\x00\xd3\x00\x81\xff\xd4\x00\xb9\x00\x58\x01\xc0\x00\x0d\x00\xb6\x00\xb7\x00\xb8\x00\x0d\x00\xbc\x00\xb8\x00\x61\xff\xb6\x01\xb8\x00\x3d\x01\xfb\x01\xb9\x00\x65\x01\x0d\x00\xb6\x00\xb7\x00\xb8\x00\x1b\x00\xb9\x00\x53\x01\x1c\x00\x1d\x00\xfc\x01\xb7\x01\xb8\x01\x1e\x00\xa9\x00\x1f\x00\x20\x00\x21\x00\xb8\x00\xc7\x01\x84\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\xee\x00\x27\x00\x28\x00\x95\x02\x29\x00\x2a\x00\xcc\x01\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xa9\x00\x1a\x00\xb9\x00\x66\x01\x60\x01\xb9\x00\xef\x00\x96\x02\x30\x00\x31\x00\xe2\x01\x84\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xbc\x00\xbd\x00\xb9\x00\x0d\x00\xb6\x00\xb7\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xbe\x00\x5f\x01\xa9\x00\x43\x00\x4a\x01\xb1\x00\x84\x00\x0f\x02\x53\x01\x84\x00\xb9\x00\x98\x00\x84\x00\xb0\x01\x5c\x01\x98\x00\x39\x00\x3a\x00\x61\xff\x61\xff\x84\x00\xc9\x01\x1c\x00\x1d\x00\x84\x00\xa9\x00\xfe\x01\x1e\x00\xcd\x00\x1f\x00\xc2\x00\x21\x00\xd6\x01\xb3\x00\x84\x00\x22\x00\x23\x00\x24\x00\xcb\x01\x26\x00\xf0\x01\x27\x00\x28\x00\x3e\x02\xa9\x00\x2a\x00\xc7\x01\x61\xff\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xc9\x01\x1a\x00\xdf\x01\xf3\x00\xb2\x01\x55\x01\x56\x01\x3f\x02\x30\x00\x31\x00\x99\x00\xcc\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x5d\x01\xb3\x00\xf4\x00\xc9\x00\xad\x00\x00\x02\xa3\x02\xc2\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xa4\x02\x4a\x01\xa2\x00\x39\x02\x01\x02\x11\x00\x52\x02\xcf\x00\xd0\x00\x84\x00\xc9\x01\x60\x01\xb9\x00\xa3\x00\xa4\x00\xca\x01\x53\x02\xcd\x00\x16\x00\x1c\x00\x1d\x00\xa9\x00\xe0\x01\x54\x02\x1e\x00\xa8\x02\x1f\x00\xcb\x01\x21\x00\x8d\x01\x27\x02\xd4\x00\x22\x00\x23\x00\x24\x00\xe2\x01\x26\x00\xaf\x02\x27\x00\x28\x00\x37\x02\xa9\x00\x2a\x00\xde\x00\xb8\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xb0\x02\x1a\x00\xb9\x00\xba\x00\xaa\x00\xa9\x00\xab\x00\x38\x02\x30\x00\x31\x00\xcd\x00\x8a\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x8b\x01\xd0\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\x16\x02\xe8\x00\x9f\x02\x25\x01\xb1\x00\x26\x01\x38\x01\xa9\x00\xa2\x00\x39\x02\x11\x00\x9e\x00\x17\x02\x27\x01\x28\x01\xbe\x01\xad\x00\xdd\x01\xaf\x00\xa3\x00\xa4\x00\xfd\x00\xd3\x01\x16\x00\xb1\x00\x1c\x00\x1d\x00\x29\x01\x2a\x01\x39\x01\x1e\x00\x31\x01\x1f\x00\x11\x00\x21\x00\xbc\x02\xb2\x00\xb3\x00\x22\x00\x23\x00\x24\x00\xb8\x02\x26\x00\x41\x01\x27\x00\x28\x00\x16\x00\x11\x00\x2a\x00\xba\x02\x2e\x02\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x9e\x00\x7e\x02\xa9\x00\x8f\x02\x90\x02\x16\x00\x7f\x02\x2f\x02\x30\x00\x31\x00\xbb\x02\xc0\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x1a\x00\x6b\x00\x42\x01\x13\x00\x14\x00\x6c\x00\xa2\x00\x39\x02\x6d\x00\x2b\x01\x90\x01\x15\x00\x42\x02\x33\x02\x6e\x00\x6f\x00\x70\x00\xa3\x00\xa4\x00\x71\x00\x72\x00\x97\x02\x91\x01\xc9\x00\xad\x00\x73\x00\x74\x00\x75\x00\xca\x00\xcb\x00\xd4\x00\xcd\x00\xce\x00\x98\x02\x43\x01\xcd\x00\x8a\x01\x61\x02\x27\x02\xb8\x02\xd5\x00\xd0\x00\x62\x02\x28\x02\x8d\x01\xd0\x00\xa9\x00\x1b\x00\x76\x00\x77\x00\x1c\x00\x1d\x00\x78\x00\x79\x00\x7a\x00\x1e\x00\xb9\x02\x1f\x00\x20\x00\x21\x00\x7b\x00\x7c\x00\x7d\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x7e\x00\x27\x00\x28\x00\x7f\x00\x29\x00\x2a\x00\x80\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x81\x00\xcd\x00\x8a\x01\xc9\x01\x82\x00\xd4\x00\x87\x02\x83\x00\x30\x00\x31\x00\x91\x01\xd0\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\xaa\x02\x79\x02\x43\x00\x9b\x01\x7b\x02\xa9\x00\x62\x02\xa1\x02\xce\x01\x62\x02\xd4\x00\x9c\x01\x9d\x01\x8f\x00\x9e\x01\x39\x00\x3a\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x1a\x00\x6b\x00\xa8\x02\x84\x02\x85\x02\x6c\x00\x83\x02\x84\x02\x85\x02\xc1\x00\x13\x00\x14\x00\x0d\x01\x0e\x01\x6e\x00\x6f\x00\x70\x00\x87\x02\x15\x00\x71\x00\x72\x00\xc2\x00\xc4\x00\xbd\x00\x9a\x02\x73\x00\x74\x00\x75\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xbe\x00\xa9\x00\xe4\x01\x8d\x02\xd4\x00\xb1\x00\x4b\x01\xa2\x02\x8d\x01\xc3\x00\xd4\x00\x3e\x01\x3f\x01\x13\x00\x14\x00\x8e\x02\xa6\x02\x12\x02\x1c\x00\x1d\x00\xa9\x00\x15\x00\x7d\x02\x1e\x00\x40\x01\x1f\x00\xa9\x00\x21\x00\x24\x02\x13\x02\x81\x02\x22\x00\x23\x00\x24\x00\xa9\x00\x26\x00\x82\x02\x27\x00\x28\x00\x7f\x00\xc9\x01\x2a\x00\xd4\x00\x83\x02\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x13\x01\x14\x01\xac\x00\xad\x00\xae\x00\xaf\x00\x45\x01\x83\x00\x30\x00\x31\x00\x87\x02\xb1\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x1a\x00\xf7\x00\xce\x01\x4c\x01\xd4\x00\xb8\x00\x03\x01\x04\x01\x3e\x01\x3f\x01\x13\x00\x14\x00\x14\x02\x88\x02\x6e\x00\x6f\x00\x70\x00\x89\x02\x15\x00\x71\x00\x72\x00\x40\x01\x15\x01\x16\x01\x15\x02\x73\x00\x74\x00\x75\x00\x8c\x02\xa9\x00\x9b\x00\x13\x00\x14\x00\x3c\x02\x50\x01\x9d\x00\xe2\x01\x18\x02\xd4\x00\x15\x00\x1d\x00\x93\x02\x9e\x00\x0f\x01\x10\x01\x11\x01\x12\x01\x60\x01\xb9\x00\x19\x02\x1c\x00\x1d\x00\x22\x00\x9f\x00\xa9\x00\x1e\x00\x26\x00\x1f\x00\xe4\x01\x21\x00\xd4\x00\x45\x02\xa0\x00\x22\x00\x23\x00\x24\x00\x46\x02\x26\x00\x2f\x00\x27\x00\x28\x00\x7f\x00\x4b\x02\x2a\x00\x32\x02\x33\x02\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x23\x02\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x83\x00\x30\x00\x31\x00\xd2\x01\xd3\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x25\x02\x6b\x00\xce\x01\x5c\x02\xd4\x00\x6c\x00\x03\x01\x04\x01\x6d\x00\xd2\x01\xd9\x01\x93\x01\x26\x02\x4e\x02\x6e\x00\x6f\x00\x70\x00\x27\x02\x23\x02\x71\x00\x72\x00\x0d\x01\x0e\x01\x94\x01\x59\x02\x73\x00\x74\x00\x75\x00\xa9\x00\x0d\x00\x0e\x00\x0f\x00\x5b\x02\x10\x00\x17\x01\x18\x01\x19\x01\x11\x00\x12\x00\x13\x00\x14\x00\x60\x02\x13\x01\x14\x01\x15\x01\x16\x01\x63\x02\x15\x00\x76\x00\x77\x00\x16\x00\x4d\x01\x78\x00\x79\x00\x7a\x00\x7a\x02\x3e\x01\x3f\x01\x13\x00\x14\x00\x7b\x00\x7c\x00\x7d\x00\x7c\x02\xe5\x01\xf2\x01\x15\x00\xb9\x00\x7e\x00\x40\x01\x17\x00\x7f\x00\xfd\x01\xfe\x01\x80\x00\x0f\x02\xc5\x00\x13\x00\x14\x00\x09\x02\x81\x00\x0e\x02\xd4\x01\x11\x02\x82\x00\x15\x00\x1b\x02\x83\x00\xc7\x00\xa9\x00\x1c\x02\x18\x00\x1e\x02\x0d\x00\x1a\x00\xc5\x01\xc6\x01\xd4\x00\x1f\x02\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\xb8\x00\x09\x01\x27\x02\x2b\x02\x0a\x01\x2d\x02\x8f\x00\x0b\x01\x47\x00\x48\x00\x49\x00\x4a\x00\x0c\x01\x8f\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x90\x00\x30\x02\x35\x02\x55\x01\x1b\x00\x5a\x01\x8f\x01\x1c\x00\x1d\x00\xa2\x01\xa9\x00\xa0\x01\x1e\x00\xaf\x01\x1f\x00\x20\x00\x21\x00\xda\x01\xdb\x01\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\xe5\x01\x27\x00\x28\x00\xc9\x00\x29\x00\x2a\x00\xde\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xff\xff\x0d\x00\x1a\x00\xe0\x00\xeb\x01\xaa\x00\xe1\x00\xab\x00\x30\x00\x31\x00\xe2\x00\x42\x02\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x84\x00\xe8\x00\xeb\x00\xac\x00\xad\x00\xae\x00\xaf\x00\x2f\x01\xed\x00\xff\xff\x09\x01\x0b\x01\xb1\x00\x43\x02\xb3\x00\x0a\x01\x0c\x01\x4e\x01\x2c\x01\x2d\x01\xff\xff\x31\x01\x3e\x01\x3f\x01\x13\x00\x14\x00\x39\x00\x3a\x00\x96\x00\xc7\x01\x1b\x00\x34\x01\x15\x00\x1c\x00\x1d\x00\x40\x01\x35\x01\xff\xff\x1e\x00\x0d\x00\x1f\x00\x20\x00\x21\x00\x00\x00\xb2\x00\xb3\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x0d\x00\x1a\x00\x00\x00\xee\x01\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x84\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x90\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3a\x00\x96\x00\xc7\x01\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x0d\x00\x1a\x00\x00\x00\xf7\x01\x00\x00\x00\x00\x93\x02\x30\x00\x31\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x84\x00\x00\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x53\x01\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x90\x00\x39\x00\x3a\x00\x96\x00\xc7\x01\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x8d\x01\xc6\x01\xd4\x00\x30\x00\x31\x00\x55\x02\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x84\x00\xb8\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x90\x00\x00\x00\x39\x00\x3a\x00\x96\x00\xc7\x01\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\xb4\x01\x30\x00\x31\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x5e\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x90\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3a\x00\x96\x00\xc7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\xa9\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x1a\x00\x91\x00\xf9\x01\xde\x01\x00\x00\xab\x00\x30\x00\x31\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\x00\x00\x00\x00\x00\x00\x8f\x00\xb1\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x3d\x01\x00\x00\xef\x00\x4c\x00\x7a\x01\x3e\x01\x3f\x01\x13\x00\x14\x00\x39\x00\x3a\x00\x96\x00\x5f\x02\x1b\x00\x00\x00\x15\x00\x1c\x00\x1d\x00\x40\x01\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x21\x00\x00\x00\x00\x00\x53\x01\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\xe7\x01\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x93\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x15\x00\x00\x00\xe2\x00\x16\x00\x00\x00\x00\x00\x39\x00\x3a\x00\x96\x00\xc7\x01\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\xe8\x01\xc1\x01\xc2\x01\x1e\x00\xe9\x01\x1f\x00\x20\x00\x21\x00\x17\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x1a\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x30\x00\x31\x00\xef\x00\xfa\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x3a\x00\x3b\x00\x3c\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x15\x00\x00\x00\xf5\x00\x16\x00\x00\x00\x00\x00\x39\x00\x3a\x00\x96\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\xa9\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x21\x00\x00\x00\x17\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x1a\x00\x2d\x01\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x01\x30\x00\x31\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\x00\x00\x00\x00\x00\x00\x42\x00\xb1\x00\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x2f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x1e\x00\xa9\x00\x1f\x00\x20\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x1a\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x30\x00\x31\x00\xef\x00\x21\x02\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\xf3\x01\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xbe\x00\x42\x00\x00\x00\x43\x00\x00\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x30\x00\x31\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xc5\x00\x13\x00\x14\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x00\x00\x00\x00\x15\x00\x00\x00\x42\x00\xc7\x00\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x1d\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x22\x00\x00\x00\x30\x00\x31\x00\x26\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x8f\x00\x2f\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x7b\x01\x43\x00\x3c\x02\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x1a\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x30\x00\x31\x00\xef\x00\x77\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x93\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x43\x00\x4a\x01\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\xf7\x01\xc1\x01\xc2\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x1a\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x30\x00\x31\x00\xef\x00\x78\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x96\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1a\x00\x1e\x00\x54\x02\x1f\x00\x20\x00\x21\x00\x00\x00\x17\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x30\x00\x31\x00\xef\x00\x79\x01\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1a\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x39\x00\x3a\x00\x2a\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x30\x00\x31\x00\xef\x00\xf4\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1a\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x21\x00\xa2\x00\x52\x01\x00\x00\x22\x00\x23\x00\x24\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\xa3\x00\xa4\x00\x2a\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x30\x00\x31\x00\xef\x00\xf8\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x21\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\xa3\x00\xa4\x00\x2a\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x30\x00\x31\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x85\x01\x38\x00\x6b\x01\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x6c\x01\x1a\x01\x1b\x01\x1c\x01\x1d\x01\x1e\x01\x1f\x01\x20\x01\x21\x01\x22\x01\x23\x01\x24\x01\x6e\x00\x6f\x00\x70\x00\x45\x01\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x92\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\xf9\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x3a\x00\x3b\x00\x3c\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x8f\x00\x83\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x15\x00\x00\x00\xf7\x00\x16\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x7f\x00\x65\x01\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x83\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x82\x01\x3d\x00\x3e\x00\x3f\x00\x40\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x00\x00\x65\x01\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x8f\x00\x6b\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x83\x01\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x8f\x00\x6b\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x7e\x01\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x3a\x00\x3b\x00\x3c\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x7f\x00\x65\x01\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x83\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x84\x01\x00\x00\xa6\x00\x40\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x00\x00\x48\x02\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x8f\x00\x6b\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x7f\x01\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x01\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\x8f\x00\xbc\x01\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\xfa\x00\x00\x00\x6e\x00\x6f\x00\xbd\x01\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x83\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x87\x01\x1d\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x22\x00\x65\x01\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x7f\x00\xbe\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x2f\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x80\x01\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x0c\x02\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\xdc\x00\x00\x00\x93\x00\x0d\x02\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x9c\x02\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x9d\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\xfb\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x46\x01\x3b\x00\xa5\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x47\x01\xef\x00\xfc\x00\x83\x00\x00\x00\x48\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\xe6\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xe7\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x7c\x01\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x69\x01\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x8f\x00\x6b\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x81\x01\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x39\x02\x3b\x00\xa5\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x02\x00\x00\x8f\x00\x83\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x7d\x01\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x06\x02\x00\x00\x00\x00\x00\x00\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x07\x02\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x9b\x00\x13\x00\x14\x00\x33\x02\x50\x01\x9d\x00\x93\x00\x0e\x00\x0f\x00\x15\x00\x10\x00\x00\x00\x9e\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x9f\x00\x15\x00\x00\x00\x00\x00\x16\x00\xbe\x01\xad\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x22\x00\x00\x00\xcd\x00\xf9\x01\x26\x00\xc0\x01\xc1\x01\xc2\x01\x7f\x00\x08\x02\x00\x00\xc3\x01\xd0\x00\x17\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\xdc\x00\x00\x00\x93\x00\x99\x02\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x00\x1d\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x22\x00\x73\x00\x74\x00\x75\x00\x26\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x83\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x88\x01\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\xdc\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\xa4\x00\x3b\x00\xa5\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x8b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x96\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x7f\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x83\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x86\x01\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x58\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x04\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x23\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x7f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x83\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\xe4\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x7f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x83\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\xf7\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x0d\x00\x00\x00\x6b\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x7f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x00\xbc\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x7f\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x01\x02\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x68\x02\x00\x00\x9e\x00\x69\x02\x6a\x02\x00\x00\x00\x00\x00\x00\x6b\x02\x00\x00\x00\x00\x6c\x02\x6d\x02\x02\x02\x00\x00\x00\x00\x6e\x02\x6f\x02\x70\x02\x71\x02\x00\x00\x00\x00\x72\x02\x73\x02\x00\x00\x74\x02\x00\x00\x00\x00\x75\x02\x00\x00\x76\x02\x77\x02\x78\x02\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x00\x00\x26\x00\x84\x00\x27\x00\x28\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x00\x00\x00\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x00\x00\x00\x00\x94\x01\x3b\x00\xa5\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x9b\x00\x13\x00\x14\x00\x4f\x01\x50\x01\x9d\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x95\x01\x5b\x00\x5c\x00\x96\x01\x97\x01\x00\x00\x98\x01\xa0\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x61\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x00\x00\x00\x00\x94\x01\x3b\x00\xa5\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x9b\x00\x13\x00\x14\x00\x00\x00\x35\x02\x9d\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x95\x01\x5b\x00\x5c\x00\x00\x00\x1f\x02\x00\x00\x20\x02\xa0\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x61\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x93\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\xb0\x02\x5b\x00\x5c\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\xac\x02\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x02\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\xad\x02\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x61\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x93\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x9d\x02\x5b\x00\x5c\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x9f\x02\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x4e\x02\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x61\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x02\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x50\x02\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x1c\x02\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x61\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x01\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\xa0\x01\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\xeb\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x61\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xfe\x00\x9b\x00\x13\x00\x14\x00\x00\x00\x9c\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x9e\x00\x9b\x00\x13\x00\x14\x00\x00\x00\x00\x00\xff\x00\x5a\x00\x5b\x00\x5c\x00\x15\x00\x9f\x00\x00\x00\x9e\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x9e\x01\x00\x00\x00\x00\xa0\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x01\x01\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xfe\x00\x9b\x00\x13\x00\x14\x00\x00\x00\x00\x00\xcf\x01\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x9e\x00\x9b\x00\x13\x00\x14\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x15\x00\x9f\x00\x00\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\xa0\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x01\x01\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xfe\x00\x9b\x00\x13\x00\x14\x00\x00\x00\x00\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x9e\x00\x9b\x00\x13\x00\x14\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x15\x00\x9f\x00\x00\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xa0\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x01\x01\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x90\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x90\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x90\x00\x00\x00\x00\x00\x00\x00\xd6\x00\x49\x02\xd8\x00\xd9\x00\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x02\x00\x00\x0a\x02\xd9\x00\xda\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xa2\x01\xa3\x01\xa9\x00\xa4\x01\x3b\x00\xa5\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x93\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x00\x00\x00\x00\xe7\x01\x00\x00\x17\x00\x15\x00\x00\x00\x00\x00\x16\x00\xbe\x01\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x00\xbf\x01\x00\x00\xc0\x01\xc1\x01\xc2\x01\x00\x00\x00\x00\x00\x00\xc3\x01\xd0\x00\x17\x00\x93\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x00\x00\x00\x00\xe7\x01\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x01\xc1\x01\xc2\x01\x00\x00\xec\x01\x00\x00\x00\x00\x00\x00\x17\x00\x93\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x15\x00\x00\x00\x5a\x01\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x01\xc1\x01\xc2\x01\x00\x00\xf5\x01\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x13\x00\x14\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x46\x01\x3b\x00\xa5\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x5c\x01\x9f\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x5b\x01\x00\x00\x00\x00\xa0\x00\x00\x00\x15\x00\x00\x00\x8f\x00\x16\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xf0\x00\x17\x00\x00\x00\x00\x00\xf2\x01\x00\x00\x00\x00\x00\x00\x00\x00\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x48\x01\x00\x00\x00\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x5d\x01\xb3\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\xb8\x01\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x00\x00\x27\x00\x28\x00\x9e\x00\x29\x00\x2a\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\xb9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x30\x00\x00\x00\x00\x00\x1d\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x25\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x2f\x00\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\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x59\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x04\x02\x00\x00\x1c\x00\x1d\x00\x00\x00\xc2\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x24\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x2a\x00\x00\x00\xc2\x00\x2c\x00\x2d\x00\x2e\x00\x2f\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\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x93\x00\x0e\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x8a\x01\x00\x00\xc0\x01\xc1\x01\xc2\x01\x00\x00\x00\x00\x00\x00\xc3\x01\xd0\x00\x17\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xf0\x00\x00\x00\x00\x00\x8f\x00\xb1\x01\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xf0\x00\x00\x00\x00\x00\x8f\x00\xce\x01\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xf0\x00\x00\x00\x00\x00\x8f\x00\xd5\x01\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xf0\x00\x00\x00\x00\x00\x8f\x00\xf1\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xa2\x01\x4c\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xa2\x01\x19\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xab\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x9a\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x89\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x4b\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x67\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x89\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xa8\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xac\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xad\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xe4\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\xa7\x00\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x61\x01\x62\x01\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x63\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\xa6\x02\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x63\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x90\x02\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x63\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x69\x01\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x63\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x46\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x56\x02\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x6c\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x6d\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x6e\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x6f\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x70\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x71\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x72\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x73\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x74\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x75\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x76\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\xaf\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\xe5\x01\x8f\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\xef\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x48\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (11, 451) [ - (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), - (250 , happyReduce_250), - (251 , happyReduce_251), - (252 , happyReduce_252), - (253 , happyReduce_253), - (254 , happyReduce_254), - (255 , happyReduce_255), - (256 , happyReduce_256), - (257 , happyReduce_257), - (258 , happyReduce_258), - (259 , happyReduce_259), - (260 , happyReduce_260), - (261 , happyReduce_261), - (262 , happyReduce_262), - (263 , happyReduce_263), - (264 , happyReduce_264), - (265 , happyReduce_265), - (266 , happyReduce_266), - (267 , happyReduce_267), - (268 , happyReduce_268), - (269 , happyReduce_269), - (270 , happyReduce_270), - (271 , happyReduce_271), - (272 , happyReduce_272), - (273 , happyReduce_273), - (274 , happyReduce_274), - (275 , happyReduce_275), - (276 , happyReduce_276), - (277 , happyReduce_277), - (278 , happyReduce_278), - (279 , happyReduce_279), - (280 , happyReduce_280), - (281 , happyReduce_281), - (282 , happyReduce_282), - (283 , happyReduce_283), - (284 , happyReduce_284), - (285 , happyReduce_285), - (286 , happyReduce_286), - (287 , happyReduce_287), - (288 , happyReduce_288), - (289 , happyReduce_289), - (290 , happyReduce_290), - (291 , happyReduce_291), - (292 , happyReduce_292), - (293 , happyReduce_293), - (294 , happyReduce_294), - (295 , happyReduce_295), - (296 , happyReduce_296), - (297 , happyReduce_297), - (298 , happyReduce_298), - (299 , happyReduce_299), - (300 , happyReduce_300), - (301 , happyReduce_301), - (302 , happyReduce_302), - (303 , happyReduce_303), - (304 , happyReduce_304), - (305 , happyReduce_305), - (306 , happyReduce_306), - (307 , happyReduce_307), - (308 , happyReduce_308), - (309 , happyReduce_309), - (310 , happyReduce_310), - (311 , happyReduce_311), - (312 , happyReduce_312), - (313 , happyReduce_313), - (314 , happyReduce_314), - (315 , happyReduce_315), - (316 , happyReduce_316), - (317 , happyReduce_317), - (318 , happyReduce_318), - (319 , happyReduce_319), - (320 , happyReduce_320), - (321 , happyReduce_321), - (322 , happyReduce_322), - (323 , happyReduce_323), - (324 , happyReduce_324), - (325 , happyReduce_325), - (326 , happyReduce_326), - (327 , happyReduce_327), - (328 , happyReduce_328), - (329 , happyReduce_329), - (330 , happyReduce_330), - (331 , happyReduce_331), - (332 , happyReduce_332), - (333 , happyReduce_333), - (334 , happyReduce_334), - (335 , happyReduce_335), - (336 , happyReduce_336), - (337 , happyReduce_337), - (338 , happyReduce_338), - (339 , happyReduce_339), - (340 , happyReduce_340), - (341 , happyReduce_341), - (342 , happyReduce_342), - (343 , happyReduce_343), - (344 , happyReduce_344), - (345 , happyReduce_345), - (346 , happyReduce_346), - (347 , happyReduce_347), - (348 , happyReduce_348), - (349 , happyReduce_349), - (350 , happyReduce_350), - (351 , happyReduce_351), - (352 , happyReduce_352), - (353 , happyReduce_353), - (354 , happyReduce_354), - (355 , happyReduce_355), - (356 , happyReduce_356), - (357 , happyReduce_357), - (358 , happyReduce_358), - (359 , happyReduce_359), - (360 , happyReduce_360), - (361 , happyReduce_361), - (362 , happyReduce_362), - (363 , happyReduce_363), - (364 , happyReduce_364), - (365 , happyReduce_365), - (366 , happyReduce_366), - (367 , happyReduce_367), - (368 , happyReduce_368), - (369 , happyReduce_369), - (370 , happyReduce_370), - (371 , happyReduce_371), - (372 , happyReduce_372), - (373 , happyReduce_373), - (374 , happyReduce_374), - (375 , happyReduce_375), - (376 , happyReduce_376), - (377 , happyReduce_377), - (378 , happyReduce_378), - (379 , happyReduce_379), - (380 , happyReduce_380), - (381 , happyReduce_381), - (382 , happyReduce_382), - (383 , happyReduce_383), - (384 , happyReduce_384), - (385 , happyReduce_385), - (386 , happyReduce_386), - (387 , happyReduce_387), - (388 , happyReduce_388), - (389 , happyReduce_389), - (390 , happyReduce_390), - (391 , happyReduce_391), - (392 , happyReduce_392), - (393 , happyReduce_393), - (394 , happyReduce_394), - (395 , happyReduce_395), - (396 , happyReduce_396), - (397 , happyReduce_397), - (398 , happyReduce_398), - (399 , happyReduce_399), - (400 , happyReduce_400), - (401 , happyReduce_401), - (402 , happyReduce_402), - (403 , happyReduce_403), - (404 , happyReduce_404), - (405 , happyReduce_405), - (406 , happyReduce_406), - (407 , happyReduce_407), - (408 , happyReduce_408), - (409 , happyReduce_409), - (410 , happyReduce_410), - (411 , happyReduce_411), - (412 , happyReduce_412), - (413 , happyReduce_413), - (414 , happyReduce_414), - (415 , happyReduce_415), - (416 , happyReduce_416), - (417 , happyReduce_417), - (418 , happyReduce_418), - (419 , happyReduce_419), - (420 , happyReduce_420), - (421 , happyReduce_421), - (422 , happyReduce_422), - (423 , happyReduce_423), - (424 , happyReduce_424), - (425 , happyReduce_425), - (426 , happyReduce_426), - (427 , happyReduce_427), - (428 , happyReduce_428), - (429 , happyReduce_429), - (430 , happyReduce_430), - (431 , happyReduce_431), - (432 , happyReduce_432), - (433 , happyReduce_433), - (434 , happyReduce_434), - (435 , happyReduce_435), - (436 , happyReduce_436), - (437 , happyReduce_437), - (438 , happyReduce_438), - (439 , happyReduce_439), - (440 , happyReduce_440), - (441 , happyReduce_441), - (442 , happyReduce_442), - (443 , happyReduce_443), - (444 , happyReduce_444), - (445 , happyReduce_445), - (446 , happyReduce_446), - (447 , happyReduce_447), - (448 , happyReduce_448), - (449 , happyReduce_449), - (450 , happyReduce_450), - (451 , happyReduce_451) - ] - -happy_n_terms = 140 :: Int -happy_n_nonterms = 104 :: Int - -happyReduce_11 = happySpecReduce_1 0# happyReduction_11 -happyReduction_11 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn14 - (Id (getID happy_var_1) (locOf happy_var_1) - )} - -happyReduce_12 = happySpecReduce_1 0# happyReduction_12 -happyReduction_12 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn14 - (AntiId (getANTI_ID happy_var_1) (locOf happy_var_1) - )} - -happyReduce_13 = happySpecReduce_1 1# happyReduction_13 -happyReduction_13 happy_x_1 - = case happyOut14 happy_x_1 of { happy_var_1 -> - happyIn15 - (happy_var_1 - )} - -happyReduce_14 = happySpecReduce_1 1# happyReduction_14 -happyReduction_14 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn15 - (Id (getNAMED happy_var_1) (locOf happy_var_1) - )} - -happyReduce_15 = happySpecReduce_1 2# happyReduction_15 -happyReduction_15 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (let (s, sign, n) = getINT happy_var_1 - in - IntConst s sign n (locOf happy_var_1) - )} - -happyReduce_16 = happySpecReduce_1 2# happyReduction_16 -happyReduction_16 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (let (s, sign, n) = getLONG happy_var_1 - in - LongIntConst s sign n (locOf happy_var_1) - )} - -happyReduce_17 = happySpecReduce_1 2# happyReduction_17 -happyReduction_17 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (let (s, sign, n) = getLONG_LONG happy_var_1 - in - LongLongIntConst s sign n (locOf happy_var_1) - )} - -happyReduce_18 = happySpecReduce_1 2# happyReduction_18 -happyReduction_18 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (let (s, n) = getFLOAT happy_var_1 - in - FloatConst s n (locOf happy_var_1) - )} - -happyReduce_19 = happySpecReduce_1 2# happyReduction_19 -happyReduction_19 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (let (s, n) = getDOUBLE happy_var_1 - in - DoubleConst s n (locOf happy_var_1) - )} - -happyReduce_20 = happySpecReduce_1 2# happyReduction_20 -happyReduction_20 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (let (s, n) = getLONG_DOUBLE happy_var_1 - in - LongDoubleConst s n (locOf happy_var_1) - )} - -happyReduce_21 = happySpecReduce_1 2# happyReduction_21 -happyReduction_21 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (let (s, c) = getCHAR happy_var_1 - in - CharConst s c (locOf happy_var_1) - )} - -happyReduce_22 = happySpecReduce_1 2# happyReduction_22 -happyReduction_22 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (AntiInt (getANTI_INT happy_var_1) (locOf happy_var_1) - )} - -happyReduce_23 = happySpecReduce_1 2# happyReduction_23 -happyReduction_23 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (AntiUInt (getANTI_UINT happy_var_1) (locOf happy_var_1) - )} - -happyReduce_24 = happySpecReduce_1 2# happyReduction_24 -happyReduction_24 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (AntiLInt (getANTI_LINT happy_var_1) (locOf happy_var_1) - )} - -happyReduce_25 = happySpecReduce_1 2# happyReduction_25 -happyReduction_25 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (AntiULInt (getANTI_ULINT happy_var_1) (locOf happy_var_1) - )} - -happyReduce_26 = happySpecReduce_1 2# happyReduction_26 -happyReduction_26 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (AntiFloat (getANTI_FLOAT happy_var_1) (locOf happy_var_1) - )} - -happyReduce_27 = happySpecReduce_1 2# happyReduction_27 -happyReduction_27 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (AntiDouble (getANTI_DOUBLE happy_var_1) (locOf happy_var_1) - )} - -happyReduce_28 = happySpecReduce_1 2# happyReduction_28 -happyReduction_28 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (AntiLongDouble (getANTI_LONG_DOUBLE happy_var_1) (locOf happy_var_1) - )} - -happyReduce_29 = happySpecReduce_1 2# happyReduction_29 -happyReduction_29 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (AntiChar (getANTI_CHAR happy_var_1) (locOf happy_var_1) - )} - -happyReduce_30 = happySpecReduce_1 2# happyReduction_30 -happyReduction_30 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn16 - (AntiString (getANTI_STRING happy_var_1) (locOf happy_var_1) - )} - -happyReduce_31 = happySpecReduce_1 3# happyReduction_31 -happyReduction_31 happy_x_1 - = case happyOut14 happy_x_1 of { happy_var_1 -> - happyIn17 - (Var happy_var_1 (locOf happy_var_1) - )} - -happyReduce_32 = happySpecReduce_1 3# happyReduction_32 -happyReduction_32 happy_x_1 - = case happyOut16 happy_x_1 of { happy_var_1 -> - happyIn17 - (Const happy_var_1 (locOf happy_var_1) - )} - -happyReduce_33 = happySpecReduce_1 3# happyReduction_33 -happyReduction_33 happy_x_1 - = case happyOut18 happy_x_1 of { happy_var_1 -> - happyIn17 - (let { ss = rev happy_var_1 - ; loc = locOf ss - ; raw = map (fst . unLoc) ss - ; s = (concat . intersperse " " . map (snd . unLoc)) ss - } - in - Const (StringConst raw s loc) loc - )} - -happyReduce_34 = happySpecReduce_3 3# happyReduction_34 -happyReduction_34 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut36 happy_x_2 of { happy_var_2 -> - happyIn17 - (happy_var_2 - )} - -happyReduce_35 = happyMonadReduce 3# 3# happyReduction_35 -happyReduction_35 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut36 happy_x_2 of { happy_var_2 -> - ( unclosed (happy_var_1 <--> happy_var_2) "(")}} - ) (\r -> happyReturn (happyIn17 r)) - -happyReduce_36 = happySpecReduce_3 3# happyReduction_36 -happyReduction_36 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut90 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn17 - (let Block items _ = happy_var_2 - in - StmExpr items (happy_var_1 <--> happy_var_3) - )}}} - -happyReduce_37 = happySpecReduce_1 3# happyReduction_37 -happyReduction_37 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn17 - (AntiExp (getANTI_EXP happy_var_1) (locOf happy_var_1) - )} - -happyReduce_38 = happySpecReduce_1 4# happyReduction_38 -happyReduction_38 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn18 - (rsingleton (L (getLoc happy_var_1) (getSTRING happy_var_1)) - )} - -happyReduce_39 = happySpecReduce_2 4# happyReduction_39 -happyReduction_39 happy_x_2 - happy_x_1 - = case happyOut18 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn18 - (rcons (L (getLoc happy_var_2) (getSTRING happy_var_2)) happy_var_1 - )}} - -happyReduce_40 = happySpecReduce_1 5# happyReduction_40 -happyReduction_40 happy_x_1 - = case happyOut17 happy_x_1 of { happy_var_1 -> - happyIn19 - (happy_var_1 - )} - -happyReduce_41 = happyMonadReduce 3# 5# happyReduction_41 -happyReduction_41 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut19 happy_x_1 of { happy_var_1 -> - ( unclosed (locOf happy_var_1) "[")} - ) (\r -> happyReturn (happyIn19 r)) - -happyReduce_42 = happyReduce 4# 5# happyReduction_42 -happyReduction_42 (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 happyOut36 happy_x_3 of { happy_var_3 -> - case happyOutTok happy_x_4 of { happy_var_4 -> - happyIn19 - (Index happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_43 = happyMonadReduce 3# 5# happyReduction_43 -happyReduction_43 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> - ( unclosed (locOf happy_var_2) "(")} - ) (\r -> happyReturn (happyIn19 r)) - -happyReduce_44 = happySpecReduce_3 5# happyReduction_44 -happyReduction_44 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut19 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn19 - (FnCall happy_var_1 [] (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_45 = happyMonadReduce 4# 5# happyReduction_45 -happyReduction_45 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> - case happyOut21 happy_x_3 of { happy_var_3 -> - ( unclosed (happy_var_2 <--> rev happy_var_3) "(")}} - ) (\r -> happyReturn (happyIn19 r)) - -happyReduce_46 = happyReduce 4# 5# 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 happyOut21 happy_x_3 of { happy_var_3 -> - case happyOutTok happy_x_4 of { happy_var_4 -> - happyIn19 - (FnCall happy_var_1 (rev happy_var_3) (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_47 = happyMonadReduce 4# 5# happyReduction_47 -happyReduction_47 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> - case happyOut20 happy_x_3 of { happy_var_3 -> - ( unclosed (happy_var_2 <--> happy_var_3) "<<<")}} - ) (\r -> happyReturn (happyIn19 r)) - -happyReduce_48 = happyReduce 6# 5# happyReduction_48 -happyReduction_48 (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 happyOut19 happy_x_1 of { happy_var_1 -> - case happyOut20 happy_x_3 of { happy_var_3 -> - case happyOutTok happy_x_6 of { happy_var_6 -> - happyIn19 - (CudaCall happy_var_1 happy_var_3 [] (happy_var_1 <--> happy_var_6) - ) `HappyStk` happyRest}}} - -happyReduce_49 = happyMonadReduce 7# 5# happyReduction_49 -happyReduction_49 (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) tk - = happyThen (case happyOutTok happy_x_5 of { happy_var_5 -> - case happyOut21 happy_x_6 of { happy_var_6 -> - ( unclosed (happy_var_5 <--> rev happy_var_6) "(")}} - ) (\r -> happyReturn (happyIn19 r)) - -happyReduce_50 = happyReduce 7# 5# happyReduction_50 -happyReduction_50 (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 happyOut19 happy_x_1 of { happy_var_1 -> - case happyOut20 happy_x_3 of { happy_var_3 -> - case happyOut21 happy_x_6 of { happy_var_6 -> - case happyOutTok happy_x_7 of { happy_var_7 -> - happyIn19 - (CudaCall happy_var_1 happy_var_3 (rev happy_var_6) (happy_var_1 <--> happy_var_7) - ) `HappyStk` happyRest}}}} - -happyReduce_51 = happySpecReduce_3 5# happyReduction_51 -happyReduction_51 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut19 happy_x_1 of { happy_var_1 -> - case happyOut15 happy_x_3 of { happy_var_3 -> - happyIn19 - (Member happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_52 = happySpecReduce_3 5# happyReduction_52 -happyReduction_52 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut19 happy_x_1 of { happy_var_1 -> - case happyOut15 happy_x_3 of { happy_var_3 -> - happyIn19 - (PtrMember happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_53 = happySpecReduce_2 5# happyReduction_53 -happyReduction_53 happy_x_2 - happy_x_1 - = case happyOut19 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn19 - (PostInc happy_var_1 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_54 = happySpecReduce_2 5# happyReduction_54 -happyReduction_54 happy_x_2 - happy_x_1 - = case happyOut19 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn19 - (PostDec happy_var_1 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_55 = happyReduce 6# 5# happyReduction_55 -happyReduction_55 (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_1 of { happy_var_1 -> - case happyOut79 happy_x_2 of { happy_var_2 -> - case happyOut84 happy_x_5 of { happy_var_5 -> - case happyOutTok happy_x_6 of { happy_var_6 -> - happyIn19 - (CompoundLit (happy_var_2 :: Type) (rev happy_var_5) (happy_var_1 <--> happy_var_6) - ) `HappyStk` happyRest}}}} - -happyReduce_56 = happyReduce 7# 5# happyReduction_56 -happyReduction_56 (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_1 of { happy_var_1 -> - case happyOut79 happy_x_2 of { happy_var_2 -> - case happyOut84 happy_x_5 of { happy_var_5 -> - case happyOutTok happy_x_7 of { happy_var_7 -> - happyIn19 - (CompoundLit happy_var_2 (rev happy_var_5) (happy_var_1 <--> happy_var_7) - ) `HappyStk` happyRest}}}} - -happyReduce_57 = happyReduce 6# 5# happyReduction_57 -happyReduction_57 (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_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - case happyOut77 happy_x_5 of { happy_var_5 -> - case happyOutTok happy_x_6 of { happy_var_6 -> - happyIn19 - (BuiltinVaArg happy_var_3 happy_var_5 (happy_var_1 <--> happy_var_6) - ) `HappyStk` happyRest}}}} - -happyReduce_58 = happyMonadReduce 1# 6# happyReduction_58 -happyReduction_58 (happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut21 happy_x_1 of { happy_var_1 -> - (do { let args = rev happy_var_1 - ; when (length args < 2 || length args > 4) $ - badExecutionContext (getLoc args) args - ; return $ - case args of - [gridDim, blockDim] -> - ExeConfig gridDim blockDim - Nothing Nothing - (locOf args) - [gridDim, blockDim, sharedSize] -> - ExeConfig gridDim blockDim - (Just sharedSize) Nothing - (locOf args) - [gridDim, blockDim, sharedSize, exeStream] -> - ExeConfig gridDim blockDim - (Just sharedSize) (Just exeStream) - (locOf args) - })} - ) (\r -> happyReturn (happyIn20 r)) - -happyReduce_59 = happySpecReduce_1 7# happyReduction_59 -happyReduction_59 happy_x_1 - = case happyOut35 happy_x_1 of { happy_var_1 -> - happyIn21 - (rsingleton happy_var_1 - )} - -happyReduce_60 = happySpecReduce_1 7# happyReduction_60 -happyReduction_60 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn21 - (rsingleton (AntiArgs (getANTI_ARGS happy_var_1) (locOf happy_var_1)) - )} - -happyReduce_61 = happySpecReduce_3 7# happyReduction_61 -happyReduction_61 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut21 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn21 - (rcons happy_var_3 happy_var_1 - )}} - -happyReduce_62 = happySpecReduce_3 7# happyReduction_62 -happyReduction_62 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut21 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn21 - (rcons (AntiArgs (getANTI_ARGS happy_var_3) (locOf happy_var_3)) happy_var_1 - )}} - -happyReduce_63 = happySpecReduce_1 8# happyReduction_63 -happyReduction_63 happy_x_1 - = case happyOut19 happy_x_1 of { happy_var_1 -> - happyIn22 - (happy_var_1 - )} - -happyReduce_64 = happySpecReduce_2 8# happyReduction_64 -happyReduction_64 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut22 happy_x_2 of { happy_var_2 -> - happyIn22 - (PreInc happy_var_2 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_65 = happySpecReduce_2 8# happyReduction_65 -happyReduction_65 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut22 happy_x_2 of { happy_var_2 -> - happyIn22 - (PreDec happy_var_2 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_66 = happySpecReduce_2 8# happyReduction_66 -happyReduction_66 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut23 happy_x_2 of { happy_var_2 -> - happyIn22 - (UnOp AddrOf happy_var_2 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_67 = happySpecReduce_2 8# happyReduction_67 -happyReduction_67 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut23 happy_x_2 of { happy_var_2 -> - happyIn22 - (UnOp Deref happy_var_2 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_68 = happySpecReduce_2 8# happyReduction_68 -happyReduction_68 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut23 happy_x_2 of { happy_var_2 -> - happyIn22 - (UnOp Positive happy_var_2 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_69 = happySpecReduce_2 8# happyReduction_69 -happyReduction_69 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut23 happy_x_2 of { happy_var_2 -> - happyIn22 - (UnOp Negate happy_var_2 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_70 = happySpecReduce_2 8# happyReduction_70 -happyReduction_70 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut23 happy_x_2 of { happy_var_2 -> - happyIn22 - (UnOp Not happy_var_2 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_71 = happySpecReduce_2 8# happyReduction_71 -happyReduction_71 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut23 happy_x_2 of { happy_var_2 -> - happyIn22 - (UnOp Lnot happy_var_2 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_72 = happySpecReduce_2 8# happyReduction_72 -happyReduction_72 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut22 happy_x_2 of { happy_var_2 -> - happyIn22 - (SizeofExp happy_var_2 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_73 = happyReduce 4# 8# happyReduction_73 -happyReduction_73 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut79 happy_x_3 of { happy_var_3 -> - case happyOutTok happy_x_4 of { happy_var_4 -> - happyIn22 - (SizeofType happy_var_3 (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_74 = happyMonadReduce 4# 8# happyReduction_74 -happyReduction_74 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> - case happyOut79 happy_x_3 of { happy_var_3 -> - ( unclosed (happy_var_2 <--> happy_var_3) "(")}} - ) (\r -> happyReturn (happyIn22 r)) - -happyReduce_75 = happySpecReduce_1 9# happyReduction_75 -happyReduction_75 happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - happyIn23 - (happy_var_1 - )} - -happyReduce_76 = happyReduce 4# 9# happyReduction_76 -happyReduction_76 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut79 happy_x_2 of { happy_var_2 -> - case happyOut23 happy_x_4 of { happy_var_4 -> - happyIn23 - (Cast happy_var_2 happy_var_4 (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_77 = happyMonadReduce 3# 9# happyReduction_77 -happyReduction_77 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut79 happy_x_2 of { happy_var_2 -> - ( unclosed (happy_var_1 <--> happy_var_2) "(")}} - ) (\r -> happyReturn (happyIn23 r)) - -happyReduce_78 = happySpecReduce_1 10# happyReduction_78 -happyReduction_78 happy_x_1 - = case happyOut23 happy_x_1 of { happy_var_1 -> - happyIn24 - (happy_var_1 - )} - -happyReduce_79 = happySpecReduce_3 10# happyReduction_79 -happyReduction_79 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut24 happy_x_1 of { happy_var_1 -> - case happyOut23 happy_x_3 of { happy_var_3 -> - happyIn24 - (BinOp Mul happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_80 = happySpecReduce_3 10# happyReduction_80 -happyReduction_80 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut24 happy_x_1 of { happy_var_1 -> - case happyOut23 happy_x_3 of { happy_var_3 -> - happyIn24 - (BinOp Div happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_81 = happySpecReduce_3 10# happyReduction_81 -happyReduction_81 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut24 happy_x_1 of { happy_var_1 -> - case happyOut23 happy_x_3 of { happy_var_3 -> - happyIn24 - (BinOp Mod happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_82 = happySpecReduce_1 11# happyReduction_82 -happyReduction_82 happy_x_1 - = case happyOut24 happy_x_1 of { happy_var_1 -> - happyIn25 - (happy_var_1 - )} - -happyReduce_83 = happySpecReduce_3 11# happyReduction_83 -happyReduction_83 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut25 happy_x_1 of { happy_var_1 -> - case happyOut24 happy_x_3 of { happy_var_3 -> - happyIn25 - (BinOp Add happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_84 = happySpecReduce_3 11# happyReduction_84 -happyReduction_84 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut25 happy_x_1 of { happy_var_1 -> - case happyOut24 happy_x_3 of { happy_var_3 -> - happyIn25 - (BinOp Sub happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_85 = happySpecReduce_1 12# happyReduction_85 -happyReduction_85 happy_x_1 - = case happyOut25 happy_x_1 of { happy_var_1 -> - happyIn26 - (happy_var_1 - )} - -happyReduce_86 = happySpecReduce_3 12# happyReduction_86 -happyReduction_86 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut26 happy_x_1 of { happy_var_1 -> - case happyOut25 happy_x_3 of { happy_var_3 -> - happyIn26 - (BinOp Lsh happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_87 = happySpecReduce_3 12# happyReduction_87 -happyReduction_87 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut26 happy_x_1 of { happy_var_1 -> - case happyOut25 happy_x_3 of { happy_var_3 -> - happyIn26 - (BinOp Rsh happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_88 = happySpecReduce_1 13# happyReduction_88 -happyReduction_88 happy_x_1 - = case happyOut26 happy_x_1 of { happy_var_1 -> - happyIn27 - (happy_var_1 - )} - -happyReduce_89 = happySpecReduce_3 13# happyReduction_89 -happyReduction_89 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut27 happy_x_1 of { happy_var_1 -> - case happyOut26 happy_x_3 of { happy_var_3 -> - happyIn27 - (BinOp Lt happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_90 = happySpecReduce_3 13# happyReduction_90 -happyReduction_90 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut27 happy_x_1 of { happy_var_1 -> - case happyOut26 happy_x_3 of { happy_var_3 -> - happyIn27 - (BinOp Gt happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_91 = happySpecReduce_3 13# happyReduction_91 -happyReduction_91 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut27 happy_x_1 of { happy_var_1 -> - case happyOut26 happy_x_3 of { happy_var_3 -> - happyIn27 - (BinOp Le happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_92 = happySpecReduce_3 13# happyReduction_92 -happyReduction_92 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut27 happy_x_1 of { happy_var_1 -> - case happyOut26 happy_x_3 of { happy_var_3 -> - happyIn27 - (BinOp Ge happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_93 = happySpecReduce_1 14# happyReduction_93 -happyReduction_93 happy_x_1 - = case happyOut27 happy_x_1 of { happy_var_1 -> - happyIn28 - (happy_var_1 - )} - -happyReduce_94 = happySpecReduce_3 14# happyReduction_94 -happyReduction_94 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 -> - happyIn28 - (BinOp Eq happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_95 = happySpecReduce_3 14# happyReduction_95 -happyReduction_95 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 -> - happyIn28 - (BinOp Ne happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_96 = happySpecReduce_1 15# happyReduction_96 -happyReduction_96 happy_x_1 - = case happyOut28 happy_x_1 of { happy_var_1 -> - happyIn29 - (happy_var_1 - )} - -happyReduce_97 = happySpecReduce_3 15# happyReduction_97 -happyReduction_97 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut29 happy_x_1 of { happy_var_1 -> - case happyOut28 happy_x_3 of { happy_var_3 -> - happyIn29 - (BinOp And happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_98 = happySpecReduce_1 16# happyReduction_98 -happyReduction_98 happy_x_1 - = case happyOut29 happy_x_1 of { happy_var_1 -> - happyIn30 - (happy_var_1 - )} - -happyReduce_99 = happySpecReduce_3 16# happyReduction_99 -happyReduction_99 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 -> - happyIn30 - (BinOp Xor happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_100 = happySpecReduce_1 17# happyReduction_100 -happyReduction_100 happy_x_1 - = case happyOut30 happy_x_1 of { happy_var_1 -> - happyIn31 - (happy_var_1 - )} - -happyReduce_101 = happySpecReduce_3 17# happyReduction_101 -happyReduction_101 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut31 happy_x_1 of { happy_var_1 -> - case happyOut30 happy_x_3 of { happy_var_3 -> - happyIn31 - (BinOp Or happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_102 = happySpecReduce_1 18# happyReduction_102 -happyReduction_102 happy_x_1 - = case happyOut31 happy_x_1 of { happy_var_1 -> - happyIn32 - (happy_var_1 - )} - -happyReduce_103 = happySpecReduce_3 18# happyReduction_103 -happyReduction_103 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut32 happy_x_1 of { happy_var_1 -> - case happyOut31 happy_x_3 of { happy_var_3 -> - happyIn32 - (BinOp Land happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_104 = happySpecReduce_1 19# happyReduction_104 -happyReduction_104 happy_x_1 - = case happyOut32 happy_x_1 of { happy_var_1 -> - happyIn33 - (happy_var_1 - )} - -happyReduce_105 = happySpecReduce_3 19# happyReduction_105 -happyReduction_105 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut33 happy_x_1 of { happy_var_1 -> - case happyOut32 happy_x_3 of { happy_var_3 -> - happyIn33 - (BinOp Lor happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_106 = happySpecReduce_1 20# happyReduction_106 -happyReduction_106 happy_x_1 - = case happyOut33 happy_x_1 of { happy_var_1 -> - happyIn34 - (happy_var_1 - )} - -happyReduce_107 = happyReduce 5# 20# happyReduction_107 -happyReduction_107 (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 happyOut36 happy_x_3 of { happy_var_3 -> - case happyOut34 happy_x_5 of { happy_var_5 -> - happyIn34 - (Cond happy_var_1 happy_var_3 happy_var_5 (happy_var_1 <--> happy_var_5) - ) `HappyStk` happyRest}}} - -happyReduce_108 = happySpecReduce_1 21# happyReduction_108 -happyReduction_108 happy_x_1 - = case happyOut34 happy_x_1 of { happy_var_1 -> - happyIn35 - (happy_var_1 - )} - -happyReduce_109 = happySpecReduce_3 21# happyReduction_109 -happyReduction_109 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn35 - (Assign happy_var_1 JustAssign happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_110 = happySpecReduce_3 21# happyReduction_110 -happyReduction_110 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn35 - (Assign happy_var_1 MulAssign happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_111 = happySpecReduce_3 21# happyReduction_111 -happyReduction_111 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn35 - (Assign happy_var_1 DivAssign happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_112 = happySpecReduce_3 21# happyReduction_112 -happyReduction_112 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn35 - (Assign happy_var_1 ModAssign happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_113 = happySpecReduce_3 21# happyReduction_113 -happyReduction_113 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn35 - (Assign happy_var_1 AddAssign happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_114 = happySpecReduce_3 21# happyReduction_114 -happyReduction_114 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn35 - (Assign happy_var_1 SubAssign happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_115 = happySpecReduce_3 21# happyReduction_115 -happyReduction_115 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn35 - (Assign happy_var_1 LshAssign happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_116 = happySpecReduce_3 21# happyReduction_116 -happyReduction_116 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn35 - (Assign happy_var_1 RshAssign happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_117 = happySpecReduce_3 21# happyReduction_117 -happyReduction_117 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn35 - (Assign happy_var_1 AndAssign happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_118 = happySpecReduce_3 21# happyReduction_118 -happyReduction_118 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn35 - (Assign happy_var_1 XorAssign happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_119 = happySpecReduce_3 21# happyReduction_119 -happyReduction_119 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut22 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn35 - (Assign happy_var_1 OrAssign happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_120 = happySpecReduce_1 22# happyReduction_120 -happyReduction_120 happy_x_1 - = case happyOut35 happy_x_1 of { happy_var_1 -> - happyIn36 - (happy_var_1 - )} - -happyReduce_121 = happySpecReduce_3 22# happyReduction_121 -happyReduction_121 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 -> - happyIn36 - (Seq happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_122 = happySpecReduce_0 23# happyReduction_122 -happyReduction_122 = happyIn37 - (Nothing - ) - -happyReduce_123 = happySpecReduce_1 23# happyReduction_123 -happyReduction_123 happy_x_1 - = case happyOut36 happy_x_1 of { happy_var_1 -> - happyIn37 - (Just happy_var_1 - )} - -happyReduce_124 = happySpecReduce_1 24# happyReduction_124 -happyReduction_124 happy_x_1 - = case happyOut34 happy_x_1 of { happy_var_1 -> - happyIn38 - (happy_var_1 - )} - -happyReduce_125 = happySpecReduce_2 25# happyReduction_125 -happyReduction_125 happy_x_2 - happy_x_1 - = case happyOut40 happy_x_1 of { happy_var_1 -> - happyIn39 - (happy_var_1 - )} - -happyReduce_126 = happyMonadReduce 1# 26# happyReduction_126 -happyReduction_126 (happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut41 happy_x_1 of { happy_var_1 -> - ( do{ let (dspec, decl) = happy_var_1 - ; checkInitGroup dspec decl [] [] - })} - ) (\r -> happyReturn (happyIn40 r)) - -happyReduce_127 = happyMonadReduce 2# 26# happyReduction_127 -happyReduction_127 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut41 happy_x_1 of { happy_var_1 -> - case happyOut104 happy_x_2 of { happy_var_2 -> - ( do{ let (dspec, decl) = happy_var_1 - ; checkInitGroup dspec decl happy_var_2 [] - })}} - ) (\r -> happyReturn (happyIn40 r)) - -happyReduce_128 = happyMonadReduce 2# 26# happyReduction_128 -happyReduction_128 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut41 happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_2 of { happy_var_2 -> - ( do{ let (dspec, decl) = happy_var_1 - ; let inits = rev happy_var_2 - ; checkInitGroup dspec decl [] (rev happy_var_2) - })}} - ) (\r -> happyReturn (happyIn40 r)) - -happyReduce_129 = happyMonadReduce 3# 26# happyReduction_129 -happyReduction_129 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut41 happy_x_1 of { happy_var_1 -> - case happyOut104 happy_x_2 of { happy_var_2 -> - case happyOut46 happy_x_3 of { happy_var_3 -> - ( do{ let (dspec, decl) = happy_var_1 - ; checkInitGroup dspec decl happy_var_2 (rev happy_var_3) - })}}} - ) (\r -> happyReturn (happyIn40 r)) - -happyReduce_130 = happyMonadReduce 2# 26# happyReduction_130 -happyReduction_130 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut41 happy_x_1 of { happy_var_1 -> - ( do{ let (_, decl) = happy_var_1 - ; expected (locOf decl) ["';'"] - })} - ) (\r -> happyReturn (happyIn40 r)) - -happyReduce_131 = happySpecReduce_1 26# happyReduction_131 -happyReduction_131 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn40 - (AntiDecl (getANTI_DECL happy_var_1) (locOf happy_var_1) - )} - -happyReduce_132 = happySpecReduce_1 27# happyReduction_132 -happyReduction_132 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn41 - (let { v = getANTI_TYPE happy_var_1 - ; loc = locOf happy_var_1 - } - in - (AntiTypeDeclSpec [] [] v loc, AntiTypeDecl v loc) - )} - -happyReduce_133 = happySpecReduce_2 27# happyReduction_133 -happyReduction_133 happy_x_2 - happy_x_1 - = case happyOut45 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn41 - (let { storage = mkStorage happy_var_1 - ; typeQuals = mkTypeQuals happy_var_1 - ; v = getANTI_TYPE happy_var_2 - ; loc = happy_var_1 <--> happy_var_2 - } - in - (AntiTypeDeclSpec storage typeQuals v loc, AntiTypeDecl v loc) - )}} - -happyReduce_134 = happySpecReduce_1 27# happyReduction_134 -happyReduction_134 happy_x_1 - = case happyOut42 happy_x_1 of { happy_var_1 -> - happyIn41 - (happy_var_1 - )} - -happyReduce_135 = happySpecReduce_1 27# happyReduction_135 -happyReduction_135 happy_x_1 - = case happyOut43 happy_x_1 of { happy_var_1 -> - happyIn41 - (happy_var_1 - )} - -happyReduce_136 = happySpecReduce_1 28# happyReduction_136 -happyReduction_136 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn42 - (let dspec = AntiDeclSpec (getANTI_SPEC happy_var_1) (locOf happy_var_1) - in - (dspec, DeclRoot (locOf happy_var_1)) - )} - -happyReduce_137 = happyMonadReduce 1# 28# happyReduction_137 -happyReduction_137 (happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut45 happy_x_1 of { happy_var_1 -> - ( do{ dspec <- mkDeclSpec happy_var_1 - ; return (dspec, DeclRoot (locOf happy_var_1)) - })} - ) (\r -> happyReturn (happyIn42 r)) - -happyReduce_138 = happyMonadReduce 1# 28# happyReduction_138 -happyReduction_138 (happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut50 happy_x_1 of { happy_var_1 -> - ( do{ dspec <- mkDeclSpec [happy_var_1] - ; return (dspec, DeclRoot (locOf happy_var_1) ) - })} - ) (\r -> happyReturn (happyIn42 r)) - -happyReduce_139 = happyMonadReduce 2# 28# happyReduction_139 -happyReduction_139 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut50 happy_x_1 of { happy_var_1 -> - case happyOut44 happy_x_2 of { happy_var_2 -> - ( do{ dspec <- mkDeclSpec (happy_var_1 : happy_var_2) - ; return (dspec, DeclRoot (happy_var_1 <--> happy_var_2)) - })}} - ) (\r -> happyReturn (happyIn42 r)) - -happyReduce_140 = happyMonadReduce 2# 28# happyReduction_140 -happyReduction_140 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut45 happy_x_1 of { happy_var_1 -> - case happyOut50 happy_x_2 of { happy_var_2 -> - ( do{ dspec <- mkDeclSpec (happy_var_1 ++ [happy_var_2]) - ; return $(dspec, DeclRoot (happy_var_1 <--> happy_var_2)) - })}} - ) (\r -> happyReturn (happyIn42 r)) - -happyReduce_141 = happyMonadReduce 3# 28# happyReduction_141 -happyReduction_141 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut45 happy_x_1 of { happy_var_1 -> - case happyOut50 happy_x_2 of { happy_var_2 -> - case happyOut44 happy_x_3 of { happy_var_3 -> - ( do{ dspec <- mkDeclSpec (happy_var_1 ++ happy_var_2 : happy_var_3) - ; return (dspec, DeclRoot (happy_var_1 <--> happy_var_3)) - })}}} - ) (\r -> happyReturn (happyIn42 r)) - -happyReduce_142 = happyMonadReduce 1# 29# happyReduction_142 -happyReduction_142 (happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut82 happy_x_1 of { happy_var_1 -> - ( do{ dspec <- mkDeclSpec [happy_var_1] - ; return (dspec, DeclRoot (locOf happy_var_1)) - })} - ) (\r -> happyReturn (happyIn43 r)) - -happyReduce_143 = happyMonadReduce 2# 29# happyReduction_143 -happyReduction_143 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut82 happy_x_1 of { happy_var_1 -> - case happyOut45 happy_x_2 of { happy_var_2 -> - ( do{ dspec <- mkDeclSpec (happy_var_1 : happy_var_2) - ; return (dspec, DeclRoot (happy_var_1 <--> happy_var_2)) - })}} - ) (\r -> happyReturn (happyIn43 r)) - -happyReduce_144 = happyMonadReduce 2# 29# happyReduction_144 -happyReduction_144 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut45 happy_x_1 of { happy_var_1 -> - case happyOut82 happy_x_2 of { happy_var_2 -> - ( do{ dspec <- mkDeclSpec (happy_var_1 ++ [happy_var_2]) - ; return (dspec, DeclRoot (happy_var_1 <--> happy_var_2)) - })}} - ) (\r -> happyReturn (happyIn43 r)) - -happyReduce_145 = happyMonadReduce 3# 29# happyReduction_145 -happyReduction_145 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut45 happy_x_1 of { happy_var_1 -> - case happyOut82 happy_x_2 of { happy_var_2 -> - case happyOut45 happy_x_3 of { happy_var_3 -> - ( do{ dspec <- mkDeclSpec (happy_var_1 ++ happy_var_2 : happy_var_3) - ; return (dspec, DeclRoot (happy_var_1 <--> happy_var_3)) - })}}} - ) (\r -> happyReturn (happyIn43 r)) - -happyReduce_146 = happySpecReduce_1 30# happyReduction_146 -happyReduction_146 happy_x_1 - = case happyOut49 happy_x_1 of { happy_var_1 -> - happyIn44 - ([happy_var_1] - )} - -happyReduce_147 = happySpecReduce_2 30# happyReduction_147 -happyReduction_147 happy_x_2 - happy_x_1 - = case happyOut49 happy_x_1 of { happy_var_1 -> - case happyOut44 happy_x_2 of { happy_var_2 -> - happyIn44 - (happy_var_1 : happy_var_2 - )}} - -happyReduce_148 = happySpecReduce_1 30# happyReduction_148 -happyReduction_148 happy_x_1 - = case happyOut50 happy_x_1 of { happy_var_1 -> - happyIn44 - ([happy_var_1] - )} - -happyReduce_149 = happySpecReduce_2 30# happyReduction_149 -happyReduction_149 happy_x_2 - happy_x_1 - = case happyOut50 happy_x_1 of { happy_var_1 -> - case happyOut44 happy_x_2 of { happy_var_2 -> - happyIn44 - (happy_var_1 : happy_var_2 - )}} - -happyReduce_150 = happySpecReduce_1 30# happyReduction_150 -happyReduction_150 happy_x_1 - = case happyOut62 happy_x_1 of { happy_var_1 -> - happyIn44 - ([happy_var_1] - )} - -happyReduce_151 = happySpecReduce_2 30# happyReduction_151 -happyReduction_151 happy_x_2 - happy_x_1 - = case happyOut62 happy_x_1 of { happy_var_1 -> - case happyOut44 happy_x_2 of { happy_var_2 -> - happyIn44 - (happy_var_1 : happy_var_2 - )}} - -happyReduce_152 = happySpecReduce_1 31# happyReduction_152 -happyReduction_152 happy_x_1 - = case happyOut49 happy_x_1 of { happy_var_1 -> - happyIn45 - ([happy_var_1] - )} - -happyReduce_153 = happySpecReduce_2 31# happyReduction_153 -happyReduction_153 happy_x_2 - happy_x_1 - = case happyOut49 happy_x_1 of { happy_var_1 -> - case happyOut45 happy_x_2 of { happy_var_2 -> - happyIn45 - (happy_var_1 : happy_var_2 - )}} - -happyReduce_154 = happySpecReduce_1 31# happyReduction_154 -happyReduction_154 happy_x_1 - = case happyOut62 happy_x_1 of { happy_var_1 -> - happyIn45 - ([happy_var_1] - )} - -happyReduce_155 = happySpecReduce_2 31# happyReduction_155 -happyReduction_155 happy_x_2 - happy_x_1 - = case happyOut62 happy_x_1 of { happy_var_1 -> - case happyOut45 happy_x_2 of { happy_var_2 -> - happyIn45 - (happy_var_1 : happy_var_2 - )}} - -happyReduce_156 = happySpecReduce_1 32# happyReduction_156 -happyReduction_156 happy_x_1 - = case happyOut48 happy_x_1 of { happy_var_1 -> - happyIn46 - (rsingleton happy_var_1 - )} - -happyReduce_157 = happySpecReduce_3 32# happyReduction_157 -happyReduction_157 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut46 happy_x_1 of { happy_var_1 -> - case happyOut48 happy_x_3 of { happy_var_3 -> - happyIn46 - (rcons happy_var_3 happy_var_1 - )}} - -happyReduce_158 = happySpecReduce_0 33# happyReduction_158 -happyReduction_158 = happyIn47 - (Nothing - ) - -happyReduce_159 = happyReduce 4# 33# happyReduction_159 -happyReduction_159 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn47 - (Just ((fst . getSTRING) happy_var_3) - ) `HappyStk` happyRest} - -happyReduce_160 = happySpecReduce_2 34# happyReduction_160 -happyReduction_160 happy_x_2 - happy_x_1 - = case happyOut67 happy_x_1 of { happy_var_1 -> - case happyOut47 happy_x_2 of { happy_var_2 -> - happyIn48 - (let { (ident, declToDecl) = happy_var_1 - ; decl = declToDecl (declRoot ident) - } - in - Init ident decl happy_var_2 Nothing [] (ident <--> decl) - )}} - -happyReduce_161 = happySpecReduce_3 34# happyReduction_161 -happyReduction_161 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut67 happy_x_1 of { happy_var_1 -> - case happyOut104 happy_x_2 of { happy_var_2 -> - case happyOut47 happy_x_3 of { happy_var_3 -> - happyIn48 - (let { (ident, declToDecl) = happy_var_1 - ; decl = declToDecl (declRoot ident) - } - in - Init ident decl happy_var_3 Nothing happy_var_2 (ident <--> decl) - )}}} - -happyReduce_162 = happyReduce 4# 34# happyReduction_162 -happyReduction_162 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut67 happy_x_1 of { happy_var_1 -> - case happyOut47 happy_x_2 of { happy_var_2 -> - case happyOut83 happy_x_4 of { happy_var_4 -> - happyIn48 - (let { (ident, declToDecl) = happy_var_1 - ; decl = declToDecl (declRoot ident) - } - in - Init ident decl happy_var_2 (Just happy_var_4) [] (ident <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_163 = happyReduce 5# 34# happyReduction_163 -happyReduction_163 (happy_x_5 `HappyStk` - happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut67 happy_x_1 of { happy_var_1 -> - case happyOut47 happy_x_2 of { happy_var_2 -> - case happyOut104 happy_x_4 of { happy_var_4 -> - case happyOut83 happy_x_5 of { happy_var_5 -> - happyIn48 - (let { (ident, declToDecl) = happy_var_1 - ; decl = declToDecl (declRoot ident) - } - in - Init ident decl happy_var_2 (Just happy_var_5) happy_var_4 (ident <--> happy_var_5) - ) `HappyStk` happyRest}}}} - -happyReduce_164 = happyMonadReduce 2# 34# happyReduction_164 -happyReduction_164 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut67 happy_x_1 of { happy_var_1 -> - ( do{ let (ident, declToDecl) = happy_var_1 - ; let decl = declToDecl (declRoot ident) - ; expected (locOf decl) ["'='"] - })} - ) (\r -> happyReturn (happyIn48 r)) - -happyReduce_165 = happySpecReduce_1 35# happyReduction_165 -happyReduction_165 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn49 - (TSauto (locOf happy_var_1) - )} - -happyReduce_166 = happySpecReduce_1 35# happyReduction_166 -happyReduction_166 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn49 - (TSregister (locOf happy_var_1) - )} - -happyReduce_167 = happySpecReduce_1 35# happyReduction_167 -happyReduction_167 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn49 - (TSstatic (locOf happy_var_1) - )} - -happyReduce_168 = happySpecReduce_1 35# happyReduction_168 -happyReduction_168 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn49 - (TSextern (locOf happy_var_1) - )} - -happyReduce_169 = happySpecReduce_2 35# happyReduction_169 -happyReduction_169 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn49 - (TSexternL ((snd . getSTRING) happy_var_2) (locOf happy_var_1) - )}} - -happyReduce_170 = happySpecReduce_1 35# happyReduction_170 -happyReduction_170 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn49 - (TStypedef (locOf happy_var_1) - )} - -happyReduce_171 = happySpecReduce_1 36# happyReduction_171 -happyReduction_171 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn50 - (TSvoid (locOf happy_var_1) - )} - -happyReduce_172 = happySpecReduce_1 36# happyReduction_172 -happyReduction_172 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn50 - (TSchar (locOf happy_var_1) - )} - -happyReduce_173 = happySpecReduce_1 36# happyReduction_173 -happyReduction_173 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn50 - (TSshort (locOf happy_var_1) - )} - -happyReduce_174 = happySpecReduce_1 36# happyReduction_174 -happyReduction_174 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn50 - (TSint (locOf happy_var_1) - )} - -happyReduce_175 = happySpecReduce_1 36# happyReduction_175 -happyReduction_175 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn50 - (TSlong (locOf happy_var_1) - )} - -happyReduce_176 = happySpecReduce_1 36# happyReduction_176 -happyReduction_176 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn50 - (TSfloat (locOf happy_var_1) - )} - -happyReduce_177 = happySpecReduce_1 36# happyReduction_177 -happyReduction_177 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn50 - (TSdouble (locOf happy_var_1) - )} - -happyReduce_178 = happySpecReduce_1 36# happyReduction_178 -happyReduction_178 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn50 - (TSsigned (locOf happy_var_1) - )} - -happyReduce_179 = happySpecReduce_1 36# happyReduction_179 -happyReduction_179 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn50 - (TSunsigned (locOf happy_var_1) - )} - -happyReduce_180 = happySpecReduce_1 36# happyReduction_180 -happyReduction_180 happy_x_1 - = case happyOut51 happy_x_1 of { happy_var_1 -> - happyIn50 - (happy_var_1 - )} - -happyReduce_181 = happySpecReduce_1 36# happyReduction_181 -happyReduction_181 happy_x_1 - = case happyOut59 happy_x_1 of { happy_var_1 -> - happyIn50 - (happy_var_1 - )} - -happyReduce_182 = happySpecReduce_1 36# happyReduction_182 -happyReduction_182 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn50 - (TSva_list (locOf happy_var_1) - )} - -happyReduce_183 = happySpecReduce_2 37# happyReduction_183 -happyReduction_183 happy_x_2 - happy_x_1 - = case happyOut52 happy_x_1 of { happy_var_1 -> - case happyOut15 happy_x_2 of { happy_var_2 -> - happyIn51 - ((unLoc happy_var_1) (Just happy_var_2) Nothing [] (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_184 = happySpecReduce_3 37# happyReduction_184 -happyReduction_184 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut52 happy_x_1 of { happy_var_1 -> - case happyOut104 happy_x_2 of { happy_var_2 -> - case happyOut15 happy_x_3 of { happy_var_3 -> - happyIn51 - ((unLoc happy_var_1) (Just happy_var_3) Nothing happy_var_2 (happy_var_1 <--> happy_var_3) - )}}} - -happyReduce_185 = happyReduce 4# 37# happyReduction_185 -happyReduction_185 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut52 happy_x_1 of { happy_var_1 -> - case happyOut53 happy_x_3 of { happy_var_3 -> - case happyOutTok happy_x_4 of { happy_var_4 -> - happyIn51 - ((unLoc happy_var_1) Nothing (Just (rev happy_var_3)) [] (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_186 = happyMonadReduce 4# 37# happyReduction_186 -happyReduction_186 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut52 happy_x_1 of { happy_var_1 -> - case happyOut53 happy_x_3 of { happy_var_3 -> - ( unclosed (happy_var_1 <--> rev happy_var_3) "{")}} - ) (\r -> happyReturn (happyIn51 r)) - -happyReduce_187 = happyReduce 5# 37# happyReduction_187 -happyReduction_187 (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_1 of { happy_var_1 -> - case happyOut15 happy_x_2 of { happy_var_2 -> - case happyOut53 happy_x_4 of { happy_var_4 -> - case happyOutTok happy_x_5 of { happy_var_5 -> - happyIn51 - ((unLoc happy_var_1) (Just happy_var_2) (Just (rev happy_var_4)) [] (happy_var_1 <--> happy_var_5) - ) `HappyStk` happyRest}}}} - -happyReduce_188 = happyMonadReduce 5# 37# happyReduction_188 -happyReduction_188 (happy_x_5 `HappyStk` - happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut52 happy_x_1 of { happy_var_1 -> - case happyOut53 happy_x_4 of { happy_var_4 -> - ( unclosed (happy_var_1 <--> rev happy_var_4) "{")}} - ) (\r -> happyReturn (happyIn51 r)) - -happyReduce_189 = happyReduce 6# 37# happyReduction_189 -happyReduction_189 (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 happyOut52 happy_x_1 of { happy_var_1 -> - case happyOut104 happy_x_2 of { happy_var_2 -> - case happyOut15 happy_x_3 of { happy_var_3 -> - case happyOut53 happy_x_5 of { happy_var_5 -> - case happyOutTok happy_x_6 of { happy_var_6 -> - happyIn51 - ((unLoc happy_var_1) (Just happy_var_3) (Just (rev happy_var_5)) happy_var_2 (happy_var_1 <--> happy_var_6) - ) `HappyStk` happyRest}}}}} - -happyReduce_190 = happyMonadReduce 6# 37# happyReduction_190 -happyReduction_190 (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) tk - = happyThen (case happyOut52 happy_x_1 of { happy_var_1 -> - case happyOut53 happy_x_5 of { happy_var_5 -> - ( unclosed (happy_var_1 <--> rev happy_var_5) "{")}} - ) (\r -> happyReturn (happyIn51 r)) - -happyReduce_191 = happySpecReduce_1 38# happyReduction_191 -happyReduction_191 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn52 - (L (getLoc happy_var_1) TSstruct - )} - -happyReduce_192 = happySpecReduce_1 38# happyReduction_192 -happyReduction_192 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn52 - (L (getLoc happy_var_1) TSunion - )} - -happyReduce_193 = happySpecReduce_1 39# happyReduction_193 -happyReduction_193 happy_x_1 - = case happyOut54 happy_x_1 of { happy_var_1 -> - happyIn53 - (rsingleton happy_var_1 - )} - -happyReduce_194 = happySpecReduce_1 39# happyReduction_194 -happyReduction_194 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn53 - (rsingleton (AntiSdecls (getANTI_SDECLS happy_var_1) (locOf happy_var_1)) - )} - -happyReduce_195 = happySpecReduce_2 39# happyReduction_195 -happyReduction_195 happy_x_2 - happy_x_1 - = case happyOut53 happy_x_1 of { happy_var_1 -> - case happyOut54 happy_x_2 of { happy_var_2 -> - happyIn53 - (rcons happy_var_2 happy_var_1 - )}} - -happyReduce_196 = happySpecReduce_2 39# happyReduction_196 -happyReduction_196 happy_x_2 - happy_x_1 - = case happyOut53 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn53 - (rcons (AntiSdecls (getANTI_SDECLS happy_var_2) (locOf happy_var_2)) happy_var_1 - )}} - -happyReduce_197 = happySpecReduce_3 40# happyReduction_197 -happyReduction_197 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut57 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn54 - (let dspec = AntiDeclSpec (getANTI_SPEC happy_var_1) (locOf happy_var_1) - in - FieldGroup dspec (rev happy_var_2) (happy_var_1 <--> happy_var_3) - )}}} - -happyReduce_198 = happyMonadReduce 3# 40# happyReduction_198 -happyReduction_198 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut55 happy_x_1 of { happy_var_1 -> - case happyOut57 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - ( do{ dspec <- mkDeclSpec happy_var_1 - ; return $ FieldGroup dspec (rev happy_var_2) (happy_var_1 <--> happy_var_3) - })}}} - ) (\r -> happyReturn (happyIn54 r)) - -happyReduce_199 = happyMonadReduce 3# 40# happyReduction_199 -happyReduction_199 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut15 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - ( do{ let v = getANTI_TYPE happy_var_1 - ; let dspec = AntiTypeDeclSpec [] [] v (locOf happy_var_1) - ; let decl = AntiTypeDecl v (locOf happy_var_1) - ; let field = Field (Just happy_var_2) (Just decl) Nothing (happy_var_1 <--> happy_var_2) - ; return $ FieldGroup dspec [field] (happy_var_1 <--> happy_var_3) - })}}} - ) (\r -> happyReturn (happyIn54 r)) - -happyReduce_200 = happySpecReduce_1 40# happyReduction_200 -happyReduction_200 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn54 - (AntiSdecl (getANTI_SDECL happy_var_1) (locOf happy_var_1) - )} - -happyReduce_201 = happySpecReduce_2 41# happyReduction_201 -happyReduction_201 happy_x_2 - happy_x_1 - = case happyOut50 happy_x_1 of { happy_var_1 -> - case happyOut56 happy_x_2 of { happy_var_2 -> - happyIn55 - (happy_var_1 : happy_var_2 - )}} - -happyReduce_202 = happySpecReduce_3 41# happyReduction_202 -happyReduction_202 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut73 happy_x_1 of { happy_var_1 -> - case happyOut50 happy_x_2 of { happy_var_2 -> - case happyOut56 happy_x_3 of { happy_var_3 -> - happyIn55 - (rev happy_var_1 ++ [happy_var_2] ++ happy_var_3 - )}}} - -happyReduce_203 = happySpecReduce_1 41# happyReduction_203 -happyReduction_203 happy_x_1 - = case happyOut82 happy_x_1 of { happy_var_1 -> - happyIn55 - ([happy_var_1] - )} - -happyReduce_204 = happySpecReduce_2 41# happyReduction_204 -happyReduction_204 happy_x_2 - happy_x_1 - = case happyOut82 happy_x_1 of { happy_var_1 -> - case happyOut73 happy_x_2 of { happy_var_2 -> - happyIn55 - (happy_var_1 : rev happy_var_2 - )}} - -happyReduce_205 = happySpecReduce_2 41# happyReduction_205 -happyReduction_205 happy_x_2 - happy_x_1 - = case happyOut73 happy_x_1 of { happy_var_1 -> - case happyOut82 happy_x_2 of { happy_var_2 -> - happyIn55 - (rev happy_var_1 ++ [happy_var_2] - )}} - -happyReduce_206 = happySpecReduce_3 41# happyReduction_206 -happyReduction_206 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut73 happy_x_1 of { happy_var_1 -> - case happyOut82 happy_x_2 of { happy_var_2 -> - case happyOut73 happy_x_3 of { happy_var_3 -> - happyIn55 - (rev happy_var_1 ++ [happy_var_2] ++ rev happy_var_3 - )}}} - -happyReduce_207 = happySpecReduce_0 42# happyReduction_207 -happyReduction_207 = happyIn56 - ([] - ) - -happyReduce_208 = happySpecReduce_1 42# happyReduction_208 -happyReduction_208 happy_x_1 - = case happyOut50 happy_x_1 of { happy_var_1 -> - happyIn56 - ([happy_var_1] - )} - -happyReduce_209 = happySpecReduce_2 42# happyReduction_209 -happyReduction_209 happy_x_2 - happy_x_1 - = case happyOut50 happy_x_1 of { happy_var_1 -> - case happyOut55 happy_x_2 of { happy_var_2 -> - happyIn56 - (happy_var_1 : happy_var_2 - )}} - -happyReduce_210 = happySpecReduce_1 42# happyReduction_210 -happyReduction_210 happy_x_1 - = case happyOut62 happy_x_1 of { happy_var_1 -> - happyIn56 - ([happy_var_1] - )} - -happyReduce_211 = happySpecReduce_2 42# happyReduction_211 -happyReduction_211 happy_x_2 - happy_x_1 - = case happyOut62 happy_x_1 of { happy_var_1 -> - case happyOut55 happy_x_2 of { happy_var_2 -> - happyIn56 - (happy_var_1 : happy_var_2 - )}} - -happyReduce_212 = happySpecReduce_1 43# happyReduction_212 -happyReduction_212 happy_x_1 - = case happyOut58 happy_x_1 of { happy_var_1 -> - happyIn57 - (rsingleton happy_var_1 - )} - -happyReduce_213 = happySpecReduce_3 43# happyReduction_213 -happyReduction_213 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut57 happy_x_1 of { happy_var_1 -> - case happyOut58 happy_x_3 of { happy_var_3 -> - happyIn57 - (rcons happy_var_3 happy_var_1 - )}} - -happyReduce_214 = happySpecReduce_1 44# happyReduction_214 -happyReduction_214 happy_x_1 - = case happyOut67 happy_x_1 of { happy_var_1 -> - happyIn58 - (let { (ident, declToDecl) = happy_var_1 - ; decl = declToDecl (declRoot ident) - } - in - Field (Just ident) (Just decl) Nothing (locOf decl) - )} - -happyReduce_215 = happySpecReduce_2 44# happyReduction_215 -happyReduction_215 happy_x_2 - happy_x_1 - = case happyOut67 happy_x_1 of { happy_var_1 -> - happyIn58 - (let { (ident, declToDecl) = happy_var_1 - ; decl = declToDecl (declRoot ident) - } - in - Field (Just ident) (Just decl) Nothing (locOf decl) - )} - -happyReduce_216 = happySpecReduce_2 44# happyReduction_216 -happyReduction_216 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut38 happy_x_2 of { happy_var_2 -> - happyIn58 - (Field Nothing Nothing (Just happy_var_2) (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_217 = happySpecReduce_3 44# happyReduction_217 -happyReduction_217 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut67 happy_x_1 of { happy_var_1 -> - case happyOut38 happy_x_3 of { happy_var_3 -> - happyIn58 - (let { (ident, declToDecl) = happy_var_1 - ; decl = declToDecl (declRoot ident) - } - in - Field (Just ident) (Just decl) (Just happy_var_3) (locOf decl) - )}} - -happyReduce_218 = happySpecReduce_2 45# happyReduction_218 -happyReduction_218 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut15 happy_x_2 of { happy_var_2 -> - happyIn59 - (TSenum (Just happy_var_2) [] [] (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_219 = happySpecReduce_3 45# happyReduction_219 -happyReduction_219 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut104 happy_x_2 of { happy_var_2 -> - case happyOut15 happy_x_3 of { happy_var_3 -> - happyIn59 - (TSenum (Just happy_var_3) [] happy_var_2 (happy_var_1 <--> happy_var_3) - )}}} - -happyReduce_220 = happyReduce 4# 45# happyReduction_220 -happyReduction_220 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut60 happy_x_3 of { happy_var_3 -> - case happyOutTok happy_x_4 of { happy_var_4 -> - happyIn59 - (TSenum Nothing (rev happy_var_3) [] (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_221 = happyReduce 5# 45# happyReduction_221 -happyReduction_221 (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 { happy_var_1 -> - case happyOut15 happy_x_2 of { happy_var_2 -> - case happyOut60 happy_x_4 of { happy_var_4 -> - case happyOutTok happy_x_5 of { happy_var_5 -> - happyIn59 - (TSenum (Just happy_var_2) (rev happy_var_4) [] (happy_var_1 <--> happy_var_5) - ) `HappyStk` happyRest}}}} - -happyReduce_222 = happySpecReduce_1 46# happyReduction_222 -happyReduction_222 happy_x_1 - = case happyOut61 happy_x_1 of { happy_var_1 -> - happyIn60 - (rsingleton happy_var_1 - )} - -happyReduce_223 = happySpecReduce_1 46# happyReduction_223 -happyReduction_223 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn60 - (rsingleton (AntiEnums (getANTI_ENUMS happy_var_1) (locOf happy_var_1)) - )} - -happyReduce_224 = happySpecReduce_2 46# happyReduction_224 -happyReduction_224 happy_x_2 - happy_x_1 - = case happyOut60 happy_x_1 of { happy_var_1 -> - happyIn60 - (happy_var_1 - )} - -happyReduce_225 = happySpecReduce_3 46# happyReduction_225 -happyReduction_225 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut60 happy_x_1 of { happy_var_1 -> - case happyOut61 happy_x_3 of { happy_var_3 -> - happyIn60 - (rcons happy_var_3 happy_var_1 - )}} - -happyReduce_226 = happySpecReduce_3 46# happyReduction_226 -happyReduction_226 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut60 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn60 - (rcons (AntiEnums (getANTI_ENUMS happy_var_3) (locOf happy_var_3)) happy_var_1 - )}} - -happyReduce_227 = happySpecReduce_1 47# happyReduction_227 -happyReduction_227 happy_x_1 - = case happyOut14 happy_x_1 of { happy_var_1 -> - happyIn61 - (CEnum happy_var_1 Nothing (locOf happy_var_1) - )} - -happyReduce_228 = happySpecReduce_3 47# happyReduction_228 -happyReduction_228 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut14 happy_x_1 of { happy_var_1 -> - case happyOut38 happy_x_3 of { happy_var_3 -> - happyIn61 - (CEnum happy_var_1 (Just happy_var_3) (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_229 = happySpecReduce_1 47# happyReduction_229 -happyReduction_229 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn61 - (AntiEnum (getANTI_ENUM happy_var_1) (locOf happy_var_1) - )} - -happyReduce_230 = happySpecReduce_1 48# happyReduction_230 -happyReduction_230 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn62 - (TSconst (locOf happy_var_1) - )} - -happyReduce_231 = happySpecReduce_1 48# happyReduction_231 -happyReduction_231 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn62 - (TSinline (locOf happy_var_1) - )} - -happyReduce_232 = happySpecReduce_1 48# happyReduction_232 -happyReduction_232 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn62 - (TSrestrict (locOf happy_var_1) - )} - -happyReduce_233 = happySpecReduce_1 48# happyReduction_233 -happyReduction_233 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn62 - (TSvolatile (locOf happy_var_1) - )} - -happyReduce_234 = happySpecReduce_1 48# happyReduction_234 -happyReduction_234 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn62 - (TSdevice (locOf happy_var_1) - )} - -happyReduce_235 = happySpecReduce_1 48# happyReduction_235 -happyReduction_235 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn62 - (TSglobal (locOf happy_var_1) - )} - -happyReduce_236 = happySpecReduce_1 48# happyReduction_236 -happyReduction_236 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn62 - (TShost (locOf happy_var_1) - )} - -happyReduce_237 = happySpecReduce_1 48# happyReduction_237 -happyReduction_237 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn62 - (TSconstant (locOf happy_var_1) - )} - -happyReduce_238 = happySpecReduce_1 48# happyReduction_238 -happyReduction_238 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn62 - (TSshared (locOf happy_var_1) - )} - -happyReduce_239 = happySpecReduce_1 48# happyReduction_239 -happyReduction_239 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn62 - (TSnoinline (locOf happy_var_1) - )} - -happyReduce_240 = happySpecReduce_1 49# happyReduction_240 -happyReduction_240 happy_x_1 - = case happyOut64 happy_x_1 of { happy_var_1 -> - happyIn63 - (happy_var_1 - )} - -happyReduce_241 = happySpecReduce_2 49# happyReduction_241 -happyReduction_241 happy_x_2 - happy_x_1 - = case happyOut72 happy_x_1 of { happy_var_1 -> - case happyOut64 happy_x_2 of { happy_var_2 -> - happyIn63 - (let (ident, dirDecl) = happy_var_2 - in - (ident, dirDecl . happy_var_1) - )}} - -happyReduce_242 = happySpecReduce_1 50# happyReduction_242 -happyReduction_242 happy_x_1 - = case happyOut14 happy_x_1 of { happy_var_1 -> - happyIn64 - ((happy_var_1, id) - )} - -happyReduce_243 = happySpecReduce_3 50# happyReduction_243 -happyReduction_243 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut63 happy_x_2 of { happy_var_2 -> - happyIn64 - (happy_var_2 - )} - -happyReduce_244 = happyMonadReduce 3# 50# happyReduction_244 -happyReduction_244 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut63 happy_x_2 of { happy_var_2 -> - (do { let (ident, declToDecl) = happy_var_2 - ; let decl = declToDecl (declRoot ident) - ; unclosed (happy_var_1 <--> decl) "(" - })}} - ) (\r -> happyReturn (happyIn64 r)) - -happyReduce_245 = happySpecReduce_2 50# happyReduction_245 -happyReduction_245 happy_x_2 - happy_x_1 - = case happyOut64 happy_x_1 of { happy_var_1 -> - case happyOut71 happy_x_2 of { happy_var_2 -> - happyIn64 - (let (ident, declToDecl) = happy_var_1 - in - (ident, declToDecl . happy_var_2) - )}} - -happyReduce_246 = happySpecReduce_3 50# happyReduction_246 -happyReduction_246 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut64 happy_x_1 of { happy_var_1 -> - happyIn64 - (let { (ident, declToDecl) = happy_var_1 - ; proto = mkOldProto [] - } - in - (ident, declToDecl . proto) - )} - -happyReduce_247 = happyReduce 4# 50# happyReduction_247 -happyReduction_247 (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 happyOut74 happy_x_3 of { happy_var_3 -> - happyIn64 - (let { (ident, declToDecl) = happy_var_1 - ; proto = mkProto happy_var_3 - } - in - (ident, declToDecl . proto) - ) `HappyStk` happyRest}} - -happyReduce_248 = happyReduce 4# 50# happyReduction_248 -happyReduction_248 (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 happyOut78 happy_x_3 of { happy_var_3 -> - happyIn64 - (let { (ident, declToDecl) = happy_var_1 - ; proto = mkOldProto (rev happy_var_3) - } - in - (ident, declToDecl . proto) - ) `HappyStk` happyRest}} - -happyReduce_249 = happySpecReduce_1 51# happyReduction_249 -happyReduction_249 happy_x_1 - = case happyOut66 happy_x_1 of { happy_var_1 -> - happyIn65 - (happy_var_1 - )} - -happyReduce_250 = happySpecReduce_2 51# happyReduction_250 -happyReduction_250 happy_x_2 - happy_x_1 - = case happyOut72 happy_x_1 of { happy_var_1 -> - case happyOut66 happy_x_2 of { happy_var_2 -> - happyIn65 - (let (ident, dirDecl) = happy_var_2 - in - (ident, dirDecl . happy_var_1) - )}} - -happyReduce_251 = happySpecReduce_1 52# happyReduction_251 -happyReduction_251 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn66 - ((Id (getNAMED happy_var_1) (locOf happy_var_1), id) - )} - -happyReduce_252 = happySpecReduce_3 52# happyReduction_252 -happyReduction_252 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut65 happy_x_2 of { happy_var_2 -> - happyIn66 - (happy_var_2 - )} - -happyReduce_253 = happyMonadReduce 3# 52# happyReduction_253 -happyReduction_253 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut65 happy_x_2 of { happy_var_2 -> - (do { let (ident, declToDecl) = happy_var_2 - ; let decl = declToDecl (declRoot ident) - ; unclosed (happy_var_1 <--> decl) "(" - })}} - ) (\r -> happyReturn (happyIn66 r)) - -happyReduce_254 = happySpecReduce_2 52# happyReduction_254 -happyReduction_254 happy_x_2 - happy_x_1 - = case happyOut66 happy_x_1 of { happy_var_1 -> - case happyOut71 happy_x_2 of { happy_var_2 -> - happyIn66 - (let (ident, declToDecl) = happy_var_1 - in - (ident, declToDecl . happy_var_2) - )}} - -happyReduce_255 = happySpecReduce_3 52# happyReduction_255 -happyReduction_255 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut66 happy_x_1 of { happy_var_1 -> - happyIn66 - (let { (ident, declToDecl) = happy_var_1 - ; proto = mkOldProto [] - } - in - (ident, declToDecl . proto) - )} - -happyReduce_256 = happyReduce 4# 52# happyReduction_256 -happyReduction_256 (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 happyOut74 happy_x_3 of { happy_var_3 -> - happyIn66 - (let { (ident, declToDecl) = happy_var_1 - ; proto = mkProto happy_var_3 - } - in - (ident, declToDecl . proto) - ) `HappyStk` happyRest}} - -happyReduce_257 = happyReduce 4# 52# happyReduction_257 -happyReduction_257 (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 happyOut78 happy_x_3 of { happy_var_3 -> - happyIn66 - (let { (ident, declToDecl) = happy_var_1 - ; proto = mkOldProto (rev happy_var_3) - } - in - (ident, declToDecl . proto) - ) `HappyStk` happyRest}} - -happyReduce_258 = happySpecReduce_1 53# happyReduction_258 -happyReduction_258 happy_x_1 - = case happyOut63 happy_x_1 of { happy_var_1 -> - happyIn67 - (happy_var_1 - )} - -happyReduce_259 = happySpecReduce_1 53# happyReduction_259 -happyReduction_259 happy_x_1 - = case happyOut65 happy_x_1 of { happy_var_1 -> - happyIn67 - (happy_var_1 - )} - -happyReduce_260 = happySpecReduce_1 54# happyReduction_260 -happyReduction_260 happy_x_1 - = case happyOut69 happy_x_1 of { happy_var_1 -> - happyIn68 - (happy_var_1 - )} - -happyReduce_261 = happySpecReduce_2 54# happyReduction_261 -happyReduction_261 happy_x_2 - happy_x_1 - = case happyOut72 happy_x_1 of { happy_var_1 -> - case happyOut69 happy_x_2 of { happy_var_2 -> - happyIn68 - (let (ident, dirDecl) = happy_var_2 - in - (ident, dirDecl . happy_var_1) - )}} - -happyReduce_262 = happySpecReduce_1 55# happyReduction_262 -happyReduction_262 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn69 - ((Id (getNAMED happy_var_1) (locOf happy_var_1), id) - )} - -happyReduce_263 = happyReduce 4# 55# happyReduction_263 -happyReduction_263 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut72 happy_x_2 of { happy_var_2 -> - case happyOut69 happy_x_3 of { happy_var_3 -> - happyIn69 - (let (ident, dirDecl) = happy_var_3 - in - (ident, dirDecl . happy_var_2) - ) `HappyStk` happyRest}} - -happyReduce_264 = happySpecReduce_2 55# happyReduction_264 -happyReduction_264 happy_x_2 - happy_x_1 - = case happyOut69 happy_x_1 of { happy_var_1 -> - case happyOut71 happy_x_2 of { happy_var_2 -> - happyIn69 - (let (ident, declToDecl) = happy_var_1 - in - (ident, declToDecl . happy_var_2) - )}} - -happyReduce_265 = happySpecReduce_3 55# happyReduction_265 -happyReduction_265 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut69 happy_x_1 of { happy_var_1 -> - happyIn69 - (let { (ident, declToDecl) = happy_var_1 - ; proto = mkOldProto [] - } - in - (ident, declToDecl . proto) - )} - -happyReduce_266 = happyReduce 4# 55# happyReduction_266 -happyReduction_266 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut69 happy_x_1 of { happy_var_1 -> - case happyOut74 happy_x_3 of { happy_var_3 -> - happyIn69 - (let { (ident, declToDecl) = happy_var_1 - ; proto = mkProto happy_var_3 - } - in - (ident, declToDecl . proto) - ) `HappyStk` happyRest}} - -happyReduce_267 = happyReduce 4# 55# happyReduction_267 -happyReduction_267 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut69 happy_x_1 of { happy_var_1 -> - case happyOut78 happy_x_3 of { happy_var_3 -> - happyIn69 - (let { (ident, declToDecl) = happy_var_1 - ; proto = mkOldProto (rev happy_var_3) - } - in - (ident, declToDecl . proto) - ) `HappyStk` happyRest}} - -happyReduce_268 = happySpecReduce_1 56# happyReduction_268 -happyReduction_268 happy_x_1 - = case happyOut63 happy_x_1 of { happy_var_1 -> - happyIn70 - (happy_var_1 - )} - -happyReduce_269 = happySpecReduce_1 56# happyReduction_269 -happyReduction_269 happy_x_1 - = case happyOut68 happy_x_1 of { happy_var_1 -> - happyIn70 - (happy_var_1 - )} - -happyReduce_270 = happySpecReduce_2 57# happyReduction_270 -happyReduction_270 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn71 - (mkArray [] (NoArraySize (happy_var_1 <--> happy_var_2)) - )}} - -happyReduce_271 = happyMonadReduce 2# 57# happyReduction_271 -happyReduction_271 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - ( unclosed (getLoc happy_var_1) "[")} - ) (\r -> happyReturn (happyIn71 r)) - -happyReduce_272 = happySpecReduce_3 57# happyReduction_272 -happyReduction_272 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut73 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn71 - (mkArray (rev happy_var_2) (NoArraySize (happy_var_1 <--> happy_var_3)) - )}}} - -happyReduce_273 = happySpecReduce_3 57# happyReduction_273 -happyReduction_273 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut35 happy_x_2 of { happy_var_2 -> - happyIn71 - (mkArray [] (ArraySize False happy_var_2 (locOf happy_var_2)) - )} - -happyReduce_274 = happyReduce 4# 57# happyReduction_274 -happyReduction_274 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut73 happy_x_2 of { happy_var_2 -> - case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn71 - (mkArray (rev happy_var_2) (ArraySize False happy_var_3 (locOf happy_var_3)) - ) `HappyStk` happyRest}} - -happyReduce_275 = happyReduce 4# 57# happyReduction_275 -happyReduction_275 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut35 happy_x_3 of { happy_var_3 -> - happyIn71 - (mkArray [] (ArraySize True happy_var_3 (locOf happy_var_3)) - ) `HappyStk` happyRest} - -happyReduce_276 = happyReduce 5# 57# happyReduction_276 -happyReduction_276 (happy_x_5 `HappyStk` - happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut73 happy_x_3 of { happy_var_3 -> - case happyOut35 happy_x_4 of { happy_var_4 -> - happyIn71 - (mkArray (rev happy_var_3) (ArraySize True happy_var_4 (locOf happy_var_4)) - ) `HappyStk` happyRest}} - -happyReduce_277 = happyReduce 5# 57# happyReduction_277 -happyReduction_277 (happy_x_5 `HappyStk` - happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut73 happy_x_2 of { happy_var_2 -> - case happyOut35 happy_x_4 of { happy_var_4 -> - happyIn71 - (mkArray (rev happy_var_2) (ArraySize True happy_var_4 (locOf happy_var_4)) - ) `HappyStk` happyRest}} - -happyReduce_278 = happySpecReduce_3 57# happyReduction_278 -happyReduction_278 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn71 - (mkArray [] (VariableArraySize (happy_var_1 <--> happy_var_3)) - )}} - -happyReduce_279 = happyReduce 4# 57# happyReduction_279 -happyReduction_279 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut73 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_4 of { happy_var_4 -> - happyIn71 - (mkArray (rev happy_var_2) (VariableArraySize (happy_var_1 <--> happy_var_4)) - ) `HappyStk` happyRest}}} - -happyReduce_280 = happySpecReduce_1 58# happyReduction_280 -happyReduction_280 happy_x_1 - = happyIn72 - (mkPtr [] - ) - -happyReduce_281 = happySpecReduce_2 58# happyReduction_281 -happyReduction_281 happy_x_2 - happy_x_1 - = case happyOut73 happy_x_2 of { happy_var_2 -> - happyIn72 - (mkPtr (rev happy_var_2) - )} - -happyReduce_282 = happySpecReduce_2 58# happyReduction_282 -happyReduction_282 happy_x_2 - happy_x_1 - = case happyOut72 happy_x_2 of { happy_var_2 -> - happyIn72 - (happy_var_2 . mkPtr [] - )} - -happyReduce_283 = happySpecReduce_3 58# happyReduction_283 -happyReduction_283 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut73 happy_x_2 of { happy_var_2 -> - case happyOut72 happy_x_3 of { happy_var_3 -> - happyIn72 - (happy_var_3 . mkPtr (rev happy_var_2) - )}} - -happyReduce_284 = happySpecReduce_1 59# happyReduction_284 -happyReduction_284 happy_x_1 - = case happyOut62 happy_x_1 of { happy_var_1 -> - happyIn73 - (rsingleton happy_var_1 - )} - -happyReduce_285 = happySpecReduce_2 59# happyReduction_285 -happyReduction_285 happy_x_2 - happy_x_1 - = case happyOut73 happy_x_1 of { happy_var_1 -> - case happyOut62 happy_x_2 of { happy_var_2 -> - happyIn73 - (rcons happy_var_2 happy_var_1 - )}} - -happyReduce_286 = happySpecReduce_1 60# happyReduction_286 -happyReduction_286 happy_x_1 - = case happyOut75 happy_x_1 of { happy_var_1 -> - happyIn74 - (let params = rev happy_var_1 - in - Params params False (locOf params) - )} - -happyReduce_287 = happySpecReduce_3 60# happyReduction_287 -happyReduction_287 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut75 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn74 - (let params = rev happy_var_1 - in - Params params True (params <--> happy_var_3) - )}} - -happyReduce_288 = happySpecReduce_1 61# happyReduction_288 -happyReduction_288 happy_x_1 - = case happyOut76 happy_x_1 of { happy_var_1 -> - happyIn75 - (rsingleton happy_var_1 - )} - -happyReduce_289 = happySpecReduce_1 61# happyReduction_289 -happyReduction_289 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn75 - (rsingleton (AntiParams (getANTI_PARAMS happy_var_1) (locOf happy_var_1)) - )} - -happyReduce_290 = happySpecReduce_3 61# happyReduction_290 -happyReduction_290 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut75 happy_x_1 of { happy_var_1 -> - case happyOut76 happy_x_3 of { happy_var_3 -> - happyIn75 - (rcons happy_var_3 happy_var_1 - )}} - -happyReduce_291 = happySpecReduce_3 61# happyReduction_291 -happyReduction_291 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut75 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn75 - (rcons (AntiParams (getANTI_PARAMS happy_var_3) (locOf happy_var_3)) happy_var_1 - )}} - -happyReduce_292 = happySpecReduce_1 62# happyReduction_292 -happyReduction_292 happy_x_1 - = case happyOut41 happy_x_1 of { happy_var_1 -> - happyIn76 - (let (dspec, decl) = happy_var_1 - in - Param Nothing dspec decl (dspec <--> decl) - )} - -happyReduce_293 = happySpecReduce_2 62# happyReduction_293 -happyReduction_293 happy_x_2 - happy_x_1 - = case happyOut41 happy_x_1 of { happy_var_1 -> - case happyOut70 happy_x_2 of { happy_var_2 -> - happyIn76 - (let { (dspec, declRoot) = happy_var_1 - ; (ident, declToDecl) = happy_var_2 - ; decl = declToDecl declRoot - } - in - Param (Just ident) dspec decl (ident <--> decl) - )}} - -happyReduce_294 = happySpecReduce_2 62# happyReduction_294 -happyReduction_294 happy_x_2 - happy_x_1 - = case happyOut41 happy_x_1 of { happy_var_1 -> - case happyOut80 happy_x_2 of { happy_var_2 -> - happyIn76 - (let { (dspec, declRoot) = happy_var_1 - ; decl = happy_var_2 declRoot - } - in - Param Nothing dspec decl (dspec <--> decl) - )}} - -happyReduce_295 = happySpecReduce_1 62# happyReduction_295 -happyReduction_295 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn76 - (AntiParam (getANTI_PARAM happy_var_1) (locOf happy_var_1) - )} - -happyReduce_296 = happySpecReduce_1 63# happyReduction_296 -happyReduction_296 happy_x_1 - = case happyOut41 happy_x_1 of { happy_var_1 -> - happyIn77 - (let (dspec, decl) = happy_var_1 - in - Type dspec decl (dspec <--> decl) - )} - -happyReduce_297 = happySpecReduce_2 63# happyReduction_297 -happyReduction_297 happy_x_2 - happy_x_1 - = case happyOut41 happy_x_1 of { happy_var_1 -> - case happyOut70 happy_x_2 of { happy_var_2 -> - happyIn77 - (let { (dspec, declRoot) = happy_var_1 - ; (ident, declToDecl) = happy_var_2 - ; decl = declToDecl declRoot - } - in - Type dspec decl (dspec <--> decl) - )}} - -happyReduce_298 = happySpecReduce_2 63# happyReduction_298 -happyReduction_298 happy_x_2 - happy_x_1 - = case happyOut41 happy_x_1 of { happy_var_1 -> - case happyOut80 happy_x_2 of { happy_var_2 -> - happyIn77 - (let { (dspec, declRoot) = happy_var_1 - ; decl = happy_var_2 declRoot - } - in - Type dspec decl (dspec <--> decl) - )}} - -happyReduce_299 = happySpecReduce_1 64# happyReduction_299 -happyReduction_299 happy_x_1 - = case happyOut14 happy_x_1 of { happy_var_1 -> - happyIn78 - (rsingleton happy_var_1 - )} - -happyReduce_300 = happySpecReduce_3 64# happyReduction_300 -happyReduction_300 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut78 happy_x_1 of { happy_var_1 -> - case happyOut14 happy_x_3 of { happy_var_3 -> - happyIn78 - (rcons happy_var_3 happy_var_1 - )}} - -happyReduce_301 = happySpecReduce_1 65# happyReduction_301 -happyReduction_301 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn79 - (let dspec = AntiDeclSpec (getANTI_SPEC happy_var_1) (locOf happy_var_1) - in - Type dspec (declRoot happy_var_1) (locOf happy_var_1) - )} - -happyReduce_302 = happyMonadReduce 1# 65# happyReduction_302 -happyReduction_302 (happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut55 happy_x_1 of { happy_var_1 -> - ( do{ dspec <- mkDeclSpec happy_var_1 - ; return $ Type dspec (declRoot happy_var_1) (locOf happy_var_1) - })} - ) (\r -> happyReturn (happyIn79 r)) - -happyReduce_303 = happySpecReduce_2 65# happyReduction_303 -happyReduction_303 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut80 happy_x_2 of { happy_var_2 -> - happyIn79 - (let { dspec = AntiDeclSpec (getANTI_SPEC happy_var_1) (locOf happy_var_1) - ; decl = happy_var_2 (declRoot happy_var_1) - } - in - Type dspec decl (dspec <--> decl) - )}} - -happyReduce_304 = happyMonadReduce 2# 65# happyReduction_304 -happyReduction_304 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut55 happy_x_1 of { happy_var_1 -> - case happyOut80 happy_x_2 of { happy_var_2 -> - ( do{ let decl = happy_var_2 (declRoot happy_var_1) - ; dspec <- mkDeclSpec happy_var_1 - ; return $ Type dspec decl (dspec <--> decl) - })}} - ) (\r -> happyReturn (happyIn79 r)) - -happyReduce_305 = happySpecReduce_1 65# happyReduction_305 -happyReduction_305 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn79 - (AntiType (getANTI_TYPE happy_var_1) (locOf happy_var_1) - )} - -happyReduce_306 = happySpecReduce_2 65# happyReduction_306 -happyReduction_306 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut80 happy_x_2 of { happy_var_2 -> - happyIn79 - (let { v = getANTI_TYPE happy_var_1 - ; decl = happy_var_2 (AntiTypeDecl v (locOf happy_var_1)) - } - in - Type (AntiTypeDeclSpec [] [] v (locOf happy_var_1)) decl (happy_var_1 <--> decl) - )}} - -happyReduce_307 = happySpecReduce_1 66# happyReduction_307 -happyReduction_307 happy_x_1 - = case happyOut72 happy_x_1 of { happy_var_1 -> - happyIn80 - (happy_var_1 - )} - -happyReduce_308 = happySpecReduce_1 66# happyReduction_308 -happyReduction_308 happy_x_1 - = case happyOut81 happy_x_1 of { happy_var_1 -> - happyIn80 - (happy_var_1 - )} - -happyReduce_309 = happySpecReduce_2 66# happyReduction_309 -happyReduction_309 happy_x_2 - happy_x_1 - = case happyOut72 happy_x_1 of { happy_var_1 -> - case happyOut81 happy_x_2 of { happy_var_2 -> - happyIn80 - (happy_var_2 . happy_var_1 - )}} - -happyReduce_310 = happySpecReduce_3 67# happyReduction_310 -happyReduction_310 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut80 happy_x_2 of { happy_var_2 -> - happyIn81 - (happy_var_2 - )} - -happyReduce_311 = happyMonadReduce 3# 67# happyReduction_311 -happyReduction_311 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut80 happy_x_2 of { happy_var_2 -> - ( do{ let decl = happy_var_2 (declRoot happy_var_1) - ; unclosed (happy_var_1 <--> decl) "(" - })}} - ) (\r -> happyReturn (happyIn81 r)) - -happyReduce_312 = happySpecReduce_1 67# happyReduction_312 -happyReduction_312 happy_x_1 - = case happyOut71 happy_x_1 of { happy_var_1 -> - happyIn81 - (happy_var_1 - )} - -happyReduce_313 = happySpecReduce_2 67# happyReduction_313 -happyReduction_313 happy_x_2 - happy_x_1 - = case happyOut81 happy_x_1 of { happy_var_1 -> - case happyOut71 happy_x_2 of { happy_var_2 -> - happyIn81 - (happy_var_1 . happy_var_2 - )}} - -happyReduce_314 = happySpecReduce_2 67# happyReduction_314 -happyReduction_314 happy_x_2 - happy_x_1 - = happyIn81 - (mkOldProto [] - ) - -happyReduce_315 = happySpecReduce_3 67# happyReduction_315 -happyReduction_315 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut74 happy_x_2 of { happy_var_2 -> - happyIn81 - (mkProto happy_var_2 - )} - -happyReduce_316 = happySpecReduce_3 67# happyReduction_316 -happyReduction_316 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut81 happy_x_1 of { happy_var_1 -> - happyIn81 - (happy_var_1 . mkOldProto [] - )} - -happyReduce_317 = happyReduce 4# 67# happyReduction_317 -happyReduction_317 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut81 happy_x_1 of { happy_var_1 -> - case happyOut74 happy_x_3 of { happy_var_3 -> - happyIn81 - (happy_var_1 . mkProto happy_var_3 - ) `HappyStk` happyRest}} - -happyReduce_318 = happySpecReduce_1 68# happyReduction_318 -happyReduction_318 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn82 - (TSnamed (Id (getNAMED happy_var_1) (locOf happy_var_1)) (locOf happy_var_1) - )} - -happyReduce_319 = happySpecReduce_2 68# happyReduction_319 -happyReduction_319 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut14 happy_x_2 of { happy_var_2 -> - happyIn82 - (TSnamed happy_var_2 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_320 = happyMonadReduce 2# 68# happyReduction_320 -happyReduction_320 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - ( expected (locOf happy_var_1) ["identifier"])} - ) (\r -> happyReturn (happyIn82 r)) - -happyReduce_321 = happyReduce 4# 68# happyReduction_321 -happyReduction_321 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut22 happy_x_3 of { happy_var_3 -> - case happyOutTok happy_x_4 of { happy_var_4 -> - happyIn82 - (TStypeofExp happy_var_3 (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_322 = happyReduce 4# 68# happyReduction_322 -happyReduction_322 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut79 happy_x_3 of { happy_var_3 -> - case happyOutTok happy_x_4 of { happy_var_4 -> - happyIn82 - (TStypeofType happy_var_3 (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_323 = happyMonadReduce 4# 68# happyReduction_323 -happyReduction_323 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> - case happyOut79 happy_x_3 of { happy_var_3 -> - ( unclosed (happy_var_2 <--> happy_var_3) "(")}} - ) (\r -> happyReturn (happyIn82 r)) - -happyReduce_324 = happySpecReduce_1 69# happyReduction_324 -happyReduction_324 happy_x_1 - = case happyOut35 happy_x_1 of { happy_var_1 -> - happyIn83 - (ExpInitializer happy_var_1 (locOf happy_var_1) - )} - -happyReduce_325 = happySpecReduce_3 69# happyReduction_325 -happyReduction_325 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut84 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn83 - (CompoundInitializer (rev happy_var_2) (happy_var_1 <--> happy_var_3) - )}}} - -happyReduce_326 = happyMonadReduce 3# 69# happyReduction_326 -happyReduction_326 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut84 happy_x_2 of { happy_var_2 -> - ( do{ let (_, inits) = unzip (rev happy_var_2) - ; unclosed (happy_var_1 <--> inits) "{" - })}} - ) (\r -> happyReturn (happyIn83 r)) - -happyReduce_327 = happyReduce 4# 69# happyReduction_327 -happyReduction_327 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut84 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_4 of { happy_var_4 -> - happyIn83 - (CompoundInitializer (rev happy_var_2) (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_328 = happyMonadReduce 4# 69# happyReduction_328 -happyReduction_328 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - ( unclosed (happy_var_1 <--> happy_var_3) "{")}} - ) (\r -> happyReturn (happyIn83 r)) - -happyReduce_329 = happySpecReduce_1 70# happyReduction_329 -happyReduction_329 happy_x_1 - = case happyOut83 happy_x_1 of { happy_var_1 -> - happyIn84 - (rsingleton (Nothing, happy_var_1) - )} - -happyReduce_330 = happySpecReduce_2 70# happyReduction_330 -happyReduction_330 happy_x_2 - happy_x_1 - = case happyOut85 happy_x_1 of { happy_var_1 -> - case happyOut83 happy_x_2 of { happy_var_2 -> - happyIn84 - (rsingleton (Just happy_var_1, happy_var_2) - )}} - -happyReduce_331 = happySpecReduce_3 70# happyReduction_331 -happyReduction_331 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut84 happy_x_1 of { happy_var_1 -> - case happyOut83 happy_x_3 of { happy_var_3 -> - happyIn84 - (rcons (Nothing, happy_var_3) happy_var_1 - )}} - -happyReduce_332 = happyReduce 4# 70# happyReduction_332 -happyReduction_332 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut84 happy_x_1 of { happy_var_1 -> - case happyOut85 happy_x_3 of { happy_var_3 -> - case happyOut83 happy_x_4 of { happy_var_4 -> - happyIn84 - (rcons (Just happy_var_3, happy_var_4) happy_var_1 - ) `HappyStk` happyRest}}} - -happyReduce_333 = happySpecReduce_2 71# happyReduction_333 -happyReduction_333 happy_x_2 - happy_x_1 - = case happyOut86 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn85 - (let designators = rev happy_var_1 - in - Designation designators (designators <--> happy_var_2) - )}} - -happyReduce_334 = happySpecReduce_1 72# happyReduction_334 -happyReduction_334 happy_x_1 - = case happyOut87 happy_x_1 of { happy_var_1 -> - happyIn86 - (rsingleton happy_var_1 - )} - -happyReduce_335 = happySpecReduce_2 72# happyReduction_335 -happyReduction_335 happy_x_2 - happy_x_1 - = case happyOut86 happy_x_1 of { happy_var_1 -> - case happyOut87 happy_x_2 of { happy_var_2 -> - happyIn86 - (rcons happy_var_2 happy_var_1 - )}} - -happyReduce_336 = happySpecReduce_3 73# happyReduction_336 -happyReduction_336 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut38 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn87 - (IndexDesignator happy_var_2 (happy_var_1 <--> happy_var_3) - )}}} - -happyReduce_337 = happySpecReduce_2 73# happyReduction_337 -happyReduction_337 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut14 happy_x_2 of { happy_var_2 -> - happyIn87 - (MemberDesignator happy_var_2 (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_338 = happySpecReduce_1 74# happyReduction_338 -happyReduction_338 happy_x_1 - = case happyOut89 happy_x_1 of { happy_var_1 -> - happyIn88 - (happy_var_1 - )} - -happyReduce_339 = happySpecReduce_1 74# happyReduction_339 -happyReduction_339 happy_x_1 - = case happyOut90 happy_x_1 of { happy_var_1 -> - happyIn88 - (happy_var_1 - )} - -happyReduce_340 = happySpecReduce_1 74# happyReduction_340 -happyReduction_340 happy_x_1 - = case happyOut96 happy_x_1 of { happy_var_1 -> - happyIn88 - (happy_var_1 - )} - -happyReduce_341 = happySpecReduce_1 74# happyReduction_341 -happyReduction_341 happy_x_1 - = case happyOut97 happy_x_1 of { happy_var_1 -> - happyIn88 - (happy_var_1 - )} - -happyReduce_342 = happySpecReduce_1 74# happyReduction_342 -happyReduction_342 happy_x_1 - = case happyOut98 happy_x_1 of { happy_var_1 -> - happyIn88 - (happy_var_1 - )} - -happyReduce_343 = happySpecReduce_1 74# happyReduction_343 -happyReduction_343 happy_x_1 - = case happyOut99 happy_x_1 of { happy_var_1 -> - happyIn88 - (happy_var_1 - )} - -happyReduce_344 = happySpecReduce_1 74# happyReduction_344 -happyReduction_344 happy_x_1 - = case happyOut110 happy_x_1 of { happy_var_1 -> - happyIn88 - (happy_var_1 - )} - -happyReduce_345 = happySpecReduce_1 74# happyReduction_345 -happyReduction_345 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn88 - (AntiStm (getANTI_STM happy_var_1) (locOf happy_var_1) - )} - -happyReduce_346 = happySpecReduce_3 75# happyReduction_346 -happyReduction_346 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut14 happy_x_1 of { happy_var_1 -> - case happyOut88 happy_x_3 of { happy_var_3 -> - happyIn89 - (Label happy_var_1 happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_347 = happyReduce 4# 75# happyReduction_347 -happyReduction_347 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut38 happy_x_2 of { happy_var_2 -> - case happyOut88 happy_x_4 of { happy_var_4 -> - happyIn89 - (Case happy_var_2 happy_var_4 (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_348 = happySpecReduce_3 75# happyReduction_348 -happyReduction_348 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut88 happy_x_3 of { happy_var_3 -> - happyIn89 - (Default happy_var_3 (happy_var_1 <--> happy_var_3) - )}} - -happyReduce_349 = happyReduce 4# 76# happyReduction_349 -happyReduction_349 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_4 of { happy_var_4 -> - happyIn90 - (Block [] (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}} - -happyReduce_350 = happyMonadReduce 3# 76# happyReduction_350 -happyReduction_350 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_3 of { happy_var_3 -> - ( unclosed (locOf happy_var_3) "{")} - ) (\r -> happyReturn (happyIn90 r)) - -happyReduce_351 = happyReduce 5# 76# happyReduction_351 -happyReduction_351 (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 { happy_var_1 -> - case happyOut91 happy_x_3 of { happy_var_3 -> - case happyOutTok happy_x_5 of { happy_var_5 -> - happyIn90 - (Block (rev happy_var_3) (happy_var_1 <--> happy_var_5) - ) `HappyStk` happyRest}}} - -happyReduce_352 = happySpecReduce_1 77# happyReduction_352 -happyReduction_352 happy_x_1 - = case happyOut92 happy_x_1 of { happy_var_1 -> - happyIn91 - (rsingleton happy_var_1 - )} - -happyReduce_353 = happySpecReduce_2 77# happyReduction_353 -happyReduction_353 happy_x_2 - happy_x_1 - = case happyOut91 happy_x_1 of { happy_var_1 -> - case happyOut92 happy_x_2 of { happy_var_2 -> - happyIn91 - (rcons happy_var_2 happy_var_1 - )}} - -happyReduce_354 = happySpecReduce_1 78# happyReduction_354 -happyReduction_354 happy_x_1 - = case happyOut39 happy_x_1 of { happy_var_1 -> - happyIn92 - (BlockDecl happy_var_1 - )} - -happyReduce_355 = happySpecReduce_1 78# happyReduction_355 -happyReduction_355 happy_x_1 - = case happyOut88 happy_x_1 of { happy_var_1 -> - happyIn92 - (BlockStm happy_var_1 - )} - -happyReduce_356 = happySpecReduce_1 78# happyReduction_356 -happyReduction_356 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn92 - (BlockDecl (AntiDecls (getANTI_DECLS happy_var_1) (locOf happy_var_1)) - )} - -happyReduce_357 = happySpecReduce_1 78# happyReduction_357 -happyReduction_357 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn92 - (BlockStm (AntiStms (getANTI_STMS happy_var_1) (locOf happy_var_1)) - )} - -happyReduce_358 = happySpecReduce_1 78# happyReduction_358 -happyReduction_358 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn92 - (AntiBlockItem (getANTI_ITEM happy_var_1) (locOf happy_var_1) - )} - -happyReduce_359 = happySpecReduce_1 78# happyReduction_359 -happyReduction_359 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn92 - (AntiBlockItems (getANTI_ITEMS happy_var_1) (locOf happy_var_1) - )} - -happyReduce_360 = happyMonadReduce 0# 79# happyReduction_360 -happyReduction_360 (happyRest) tk - = happyThen (( pushScope) - ) (\r -> happyReturn (happyIn93 r)) - -happyReduce_361 = happyMonadReduce 0# 80# happyReduction_361 -happyReduction_361 (happyRest) tk - = happyThen (( popScope) - ) (\r -> happyReturn (happyIn94 r)) - -happyReduce_362 = happySpecReduce_1 81# happyReduction_362 -happyReduction_362 happy_x_1 - = case happyOut39 happy_x_1 of { happy_var_1 -> - happyIn95 - (rsingleton happy_var_1 - )} - -happyReduce_363 = happySpecReduce_1 81# happyReduction_363 -happyReduction_363 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn95 - (rsingleton (AntiDecls (getANTI_DECLS happy_var_1) (locOf happy_var_1)) - )} - -happyReduce_364 = happySpecReduce_2 81# happyReduction_364 -happyReduction_364 happy_x_2 - happy_x_1 - = case happyOut95 happy_x_1 of { happy_var_1 -> - case happyOut39 happy_x_2 of { happy_var_2 -> - happyIn95 - (rcons happy_var_2 happy_var_1 - )}} - -happyReduce_365 = happySpecReduce_2 81# happyReduction_365 -happyReduction_365 happy_x_2 - happy_x_1 - = case happyOut95 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn95 - (rcons (AntiDecls (getANTI_DECLS happy_var_2) (locOf happy_var_2)) happy_var_1 - )}} - -happyReduce_366 = happySpecReduce_1 82# happyReduction_366 -happyReduction_366 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn96 - (Exp Nothing (locOf happy_var_1) - )} - -happyReduce_367 = happySpecReduce_2 82# happyReduction_367 -happyReduction_367 happy_x_2 - happy_x_1 - = case happyOut36 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn96 - (Exp (Just happy_var_1) (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_368 = happyMonadReduce 2# 82# happyReduction_368 -happyReduction_368 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut36 happy_x_1 of { happy_var_1 -> - ( expected (locOf happy_var_1) ["';'"])} - ) (\r -> happyReturn (happyIn96 r)) - -happyReduce_369 = happyReduce 5# 83# happyReduction_369 -happyReduction_369 (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 { happy_var_1 -> - case happyOut36 happy_x_3 of { happy_var_3 -> - case happyOut88 happy_x_5 of { happy_var_5 -> - happyIn97 - (If happy_var_3 happy_var_5 Nothing (happy_var_1 <--> happy_var_5) - ) `HappyStk` happyRest}}} - -happyReduce_370 = happyReduce 7# 83# happyReduction_370 -happyReduction_370 (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_1 of { happy_var_1 -> - case happyOut36 happy_x_3 of { happy_var_3 -> - case happyOut88 happy_x_5 of { happy_var_5 -> - case happyOut88 happy_x_7 of { happy_var_7 -> - happyIn97 - (If happy_var_3 happy_var_5 (Just happy_var_7) (happy_var_1 <--> happy_var_7) - ) `HappyStk` happyRest}}}} - -happyReduce_371 = happyMonadReduce 4# 83# happyReduction_371 -happyReduction_371 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> - case happyOut36 happy_x_3 of { happy_var_3 -> - ( unclosed (happy_var_2 <--> happy_var_3) "(")}} - ) (\r -> happyReturn (happyIn97 r)) - -happyReduce_372 = happyReduce 5# 83# happyReduction_372 -happyReduction_372 (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 { happy_var_1 -> - case happyOut36 happy_x_3 of { happy_var_3 -> - case happyOut88 happy_x_5 of { happy_var_5 -> - happyIn97 - (Switch happy_var_3 happy_var_5 (happy_var_1 <--> happy_var_5) - ) `HappyStk` happyRest}}} - -happyReduce_373 = happyMonadReduce 4# 83# happyReduction_373 -happyReduction_373 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> - case happyOut36 happy_x_3 of { happy_var_3 -> - ( unclosed (happy_var_2 <--> happy_var_3) "(")}} - ) (\r -> happyReturn (happyIn97 r)) - -happyReduce_374 = happyReduce 5# 84# happyReduction_374 -happyReduction_374 (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 { happy_var_1 -> - case happyOut36 happy_x_3 of { happy_var_3 -> - case happyOut88 happy_x_5 of { happy_var_5 -> - happyIn98 - (While happy_var_3 happy_var_5 (happy_var_1 <--> happy_var_5) - ) `HappyStk` happyRest}}} - -happyReduce_375 = happyMonadReduce 4# 84# happyReduction_375 -happyReduction_375 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> - case happyOut36 happy_x_3 of { happy_var_3 -> - ( unclosed (happy_var_2 <--> happy_var_3) "(")}} - ) (\r -> happyReturn (happyIn98 r)) - -happyReduce_376 = happyReduce 7# 84# happyReduction_376 -happyReduction_376 (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_1 of { happy_var_1 -> - case happyOut88 happy_x_2 of { happy_var_2 -> - case happyOut36 happy_x_5 of { happy_var_5 -> - case happyOutTok happy_x_7 of { happy_var_7 -> - happyIn98 - (DoWhile happy_var_2 happy_var_5 (happy_var_1 <--> happy_var_7) - ) `HappyStk` happyRest}}}} - -happyReduce_377 = happyMonadReduce 6# 84# happyReduction_377 -happyReduction_377 (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) tk - = happyThen (case happyOutTok happy_x_4 of { happy_var_4 -> - case happyOut36 happy_x_5 of { happy_var_5 -> - ( unclosed (happy_var_4 <--> happy_var_5) "(")}} - ) (\r -> happyReturn (happyIn98 r)) - -happyReduce_378 = happyMonadReduce 3# 84# happyReduction_378 -happyReduction_378 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> - ( expected (locOf happy_var_2) ["expression", "declaration"])} - ) (\r -> happyReturn (happyIn98 r)) - -happyReduce_379 = happyReduce 7# 84# happyReduction_379 -happyReduction_379 (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_1 of { happy_var_1 -> - case happyOut39 happy_x_3 of { happy_var_3 -> - case happyOut37 happy_x_4 of { happy_var_4 -> - case happyOut88 happy_x_7 of { happy_var_7 -> - happyIn98 - (For (Left happy_var_3) happy_var_4 Nothing happy_var_7 (happy_var_1 <--> happy_var_7) - ) `HappyStk` happyRest}}}} - -happyReduce_380 = happyReduce 8# 84# happyReduction_380 -happyReduction_380 (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_1 of { happy_var_1 -> - case happyOut37 happy_x_3 of { happy_var_3 -> - case happyOut37 happy_x_5 of { happy_var_5 -> - case happyOut88 happy_x_8 of { happy_var_8 -> - happyIn98 - (For (Right happy_var_3) happy_var_5 Nothing happy_var_8 (happy_var_1 <--> happy_var_8) - ) `HappyStk` happyRest}}}} - -happyReduce_381 = happyMonadReduce 7# 84# happyReduction_381 -happyReduction_381 (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) tk - = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_6 of { happy_var_6 -> - ( unclosed (happy_var_2 <--> happy_var_6) "(")}} - ) (\r -> happyReturn (happyIn98 r)) - -happyReduce_382 = happyReduce 8# 84# happyReduction_382 -happyReduction_382 (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_1 of { happy_var_1 -> - case happyOut39 happy_x_3 of { happy_var_3 -> - case happyOut37 happy_x_4 of { happy_var_4 -> - case happyOut36 happy_x_6 of { happy_var_6 -> - case happyOut88 happy_x_8 of { happy_var_8 -> - happyIn98 - (For (Left happy_var_3) happy_var_4 (Just happy_var_6) happy_var_8 (happy_var_1 <--> happy_var_8) - ) `HappyStk` happyRest}}}}} - -happyReduce_383 = happyReduce 9# 84# happyReduction_383 -happyReduction_383 (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_1 of { happy_var_1 -> - case happyOut37 happy_x_3 of { happy_var_3 -> - case happyOut37 happy_x_5 of { happy_var_5 -> - case happyOut36 happy_x_7 of { happy_var_7 -> - case happyOut88 happy_x_9 of { happy_var_9 -> - happyIn98 - (For (Right happy_var_3) happy_var_5 (Just happy_var_7) happy_var_9 (happy_var_1 <--> happy_var_9) - ) `HappyStk` happyRest}}}}} - -happyReduce_384 = happyMonadReduce 8# 84# happyReduction_384 -happyReduction_384 (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) tk - = happyThen (case happyOutTok happy_x_2 of { happy_var_2 -> - case happyOut36 happy_x_7 of { happy_var_7 -> - ( unclosed (happy_var_2 <--> happy_var_7) "(")}} - ) (\r -> happyReturn (happyIn98 r)) - -happyReduce_385 = happySpecReduce_3 85# happyReduction_385 -happyReduction_385 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut14 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn99 - (Goto happy_var_2 (happy_var_1 <--> happy_var_3) - )}}} - -happyReduce_386 = happyMonadReduce 2# 85# happyReduction_386 -happyReduction_386 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - ( expected (locOf happy_var_1) ["identifier"])} - ) (\r -> happyReturn (happyIn99 r)) - -happyReduce_387 = happyMonadReduce 3# 85# happyReduction_387 -happyReduction_387 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut14 happy_x_2 of { happy_var_2 -> - ( expected (locOf happy_var_2) ["';'"])} - ) (\r -> happyReturn (happyIn99 r)) - -happyReduce_388 = happySpecReduce_2 85# happyReduction_388 -happyReduction_388 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn99 - (Continue (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_389 = happyMonadReduce 2# 85# happyReduction_389 -happyReduction_389 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - ( expected (locOf happy_var_1) ["';'"])} - ) (\r -> happyReturn (happyIn99 r)) - -happyReduce_390 = happySpecReduce_2 85# happyReduction_390 -happyReduction_390 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn99 - (Break (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_391 = happyMonadReduce 2# 85# happyReduction_391 -happyReduction_391 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - ( expected (locOf happy_var_1) ["';'"])} - ) (\r -> happyReturn (happyIn99 r)) - -happyReduce_392 = happySpecReduce_2 85# happyReduction_392 -happyReduction_392 happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn99 - (Return Nothing (happy_var_1 <--> happy_var_2) - )}} - -happyReduce_393 = happyMonadReduce 2# 85# happyReduction_393 -happyReduction_393 (happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - ( expected (locOf happy_var_1) ["';'"])} - ) (\r -> happyReturn (happyIn99 r)) - -happyReduce_394 = happySpecReduce_3 85# happyReduction_394 -happyReduction_394 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut36 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_3 of { happy_var_3 -> - happyIn99 - (Return (Just happy_var_2) (happy_var_1 <--> happy_var_3) - )}}} - -happyReduce_395 = happyMonadReduce 3# 85# happyReduction_395 -happyReduction_395 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut36 happy_x_2 of { happy_var_2 -> - ( expected (locOf happy_var_2) ["';'"])} - ) (\r -> happyReturn (happyIn99 r)) - -happyReduce_396 = happySpecReduce_0 86# happyReduction_396 -happyReduction_396 = happyIn100 - ([] - ) - -happyReduce_397 = happySpecReduce_1 86# happyReduction_397 -happyReduction_397 happy_x_1 - = case happyOut101 happy_x_1 of { happy_var_1 -> - happyIn100 - (rev happy_var_1 - )} - -happyReduce_398 = happySpecReduce_1 87# happyReduction_398 -happyReduction_398 happy_x_1 - = case happyOut102 happy_x_1 of { happy_var_1 -> - happyIn101 - (rsingleton happy_var_1 - )} - -happyReduce_399 = happySpecReduce_1 87# happyReduction_399 -happyReduction_399 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn101 - (rsingleton (AntiEdecls (getANTI_EDECLS happy_var_1) (locOf happy_var_1)) - )} - -happyReduce_400 = happySpecReduce_2 87# happyReduction_400 -happyReduction_400 happy_x_2 - happy_x_1 - = case happyOut101 happy_x_1 of { happy_var_1 -> - case happyOut102 happy_x_2 of { happy_var_2 -> - happyIn101 - (rcons happy_var_2 happy_var_1 - )}} - -happyReduce_401 = happySpecReduce_2 87# happyReduction_401 -happyReduction_401 happy_x_2 - happy_x_1 - = case happyOut101 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn101 - (rcons (AntiEdecls (getANTI_EDECLS happy_var_2) (locOf happy_var_2)) happy_var_1 - )}} - -happyReduce_402 = happySpecReduce_1 88# happyReduction_402 -happyReduction_402 happy_x_1 - = case happyOut103 happy_x_1 of { happy_var_1 -> - happyIn102 - (FuncDef happy_var_1 (locOf happy_var_1) - )} - -happyReduce_403 = happySpecReduce_1 88# happyReduction_403 -happyReduction_403 happy_x_1 - = case happyOut39 happy_x_1 of { happy_var_1 -> - happyIn102 - (DecDef happy_var_1 (locOf happy_var_1) - )} - -happyReduce_404 = happySpecReduce_1 88# happyReduction_404 -happyReduction_404 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn102 - (AntiFunc (getANTI_FUNC happy_var_1) (locOf happy_var_1) - )} - -happyReduce_405 = happySpecReduce_1 88# happyReduction_405 -happyReduction_405 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn102 - (AntiEsc (getANTI_ESC happy_var_1) (locOf happy_var_1) - )} - -happyReduce_406 = happySpecReduce_1 88# happyReduction_406 -happyReduction_406 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn102 - (AntiEdecl (getANTI_EDECL happy_var_1) (locOf happy_var_1) - )} - -happyReduce_407 = happyMonadReduce 3# 89# happyReduction_407 -happyReduction_407 (happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut41 happy_x_1 of { happy_var_1 -> - case happyOut67 happy_x_2 of { happy_var_2 -> - case happyOut90 happy_x_3 of { happy_var_3 -> - ( do{ let (dspec, declRoot) = happy_var_1 - ; let (ident, declToDecl) = happy_var_2 - ; let Block blockItems _ = happy_var_3 - ; let decl = declToDecl declRoot - ; case decl of - { Proto protoDecl args _ -> return $ - Func dspec ident protoDecl args - blockItems - (decl <--> blockItems) - ; OldProto protoDecl args _ -> return $ - OldFunc dspec ident protoDecl args Nothing - blockItems - (decl <--> blockItems) - ; _ -> failAt (decl <--> blockItems :: Loc) - "bad function declaration" - } - })}}} - ) (\r -> happyReturn (happyIn103 r)) - -happyReduce_408 = happyMonadReduce 4# 89# happyReduction_408 -happyReduction_408 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) tk - = happyThen (case happyOut41 happy_x_1 of { happy_var_1 -> - case happyOut67 happy_x_2 of { happy_var_2 -> - case happyOut95 happy_x_3 of { happy_var_3 -> - case happyOut90 happy_x_4 of { happy_var_4 -> - ( do{ let (dspec, declRoot) = happy_var_1 - ; let (ident, declToDecl) = happy_var_2 - ; let argDecls = happy_var_3 - ; let Block blockItems _ = happy_var_4 - ; let decl = declToDecl declRoot - ; case decl of - { OldProto protoDecl args _ -> return $ - OldFunc dspec ident protoDecl args (Just (rev argDecls)) - blockItems - (decl <--> blockItems) - ; _ -> failAt (decl <--> blockItems :: Loc) - "bad function declaration" - } - })}}}} - ) (\r -> happyReturn (happyIn103 r)) - -happyReduce_409 = happySpecReduce_1 90# happyReduction_409 -happyReduction_409 happy_x_1 - = case happyOut105 happy_x_1 of { happy_var_1 -> - happyIn104 - (happy_var_1 - )} - -happyReduce_410 = happySpecReduce_2 90# happyReduction_410 -happyReduction_410 happy_x_2 - happy_x_1 - = case happyOut104 happy_x_1 of { happy_var_1 -> - case happyOut105 happy_x_2 of { happy_var_2 -> - happyIn104 - (happy_var_1 ++ happy_var_2 - )}} - -happyReduce_411 = happyReduce 6# 91# happyReduction_411 -happyReduction_411 (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 happyOut106 happy_x_4 of { happy_var_4 -> - happyIn105 - (rev happy_var_4 - ) `HappyStk` happyRest} - -happyReduce_412 = happySpecReduce_1 92# happyReduction_412 -happyReduction_412 happy_x_1 - = case happyOut107 happy_x_1 of { happy_var_1 -> - happyIn106 - (rsingleton happy_var_1 - )} - -happyReduce_413 = happySpecReduce_3 92# happyReduction_413 -happyReduction_413 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut106 happy_x_1 of { happy_var_1 -> - case happyOut107 happy_x_3 of { happy_var_3 -> - happyIn106 - (rcons happy_var_3 happy_var_1 - )}} - -happyReduce_414 = happySpecReduce_1 93# happyReduction_414 -happyReduction_414 happy_x_1 - = case happyOut108 happy_x_1 of { happy_var_1 -> - happyIn107 - (Attr happy_var_1 [] (locOf happy_var_1) - )} - -happyReduce_415 = happyReduce 4# 93# happyReduction_415 -happyReduction_415 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOut108 happy_x_1 of { happy_var_1 -> - case happyOut21 happy_x_3 of { happy_var_3 -> - case happyOutTok happy_x_4 of { happy_var_4 -> - happyIn107 - (Attr happy_var_1 (rev happy_var_3) (happy_var_1 <--> happy_var_4) - ) `HappyStk` happyRest}}} - -happyReduce_416 = happySpecReduce_1 94# happyReduction_416 -happyReduction_416 happy_x_1 - = case happyOut15 happy_x_1 of { happy_var_1 -> - happyIn108 - (happy_var_1 - )} - -happyReduce_417 = happySpecReduce_1 94# happyReduction_417 -happyReduction_417 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "static" (locOf happy_var_1) - )} - -happyReduce_418 = happySpecReduce_1 94# happyReduction_418 -happyReduction_418 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "extern" (locOf happy_var_1) - )} - -happyReduce_419 = happySpecReduce_1 94# happyReduction_419 -happyReduction_419 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "register" (locOf happy_var_1) - )} - -happyReduce_420 = happySpecReduce_1 94# happyReduction_420 -happyReduction_420 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "typedef" (locOf happy_var_1) - )} - -happyReduce_421 = happySpecReduce_1 94# happyReduction_421 -happyReduction_421 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "inline" (locOf happy_var_1) - )} - -happyReduce_422 = happySpecReduce_1 94# happyReduction_422 -happyReduction_422 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "auto" (locOf happy_var_1) - )} - -happyReduce_423 = happySpecReduce_1 94# happyReduction_423 -happyReduction_423 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "const" (locOf happy_var_1) - )} - -happyReduce_424 = happySpecReduce_1 94# happyReduction_424 -happyReduction_424 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "volatile" (locOf happy_var_1) - )} - -happyReduce_425 = happySpecReduce_1 94# happyReduction_425 -happyReduction_425 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "unsigned" (locOf happy_var_1) - )} - -happyReduce_426 = happySpecReduce_1 94# happyReduction_426 -happyReduction_426 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "long" (locOf happy_var_1) - )} - -happyReduce_427 = happySpecReduce_1 94# happyReduction_427 -happyReduction_427 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "short" (locOf happy_var_1) - )} - -happyReduce_428 = happySpecReduce_1 94# happyReduction_428 -happyReduction_428 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "signed" (locOf happy_var_1) - )} - -happyReduce_429 = happySpecReduce_1 94# happyReduction_429 -happyReduction_429 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "int" (locOf happy_var_1) - )} - -happyReduce_430 = happySpecReduce_1 94# happyReduction_430 -happyReduction_430 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "char" (locOf happy_var_1) - )} - -happyReduce_431 = happySpecReduce_1 94# happyReduction_431 -happyReduction_431 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "float" (locOf happy_var_1) - )} - -happyReduce_432 = happySpecReduce_1 94# happyReduction_432 -happyReduction_432 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "double" (locOf happy_var_1) - )} - -happyReduce_433 = happySpecReduce_1 94# happyReduction_433 -happyReduction_433 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn108 - (Id "void" (locOf happy_var_1) - )} - -happyReduce_434 = happySpecReduce_0 95# happyReduction_434 -happyReduction_434 = happyIn109 - (False - ) - -happyReduce_435 = happySpecReduce_1 95# happyReduction_435 -happyReduction_435 happy_x_1 - = happyIn109 - (True - ) - -happyReduce_436 = happyReduce 6# 96# happyReduction_436 -happyReduction_436 (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_1 of { happy_var_1 -> - case happyOut109 happy_x_2 of { happy_var_2 -> - case happyOut111 happy_x_4 of { happy_var_4 -> - case happyOutTok happy_x_5 of { happy_var_5 -> - happyIn110 - (Asm happy_var_2 [] (rev happy_var_4) [] [] [] (happy_var_1 <--> happy_var_5) - ) `HappyStk` happyRest}}}} - -happyReduce_437 = happyReduce 8# 96# happyReduction_437 -happyReduction_437 (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_1 of { happy_var_1 -> - case happyOut109 happy_x_2 of { happy_var_2 -> - case happyOut111 happy_x_4 of { happy_var_4 -> - case happyOut112 happy_x_6 of { happy_var_6 -> - case happyOutTok happy_x_7 of { happy_var_7 -> - happyIn110 - (Asm happy_var_2 [] (rev happy_var_4) happy_var_6 [] [] (happy_var_1 <--> happy_var_7) - ) `HappyStk` happyRest}}}}} - -happyReduce_438 = happyReduce 10# 96# happyReduction_438 -happyReduction_438 (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_1 of { happy_var_1 -> - case happyOut109 happy_x_2 of { happy_var_2 -> - case happyOut111 happy_x_4 of { happy_var_4 -> - case happyOut112 happy_x_6 of { happy_var_6 -> - case happyOut112 happy_x_8 of { happy_var_8 -> - case happyOutTok happy_x_9 of { happy_var_9 -> - happyIn110 - (Asm happy_var_2 [] (rev happy_var_4) happy_var_6 happy_var_8 [] (happy_var_1 <--> happy_var_9) - ) `HappyStk` happyRest}}}}}} - -happyReduce_439 = happyReduce 12# 96# happyReduction_439 -happyReduction_439 (happy_x_12 `HappyStk` - happy_x_11 `HappyStk` - 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_1 of { happy_var_1 -> - case happyOut109 happy_x_2 of { happy_var_2 -> - case happyOut111 happy_x_4 of { happy_var_4 -> - case happyOut112 happy_x_6 of { happy_var_6 -> - case happyOut112 happy_x_8 of { happy_var_8 -> - case happyOut115 happy_x_10 of { happy_var_10 -> - case happyOutTok happy_x_11 of { happy_var_11 -> - happyIn110 - (Asm happy_var_2 [] (rev happy_var_4) happy_var_6 happy_var_8 happy_var_10 (happy_var_1 <--> happy_var_11) - ) `HappyStk` happyRest}}}}}}} - -happyReduce_440 = happySpecReduce_1 97# happyReduction_440 -happyReduction_440 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn111 - (rsingleton ((fst . getSTRING) happy_var_1) - )} - -happyReduce_441 = happySpecReduce_2 97# happyReduction_441 -happyReduction_441 happy_x_2 - happy_x_1 - = case happyOut111 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { happy_var_2 -> - happyIn111 - (rcons ((fst . getSTRING) happy_var_2) happy_var_1 - )}} - -happyReduce_442 = happySpecReduce_0 98# happyReduction_442 -happyReduction_442 = happyIn112 - ([] - ) - -happyReduce_443 = happySpecReduce_1 98# happyReduction_443 -happyReduction_443 happy_x_1 - = case happyOut113 happy_x_1 of { happy_var_1 -> - happyIn112 - (rev happy_var_1 - )} - -happyReduce_444 = happySpecReduce_1 99# happyReduction_444 -happyReduction_444 happy_x_1 - = case happyOut114 happy_x_1 of { happy_var_1 -> - happyIn113 - (rsingleton happy_var_1 - )} - -happyReduce_445 = happySpecReduce_3 99# happyReduction_445 -happyReduction_445 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut113 happy_x_1 of { happy_var_1 -> - case happyOut114 happy_x_3 of { happy_var_3 -> - happyIn113 - (rcons happy_var_3 happy_var_1 - )}} - -happyReduce_446 = happyReduce 4# 100# happyReduction_446 -happyReduction_446 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` - happy_x_2 `HappyStk` - happy_x_1 `HappyStk` - happyRest) - = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut36 happy_x_3 of { happy_var_3 -> - happyIn114 - (((fst . getSTRING) happy_var_1, happy_var_3) - ) `HappyStk` happyRest}} - -happyReduce_447 = happySpecReduce_0 101# happyReduction_447 -happyReduction_447 = happyIn115 - ([] - ) - -happyReduce_448 = happySpecReduce_1 101# happyReduction_448 -happyReduction_448 happy_x_1 - = case happyOut116 happy_x_1 of { happy_var_1 -> - happyIn115 - (rev happy_var_1 - )} - -happyReduce_449 = happySpecReduce_1 102# happyReduction_449 -happyReduction_449 happy_x_1 - = case happyOut117 happy_x_1 of { happy_var_1 -> - happyIn116 - (rsingleton happy_var_1 - )} - -happyReduce_450 = happySpecReduce_3 102# happyReduction_450 -happyReduction_450 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut116 happy_x_1 of { happy_var_1 -> - case happyOut117 happy_x_3 of { happy_var_3 -> - happyIn116 - (rcons happy_var_3 happy_var_1 - )}} - -happyReduce_451 = happySpecReduce_1 103# happyReduction_451 -happyReduction_451 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn117 - ((fst . getSTRING) happy_var_1 - )} - -happyNewToken action sts stk - = lexer(\tk -> - let cont i = happyDoAction i tk action sts stk in - case tk of { - L _ T.Teof -> happyDoAction 139# tk action sts stk; - L _ (T.TcharConst _) -> cont 1#; - L _ (T.TstringConst _) -> cont 2#; - L _ (T.TintConst _) -> cont 3#; - L _ (T.TlongIntConst _) -> cont 4#; - L _ (T.TlongLongIntConst _) -> cont 5#; - L _ (T.TfloatConst _) -> cont 6#; - L _ (T.TdoubleConst _) -> cont 7#; - L _ (T.TlongDoubleConst _) -> cont 8#; - L _ (T.Tidentifier _) -> cont 9#; - L _ (T.Tnamed _) -> cont 10#; - L _ T.Tlparen -> cont 11#; - L _ T.Trparen -> cont 12#; - L _ T.Tlbrack -> cont 13#; - L _ T.Trbrack -> cont 14#; - L _ T.Tlbrace -> cont 15#; - L _ T.Trbrace -> cont 16#; - L _ T.Tcomma -> cont 17#; - L _ T.Tsemi -> cont 18#; - L _ T.Tcolon -> cont 19#; - L _ T.Tquestion -> cont 20#; - L _ T.Tdot -> cont 21#; - L _ T.Tarrow -> cont 22#; - L _ T.Tellipses -> cont 23#; - L _ T.Tplus -> cont 24#; - L _ T.Tminus -> cont 25#; - L _ T.Tstar -> cont 26#; - L _ T.Tdiv -> cont 27#; - L _ T.Tmod -> cont 28#; - L _ T.Tnot -> cont 29#; - L _ T.Tand -> cont 30#; - L _ T.Tor -> cont 31#; - L _ T.Txor -> cont 32#; - L _ T.Tlsh -> cont 33#; - L _ T.Trsh -> cont 34#; - L _ T.Tinc -> cont 35#; - L _ T.Tdec -> cont 36#; - L _ T.Tlnot -> cont 37#; - L _ T.Tland -> cont 38#; - L _ T.Tlor -> cont 39#; - L _ T.Teq -> cont 40#; - L _ T.Tne -> cont 41#; - L _ T.Tlt -> cont 42#; - L _ T.Tgt -> cont 43#; - L _ T.Tle -> cont 44#; - L _ T.Tge -> cont 45#; - L _ T.Tassign -> cont 46#; - L _ T.Tadd_assign -> cont 47#; - L _ T.Tsub_assign -> cont 48#; - L _ T.Tmul_assign -> cont 49#; - L _ T.Tdiv_assign -> cont 50#; - L _ T.Tmod_assign -> cont 51#; - L _ T.Tlsh_assign -> cont 52#; - L _ T.Trsh_assign -> cont 53#; - L _ T.Tand_assign -> cont 54#; - L _ T.Tor_assign -> cont 55#; - L _ T.Txor_assign -> cont 56#; - L _ T.Tauto -> cont 57#; - L _ T.Tbreak -> cont 58#; - L _ T.Tcase -> cont 59#; - L _ T.Tchar -> cont 60#; - L _ T.Tconst -> cont 61#; - L _ T.Tcontinue -> cont 62#; - L _ T.Tdefault -> cont 63#; - L _ T.Tdo -> cont 64#; - L _ T.Tdouble -> cont 65#; - L _ T.Telse -> cont 66#; - L _ T.Tenum -> cont 67#; - L _ T.Textern -> cont 68#; - L _ T.Tfloat -> cont 69#; - L _ T.Tfor -> cont 70#; - L _ T.Tgoto -> cont 71#; - L _ T.Tif -> cont 72#; - L _ T.Tinline -> cont 73#; - L _ T.Tint -> cont 74#; - L _ T.Tlong -> cont 75#; - L _ T.Tregister -> cont 76#; - L _ T.Trestrict -> cont 77#; - L _ T.Treturn -> cont 78#; - L _ T.Tshort -> cont 79#; - L _ T.Tsigned -> cont 80#; - L _ T.Tsizeof -> cont 81#; - L _ T.Tstatic -> cont 82#; - L _ T.Tstruct -> cont 83#; - L _ T.Tswitch -> cont 84#; - L _ T.Ttypedef -> cont 85#; - L _ T.Tunion -> cont 86#; - L _ T.Tunsigned -> cont 87#; - L _ T.Tvoid -> cont 88#; - L _ T.Tvolatile -> cont 89#; - L _ T.Twhile -> cont 90#; - L _ T.TBool -> cont 91#; - L _ T.TComplex -> cont 92#; - L _ T.TImaginary -> cont 93#; - L _ T.Tasm -> cont 94#; - L _ T.Tattribute -> cont 95#; - L _ T.Textension -> cont 96#; - L _ T.Tbuiltin_va_arg -> cont 97#; - L _ T.Tbuiltin_va_list -> cont 98#; - L _ T.Ttypeof -> cont 99#; - L _ T.T3lt -> cont 100#; - L _ T.T3gt -> cont 101#; - L _ T.Tdevice -> cont 102#; - L _ T.Tglobal -> cont 103#; - L _ T.Thost -> cont 104#; - L _ T.Tconstant -> cont 105#; - L _ T.Tshared -> cont 106#; - L _ T.Tnoinline -> cont 107#; - L _ T.Ttypename -> cont 108#; - L _ (T.Tanti_id _) -> cont 109#; - L _ (T.Tanti_int _) -> cont 110#; - L _ (T.Tanti_uint _) -> cont 111#; - L _ (T.Tanti_lint _) -> cont 112#; - L _ (T.Tanti_ulint _) -> cont 113#; - L _ (T.Tanti_float _) -> cont 114#; - L _ (T.Tanti_double _) -> cont 115#; - L _ (T.Tanti_long_double _) -> cont 116#; - L _ (T.Tanti_char _) -> cont 117#; - L _ (T.Tanti_string _) -> cont 118#; - L _ (T.Tanti_exp _) -> cont 119#; - L _ (T.Tanti_func _) -> cont 120#; - L _ (T.Tanti_args _) -> cont 121#; - L _ (T.Tanti_decl _) -> cont 122#; - L _ (T.Tanti_decls _) -> cont 123#; - L _ (T.Tanti_sdecl _) -> cont 124#; - L _ (T.Tanti_sdecls _) -> cont 125#; - L _ (T.Tanti_enum _) -> cont 126#; - L _ (T.Tanti_enums _) -> cont 127#; - L _ (T.Tanti_esc _) -> cont 128#; - L _ (T.Tanti_edecl _) -> cont 129#; - L _ (T.Tanti_edecls _) -> cont 130#; - L _ (T.Tanti_item _) -> cont 131#; - L _ (T.Tanti_items _) -> cont 132#; - L _ (T.Tanti_stm _) -> cont 133#; - L _ (T.Tanti_stms _) -> cont 134#; - L _ (T.Tanti_spec _) -> cont 135#; - L _ (T.Tanti_type _) -> cont 136#; - L _ (T.Tanti_param _) -> cont 137#; - L _ (T.Tanti_params _) -> cont 138#; - _ -> happyError' tk - }) - -happyError_ tk = happyError' tk - -happyThen :: () => P a -> (a -> P b) -> P b -happyThen = (>>=) -happyReturn :: () => a -> P a -happyReturn = (return) -happyThen1 = happyThen -happyReturn1 :: () => a -> P a -happyReturn1 = happyReturn -happyError' :: () => ((L T.Token)) -> P a -happyError' tk = happyError tk - -parseExp = happySomeParser where - happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut36 x)) - -parseEdecl = happySomeParser where - happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut102 x)) - -parseDecl = happySomeParser where - happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut39 x)) - -parseStructDecl = happySomeParser where - happySomeParser = happyThen (happyParse 3#) (\x -> happyReturn (happyOut54 x)) - -parseEnum = happySomeParser where - happySomeParser = happyThen (happyParse 4#) (\x -> happyReturn (happyOut61 x)) - -parseType = happySomeParser where - happySomeParser = happyThen (happyParse 5#) (\x -> happyReturn (happyOut77 x)) - -parseParam = happySomeParser where - happySomeParser = happyThen (happyParse 6#) (\x -> happyReturn (happyOut76 x)) - -parseInit = happySomeParser where - happySomeParser = happyThen (happyParse 7#) (\x -> happyReturn (happyOut83 x)) - -parseStm = happySomeParser where - happySomeParser = happyThen (happyParse 8#) (\x -> happyReturn (happyOut88 x)) - -parseUnit = happySomeParser where - happySomeParser = happyThen (happyParse 9#) (\x -> happyReturn (happyOut100 x)) - -parseFunc = happySomeParser where - happySomeParser = happyThen (happyParse 10#) (\x -> happyReturn (happyOut103 x)) - -happySeq = happyDontSeq - - -happyError :: L T.Token -> P a -happyError (L (Loc start _) _) = - throw $ ParserException (Loc start start) (text "parse error") - -getCHAR (L _ (T.TcharConst x)) = x -getSTRING (L _ (T.TstringConst x)) = x -getINT (L _ (T.TintConst x)) = x -getLONG (L _ (T.TlongIntConst x)) = x -getLONG_LONG (L _ (T.TlongLongIntConst x)) = x -getFLOAT (L _ (T.TfloatConst x)) = x -getDOUBLE (L _ (T.TdoubleConst x)) = x -getLONG_DOUBLE (L _ (T.TlongDoubleConst x)) = x -getID (L _ (T.Tidentifier id)) = id -getNAMED (L _ (T.Tnamed id)) = id - -getANTI_ID (L _ (T.Tanti_id v)) = v -getANTI_INT (L _ (T.Tanti_int v)) = v -getANTI_UINT (L _ (T.Tanti_uint v)) = v -getANTI_LINT (L _ (T.Tanti_lint v)) = v -getANTI_ULINT (L _ (T.Tanti_ulint v)) = v -getANTI_FLOAT (L _ (T.Tanti_float v)) = v -getANTI_DOUBLE (L _ (T.Tanti_double v)) = v -getANTI_LONG_DOUBLE (L _ (T.Tanti_long_double v)) = v -getANTI_CHAR (L _ (T.Tanti_char v)) = v -getANTI_STRING (L _ (T.Tanti_string v)) = v -getANTI_EXP (L _ (T.Tanti_exp v)) = v -getANTI_FUNC (L _ (T.Tanti_func v)) = v -getANTI_ARGS (L _ (T.Tanti_args v)) = v -getANTI_DECL (L _ (T.Tanti_decl v)) = v -getANTI_DECLS (L _ (T.Tanti_decls v)) = v -getANTI_SDECL (L _ (T.Tanti_sdecl v)) = v -getANTI_SDECLS (L _ (T.Tanti_sdecls v)) = v -getANTI_ENUM (L _ (T.Tanti_enum v)) = v -getANTI_ENUMS (L _ (T.Tanti_enums v)) = v -getANTI_ESC (L _ (T.Tanti_esc v)) = v -getANTI_EDECL (L _ (T.Tanti_edecl v)) = v -getANTI_EDECLS (L _ (T.Tanti_edecls v)) = v -getANTI_ITEM (L _ (T.Tanti_item v)) = v -getANTI_ITEMS (L _ (T.Tanti_items v)) = v -getANTI_STM (L _ (T.Tanti_stm v)) = v -getANTI_STMS (L _ (T.Tanti_stms v)) = v -getANTI_TYPE (L _ (T.Tanti_type v)) = v -getANTI_SPEC (L _ (T.Tanti_spec v)) = v -getANTI_PARAM (L _ (T.Tanti_param v)) = v -getANTI_PARAMS (L _ (T.Tanti_params v)) = v - -lexer :: (L T.Token -> P a) -> P a -lexer cont = - lexToken >>= cont - -locate :: Loc -> (SrcLoc -> a) -> L a -locate loc f = L loc (f (SrcLoc loc)) - -data DeclTySpec = DeclTySpec DeclSpec !SrcLoc - | AntiDeclTySpec String !SrcLoc - -data TySpec = TSauto !SrcLoc - | TSregister !SrcLoc - | TSstatic !SrcLoc - | TSextern !SrcLoc - | TSexternL String !SrcLoc - | TStypedef !SrcLoc - - | TSconst !SrcLoc - | TSvolatile !SrcLoc - | TSinline !SrcLoc - - | TSsigned !SrcLoc - | TSunsigned !SrcLoc - - | TSvoid !SrcLoc - | TSchar !SrcLoc - | TSshort !SrcLoc - | TSint !SrcLoc - | TSlong !SrcLoc - | TSfloat !SrcLoc - | TSdouble !SrcLoc - - | TSstruct (Maybe Id) (Maybe [FieldGroup]) [Attr] !SrcLoc - | TSunion (Maybe Id) (Maybe [FieldGroup]) [Attr] !SrcLoc - | TSenum (Maybe Id) [CEnum] [Attr] !SrcLoc - | TSnamed Id !SrcLoc - - | TStypeofExp Exp !SrcLoc - | TStypeofType Type !SrcLoc - | TSva_list !SrcLoc - - -- C99 - | TSrestrict !SrcLoc - - -- CUDA - | TSdevice !SrcLoc - | TSglobal !SrcLoc - | TShost !SrcLoc - | TSconstant !SrcLoc - | TSshared !SrcLoc - | TSnoinline !SrcLoc - -instance Located DeclTySpec where - getLoc (DeclTySpec _ loc) = getLoc loc - getLoc (AntiDeclTySpec _ loc) = getLoc loc - -instance Located TySpec where - getLoc (TSauto loc) = getLoc loc - getLoc (TSregister loc) = getLoc loc - getLoc (TSstatic loc) = getLoc loc - getLoc (TSextern loc) = getLoc loc - getLoc (TSexternL _ loc) = getLoc loc - getLoc (TStypedef loc) = getLoc loc - - getLoc (TSconst loc) = getLoc loc - getLoc (TSvolatile loc) = getLoc loc - getLoc (TSinline loc) = getLoc loc - - getLoc (TSsigned loc) = getLoc loc - getLoc (TSunsigned loc) = getLoc loc - - getLoc (TSvoid loc) = getLoc loc - getLoc (TSchar loc) = getLoc loc - getLoc (TSshort loc) = getLoc loc - getLoc (TSint loc) = getLoc loc - getLoc (TSlong loc) = getLoc loc - getLoc (TSfloat loc) = getLoc loc - getLoc (TSdouble loc) = getLoc loc - - getLoc (TSstruct _ _ _ loc) = getLoc loc - getLoc (TSunion _ _ _ loc) = getLoc loc - getLoc (TSenum _ _ _ loc) = getLoc loc - getLoc (TSnamed _ loc) = getLoc loc - - getLoc (TStypeofExp _ loc) = getLoc loc - getLoc (TStypeofType _ loc) = getLoc loc - getLoc (TSva_list loc) = getLoc loc - - getLoc (TSrestrict loc) = getLoc loc - - getLoc (TSdevice loc) = getLoc loc - getLoc (TSglobal loc) = getLoc loc - getLoc (TShost loc) = getLoc loc - getLoc (TSconstant loc) = getLoc loc - getLoc (TSshared loc) = getLoc loc - getLoc (TSnoinline loc) = getLoc loc - -instance Pretty TySpec where - ppr (TSauto _) = text "auto" - ppr (TSregister _) = text "register" - ppr (TSstatic _) = text "static" - ppr (TSextern _) = text "extern" - ppr (TSexternL l _) = text "extern" <+> ppr l - ppr (TStypedef _) = text "typedef" - - ppr (TSconst _) = text "const" - ppr (TSinline _) = text "inline" - ppr (TSrestrict _) = text "restrict" - ppr (TSvolatile _) = text "volatile" - - ppr (TSsigned _) = text "signed" - ppr (TSunsigned _) = text "unsigned" - - ppr (TSvoid _) = text "void" - ppr (TSchar _) = text "char" - ppr (TSshort _) = text "short" - ppr (TSint _) = text "int" - ppr (TSlong _) = text "long" - ppr (TSfloat _) = text "float" - ppr (TSdouble _) = text "double" - - ppr (TSstruct maybe_id maybe_fields attrs _) = - pprStructOrUnion "struct" maybe_id maybe_fields attrs - - ppr (TSunion maybe_id maybe_fields attrs _) = - pprStructOrUnion "union" maybe_id maybe_fields attrs - - ppr (TSenum maybe_id cenums attrs _) = - pprEnum maybe_id cenums attrs - - ppr (TStypeofExp e _) = text "__typeof__" <> parens (ppr e) - ppr (TStypeofType ty _) = text "__typeof__" <> parens (ppr ty) - ppr (TSnamed ident _) = ppr ident - - ppr (TSva_list _) = text "__builtin_va_list" - - ppr (TSdevice _) = text "__device__" - ppr (TSglobal _) = text "__global__" - ppr (TShost _) = text "__host__" - ppr (TSconstant _) = text "__constant__" - ppr (TSshared _) = text "__shared__" - ppr (TSnoinline _) = text "__noinline__" - -isStorage :: TySpec -> Bool -isStorage (TSauto _) = True -isStorage (TSregister _) = True -isStorage (TSstatic _) = True -isStorage (TSextern _) = True -isStorage (TSexternL _ _) = True -isStorage (TStypedef _) = True -isStorage _ = False - -mkStorage :: [TySpec] -> [Storage] -mkStorage specs = map mk (filter isStorage specs) - where - mk :: TySpec -> Storage - mk (TSauto loc) = Tauto loc - mk (TSregister loc) = Tregister loc - mk (TSstatic loc) = Tstatic loc - mk (TSextern loc) = Textern loc - mk (TSexternL l loc) = TexternL l loc - mk (TStypedef loc) = Ttypedef loc - mk _ = error "internal error in mkStorage" - -isTypeQual :: TySpec -> Bool -isTypeQual (TSconst _) = True -isTypeQual (TSvolatile _) = True -isTypeQual (TSinline _) = True -isTypeQual (TSrestrict _) = True -isTypeQual (TSdevice _) = True -isTypeQual (TSglobal _) = True -isTypeQual (TShost _) = True -isTypeQual (TSconstant _) = True -isTypeQual (TSshared _) = True -isTypeQual (TSnoinline _) = True -isTypeQual _ = False - -mkTypeQuals :: [TySpec] -> [TypeQual] -mkTypeQuals specs = map mk (filter isTypeQual specs) - where - mk :: TySpec -> TypeQual - mk (TSconst loc) = Tconst loc - mk (TSvolatile loc) = Tvolatile loc - mk (TSinline loc) = Tinline loc - mk (TSrestrict loc) = Trestrict loc - mk (TSdevice loc) = Tdevice loc - mk (TSglobal loc) = Tglobal loc - mk (TShost loc) = Thost loc - mk (TSconstant loc) = Tconstant loc - mk (TSshared loc) = Tshared loc - mk (TSnoinline loc) = Tnoinline loc - mk _ = error "internal error in mkTypeQual" - -isSign :: TySpec -> Bool -isSign (TSsigned _) = True -isSign (TSunsigned _) = True -isSign _ = False - -hasSign :: [TySpec] -> Bool -hasSign specs = any isSign specs - -mkSign :: [TySpec] -> P (Maybe Sign) -mkSign specs = - case filter isSign specs of - [] -> return Nothing - [TSunsigned loc] -> return (Just (Tunsigned loc)) - [TSsigned loc] -> return (Just (Tsigned loc)) - [_] -> fail "internal error in mkSign" - _ -> fail "multiple signs specified" - -checkNoSign :: [TySpec] -> String -> P () -checkNoSign spec msg | hasSign spec = fail msg - | otherwise = return () - -composeDecls :: Decl -> Decl -> Decl -composeDecls (DeclRoot _) root = - root - -composeDecls (C.Ptr quals decl loc) root = - C.Ptr quals (composeDecls decl root) loc - -composeDecls (Array quals size decl loc) root = - Array quals size (composeDecls decl root) loc - -composeDecls (Proto decl args loc) root = - Proto (composeDecls decl root) args loc - -composeDecls (OldProto decl args loc) root = - OldProto (composeDecls decl root) args loc - -mkDeclSpec :: [TySpec] -> P DeclSpec -mkDeclSpec specs = - go rest - where - storage ::[Storage] - storage = mkStorage specs - - quals :: [TypeQual] - quals = mkTypeQuals specs - - rest :: [TySpec] - rest = [x | x <- specs - , not (isStorage x) && not (isTypeQual x) && not (isSign x)] - - go :: [TySpec] -> P DeclSpec - go [TSvoid loc] = do - checkNoSign specs "sign specified for void type" - return $ cdeclSpec storage quals (Tvoid loc) - - go [TSchar loc] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tchar sign loc) - - go [TSshort loc] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tshort sign loc) - - go [TSshort _, TSint _] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tshort sign (locOf rest)) - - go [TSint _, TSshort _] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tshort sign (locOf rest)) - - go [TSint loc] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tint sign loc) - - go [TSlong loc] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tlong sign loc) - - go [TSlong _, TSint _] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tlong sign (locOf rest)) - - go [TSint _, TSlong _] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tlong sign (locOf rest)) - - go [TSlong _, TSlong _] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tlong_long sign (locOf rest)) - - go [TSlong _, TSlong _, TSint _] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tlong_long sign (locOf rest)) - - go [TSlong _, TSint _, TSlong _] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tlong_long sign (locOf rest)) - - go [TSint _, TSlong _, TSlong _] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tlong_long sign (locOf rest)) - - go [TSfloat loc] = do - checkNoSign specs "sign specified for float type" - return $ cdeclSpec storage quals (Tfloat loc) - - go [TSdouble loc] = do - checkNoSign specs "sign specified for double type" - return $ cdeclSpec storage quals (Tdouble loc) - - go [TSlong _, TSdouble _] = do - checkNoSign specs "sign specified for long double type" - return $ cdeclSpec storage quals (Tlong_double (locOf rest)) - - go [TSdouble _, TSlong _] = do - checkNoSign specs "sign specified for long double type" - return $ cdeclSpec storage quals (Tlong_double (locOf rest)) - - go [TSstruct ident fields attrs loc] = do - checkNoSign specs "sign specified for struct type" - return $ cdeclSpec storage quals (Tstruct ident fields attrs loc) - - go [TSunion ident fields attrs loc] = do - checkNoSign specs "sign specified for union type" - return $ cdeclSpec storage quals (Tunion ident fields attrs loc) - - go [TSenum ident enums attrs loc] = do - checkNoSign specs "sign specified for enum type" - return $ cdeclSpec storage quals (Tenum ident enums attrs loc) - - go [TSnamed ident loc] = do - checkNoSign specs "sign specified for named type" - return $ cdeclSpec storage quals (Tnamed ident loc) - - go [TStypeofExp e loc] = do - checkNoSign specs "sign specified for typeof" - return $ cdeclSpec storage quals (TtypeofExp e loc) - - go [TStypeofType ty loc] = do - checkNoSign specs "sign specified for typeof" - return $ cdeclSpec storage quals (TtypeofType ty loc) - - go [TSva_list loc] = do - checkNoSign specs "sign specified for __builtin_va_list" - return $ cdeclSpec storage quals (Tva_list loc) - - go [] = do - sign <- mkSign specs - return $ cdeclSpec storage quals (Tint sign (storage <--> quals)) - - go tyspecs = - throw $ ParserException loc - (text "bad type:" <+> spread (map ppr tyspecs)) - where - loc = getLoc tyspecs - -mkPtr :: [TySpec] -> Decl -> Decl -mkPtr specs decl = C.Ptr quals decl (specs <--> decl) - where - quals = mkTypeQuals specs - -mkArray :: [TySpec] -> ArraySize -> Decl -> Decl -mkArray specs size decl = Array quals size decl (specs <--> decl) - where - quals = mkTypeQuals specs - -mkProto :: Params -> Decl -> Decl -mkProto args decl = Proto decl args (args <--> decl) - -mkOldProto :: [Id] -> Decl -> Decl -mkOldProto args decl = OldProto decl args (args <--> decl) - -checkInitGroup :: DeclSpec -> Decl -> [Attr] -> [Init] -> P InitGroup -checkInitGroup dspec decl attrs inits = - go dspec - where - go :: DeclSpec -> P InitGroup - go (DeclSpec storage quals tspec _) | any isTypedef storage = do - typedefs <- mapM checkInit inits' - let dspec' = cdeclSpec storage' quals tspec - return $ ctypedefGroup dspec' attrs typedefs - where - storage' :: [Storage] - storage' = [x | x <- storage, (not . isTypedef) x] - - isTypedef :: Storage -> Bool - isTypedef (Ttypedef _) = True - isTypedef _ = False - - checkInit :: Init -> P Typedef - checkInit init@(Init ident _ _ (Just _) _ _)= - throw $ ParserException (getLoc init) $ - text "typedef" <+> - squotes (ppr ident) <+> - text "is illegaly initialized" - - checkInit (Init ident@(Id name _) decl _ _ attrs _) = do - addTypedef name - return $ ctypedef ident decl attrs - - checkInit (Init ident@(AntiId _ _) decl _ _ attrs _) = - return $ ctypedef ident decl attrs - - go _ = do - mapM_ checkInit inits' - return $ cinitGroup dspec attrs inits' - where - checkInit :: Init -> P () - checkInit (Init (Id name _) _ _ _ _ _) = addVariable name - checkInit (Init (AntiId _ _) _ _ _ _ _) = return () - - composeInitDecl :: Decl -> Init -> Init - composeInitDecl decl (Init ident initDecl maybe_asmlabel maybe_exp attrs loc) = - Init ident (composeDecls initDecl decl) maybe_asmlabel maybe_exp attrs loc - - inits' = map (composeInitDecl decl) inits - - loc :: Loc - loc = (dspec <--> attrs :: Loc) <--> inits - -declRoot :: Located a => a -> Decl -declRoot x = DeclRoot (locOf x) - -data RevList a = RNil - | RCons a (RevList a) - -rnil :: RevList a -rnil = RNil - -rsingleton :: a -> RevList a -rsingleton x = RCons x RNil - -rcons :: a -> RevList a -> RevList a -rcons x xs = RCons x xs - -rev :: RevList a -> [a] -rev xs = go [] xs - where - go l RNil = l - go l (RCons x xs) = go (x : l) xs - -expected :: Loc - -> [String] - -> P a -expected loc alts = - throw $ ParserException (locEnd loc) - (text "unclosed" <+> go alts) - where - go :: [String] -> Doc - go [] = empty - go [x] = text x - go [x, y] = text x <+> text "or" <+> text y - go (x : xs) = text x <> comma <+> go xs - -unclosed :: Loc - -> String - -> P a -unclosed loc x = - throw $ ParserException (locEnd loc) - (text "unclosed" <+> squotes (text x)) - -badExecutionContext :: Loc - -> [Exp] - -> P a -badExecutionContext loc es = - throw $ ParserException (locEnd loc) $ - text "execution context should have 2-4 arguments, but saw" <+> - ppr (length es) - -badFunctionDeclaration :: Loc - -> [Exp] - -> P a -badFunctionDeclaration loc es = - throw $ ParserException (locEnd loc) $ - text "execution context should have 2-4 arguments, but saw" <+> - ppr (length es) -{-# 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 30 "templates\\GenericTemplate.hs" #-} - - -data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList - - - - - -{-# LINE 51 "templates\\GenericTemplate.hs" #-} - -{-# LINE 61 "templates\\GenericTemplate.hs" #-} - -{-# LINE 70 "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 130 "templates\\GenericTemplate.hs" #-} - - -indexShortOffAddr (HappyA# arr) off = - Happy_GHC_Exts.narrow16Int# i - where - i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low) - 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 163 "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 :: a -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 #-} - - ------------------------------------------------------------------------------ --- Seq-ing. If the --strict flag is given, then Happy emits --- happySeq = happyDoSeq --- otherwise it emits --- happySeq = happyDontSeq - -happyDoSeq, happyDontSeq :: a -> b -> b -happyDoSeq a b = a `seq` b -happyDontSeq a b = b - ------------------------------------------------------------------------------ --- Don't inline any functions from the template. GHC has a nasty habit --- of deciding to inline happyGoto everywhere, which increases the size of --- the generated parser quite a bit. - - -{-# NOINLINE happyDoAction #-} -{-# NOINLINE happyTable #-} -{-# NOINLINE happyCheck #-} -{-# NOINLINE happyActOffsets #-} -{-# NOINLINE happyGotoOffsets #-} -{-# NOINLINE happyDefActions #-} - -{-# NOINLINE happyShift #-} -{-# NOINLINE happySpecReduce_0 #-} -{-# NOINLINE happySpecReduce_1 #-} -{-# NOINLINE happySpecReduce_2 #-} -{-# NOINLINE happySpecReduce_3 #-} -{-# NOINLINE happyReduce #-} -{-# NOINLINE happyMonadReduce #-} -{-# NOINLINE happyGoto #-} -{-# NOINLINE happyFail #-} - --- end of Happy Template.
language-c-quote.cabal view
@@ -1,5 +1,5 @@ name: language-c-quote-version: 0.3.0.1+version: 0.3.1.0 cabal-version: >= 1.10 license: BSD3 license-file: LICENSE@@ -9,11 +9,12 @@ stability: alpha homepage: http://www.eecs.harvard.edu/~mainland/ category: Language-synopsis: C/CUDA quasiquoting library.+synopsis: C/CUDA/OpenCL quasiquoting library.+tested-with: GHC==7.0.4, GHC==7.4.1 description: This package provides a general parser for the C language, including most GCC- extensions and some CUDA extensions.+ extensions and some CUDA and OpenCL extensions. build-type: Custom @@ -21,21 +22,28 @@ default-language: Haskell98 build-depends:- array >=0.2 && <0.4,+ array >=0.2 && <0.5, base >=4 && <5, bytestring >=0.9 && <0.10, containers >=0.4 && <0.5, exception-mtl >=0.3 && <0.4, exception-transformers >=0.3 && <0.4,- filepath >=1.2 && <1.3,+ filepath >=1.2 && <1.4, haskell-src-meta >= 0.4 && < 0.6, mainland-pretty >=0.1 && <0.2, mtl >=2.0 && <2.1, srcloc >=0.1 && <0.2, syb >=0.3 && <0.4,- symbol >=0.1 && <0.2,- template-haskell >=2.5 && <2.7+ symbol >=0.1 && <0.2 + if impl(ghc >= 7.0) && impl(ghc < 7.2)+ build-depends:+ template-haskell >=2.5 && <2.6++ if impl(ghc >= 7.4) && impl(ghc < 7.6)+ build-depends:+ template-haskell >=2.7 && <2.8+ exposed-modules: Language.C Language.C.Parser@@ -49,6 +57,7 @@ Language.C.Quote.C Language.C.Quote.CUDA Language.C.Quote.GCC+ Language.C.Quote.OpenCL Language.C.Smart Language.C.Syntax
tests/unit/Main.hs view
@@ -1,14 +1,18 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE QuasiQuotes #-} module Main where import Test.HUnit +import Language.C.Quote.C+import System.Exit (exitFailure, exitSuccess)++#if !MIN_VERSION_template_haskell(2,7,0) import qualified Data.Loc import qualified Data.Symbol-import Language.C.Quote.C import qualified Language.C.Syntax-import System.Exit (exitFailure, exitSuccess)+#endif /* !MIN_VERSION_template_haskell(2,7,0) */ main = do count <- runTestTT tests@@ -19,7 +23,7 @@ tests = TestList [exp_id, exp_int, exp_float, exp_char, exp_string, exp_exp, exp_func, exp_args, exp_decl, exp_sdecl, exp_enum, exp_edecl, exp_stm, exp_param, exp_ty,- pat_args]+ pat_args, exp_hexp] exp_id = "exp id" ~: [cexp|$id:ident|] ~?= [cexp|x|]@@ -146,3 +150,7 @@ stms = case [cstm|f(1, 2, 3);|] of [cstm|f(1, $args:es);|] -> es _ -> []++exp_hexp =+ "exp hexp" ~: [cexp|$ulint:(13 - 2*5)|]+ ~?= [cexp|3UL|]