language-c-quote 0.4.4 → 0.7.1
raw patch · 19 files changed
+14119/−2439 lines, 19 filesdep ~mainland-prettydep ~srclocPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: mainland-pretty, srcloc
API changes (from Hackage documentation)
- Language.C.Parser.Monad: alexInp :: AlexInput -> {-# UNPACK #-} !ByteString
- Language.C.Parser.Parser: happyIn14 :: (Id) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyOut14 :: (HappyAbsSyn) -> (Id)
- Language.C.Parser.Parser: happyReduce_11 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_11 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Pretty: instance Show ArraySize
- Language.C.Pretty: instance Show AssignOp
- Language.C.Pretty: instance Show Attr
- Language.C.Pretty: instance Show BinOp
- Language.C.Pretty: instance Show BlockItem
- Language.C.Pretty: instance Show CEnum
- Language.C.Pretty: instance Show Const
- Language.C.Pretty: instance Show DeclSpec
- Language.C.Pretty: instance Show Definition
- Language.C.Pretty: instance Show Designation
- Language.C.Pretty: instance Show Designator
- Language.C.Pretty: instance Show Exp
- Language.C.Pretty: instance Show Field
- Language.C.Pretty: instance Show FieldGroup
- Language.C.Pretty: instance Show Func
- Language.C.Pretty: instance Show Id
- Language.C.Pretty: instance Show Init
- Language.C.Pretty: instance Show InitGroup
- Language.C.Pretty: instance Show Initializer
- Language.C.Pretty: instance Show Param
- Language.C.Pretty: instance Show Params
- Language.C.Pretty: instance Show Sign
- Language.C.Pretty: instance Show Stm
- Language.C.Pretty: instance Show Storage
- Language.C.Pretty: instance Show Type
- Language.C.Pretty: instance Show TypeQual
- Language.C.Pretty: instance Show TypeSpec
- Language.C.Pretty: instance Show Typedef
- Language.C.Pretty: instance Show UnOp
+ Language.C.Parser.Monad: addClassdef :: String -> P ()
+ Language.C.Parser.Monad: alexInput :: AlexInput -> {-# UNPACK #-} !ByteString
+ Language.C.Parser.Monad: isClassdef :: String -> P Bool
+ Language.C.Parser.Monad: objcExts :: ExtensionsInt
+ Language.C.Parser.Monad: useObjCExts :: P Bool
+ Language.C.Parser.Parser: TSObjC__strong :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSObjC__unsafe_retained :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSObjC__weak :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TS__block :: !SrcLoc -> TySpec
+ Language.C.Parser.Parser: addClassdefId :: Id -> P ()
+ Language.C.Parser.Parser: assertObjCEnabled :: Loc -> String -> P ()
+ Language.C.Parser.Parser: expectedObjCPropertyAttr :: Loc -> P a
+ Language.C.Parser.Parser: getANTI_INIT :: L Token -> String
+ Language.C.Parser.Parser: getANTI_INITS :: L Token -> String
+ Language.C.Parser.Parser: getOBJCNAMED :: L Token -> String
+ Language.C.Parser.Parser: happyIn118 :: (Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn119 :: (Func) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn120 :: (Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn121 :: (Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn122 :: (([Id], [ObjCIvarDecl], [ObjCIfaceDecl], Loc)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn123 :: (RevList Id) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn124 :: (RevList ObjCIvarDecl) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn125 :: (RevList ObjCIvarDecl) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn126 :: (ObjCVisibilitySpec) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn127 :: (RevList ObjCIfaceDecl) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn128 :: (ObjCIfaceDecl) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn129 :: (RevList ObjCPropAttr) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn130 :: (ObjCPropAttr) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn131 :: (ObjCMethodReq) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn132 :: (ObjCMethodProto) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn133 :: ((Maybe Type, [Attr], [ObjCParm], Bool)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn134 :: ([ObjCParm]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn135 :: (RevList ObjCParm) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn136 :: (ObjCParm) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn137 :: (Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn138 :: ((Id, Loc)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn139 :: (Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn140 :: (([ObjCIvarDecl], [Definition], Loc)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn141 :: (([Definition], Loc)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn142 :: (RevList Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn143 :: (Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn144 :: (RevList (Id, Maybe Id)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn145 :: (Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn146 :: (Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn147 :: (Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn148 :: ([Attr]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn149 :: ([Attr]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn150 :: ([Attr]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn151 :: (RevList Attr) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn152 :: (Attr) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn153 :: (Id) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn154 :: (Bool) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn155 :: (Stm) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn156 :: (RevList String) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn157 :: ([(String, Exp)]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn158 :: (RevList (String, Exp)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn159 :: ((String, Exp)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn160 :: ([String]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn161 :: (RevList String) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn162 :: (String) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyOut118 :: (HappyAbsSyn) -> (Definition)
+ Language.C.Parser.Parser: happyOut119 :: (HappyAbsSyn) -> (Func)
+ Language.C.Parser.Parser: happyOut120 :: (HappyAbsSyn) -> (Definition)
+ Language.C.Parser.Parser: happyOut121 :: (HappyAbsSyn) -> (Definition)
+ Language.C.Parser.Parser: happyOut122 :: (HappyAbsSyn) -> (([Id], [ObjCIvarDecl], [ObjCIfaceDecl], Loc))
+ Language.C.Parser.Parser: happyOut123 :: (HappyAbsSyn) -> (RevList Id)
+ Language.C.Parser.Parser: happyOut124 :: (HappyAbsSyn) -> (RevList ObjCIvarDecl)
+ Language.C.Parser.Parser: happyOut125 :: (HappyAbsSyn) -> (RevList ObjCIvarDecl)
+ Language.C.Parser.Parser: happyOut126 :: (HappyAbsSyn) -> (ObjCVisibilitySpec)
+ Language.C.Parser.Parser: happyOut127 :: (HappyAbsSyn) -> (RevList ObjCIfaceDecl)
+ Language.C.Parser.Parser: happyOut128 :: (HappyAbsSyn) -> (ObjCIfaceDecl)
+ Language.C.Parser.Parser: happyOut129 :: (HappyAbsSyn) -> (RevList ObjCPropAttr)
+ Language.C.Parser.Parser: happyOut130 :: (HappyAbsSyn) -> (ObjCPropAttr)
+ Language.C.Parser.Parser: happyOut131 :: (HappyAbsSyn) -> (ObjCMethodReq)
+ Language.C.Parser.Parser: happyOut132 :: (HappyAbsSyn) -> (ObjCMethodProto)
+ Language.C.Parser.Parser: happyOut133 :: (HappyAbsSyn) -> ((Maybe Type, [Attr], [ObjCParm], Bool))
+ Language.C.Parser.Parser: happyOut134 :: (HappyAbsSyn) -> ([ObjCParm])
+ Language.C.Parser.Parser: happyOut135 :: (HappyAbsSyn) -> (RevList ObjCParm)
+ Language.C.Parser.Parser: happyOut136 :: (HappyAbsSyn) -> (ObjCParm)
+ Language.C.Parser.Parser: happyOut137 :: (HappyAbsSyn) -> (Definition)
+ Language.C.Parser.Parser: happyOut138 :: (HappyAbsSyn) -> ((Id, Loc))
+ Language.C.Parser.Parser: happyOut139 :: (HappyAbsSyn) -> (Definition)
+ Language.C.Parser.Parser: happyOut140 :: (HappyAbsSyn) -> (([ObjCIvarDecl], [Definition], Loc))
+ Language.C.Parser.Parser: happyOut141 :: (HappyAbsSyn) -> (([Definition], Loc))
+ Language.C.Parser.Parser: happyOut142 :: (HappyAbsSyn) -> (RevList Definition)
+ Language.C.Parser.Parser: happyOut143 :: (HappyAbsSyn) -> (Definition)
+ Language.C.Parser.Parser: happyOut144 :: (HappyAbsSyn) -> (RevList (Id, Maybe Id))
+ Language.C.Parser.Parser: happyOut145 :: (HappyAbsSyn) -> (Definition)
+ Language.C.Parser.Parser: happyOut146 :: (HappyAbsSyn) -> (Definition)
+ Language.C.Parser.Parser: happyOut147 :: (HappyAbsSyn) -> (Definition)
+ Language.C.Parser.Parser: happyOut148 :: (HappyAbsSyn) -> ([Attr])
+ Language.C.Parser.Parser: happyOut149 :: (HappyAbsSyn) -> ([Attr])
+ Language.C.Parser.Parser: happyOut150 :: (HappyAbsSyn) -> ([Attr])
+ Language.C.Parser.Parser: happyOut151 :: (HappyAbsSyn) -> (RevList Attr)
+ Language.C.Parser.Parser: happyOut152 :: (HappyAbsSyn) -> (Attr)
+ Language.C.Parser.Parser: happyOut153 :: (HappyAbsSyn) -> (Id)
+ Language.C.Parser.Parser: happyOut154 :: (HappyAbsSyn) -> (Bool)
+ Language.C.Parser.Parser: happyOut155 :: (HappyAbsSyn) -> (Stm)
+ Language.C.Parser.Parser: happyOut156 :: (HappyAbsSyn) -> (RevList String)
+ Language.C.Parser.Parser: happyOut157 :: (HappyAbsSyn) -> ([(String, Exp)])
+ Language.C.Parser.Parser: happyOut158 :: (HappyAbsSyn) -> (RevList (String, Exp))
+ Language.C.Parser.Parser: happyOut159 :: (HappyAbsSyn) -> ((String, Exp))
+ Language.C.Parser.Parser: happyOut160 :: (HappyAbsSyn) -> ([String])
+ Language.C.Parser.Parser: happyOut161 :: (HappyAbsSyn) -> (RevList String)
+ Language.C.Parser.Parser: happyOut162 :: (HappyAbsSyn) -> (String)
+ Language.C.Parser.Parser: happyReduce_477 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_478 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_479 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_480 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_481 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_482 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_483 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_484 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_485 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_486 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_487 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_488 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_489 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_490 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_491 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_492 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_493 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_494 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_495 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_496 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_497 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_498 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_499 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_500 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_501 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_502 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_503 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_504 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_505 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_506 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_507 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_508 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_509 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_510 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_511 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_512 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_513 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_514 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_515 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_516 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_517 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_518 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_519 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_520 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_521 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_522 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_523 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_524 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_525 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_526 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_527 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_528 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_529 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_530 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_531 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_532 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_533 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_534 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_535 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_536 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_537 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_538 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_539 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_540 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_541 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_542 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_543 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_544 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_545 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_546 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_547 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_548 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_549 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_550 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_551 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_552 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_553 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_554 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_555 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_556 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_557 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_558 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_559 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_560 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_561 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_562 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_563 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_564 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_565 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_566 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_567 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_568 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_569 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_570 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_571 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_572 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_573 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_574 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_575 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_576 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_577 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_578 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_579 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_580 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_581 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_582 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_583 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_584 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_585 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_586 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_587 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_588 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_589 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_590 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_591 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_592 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_593 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_594 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_595 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_596 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_597 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_598 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_599 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_600 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_601 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_602 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_603 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_604 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_605 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_606 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_607 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_608 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_609 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_610 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_611 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_612 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_613 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_614 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_615 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_616 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_617 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_618 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_619 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_620 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_621 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_622 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_623 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_624 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_625 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_626 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_627 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_628 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_629 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_630 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_631 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_632 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_633 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_634 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_635 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_636 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_637 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_638 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_639 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_640 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_641 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_642 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_643 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_644 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_645 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_646 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_647 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_648 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_649 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_650 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_651 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_652 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_653 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_654 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_655 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_656 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_657 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_658 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_659 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_660 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_661 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_662 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_663 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_664 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_665 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_666 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_667 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_668 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_669 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_670 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_671 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_672 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_673 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_674 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_675 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_676 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_677 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_678 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_679 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_680 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_681 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_682 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_683 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_684 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_685 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_686 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_687 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_688 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_689 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_690 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_691 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_692 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_693 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_694 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_695 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_696 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_697 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_698 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_699 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_700 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_701 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_702 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_703 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduce_704 :: Int# -> L Token -> Int# -> Happy_IntList -> HappyStk HappyAbsSyn -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_477 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_478 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_479 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_480 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_481 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_482 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_483 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_484 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_485 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_486 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_487 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_488 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_489 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_490 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_491 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_492 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_493 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_494 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_495 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_496 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_497 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_498 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_499 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_500 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_501 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_502 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_503 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_504 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_505 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_506 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_507 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_508 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_509 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_510 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_511 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_512 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_513 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_514 :: t -> t1 -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_515 :: t -> t1 -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_516 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_517 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_518 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_519 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_520 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_521 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_522 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_523 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_524 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_525 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_526 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_527 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_528 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_529 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_530 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_531 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_532 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_533 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_534 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_535 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_536 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_537 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_538 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_539 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_540 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_541 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_542 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_543 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_544 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_545 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_546 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_547 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_548 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_549 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_550 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_551 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_552 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_553 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_554 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_555 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_556 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_557 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_558 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_559 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_560 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_561 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_562 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_563 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_564 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_565 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_566 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_567 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_568 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_569 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_570 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_571 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_572 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_573 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_574 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_575 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_576 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_577 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_578 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_579 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_580 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_581 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_582 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_583 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_584 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_585 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_586 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_587 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_588 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_589 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_590 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_591 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_592 :: t -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_593 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_594 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_595 :: t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_596 :: t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_597 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_598 :: t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_599 :: t -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_600 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_601 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_602 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_603 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_604 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_605 :: t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_606 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_607 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_608 :: t -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_609 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_610 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_611 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_612 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_613 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_614 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_615 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_616 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_617 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_618 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_619 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_620 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_621 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_622 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_623 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_624 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_625 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_626 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_627 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_628 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_629 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_630 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_631 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_632 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_633 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_634 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_635 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_636 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_637 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_638 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_639 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_640 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_641 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_642 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_643 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_644 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_645 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_646 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_647 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_648 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_649 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_650 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_651 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_652 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_653 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_654 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_655 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_656 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_657 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_658 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_659 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_660 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_661 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_662 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_663 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_664 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_665 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_666 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_667 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_668 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_669 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_670 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_671 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_672 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_673 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_674 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_675 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_676 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_677 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_678 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_679 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_680 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_681 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_682 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_683 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_684 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_685 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_686 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_687 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_688 :: t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_689 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_690 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_691 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_692 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_693 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_694 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_695 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_696 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_697 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_698 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_699 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_700 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_701 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_702 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_703 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_704 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: mkBlockPtr :: Loc -> [TySpec] -> P (Decl -> Decl)
+ Language.C.Parser.Parser: mkStringConst :: RevList (L (String, String)) -> Const
+ Language.C.Parser.Parser: parseBlockItem :: P BlockItem
+ Language.C.Parser.Tokens: TObjCNO :: Token
+ Language.C.Parser.Tokens: TObjCYES :: Token
+ Language.C.Parser.Tokens: TObjC__strong :: Token
+ Language.C.Parser.Tokens: TObjC__unsafe_retained :: Token
+ Language.C.Parser.Tokens: TObjC__weak :: Token
+ Language.C.Parser.Tokens: TObjCat :: Token
+ Language.C.Parser.Tokens: TObjCautoreleasepool :: Token
+ Language.C.Parser.Tokens: TObjCcatch :: Token
+ Language.C.Parser.Tokens: TObjCclass :: Token
+ Language.C.Parser.Tokens: TObjCcompatibility_alias :: Token
+ Language.C.Parser.Tokens: TObjCdynamic :: Token
+ Language.C.Parser.Tokens: TObjCencode :: Token
+ Language.C.Parser.Tokens: TObjCend :: Token
+ Language.C.Parser.Tokens: TObjCfinally :: Token
+ Language.C.Parser.Tokens: TObjCimplementation :: Token
+ Language.C.Parser.Tokens: TObjCinterface :: Token
+ Language.C.Parser.Tokens: TObjCnamed :: String -> Token
+ Language.C.Parser.Tokens: TObjCoptional :: Token
+ Language.C.Parser.Tokens: TObjCpackage :: Token
+ Language.C.Parser.Tokens: TObjCprivate :: Token
+ Language.C.Parser.Tokens: TObjCproperty :: Token
+ Language.C.Parser.Tokens: TObjCprotected :: Token
+ Language.C.Parser.Tokens: TObjCprotocol :: Token
+ Language.C.Parser.Tokens: TObjCpublic :: Token
+ Language.C.Parser.Tokens: TObjCrequired :: Token
+ Language.C.Parser.Tokens: TObjCselector :: Token
+ Language.C.Parser.Tokens: TObjCsynchronized :: Token
+ Language.C.Parser.Tokens: TObjCsynthesize :: Token
+ Language.C.Parser.Tokens: TObjCthrow :: Token
+ Language.C.Parser.Tokens: TObjCtry :: Token
+ Language.C.Parser.Tokens: T__block :: Token
+ Language.C.Parser.Tokens: Tanti_init :: String -> Token
+ Language.C.Parser.Tokens: Tanti_inits :: String -> Token
+ Language.C.Pretty: angleList :: [Doc] -> Doc
+ Language.C.Pretty: instance Pretty BlockType
+ Language.C.Pretty: instance Pretty ObjCCatch
+ Language.C.Pretty: instance Pretty ObjCIfaceDecl
+ Language.C.Pretty: instance Pretty ObjCIvarDecl
+ Language.C.Pretty: instance Pretty ObjCMethodProto
+ Language.C.Pretty: instance Pretty ObjCMethodReq
+ Language.C.Pretty: instance Pretty ObjCParm
+ Language.C.Pretty: instance Pretty ObjCPropAttr
+ Language.C.Pretty: instance Pretty ObjCRecv
+ Language.C.Pretty: instance Pretty ObjCVisibilitySpec
+ Language.C.Pretty: pprIfaceBody :: [Id] -> [ObjCIvarDecl] -> [ObjCIfaceDecl] -> Doc
+ Language.C.Quote.C: citem :: QuasiQuoter
+ Language.C.Quote.CUDA: citem :: QuasiQuoter
+ Language.C.Quote.GCC: citem :: QuasiQuoter
+ Language.C.Quote.ObjC: cdecl :: QuasiQuoter
+ Language.C.Quote.ObjC: cedecl :: QuasiQuoter
+ Language.C.Quote.ObjC: cenum :: QuasiQuoter
+ Language.C.Quote.ObjC: cexp :: QuasiQuoter
+ Language.C.Quote.ObjC: cfun :: QuasiQuoter
+ Language.C.Quote.ObjC: cinit :: QuasiQuoter
+ Language.C.Quote.ObjC: citem :: QuasiQuoter
+ Language.C.Quote.ObjC: class ToExp a
+ Language.C.Quote.ObjC: cparam :: QuasiQuoter
+ Language.C.Quote.ObjC: csdecl :: QuasiQuoter
+ Language.C.Quote.ObjC: cstm :: QuasiQuoter
+ Language.C.Quote.ObjC: cty :: QuasiQuoter
+ Language.C.Quote.ObjC: cunit :: QuasiQuoter
+ Language.C.Quote.ObjC: toExp :: ToExp a => a -> SrcLoc -> Exp
+ Language.C.Quote.OpenCL: citem :: QuasiQuoter
+ Language.C.Syntax: AntiInit :: String -> !SrcLoc -> Initializer
+ Language.C.Syntax: AntiInits :: String -> !SrcLoc -> Initializer
+ Language.C.Syntax: BlockLit :: BlockType -> [Attr] -> [BlockItem] -> !SrcLoc -> Exp
+ Language.C.Syntax: BlockParam :: [Param] -> !SrcLoc -> BlockType
+ Language.C.Syntax: BlockPtr :: [TypeQual] -> Decl -> !SrcLoc -> Decl
+ Language.C.Syntax: BlockType :: Type -> !SrcLoc -> BlockType
+ Language.C.Syntax: BlockVoid :: !SrcLoc -> BlockType
+ Language.C.Syntax: ObjC :: Extensions
+ Language.C.Syntax: ObjCArg :: (Maybe Id) -> (Maybe Exp) -> !SrcLoc -> ObjCArg
+ Language.C.Syntax: ObjCAssign :: !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: ObjCAtomic :: !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: ObjCAutoreleasepool :: [BlockItem] -> !SrcLoc -> Stm
+ Language.C.Syntax: ObjCCatIface :: Id -> (Maybe Id) -> [Id] -> [ObjCIvarDecl] -> [ObjCIfaceDecl] -> !SrcLoc -> Definition
+ Language.C.Syntax: ObjCCatImpl :: Id -> Id -> [Definition] -> !SrcLoc -> Definition
+ Language.C.Syntax: ObjCCatch :: (Maybe Param) -> [BlockItem] -> !SrcLoc -> ObjCCatch
+ Language.C.Syntax: ObjCClassDec :: [Id] -> !SrcLoc -> Definition
+ Language.C.Syntax: ObjCClassIface :: Id -> (Maybe Id) -> [Id] -> [ObjCIvarDecl] -> [ObjCIfaceDecl] -> [Attr] -> !SrcLoc -> Definition
+ Language.C.Syntax: ObjCClassImpl :: Id -> (Maybe Id) -> [ObjCIvarDecl] -> [Definition] -> !SrcLoc -> Definition
+ Language.C.Syntax: ObjCCompAlias :: Id -> Id -> !SrcLoc -> Definition
+ Language.C.Syntax: ObjCCopy :: !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: ObjCDynDef :: [Id] -> !SrcLoc -> Definition
+ Language.C.Syntax: ObjCEncode :: Type -> !SrcLoc -> Exp
+ Language.C.Syntax: ObjCGetter :: Id -> !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: ObjCIfaceDecl :: InitGroup -> !SrcLoc -> ObjCIfaceDecl
+ Language.C.Syntax: ObjCIfaceMeth :: ObjCMethodProto -> !SrcLoc -> ObjCIfaceDecl
+ Language.C.Syntax: ObjCIfaceProp :: [ObjCPropAttr] -> FieldGroup -> !SrcLoc -> ObjCIfaceDecl
+ Language.C.Syntax: ObjCIfaceReq :: ObjCMethodReq -> !SrcLoc -> ObjCIfaceDecl
+ Language.C.Syntax: ObjCIvarDecl :: FieldGroup -> !SrcLoc -> ObjCIvarDecl
+ Language.C.Syntax: ObjCIvarVisi :: ObjCVisibilitySpec -> !SrcLoc -> ObjCIvarDecl
+ Language.C.Syntax: ObjCLitArray :: [Exp] -> !SrcLoc -> Exp
+ Language.C.Syntax: ObjCLitBool :: Bool -> !SrcLoc -> Exp
+ Language.C.Syntax: ObjCLitBoxed :: Exp -> !SrcLoc -> Exp
+ Language.C.Syntax: ObjCLitConst :: (Maybe UnOp) -> Const -> !SrcLoc -> Exp
+ Language.C.Syntax: ObjCLitDict :: [(Exp, Exp)] -> !SrcLoc -> Exp
+ Language.C.Syntax: ObjCLitString :: [Const] -> !SrcLoc -> Exp
+ Language.C.Syntax: ObjCMethDef :: ObjCMethodProto -> [BlockItem] -> !SrcLoc -> Definition
+ Language.C.Syntax: ObjCMethodProto :: Bool -> (Maybe Type) -> [Attr] -> [ObjCParm] -> Bool -> [Attr] -> !SrcLoc -> ObjCMethodProto
+ Language.C.Syntax: ObjCMsg :: ObjCRecv -> [ObjCArg] -> [Exp] -> !SrcLoc -> Exp
+ Language.C.Syntax: ObjCNonatomic :: !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: ObjCOptional :: !SrcLoc -> ObjCMethodReq
+ Language.C.Syntax: ObjCPackage :: !SrcLoc -> ObjCVisibilitySpec
+ Language.C.Syntax: ObjCParm :: (Maybe Id) -> (Maybe Type) -> [Attr] -> (Maybe Id) -> !SrcLoc -> ObjCParm
+ Language.C.Syntax: ObjCPrivate :: !SrcLoc -> ObjCVisibilitySpec
+ Language.C.Syntax: ObjCProtDec :: [Id] -> !SrcLoc -> Definition
+ Language.C.Syntax: ObjCProtDef :: Id -> [Id] -> [ObjCIfaceDecl] -> !SrcLoc -> Definition
+ Language.C.Syntax: ObjCProtected :: !SrcLoc -> ObjCVisibilitySpec
+ Language.C.Syntax: ObjCProtocol :: Id -> !SrcLoc -> Exp
+ Language.C.Syntax: ObjCPublic :: !SrcLoc -> ObjCVisibilitySpec
+ Language.C.Syntax: ObjCReadonly :: !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: ObjCReadwrite :: !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: ObjCRecvClassName :: Id -> !SrcLoc -> ObjCRecv
+ Language.C.Syntax: ObjCRecvExp :: Exp -> !SrcLoc -> ObjCRecv
+ Language.C.Syntax: ObjCRecvSuper :: !SrcLoc -> ObjCRecv
+ Language.C.Syntax: ObjCRecvTypeName :: Id -> !SrcLoc -> ObjCRecv
+ Language.C.Syntax: ObjCRequired :: !SrcLoc -> ObjCMethodReq
+ Language.C.Syntax: ObjCRetain :: !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: ObjCSelector :: String -> !SrcLoc -> Exp
+ Language.C.Syntax: ObjCSetter :: Id -> !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: ObjCStrong :: !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: ObjCSynDef :: [(Id, Maybe Id)] -> !SrcLoc -> Definition
+ Language.C.Syntax: ObjCSynchronized :: Exp -> [BlockItem] -> !SrcLoc -> Stm
+ Language.C.Syntax: ObjCThrow :: (Maybe Exp) -> !SrcLoc -> Stm
+ Language.C.Syntax: ObjCTry :: [BlockItem] -> [ObjCCatch] -> (Maybe [BlockItem]) -> !SrcLoc -> Stm
+ Language.C.Syntax: ObjCUnsafeRetained :: !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: ObjCWeak :: !SrcLoc -> ObjCPropAttr
+ Language.C.Syntax: TObjC__strong :: !SrcLoc -> Storage
+ Language.C.Syntax: TObjC__unsafe_retained :: !SrcLoc -> Storage
+ Language.C.Syntax: TObjC__weak :: !SrcLoc -> Storage
+ Language.C.Syntax: T__block :: !SrcLoc -> Storage
+ Language.C.Syntax: data BlockType
+ Language.C.Syntax: data ObjCArg
+ Language.C.Syntax: data ObjCCatch
+ Language.C.Syntax: data ObjCIfaceDecl
+ Language.C.Syntax: data ObjCIvarDecl
+ Language.C.Syntax: data ObjCMethodProto
+ Language.C.Syntax: data ObjCMethodReq
+ Language.C.Syntax: data ObjCParm
+ Language.C.Syntax: data ObjCPropAttr
+ Language.C.Syntax: data ObjCRecv
+ Language.C.Syntax: data ObjCVisibilitySpec
+ Language.C.Syntax: instance Data BlockType
+ Language.C.Syntax: instance Data ObjCArg
+ Language.C.Syntax: instance Data ObjCCatch
+ Language.C.Syntax: instance Data ObjCIfaceDecl
+ Language.C.Syntax: instance Data ObjCIvarDecl
+ Language.C.Syntax: instance Data ObjCMethodProto
+ Language.C.Syntax: instance Data ObjCMethodReq
+ Language.C.Syntax: instance Data ObjCParm
+ Language.C.Syntax: instance Data ObjCPropAttr
+ Language.C.Syntax: instance Data ObjCRecv
+ Language.C.Syntax: instance Data ObjCVisibilitySpec
+ Language.C.Syntax: instance Eq BlockType
+ Language.C.Syntax: instance Eq ObjCArg
+ Language.C.Syntax: instance Eq ObjCCatch
+ Language.C.Syntax: instance Eq ObjCIfaceDecl
+ Language.C.Syntax: instance Eq ObjCIvarDecl
+ Language.C.Syntax: instance Eq ObjCMethodProto
+ Language.C.Syntax: instance Eq ObjCMethodReq
+ Language.C.Syntax: instance Eq ObjCParm
+ Language.C.Syntax: instance Eq ObjCPropAttr
+ Language.C.Syntax: instance Eq ObjCRecv
+ Language.C.Syntax: instance Eq ObjCVisibilitySpec
+ Language.C.Syntax: instance Located BlockType
+ Language.C.Syntax: instance Located ObjCArg
+ Language.C.Syntax: instance Located ObjCCatch
+ Language.C.Syntax: instance Located ObjCIfaceDecl
+ Language.C.Syntax: instance Located ObjCIvarDecl
+ Language.C.Syntax: instance Located ObjCMethodProto
+ Language.C.Syntax: instance Located ObjCMethodReq
+ Language.C.Syntax: instance Located ObjCParm
+ Language.C.Syntax: instance Located ObjCPropAttr
+ Language.C.Syntax: instance Located ObjCRecv
+ Language.C.Syntax: instance Located ObjCVisibilitySpec
+ Language.C.Syntax: instance Ord BlockType
+ Language.C.Syntax: instance Ord ObjCArg
+ Language.C.Syntax: instance Ord ObjCCatch
+ Language.C.Syntax: instance Ord ObjCIfaceDecl
+ Language.C.Syntax: instance Ord ObjCIvarDecl
+ Language.C.Syntax: instance Ord ObjCMethodProto
+ Language.C.Syntax: instance Ord ObjCMethodReq
+ Language.C.Syntax: instance Ord ObjCParm
+ Language.C.Syntax: instance Ord ObjCPropAttr
+ Language.C.Syntax: instance Ord ObjCRecv
+ Language.C.Syntax: instance Ord ObjCVisibilitySpec
+ Language.C.Syntax: instance Show ArraySize
+ Language.C.Syntax: instance Show AssignOp
+ Language.C.Syntax: instance Show Attr
+ Language.C.Syntax: instance Show BinOp
+ Language.C.Syntax: instance Show BlockItem
+ Language.C.Syntax: instance Show BlockType
+ Language.C.Syntax: instance Show CEnum
+ Language.C.Syntax: instance Show Const
+ Language.C.Syntax: instance Show Decl
+ Language.C.Syntax: instance Show DeclSpec
+ Language.C.Syntax: instance Show Definition
+ Language.C.Syntax: instance Show Designation
+ Language.C.Syntax: instance Show Designator
+ Language.C.Syntax: instance Show ExeConfig
+ Language.C.Syntax: instance Show Exp
+ Language.C.Syntax: instance Show Field
+ Language.C.Syntax: instance Show FieldGroup
+ Language.C.Syntax: instance Show Func
+ Language.C.Syntax: instance Show Id
+ Language.C.Syntax: instance Show Init
+ Language.C.Syntax: instance Show InitGroup
+ Language.C.Syntax: instance Show Initializer
+ Language.C.Syntax: instance Show ObjCArg
+ Language.C.Syntax: instance Show ObjCCatch
+ Language.C.Syntax: instance Show ObjCIfaceDecl
+ Language.C.Syntax: instance Show ObjCIvarDecl
+ Language.C.Syntax: instance Show ObjCMethodProto
+ Language.C.Syntax: instance Show ObjCMethodReq
+ Language.C.Syntax: instance Show ObjCParm
+ Language.C.Syntax: instance Show ObjCPropAttr
+ Language.C.Syntax: instance Show ObjCRecv
+ Language.C.Syntax: instance Show ObjCVisibilitySpec
+ Language.C.Syntax: instance Show Param
+ Language.C.Syntax: instance Show Params
+ Language.C.Syntax: instance Show Sign
+ Language.C.Syntax: instance Show Signed
+ Language.C.Syntax: instance Show Stm
+ Language.C.Syntax: instance Show Storage
+ Language.C.Syntax: instance Show Type
+ Language.C.Syntax: instance Show TypeQual
+ Language.C.Syntax: instance Show TypeSpec
+ Language.C.Syntax: instance Show Typedef
+ Language.C.Syntax: instance Show UnOp
+ Language.C.Syntax: instance Typeable BlockType
+ Language.C.Syntax: instance Typeable ObjCArg
+ Language.C.Syntax: instance Typeable ObjCCatch
+ Language.C.Syntax: instance Typeable ObjCIfaceDecl
+ Language.C.Syntax: instance Typeable ObjCIvarDecl
+ Language.C.Syntax: instance Typeable ObjCMethodProto
+ Language.C.Syntax: instance Typeable ObjCMethodReq
+ Language.C.Syntax: instance Typeable ObjCParm
+ Language.C.Syntax: instance Typeable ObjCPropAttr
+ Language.C.Syntax: instance Typeable ObjCRecv
+ Language.C.Syntax: instance Typeable ObjCVisibilitySpec
- Language.C.Parser.Monad: expected :: [String] -> P b
+ Language.C.Parser.Monad: expected :: [String] -> Maybe String -> P b
- Language.C.Parser.Parser: TSnamed :: Id -> !SrcLoc -> TySpec
+ Language.C.Parser.Parser: TSnamed :: Id -> [Id] -> !SrcLoc -> TySpec
- Language.C.Parser.Parser: happyIn100 :: ([Definition]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn100 :: (RevList Designator) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn101 :: (RevList Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn101 :: (Designator) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn102 :: (Definition) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn102 :: (Stm) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn103 :: (Func) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn103 :: (Stm) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn104 :: ([Attr]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn104 :: (Stm) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn105 :: ([Attr]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn105 :: (RevList BlockItem) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn106 :: (RevList Attr) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn106 :: (BlockItem) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn107 :: (Attr) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn107 :: (()) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn108 :: (Id) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn108 :: (()) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn109 :: (Bool) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn109 :: (RevList InitGroup) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn111 :: (RevList String) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn111 :: (Stm) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn112 :: ([(String, Exp)]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn112 :: (Stm) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn113 :: (RevList (String, Exp)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn113 :: (Stm) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn114 :: ((String, Exp)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn114 :: (Stm) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn115 :: ([String]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn115 :: (RevList ObjCCatch) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn116 :: (RevList String) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn116 :: ([Definition]) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn117 :: (String) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn117 :: (RevList Definition) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn16 :: (Const) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn16 :: (Id) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn17 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn17 :: (Const) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn18 :: (RevList (L (String, String))) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn18 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn19 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn19 :: (RevList (L (String, String))) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn20 :: (ExeConfig) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn20 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn21 :: (RevList Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn21 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn22 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn22 :: (ObjCRecv) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn23 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn23 :: (([ObjCArg], [Exp])) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn24 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn24 :: (RevList ObjCArg) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn25 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn25 :: (ObjCArg) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn26 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn26 :: (Id) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn27 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn27 :: (RevList Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn29 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn29 :: (RevList Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn30 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn30 :: (RevList (Exp, Exp)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn31 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn31 :: (RevList Const) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn32 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn32 :: (RevList Id) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn34 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn34 :: (ExeConfig) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn35 :: (Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn35 :: (RevList Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn37 :: (Maybe Exp) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn37 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn39 :: (InitGroup) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn39 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn40 :: (InitGroup) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn40 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn41 :: ((DeclSpec, Decl)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn41 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn42 :: ((DeclSpec, Decl)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn42 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn43 :: ((DeclSpec, Decl)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn43 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn44 :: ([TySpec]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn44 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn45 :: ([TySpec]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn45 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn46 :: (RevList Init) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn46 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn47 :: (Maybe AsmLabel) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn47 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn48 :: (Init) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn48 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn49 :: (TySpec) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn49 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn50 :: (TySpec) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn50 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn51 :: (TySpec) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn51 :: (Maybe Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn52 :: (L (Maybe Id -> Maybe [FieldGroup] -> [Attr] -> SrcLoc -> TySpec)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn52 :: (Exp) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn53 :: (RevList FieldGroup) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn53 :: (InitGroup) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn54 :: (FieldGroup) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn54 :: (InitGroup) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn55 :: ([TySpec]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn55 :: ((DeclSpec, Decl)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn56 :: ([TySpec]) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn56 :: ((DeclSpec, Decl)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn57 :: (RevList Field) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn57 :: ((DeclSpec, Decl)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn58 :: (Field) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn58 :: ([TySpec]) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn59 :: (TySpec) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn59 :: ([TySpec]) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn60 :: (RevList CEnum) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn60 :: (RevList Init) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn61 :: (CEnum) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn61 :: (Maybe AsmLabel) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn62 :: (TySpec) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn62 :: (Init) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn63 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn63 :: (TySpec) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn64 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn64 :: (TySpec) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn65 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn65 :: (TySpec) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn66 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn66 :: (L (Maybe Id -> Maybe [FieldGroup] -> [Attr] -> SrcLoc -> TySpec)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn67 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn67 :: (RevList FieldGroup) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn68 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn68 :: (FieldGroup) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn69 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn69 :: ([TySpec]) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn70 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn70 :: ([TySpec]) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn71 :: (Decl -> Decl) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn71 :: (RevList Field) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn72 :: (Decl -> Decl) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn72 :: (Field) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn73 :: (RevList TySpec) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn73 :: (TySpec) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn74 :: (Params) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn74 :: (RevList CEnum) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn75 :: (RevList Param) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn75 :: (CEnum) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn76 :: (Param) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn76 :: (TySpec) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn77 :: (Type) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn77 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn78 :: (RevList Id) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn78 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn79 :: (Type) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn79 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn80 :: (Decl -> Decl) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn80 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn81 :: (Decl -> Decl) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn81 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn82 :: (TySpec) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn82 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn83 :: (Initializer) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn83 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn84 :: (RevList (Maybe Designation, Initializer)) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn84 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn85 :: (Designation) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn85 :: (Decl -> Decl) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn86 :: (RevList Designator) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn86 :: (Decl -> Decl) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn87 :: (Designator) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn87 :: (RevList TySpec) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn88 :: (Stm) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn88 :: (Params) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn89 :: (Stm) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn89 :: (RevList Param) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn90 :: (Stm) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn90 :: (Param) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn91 :: (RevList BlockItem) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn91 :: (Type) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn92 :: (BlockItem) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn92 :: (RevList Id) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn93 :: (()) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn93 :: (Type) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn94 :: (()) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn94 :: (Decl -> Decl) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn95 :: (RevList InitGroup) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn95 :: (Decl -> Decl) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn96 :: (Stm) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn96 :: (TySpec) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn97 :: (Stm) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn97 :: (Initializer) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn98 :: (Stm) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn98 :: (RevList (Maybe Designation, Initializer)) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyIn99 :: (Stm) -> (HappyAbsSyn)
+ Language.C.Parser.Parser: happyIn99 :: (Designation) -> (HappyAbsSyn)
- Language.C.Parser.Parser: happyOut100 :: (HappyAbsSyn) -> ([Definition])
+ Language.C.Parser.Parser: happyOut100 :: (HappyAbsSyn) -> (RevList Designator)
- Language.C.Parser.Parser: happyOut101 :: (HappyAbsSyn) -> (RevList Definition)
+ Language.C.Parser.Parser: happyOut101 :: (HappyAbsSyn) -> (Designator)
- Language.C.Parser.Parser: happyOut102 :: (HappyAbsSyn) -> (Definition)
+ Language.C.Parser.Parser: happyOut102 :: (HappyAbsSyn) -> (Stm)
- Language.C.Parser.Parser: happyOut103 :: (HappyAbsSyn) -> (Func)
+ Language.C.Parser.Parser: happyOut103 :: (HappyAbsSyn) -> (Stm)
- Language.C.Parser.Parser: happyOut104 :: (HappyAbsSyn) -> ([Attr])
+ Language.C.Parser.Parser: happyOut104 :: (HappyAbsSyn) -> (Stm)
- Language.C.Parser.Parser: happyOut105 :: (HappyAbsSyn) -> ([Attr])
+ Language.C.Parser.Parser: happyOut105 :: (HappyAbsSyn) -> (RevList BlockItem)
- Language.C.Parser.Parser: happyOut106 :: (HappyAbsSyn) -> (RevList Attr)
+ Language.C.Parser.Parser: happyOut106 :: (HappyAbsSyn) -> (BlockItem)
- Language.C.Parser.Parser: happyOut107 :: (HappyAbsSyn) -> (Attr)
+ Language.C.Parser.Parser: happyOut107 :: (HappyAbsSyn) -> (())
- Language.C.Parser.Parser: happyOut108 :: (HappyAbsSyn) -> (Id)
+ Language.C.Parser.Parser: happyOut108 :: (HappyAbsSyn) -> (())
- Language.C.Parser.Parser: happyOut109 :: (HappyAbsSyn) -> (Bool)
+ Language.C.Parser.Parser: happyOut109 :: (HappyAbsSyn) -> (RevList InitGroup)
- Language.C.Parser.Parser: happyOut111 :: (HappyAbsSyn) -> (RevList String)
+ Language.C.Parser.Parser: happyOut111 :: (HappyAbsSyn) -> (Stm)
- Language.C.Parser.Parser: happyOut112 :: (HappyAbsSyn) -> ([(String, Exp)])
+ Language.C.Parser.Parser: happyOut112 :: (HappyAbsSyn) -> (Stm)
- Language.C.Parser.Parser: happyOut113 :: (HappyAbsSyn) -> (RevList (String, Exp))
+ Language.C.Parser.Parser: happyOut113 :: (HappyAbsSyn) -> (Stm)
- Language.C.Parser.Parser: happyOut114 :: (HappyAbsSyn) -> ((String, Exp))
+ Language.C.Parser.Parser: happyOut114 :: (HappyAbsSyn) -> (Stm)
- Language.C.Parser.Parser: happyOut115 :: (HappyAbsSyn) -> ([String])
+ Language.C.Parser.Parser: happyOut115 :: (HappyAbsSyn) -> (RevList ObjCCatch)
- Language.C.Parser.Parser: happyOut116 :: (HappyAbsSyn) -> (RevList String)
+ Language.C.Parser.Parser: happyOut116 :: (HappyAbsSyn) -> ([Definition])
- Language.C.Parser.Parser: happyOut117 :: (HappyAbsSyn) -> (String)
+ Language.C.Parser.Parser: happyOut117 :: (HappyAbsSyn) -> (RevList Definition)
- Language.C.Parser.Parser: happyOut16 :: (HappyAbsSyn) -> (Const)
+ Language.C.Parser.Parser: happyOut16 :: (HappyAbsSyn) -> (Id)
- Language.C.Parser.Parser: happyOut17 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut17 :: (HappyAbsSyn) -> (Const)
- Language.C.Parser.Parser: happyOut18 :: (HappyAbsSyn) -> (RevList (L (String, String)))
+ Language.C.Parser.Parser: happyOut18 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut19 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut19 :: (HappyAbsSyn) -> (RevList (L (String, String)))
- Language.C.Parser.Parser: happyOut20 :: (HappyAbsSyn) -> (ExeConfig)
+ Language.C.Parser.Parser: happyOut20 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut21 :: (HappyAbsSyn) -> (RevList Exp)
+ Language.C.Parser.Parser: happyOut21 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut22 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut22 :: (HappyAbsSyn) -> (ObjCRecv)
- Language.C.Parser.Parser: happyOut23 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut23 :: (HappyAbsSyn) -> (([ObjCArg], [Exp]))
- Language.C.Parser.Parser: happyOut24 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut24 :: (HappyAbsSyn) -> (RevList ObjCArg)
- Language.C.Parser.Parser: happyOut25 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut25 :: (HappyAbsSyn) -> (ObjCArg)
- Language.C.Parser.Parser: happyOut26 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut26 :: (HappyAbsSyn) -> (Id)
- Language.C.Parser.Parser: happyOut27 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut27 :: (HappyAbsSyn) -> (RevList Exp)
- Language.C.Parser.Parser: happyOut29 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut29 :: (HappyAbsSyn) -> (RevList Exp)
- Language.C.Parser.Parser: happyOut30 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut30 :: (HappyAbsSyn) -> (RevList (Exp, Exp))
- Language.C.Parser.Parser: happyOut31 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut31 :: (HappyAbsSyn) -> (RevList Const)
- Language.C.Parser.Parser: happyOut32 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut32 :: (HappyAbsSyn) -> (RevList Id)
- Language.C.Parser.Parser: happyOut34 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut34 :: (HappyAbsSyn) -> (ExeConfig)
- Language.C.Parser.Parser: happyOut35 :: (HappyAbsSyn) -> (Exp)
+ Language.C.Parser.Parser: happyOut35 :: (HappyAbsSyn) -> (RevList Exp)
- Language.C.Parser.Parser: happyOut37 :: (HappyAbsSyn) -> (Maybe Exp)
+ Language.C.Parser.Parser: happyOut37 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut39 :: (HappyAbsSyn) -> (InitGroup)
+ Language.C.Parser.Parser: happyOut39 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut40 :: (HappyAbsSyn) -> (InitGroup)
+ Language.C.Parser.Parser: happyOut40 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut41 :: (HappyAbsSyn) -> ((DeclSpec, Decl))
+ Language.C.Parser.Parser: happyOut41 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut42 :: (HappyAbsSyn) -> ((DeclSpec, Decl))
+ Language.C.Parser.Parser: happyOut42 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut43 :: (HappyAbsSyn) -> ((DeclSpec, Decl))
+ Language.C.Parser.Parser: happyOut43 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut44 :: (HappyAbsSyn) -> ([TySpec])
+ Language.C.Parser.Parser: happyOut44 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut45 :: (HappyAbsSyn) -> ([TySpec])
+ Language.C.Parser.Parser: happyOut45 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut46 :: (HappyAbsSyn) -> (RevList Init)
+ Language.C.Parser.Parser: happyOut46 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut47 :: (HappyAbsSyn) -> (Maybe AsmLabel)
+ Language.C.Parser.Parser: happyOut47 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut48 :: (HappyAbsSyn) -> (Init)
+ Language.C.Parser.Parser: happyOut48 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut49 :: (HappyAbsSyn) -> (TySpec)
+ Language.C.Parser.Parser: happyOut49 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut50 :: (HappyAbsSyn) -> (TySpec)
+ Language.C.Parser.Parser: happyOut50 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut51 :: (HappyAbsSyn) -> (TySpec)
+ Language.C.Parser.Parser: happyOut51 :: (HappyAbsSyn) -> (Maybe Exp)
- Language.C.Parser.Parser: happyOut52 :: (HappyAbsSyn) -> (L (Maybe Id -> Maybe [FieldGroup] -> [Attr] -> SrcLoc -> TySpec))
+ Language.C.Parser.Parser: happyOut52 :: (HappyAbsSyn) -> (Exp)
- Language.C.Parser.Parser: happyOut53 :: (HappyAbsSyn) -> (RevList FieldGroup)
+ Language.C.Parser.Parser: happyOut53 :: (HappyAbsSyn) -> (InitGroup)
- Language.C.Parser.Parser: happyOut54 :: (HappyAbsSyn) -> (FieldGroup)
+ Language.C.Parser.Parser: happyOut54 :: (HappyAbsSyn) -> (InitGroup)
- Language.C.Parser.Parser: happyOut55 :: (HappyAbsSyn) -> ([TySpec])
+ Language.C.Parser.Parser: happyOut55 :: (HappyAbsSyn) -> ((DeclSpec, Decl))
- Language.C.Parser.Parser: happyOut56 :: (HappyAbsSyn) -> ([TySpec])
+ Language.C.Parser.Parser: happyOut56 :: (HappyAbsSyn) -> ((DeclSpec, Decl))
- Language.C.Parser.Parser: happyOut57 :: (HappyAbsSyn) -> (RevList Field)
+ Language.C.Parser.Parser: happyOut57 :: (HappyAbsSyn) -> ((DeclSpec, Decl))
- Language.C.Parser.Parser: happyOut58 :: (HappyAbsSyn) -> (Field)
+ Language.C.Parser.Parser: happyOut58 :: (HappyAbsSyn) -> ([TySpec])
- Language.C.Parser.Parser: happyOut59 :: (HappyAbsSyn) -> (TySpec)
+ Language.C.Parser.Parser: happyOut59 :: (HappyAbsSyn) -> ([TySpec])
- Language.C.Parser.Parser: happyOut60 :: (HappyAbsSyn) -> (RevList CEnum)
+ Language.C.Parser.Parser: happyOut60 :: (HappyAbsSyn) -> (RevList Init)
- Language.C.Parser.Parser: happyOut61 :: (HappyAbsSyn) -> (CEnum)
+ Language.C.Parser.Parser: happyOut61 :: (HappyAbsSyn) -> (Maybe AsmLabel)
- Language.C.Parser.Parser: happyOut62 :: (HappyAbsSyn) -> (TySpec)
+ Language.C.Parser.Parser: happyOut62 :: (HappyAbsSyn) -> (Init)
- Language.C.Parser.Parser: happyOut63 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
+ Language.C.Parser.Parser: happyOut63 :: (HappyAbsSyn) -> (TySpec)
- Language.C.Parser.Parser: happyOut64 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
+ Language.C.Parser.Parser: happyOut64 :: (HappyAbsSyn) -> (TySpec)
- Language.C.Parser.Parser: happyOut65 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
+ Language.C.Parser.Parser: happyOut65 :: (HappyAbsSyn) -> (TySpec)
- Language.C.Parser.Parser: happyOut66 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
+ Language.C.Parser.Parser: happyOut66 :: (HappyAbsSyn) -> (L (Maybe Id -> Maybe [FieldGroup] -> [Attr] -> SrcLoc -> TySpec))
- Language.C.Parser.Parser: happyOut67 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
+ Language.C.Parser.Parser: happyOut67 :: (HappyAbsSyn) -> (RevList FieldGroup)
- Language.C.Parser.Parser: happyOut68 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
+ Language.C.Parser.Parser: happyOut68 :: (HappyAbsSyn) -> (FieldGroup)
- Language.C.Parser.Parser: happyOut69 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
+ Language.C.Parser.Parser: happyOut69 :: (HappyAbsSyn) -> ([TySpec])
- Language.C.Parser.Parser: happyOut70 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
+ Language.C.Parser.Parser: happyOut70 :: (HappyAbsSyn) -> ([TySpec])
- Language.C.Parser.Parser: happyOut71 :: (HappyAbsSyn) -> (Decl -> Decl)
+ Language.C.Parser.Parser: happyOut71 :: (HappyAbsSyn) -> (RevList Field)
- Language.C.Parser.Parser: happyOut72 :: (HappyAbsSyn) -> (Decl -> Decl)
+ Language.C.Parser.Parser: happyOut72 :: (HappyAbsSyn) -> (Field)
- Language.C.Parser.Parser: happyOut73 :: (HappyAbsSyn) -> (RevList TySpec)
+ Language.C.Parser.Parser: happyOut73 :: (HappyAbsSyn) -> (TySpec)
- Language.C.Parser.Parser: happyOut74 :: (HappyAbsSyn) -> (Params)
+ Language.C.Parser.Parser: happyOut74 :: (HappyAbsSyn) -> (RevList CEnum)
- Language.C.Parser.Parser: happyOut75 :: (HappyAbsSyn) -> (RevList Param)
+ Language.C.Parser.Parser: happyOut75 :: (HappyAbsSyn) -> (CEnum)
- Language.C.Parser.Parser: happyOut76 :: (HappyAbsSyn) -> (Param)
+ Language.C.Parser.Parser: happyOut76 :: (HappyAbsSyn) -> (TySpec)
- Language.C.Parser.Parser: happyOut77 :: (HappyAbsSyn) -> (Type)
+ Language.C.Parser.Parser: happyOut77 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
- Language.C.Parser.Parser: happyOut78 :: (HappyAbsSyn) -> (RevList Id)
+ Language.C.Parser.Parser: happyOut78 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
- Language.C.Parser.Parser: happyOut79 :: (HappyAbsSyn) -> (Type)
+ Language.C.Parser.Parser: happyOut79 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
- Language.C.Parser.Parser: happyOut80 :: (HappyAbsSyn) -> (Decl -> Decl)
+ Language.C.Parser.Parser: happyOut80 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
- Language.C.Parser.Parser: happyOut81 :: (HappyAbsSyn) -> (Decl -> Decl)
+ Language.C.Parser.Parser: happyOut81 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
- Language.C.Parser.Parser: happyOut82 :: (HappyAbsSyn) -> (TySpec)
+ Language.C.Parser.Parser: happyOut82 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
- Language.C.Parser.Parser: happyOut83 :: (HappyAbsSyn) -> (Initializer)
+ Language.C.Parser.Parser: happyOut83 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
- Language.C.Parser.Parser: happyOut84 :: (HappyAbsSyn) -> (RevList (Maybe Designation, Initializer))
+ Language.C.Parser.Parser: happyOut84 :: (HappyAbsSyn) -> ((Id, Decl -> Decl))
- Language.C.Parser.Parser: happyOut85 :: (HappyAbsSyn) -> (Designation)
+ Language.C.Parser.Parser: happyOut85 :: (HappyAbsSyn) -> (Decl -> Decl)
- Language.C.Parser.Parser: happyOut86 :: (HappyAbsSyn) -> (RevList Designator)
+ Language.C.Parser.Parser: happyOut86 :: (HappyAbsSyn) -> (Decl -> Decl)
- Language.C.Parser.Parser: happyOut87 :: (HappyAbsSyn) -> (Designator)
+ Language.C.Parser.Parser: happyOut87 :: (HappyAbsSyn) -> (RevList TySpec)
- Language.C.Parser.Parser: happyOut88 :: (HappyAbsSyn) -> (Stm)
+ Language.C.Parser.Parser: happyOut88 :: (HappyAbsSyn) -> (Params)
- Language.C.Parser.Parser: happyOut89 :: (HappyAbsSyn) -> (Stm)
+ Language.C.Parser.Parser: happyOut89 :: (HappyAbsSyn) -> (RevList Param)
- Language.C.Parser.Parser: happyOut90 :: (HappyAbsSyn) -> (Stm)
+ Language.C.Parser.Parser: happyOut90 :: (HappyAbsSyn) -> (Param)
- Language.C.Parser.Parser: happyOut91 :: (HappyAbsSyn) -> (RevList BlockItem)
+ Language.C.Parser.Parser: happyOut91 :: (HappyAbsSyn) -> (Type)
- Language.C.Parser.Parser: happyOut92 :: (HappyAbsSyn) -> (BlockItem)
+ Language.C.Parser.Parser: happyOut92 :: (HappyAbsSyn) -> (RevList Id)
- Language.C.Parser.Parser: happyOut93 :: (HappyAbsSyn) -> (())
+ Language.C.Parser.Parser: happyOut93 :: (HappyAbsSyn) -> (Type)
- Language.C.Parser.Parser: happyOut94 :: (HappyAbsSyn) -> (())
+ Language.C.Parser.Parser: happyOut94 :: (HappyAbsSyn) -> (Decl -> Decl)
- Language.C.Parser.Parser: happyOut95 :: (HappyAbsSyn) -> (RevList InitGroup)
+ Language.C.Parser.Parser: happyOut95 :: (HappyAbsSyn) -> (Decl -> Decl)
- Language.C.Parser.Parser: happyOut96 :: (HappyAbsSyn) -> (Stm)
+ Language.C.Parser.Parser: happyOut96 :: (HappyAbsSyn) -> (TySpec)
- Language.C.Parser.Parser: happyOut97 :: (HappyAbsSyn) -> (Stm)
+ Language.C.Parser.Parser: happyOut97 :: (HappyAbsSyn) -> (Initializer)
- Language.C.Parser.Parser: happyOut98 :: (HappyAbsSyn) -> (Stm)
+ Language.C.Parser.Parser: happyOut98 :: (HappyAbsSyn) -> (RevList (Maybe Designation, Initializer))
- Language.C.Parser.Parser: happyOut99 :: (HappyAbsSyn) -> (Stm)
+ Language.C.Parser.Parser: happyOut99 :: (HappyAbsSyn) -> (Designation)
- Language.C.Parser.Parser: happyReduction_101 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_101 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_103 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_103 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_105 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_105 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_107 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_107 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_109 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_109 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_111 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_111 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_112 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_112 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_113 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_113 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_114 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_114 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_115 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_115 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_116 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_116 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_117 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_117 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_118 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_118 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_119 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_119 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_120 :: HappyAbsSyn -> t -> 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_121 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_123 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_123 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_124 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_124 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_125 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_125 :: HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_126 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_126 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_127 :: t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_127 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_128 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_128 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_129 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_129 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_130 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_130 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_131 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_131 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_132 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_132 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_133 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_133 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_134 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_134 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_135 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_135 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_136 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_136 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_137 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_137 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_138 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_138 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_139 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_139 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_140 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_140 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_141 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_141 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_142 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_142 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_143 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_143 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_144 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_144 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_145 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_145 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_146 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_146 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_147 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_147 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_148 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_148 :: HappyAbsSyn -> t -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_149 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_149 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_151 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_151 :: t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_152 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_152 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_153 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_153 :: t -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_155 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_155 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_156 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_156 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_157 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_157 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_158 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_158 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_159 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_159 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_160 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_160 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_161 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_161 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_162 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_162 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_163 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_163 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_165 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_165 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_166 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_166 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_167 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_167 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_168 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_168 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_169 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_169 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_170 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_170 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_171 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_171 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_172 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_172 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_175 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_175 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_176 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_176 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_178 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_178 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_179 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_179 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_180 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_180 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_181 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_181 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_182 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_182 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_183 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_183 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_184 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_184 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_186 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_186 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_189 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_189 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_190 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_190 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_191 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_191 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_192 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_192 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_193 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_193 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_194 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_194 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_195 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_195 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_197 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_197 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_198 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_198 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_199 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_199 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_200 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_200 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_201 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_201 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_202 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_202 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_203 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_203 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_204 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_204 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_205 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_205 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_206 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_206 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_207 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_207 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_208 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_208 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_209 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_209 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_210 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_210 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_211 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_211 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_212 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_212 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_213 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_213 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_214 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_214 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_215 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_215 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_216 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_216 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_217 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_217 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_218 :: t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_218 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_219 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_219 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_220 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_220 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_221 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_221 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_222 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_222 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_223 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_223 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_224 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_224 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_225 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_225 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_226 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_226 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_227 :: t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_227 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_230 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_230 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_232 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_232 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_233 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_233 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_235 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_235 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_236 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_236 :: HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_239 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_239 :: t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_240 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_240 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_241 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_241 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_242 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_242 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_243 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_243 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_244 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_244 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_247 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_247 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_251 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_251 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_252 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_252 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_253 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_253 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_254 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_254 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_255 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_255 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_256 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_256 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_257 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_257 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_258 :: HappyAbsSyn -> 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_259 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_261 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_261 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_262 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_262 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_264 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_264 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_265 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_265 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_266 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_266 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_267 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_267 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_268 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_268 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_269 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_269 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_270 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_270 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_271 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_271 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_272 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_272 :: HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_273 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_273 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_274 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_274 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_275 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_275 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_276 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_276 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_277 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_277 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_278 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_278 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_279 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_279 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_281 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_281 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_282 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_282 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_283 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_283 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_284 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_284 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_285 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_285 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_288 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_288 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_289 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_289 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_290 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_290 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_291 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_291 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_292 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_292 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_293 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_293 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_294 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_294 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_295 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_295 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_296 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_296 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_297 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_297 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_298 :: t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_298 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_299 :: HappyAbsSyn -> t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_299 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_300 :: HappyAbsSyn -> t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_300 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_301 :: HappyAbsSyn -> HappyAbsSyn -> t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_301 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_302 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_302 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_303 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_303 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_304 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_304 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_305 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_305 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_306 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_306 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_307 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_307 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_308 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_308 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_309 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_309 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_311 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_311 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_312 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_312 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_314 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_314 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_316 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_316 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_317 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_317 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_318 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_318 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_320 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_320 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_321 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_321 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_322 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_322 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_323 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_323 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_325 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_325 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_326 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_326 :: HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_327 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_327 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_328 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_328 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_329 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_329 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_330 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_330 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_331 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_331 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_332 :: t -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_332 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_333 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_333 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_334 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_334 :: t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_335 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_335 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_336 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_336 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_338 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_338 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_341 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_341 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_343 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_343 :: t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_344 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_344 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_345 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_345 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_346 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_346 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_347 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_347 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_348 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_348 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_349 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_349 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_350 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_350 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_351 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_351 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_353 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_353 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_354 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_354 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_355 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_355 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_36 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_36 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_366 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_366 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_367 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_367 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_368 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_368 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_369 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_369 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_37 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_37 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_370 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_370 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_371 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_371 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_372 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_372 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_373 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_373 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_374 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_374 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_375 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_375 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_376 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_376 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_377 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_377 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_378 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_378 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_379 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_379 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_38 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_38 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_380 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_380 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_381 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_381 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_382 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_382 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_384 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_384 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_385 :: t -> t1 -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_385 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_386 :: t -> t1 -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_386 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_387 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_387 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_388 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_388 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_390 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_390 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_391 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_391 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_392 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_392 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_393 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_393 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_394 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_394 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_395 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_395 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_396 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_396 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_397 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_397 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_398 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_398 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_400 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_400 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_401 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_401 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_402 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_402 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_403 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_403 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_404 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_404 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_405 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_405 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_406 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_406 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_407 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_407 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_408 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_408 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_409 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_409 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_41 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_41 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_410 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_410 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_411 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_411 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_412 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_412 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_413 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_413 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_414 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_414 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_415 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_415 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_416 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_416 :: t -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_417 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_417 :: HappyAbsSyn -> t -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_418 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_418 :: HappyAbsSyn -> t -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_419 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_419 :: HappyAbsSyn -> HappyAbsSyn -> t -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_420 :: HappyStk t1 -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_420 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_421 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_421 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_422 :: HappyAbsSyn -> 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_423 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_426 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_426 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_427 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_427 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_43 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_43 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_430 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_430 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_431 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_431 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_432 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_432 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_433 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_433 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_434 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_434 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_435 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_435 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_436 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_436 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_437 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_437 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_438 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_438 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_44 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_44 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_440 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_440 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_442 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_442 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_443 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_443 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_444 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_444 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_446 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_446 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_449 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_449 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_45 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_45 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_450 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_450 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_451 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_451 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_453 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_453 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_454 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_454 :: t -> t1 -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_455 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_455 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_456 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_456 :: t -> t1 -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_457 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_457 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_459 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_459 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_46 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_46 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_460 :: t -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_460 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_461 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_461 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_462 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_462 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_463 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_463 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_464 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_464 :: HappyStk t1 -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_465 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_465 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_466 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_466 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_467 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_467 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_469 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_469 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_47 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_47 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_470 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_470 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_472 :: HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_472 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_475 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_475 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_476 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_476 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_48 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_48 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_49 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_49 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_50 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_50 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_51 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_51 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_52 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_52 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_53 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_53 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_54 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_54 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_55 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_55 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_56 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_56 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_57 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_57 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_58 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_58 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_59 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_59 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_60 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_60 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_63 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_63 :: t -> HappyAbsSyn -> t1 -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_64 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_64 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_65 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_65 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_66 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_66 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_67 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_67 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_68 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_68 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_69 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_69 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_70 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_70 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_72 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_72 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_73 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_73 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_74 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_74 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_75 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_75 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_76 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_76 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_78 :: HappyStk HappyAbsSyn -> HappyStk HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_78 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_79 :: HappyStk HappyAbsSyn -> t -> P HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_79 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_80 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_80 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_81 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_81 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_82 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_82 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_83 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_83 :: HappyAbsSyn -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_84 :: HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_84 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_85 :: 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_86 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_88 :: 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_89 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_91 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_91 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_92 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_92 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_93 :: 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_94 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_96 :: 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_97 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Parser.Parser: happyReduction_99 :: HappyAbsSyn -> t -> HappyAbsSyn -> HappyAbsSyn
+ Language.C.Parser.Parser: happyReduction_99 :: HappyAbsSyn -> HappyAbsSyn
- Language.C.Syntax: Tnamed :: Id -> !SrcLoc -> TypeSpec
+ Language.C.Syntax: Tnamed :: Id -> [Id] -> !SrcLoc -> TypeSpec
Files
- LICENSE +1/−1
- Language/C/Parser/Lexer.x +24/−5
- Language/C/Parser/Monad.hs +49/−22
- Language/C/Parser/Parser.y +3139/−2192
- Language/C/Parser/Tokens.hs +152/−6
- Language/C/Pretty.hs +264/−105
- Language/C/Quote.hs +16/−5
- Language/C/Quote/Base.hs +31/−2
- Language/C/Quote/C.hs +6/−1
- Language/C/Quote/CUDA.hs +6/−1
- Language/C/Quote/GCC.hs +6/−1
- Language/C/Quote/ObjC.hs +49/−0
- Language/C/Quote/OpenCL.hs +8/−3
- Language/C/Smart.hs +2/−1
- Language/C/Syntax.hs +271/−75
- dist/build/Language/C/Parser/Lexer.hs +710/−0
- dist/build/Language/C/Parser/Parser.hs +9339/−0
- language-c-quote.cabal +23/−18
- tests/unit/Main.hs +23/−1
LICENSE view
@@ -25,7 +25,7 @@ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -Copyright (c) 2011-2012, Geoffrey Mainland+Copyright (c) 2011-2013, Geoffrey Mainland All rights reserved. Redistribution and use in source and binary forms, with or without modification,
Language/C/Parser/Lexer.x view
@@ -7,7 +7,7 @@ -- | -- Module : Language.C.Parser.Lexer -- Copyright : (c) Harvard University 2006-2011--- (c) Geoffrey Mainland 2011-2012+-- (c) Geoffrey Mainland 2011-2013 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu @@ -110,6 +110,8 @@ "$param:" / { allowAnti } { lexAnti Tanti_param } "$params:" / { allowAnti } { lexAnti Tanti_params } "$pragma:" / { allowAnti } { lexAnti Tanti_pragma }+ "$init:" / { allowAnti } { lexAnti Tanti_init }+ "$inits:" / { allowAnti } { lexAnti Tanti_inits } "$" / { allowAnti } { lexAnti Tanti_exp } } @@ -192,6 +194,9 @@ ">>>" / { ifExtension cudaExts } { token TCUDA3gt }++ "@" / { ifExtension objcExts }+ { token TObjCat } } {@@ -199,7 +204,7 @@ inputString :: AlexInput -> AlexInput -> String inputString beg end =- (B.unpack . B.take (alexOff end - alexOff beg)) (alexInp beg)+ (B.unpack . B.take (alexOff end - alexOff beg)) (alexInput beg) locateTok :: AlexInput -> AlexInput -> Token -> L Token locateTok beg end tok =@@ -233,16 +238,30 @@ ident :: String ident = inputString beg end + -- NB: Due to the format of the keyword table, the lexer can't currently produce different+ -- keyword tokens for the same lexeme in dependence on the active language extension.+ -- We need to distinguish between the 'private' keyword of OpenCL and Objective-C, though,+ -- to avoid a large number of shift-reduce conflicts. Hence, the ugly special case below. keyword :: Token -> P (L Token)+ keyword TCLprivate =+ do isObjC <- useExts objcExts+ if isObjC+ then+ return $ locateTok beg end TObjCprivate+ else+ return $ locateTok beg end TCLprivate keyword tok = return $ locateTok beg end tok nonKeyword :: P (L Token) nonKeyword = do- test <- isTypedef ident+ typeTest <- isTypedef ident+ classTest <- isClassdef ident return $- if test+ if typeTest then locateTok beg end (Tnamed ident)+ else if classTest+ then locateTok beg end (TObjCnamed ident) else locateTok beg end (Tidentifier ident) lexAnti ::(String -> Token) -> Action@@ -510,7 +529,7 @@ AlexError end -> lexerError end (text rest) where rest :: String- rest = B.unpack $ B.take 80 (alexInp end)+ rest = B.unpack $ B.take 80 (alexInput end) AlexSkip end _ -> setInput end >> lexToken AlexToken end len t -> setInput end >> t beg end }
Language/C/Parser/Monad.hs view
@@ -1,7 +1,7 @@ -- | -- Module : Language.C.Parser.Monad -- Copyright : (c) Harvard University 2006-2011--- (c) Geoffrey Mainland 2011-2012+-- (c) Geoffrey Mainland 2011-2013 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu @@ -26,8 +26,10 @@ setCurToken, addTypedef,+ addClassdef, addVariable, isTypedef,+ isClassdef, pushScope, popScope,@@ -35,12 +37,14 @@ gccExts, cudaExts, openCLExts,+ objcExts, useExts, antiquotationExts, useGccExts, useCUDAExts, useOpenCLExts,+ useObjCExts, LexerException(..), ParserException(..),@@ -87,12 +91,13 @@ import Language.C.Syntax data PState = PState- { inp :: !AlexInput+ { input :: !AlexInput , curToken :: L Token , lexState :: ![Int] , extensions :: !ExtensionsInt , typedefs :: !(Set.Set String)- , scopes :: [Set.Set String]+ , classdefs :: !(Set.Set String)+ , scopes :: [(Set.Set String, Set.Set String)] } emptyPState :: [Extensions]@@ -101,11 +106,12 @@ -> Pos -> PState emptyPState exts typnames buf pos = PState- { inp = inp+ { input = inp , curToken = error "no token" , lexState = [0] , extensions = foldl' setBit 0 (map fromEnum exts) , typedefs = Set.fromList typnames+ , classdefs = Set.empty , scopes = [] } where@@ -113,7 +119,7 @@ inp = AlexInput { alexPos = pos , alexPrevChar = '\n'- , alexInp = buf+ , alexInput = buf , alexOff = 0 } @@ -166,11 +172,11 @@ Right (a, _) -> Right a getInput :: P AlexInput-getInput = gets inp+getInput = gets input setInput :: AlexInput -> P () setInput inp= modify $ \s ->- s { inp = inp }+ s { input = inp } pushLexState :: Int -> P () pushLexState ls = modify $ \s ->@@ -193,25 +199,36 @@ setCurToken tok = modify $ \s -> s { curToken = tok } addTypedef :: String -> P ()-addTypedef id = modify $ \s ->- s { typedefs = Set.insert id (typedefs s) }+addTypedef ident = modify $ \s ->+ s { typedefs = Set.insert ident (typedefs s) } +addClassdef :: String -> P ()+addClassdef ident = modify $ \s ->+ s { classdefs = Set.insert ident (classdefs s) }+ addVariable :: String -> P ()-addVariable id = modify $ \s ->- s { typedefs = Set.delete id (typedefs s) }+addVariable ident = modify $ \s ->+ s { typedefs = Set.delete ident (typedefs s)+ , classdefs = Set.delete ident (classdefs s)+ } isTypedef :: String -> P Bool-isTypedef id = gets $ \s ->- Set.member id (typedefs s)+isTypedef ident = gets $ \s ->+ Set.member ident (typedefs s) +isClassdef :: String -> P Bool+isClassdef ident = gets $ \s ->+ Set.member ident (classdefs s)+ pushScope :: P () pushScope = modify $ \s ->- s { scopes = typedefs s : scopes s }+ s { scopes = (typedefs s, classdefs s) : scopes s } popScope :: P () popScope = modify $ \s -> s { scopes = (tail . scopes) s- , typedefs = (head . scopes) s+ , typedefs = (fst . head . scopes) s+ , classdefs = (snd . head . scopes) s } antiquotationExts :: ExtensionsInt@@ -226,6 +243,9 @@ openCLExts :: ExtensionsInt openCLExts = (bit . fromEnum) OpenCL +objcExts :: ExtensionsInt+objcExts = (bit . fromEnum) ObjC+ useExts :: ExtensionsInt -> P Bool useExts ext = gets $ \s -> extensions s .&. ext /= 0@@ -239,6 +259,9 @@ useOpenCLExts :: P Bool useOpenCLExts = useExts openCLExts +useObjCExts :: P Bool+useObjCExts = useExts objcExts+ data LexerException = LexerException Pos Doc deriving (Typeable) @@ -292,10 +315,10 @@ unclosed loc x = parserError (locEnd loc) (text "unclosed" <+> quoteTok (text x)) -expected :: [String] -> P b-expected alts = do+expected :: [String] -> Maybe String -> P b+expected alts after = do tok@(L loc _) <- getCurToken- parserError (locStart loc) (text "expected" <+> pprAlts alts <+> pprGot tok)+ parserError (locStart loc) (text "expected" <+> pprAlts alts <+> pprGot tok <> pprAfter after) where pprAlts :: [String] -> Doc pprAlts [] = empty@@ -306,21 +329,25 @@ pprGot :: L Token -> Doc pprGot (L _ Teof) = text "but reached end of file" pprGot (L _ t) = text "but got" <+> quoteTok (ppr t)+ + pprAfter :: Maybe String -> Doc+ pprAfter Nothing = empty+ pprAfter (Just what) = text " after" <+> text what data AlexInput = AlexInput { alexPos :: {-#UNPACK#-} !Pos , alexPrevChar :: {-#UNPACK#-} !Char- , alexInp :: {-#UNPACK#-} !B.ByteString+ , alexInput :: {-#UNPACK#-} !B.ByteString , alexOff :: {-#UNPACK#-} !Int } alexGetChar :: AlexInput -> Maybe (Char, AlexInput) alexGetChar inp =- case B.uncons (alexInp inp) of+ case B.uncons (alexInput inp) of Nothing -> Nothing Just (c, bs) -> Just (c, inp { alexPos = advancePos (alexPos inp) c , alexPrevChar = c- , alexInp = bs+ , alexInput = bs , alexOff = alexOff inp + 1 }) @@ -343,7 +370,7 @@ peekChar ::P Char peekChar = do inp <- getInput- case B.uncons (alexInp inp) of+ case B.uncons (alexInput inp) of Nothing -> unexpectedEOF inp Just (c, _) -> return c
Language/C/Parser/Parser.y view
@@ -7,2198 +7,3145 @@ -- Module : Language.C.Parser.Parser -- Copyright : (c) Harvard University 2006-2011 -- (c) Geoffrey Mainland 2011-2012--- 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-}--%token- CHAR { L _ (T.TcharConst _) }- STRING { L _ (T.TstringConst _) }- INT { L _ (T.TintConst _) }- LONG { L _ (T.TlongIntConst _) }- LONG_LONG { L _ (T.TlongLongIntConst _) }- FLOAT { L _ (T.TfloatConst _) }- DOUBLE { L _ (T.TdoubleConst _) }- LONG_DOUBLE { L _ (T.TlongDoubleConst _) }- ID { L _ (T.Tidentifier _) }- NAMED { L _ (T.Tnamed _) }-- '(' { L _ T.Tlparen }- ')' { L _ T.Trparen }- '[' { L _ T.Tlbrack }- ']' { L _ T.Trbrack }- '{' { L _ T.Tlbrace }- '}' { L _ T.Trbrace }- ',' { L _ T.Tcomma }- ';' { L _ T.Tsemi }- ':' { L _ T.Tcolon }- '?' { L _ T.Tquestion }- '.' { L _ T.Tdot }- '->' { L _ T.Tarrow }- '...' { L _ T.Tellipses }-- '+' { L _ T.Tplus }- '-' { L _ T.Tminus }- '*' { L _ T.Tstar }- '/' { L _ T.Tdiv }- '%' { L _ T.Tmod }- '~' { L _ T.Tnot }- '&' { L _ T.Tand }- '|' { L _ T.Tor }- '^' { L _ T.Txor }- '<<' { L _ T.Tlsh }- '>>' { L _ T.Trsh }- '++' { L _ T.Tinc }- '--' { L _ T.Tdec }-- '!' { L _ T.Tlnot }- '&&' { L _ T.Tland }- '||' { L _ T.Tlor }-- '==' { L _ T.Teq }- '!=' { L _ T.Tne }- '<' { L _ T.Tlt }- '>' { L _ T.Tgt }- '<=' { L _ T.Tle }- '>=' { L _ T.Tge }-- '=' { L _ T.Tassign }- '+=' { L _ T.Tadd_assign }- '-=' { L _ T.Tsub_assign }- '*=' { L _ T.Tmul_assign }- '/=' { L _ T.Tdiv_assign }- '%=' { L _ T.Tmod_assign }- '<<=' { L _ T.Tlsh_assign }- '>>=' { L _ T.Trsh_assign }- '&=' { L _ T.Tand_assign }- '|=' { L _ T.Tor_assign }- '^=' { L _ T.Txor_assign }-- 'auto' { L _ T.Tauto }- 'break' { L _ T.Tbreak }- 'case' { L _ T.Tcase }- 'char' { L _ T.Tchar }- 'const' { L _ T.Tconst }- 'continue' { L _ T.Tcontinue }- 'default' { L _ T.Tdefault }- 'do' { L _ T.Tdo }- 'double' { L _ T.Tdouble }- 'else' { L _ T.Telse }- 'enum' { L _ T.Tenum }- 'extern' { L _ T.Textern }- 'float' { L _ T.Tfloat }- 'for' { L _ T.Tfor }- 'goto' { L _ T.Tgoto }- 'if' { L _ T.Tif }- 'inline' { L _ T.Tinline }- 'int' { L _ T.Tint }- 'long' { L _ T.Tlong }- 'register' { L _ T.Tregister }- 'restrict' { L _ T.Trestrict }- 'return' { L _ T.Treturn }- 'short' { L _ T.Tshort }- 'signed' { L _ T.Tsigned }- 'sizeof' { L _ T.Tsizeof }- 'static' { L _ T.Tstatic }- 'struct' { L _ T.Tstruct }- 'switch' { L _ T.Tswitch }- 'typedef' { L _ T.Ttypedef }- 'union' { L _ T.Tunion }- 'unsigned' { L _ T.Tunsigned }- 'void' { L _ T.Tvoid }- 'volatile' { L _ T.Tvolatile }- 'while' { L _ T.Twhile }- '_Bool' { L _ T.TBool }- '_Complex' { L _ T.TComplex }- '_Imaginary' { L _ T.TImaginary }-- '#pragma' { L _ (T.Tpragma _) }-- '__asm__' { L _ T.Tasm }- '__attribute__' { L _ T.Tattribute }- '__extension__' { L _ T.Textension }- '__builtin_va_arg' { L _ T.Tbuiltin_va_arg }- '__builtin_va_list' { L _ T.Tbuiltin_va_list }- '__typeof__' { L _ T.Ttypeof }-- '<<<' { 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 }- '__restrict__' { L _ T.TCUDArestrict }- '__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 _) }- ANTI_INT { L _ (T.Tanti_int _) }- ANTI_UINT { L _ (T.Tanti_uint _) }- ANTI_LINT { L _ (T.Tanti_lint _) }- ANTI_ULINT { L _ (T.Tanti_ulint _) }- ANTI_LLINT { L _ (T.Tanti_llint _) }- ANTI_ULLINT { L _ (T.Tanti_ullint _) }- ANTI_FLOAT { L _ (T.Tanti_float _) }- ANTI_DOUBLE { L _ (T.Tanti_double _) }- ANTI_LONG_DOUBLE { L _ (T.Tanti_long_double _) }- ANTI_CHAR { L _ (T.Tanti_char _) }- ANTI_STRING { L _ (T.Tanti_string _) }- ANTI_EXP { L _ (T.Tanti_exp _) }- ANTI_FUNC { L _ (T.Tanti_func _) }- ANTI_ARGS { L _ (T.Tanti_args _) }- ANTI_DECL { L _ (T.Tanti_decl _) }- ANTI_DECLS { L _ (T.Tanti_decls _) }- ANTI_SDECL { L _ (T.Tanti_sdecl _) }- ANTI_SDECLS { L _ (T.Tanti_sdecls _) }- ANTI_ENUM { L _ (T.Tanti_enum _) }- ANTI_ENUMS { L _ (T.Tanti_enums _) }- ANTI_ESC { L _ (T.Tanti_esc _) }- ANTI_EDECL { L _ (T.Tanti_edecl _) }- ANTI_EDECLS { L _ (T.Tanti_edecls _) }- ANTI_ITEM { L _ (T.Tanti_item _) }- ANTI_ITEMS { L _ (T.Tanti_items _) }- ANTI_STM { L _ (T.Tanti_stm _) }- ANTI_STMS { L _ (T.Tanti_stms _) }- ANTI_SPEC { L _ (T.Tanti_spec _) }- ANTI_TYPE { L _ (T.Tanti_type _) }- ANTI_PARAM { L _ (T.Tanti_param _) }- ANTI_PARAMS { L _ (T.Tanti_params _) }- ANTI_PRAGMA { L _ (T.Tanti_pragma _) }--%expect 1--%monad { P } { >>= } { return }-%lexer { lexer } { L _ T.Teof }-%tokentype { (L T.Token) }-%error { happyError }--%name parseExp expression--%name parseEdecl external_declaration-%name parseDecl declaration-%name parseStructDecl struct_declaration-%name parseEnum enumerator--%name parseType type_declaration-%name parseParam parameter_declaration-%name parseInit initializer--%name parseStm statement--%name parseUnit translation_unit-%name parseFunc function_definition--%right NAMED-%%--{------------------------------------------------------------------------------- -- - Identifiers- -- ------------------------------------------------------------------------------}--identifier :: { Id }-identifier :- ID { Id (getID $1) (srclocOf $1) }- | ANTI_ID { AntiId (getANTI_ID $1) (srclocOf $1) }--identifier_or_typedef :: { Id }-identifier_or_typedef :- identifier { $1 }- | NAMED { Id (getNAMED $1) (srclocOf $1) }--{------------------------------------------------------------------------------- -- - Constants- -- ------------------------------------------------------------------------------}--constant :: { Const }-constant :- INT { let (s, sign, n) = getINT $1- in- IntConst s sign n (srclocOf $1)- }- | LONG { let (s, sign, n) = getLONG $1- in- LongIntConst s sign n (srclocOf $1)- }- | LONG_LONG { let (s, sign, n) = getLONG_LONG $1- in- LongLongIntConst s sign n (srclocOf $1)- }- | FLOAT { let (s, n) = getFLOAT $1- in- FloatConst s n (srclocOf $1)- }- | DOUBLE { let (s, n) = getDOUBLE $1- in- DoubleConst s n (srclocOf $1)- }- | LONG_DOUBLE { let (s, n) = getLONG_DOUBLE $1- in- LongDoubleConst s n (srclocOf $1)- }- | CHAR { let (s, c) = getCHAR $1- in- CharConst s c (srclocOf $1)- }- | ANTI_INT { AntiInt (getANTI_INT $1) (srclocOf $1) }- | ANTI_UINT { AntiUInt (getANTI_UINT $1) (srclocOf $1) }- | ANTI_LINT { AntiLInt (getANTI_LINT $1) (srclocOf $1) }- | ANTI_ULINT { AntiULInt (getANTI_ULINT $1) (srclocOf $1) }- | ANTI_LLINT { AntiLLInt (getANTI_LLINT $1) (srclocOf $1) }- | ANTI_ULLINT { AntiULLInt (getANTI_ULLINT $1) (srclocOf $1) }- | ANTI_FLOAT { AntiFloat (getANTI_FLOAT $1) (srclocOf $1) }- | ANTI_DOUBLE { AntiDouble (getANTI_DOUBLE $1) (srclocOf $1) }- | ANTI_LONG_DOUBLE { AntiLongDouble (getANTI_LONG_DOUBLE $1) (srclocOf $1) }- | ANTI_CHAR { AntiChar (getANTI_CHAR $1) (srclocOf $1) }- | ANTI_STRING { AntiString (getANTI_STRING $1) (srclocOf $1) }---{------------------------------------------------------------------------------- -- - Expressions- -- ------------------------------------------------------------------------------}--primary_expression :: { Exp }-primary_expression :- identifier- { Var $1 (srclocOf $1) }- | constant- { Const $1 (srclocOf $1) }- | string_constant- { let { ss = rev $1- ; l = srclocOf ss- ; raw = map (fst . unLoc) ss- ; s = (concat . intersperse " " . map (snd . unLoc)) ss- }- in- Const (StringConst raw s l) l- }- | '(' expression ')'- { $2 }- | '(' expression error- {% unclosed ($1 <--> $2) "(" }- | '(' compound_statement ')'- { let Block items _ = $2- in- StmExpr items ($1 `srcspan` $3)- }- | ANTI_EXP- { AntiExp (getANTI_EXP $1) (srclocOf $1) }--string_constant :: { RevList (L (String, String)) }-string_constant :- STRING { rsingleton (L (locOf $1) (getSTRING $1)) }- {- Extension: GCC -}- | string_constant STRING { rcons (L (locOf $2) (getSTRING $2)) $1 }--postfix_expression :: { Exp }-postfix_expression :- primary_expression- { $1 }- | postfix_expression '[' error- {% unclosed (locOf $1) "[" }- | postfix_expression '[' expression ']'- { Index $1 $3 ($1 `srcspan` $4) }-- | postfix_expression '(' error- {% unclosed (locOf $2) "(" }- | postfix_expression '(' ')'- { FnCall $1 [] ($1 `srcspan` $3) }- | postfix_expression '(' argument_expression_list error- {% unclosed ($2 <--> rev $3) "(" }- | postfix_expression '(' argument_expression_list ')'- { FnCall $1 (rev $3) ($1 `srcspan` $4) }-- | postfix_expression '<<<' execution_configuration error- {% unclosed ($2 <--> $3) "<<<" }- | postfix_expression '<<<' execution_configuration '>>>' '(' ')'- { CudaCall $1 $3 [] ($1 `srcspan` $6) }- | postfix_expression '<<<' execution_configuration '>>>'- '(' argument_expression_list error- {% unclosed ($5 <--> rev $6) "(" }- | postfix_expression '<<<' execution_configuration '>>>'- '(' argument_expression_list ')'- { CudaCall $1 $3 (rev $6) ($1 `srcspan` $7) }-- | postfix_expression '.' identifier_or_typedef- { Member $1 $3 ($1 `srcspan` $3) }- | postfix_expression '->' identifier_or_typedef- { PtrMember $1 $3 ($1 `srcspan` $3) }- | postfix_expression '++'- { PostInc $1 ($1 `srcspan` $2) }- | postfix_expression '--'- { PostDec $1 ($1 `srcspan` $2) }- | '(' type_name ')' '{' initializer_list '}'- { CompoundLit ($2 :: Type) (rev $5) ($1 `srcspan` $6) }- | '(' type_name ')' '{' initializer_list ',' '}'- { CompoundLit $2 (rev $5) ($1 `srcspan` $7) }- {- Extension: GCC -}- | '__builtin_va_arg' '(' assignment_expression ',' type_declaration ')'- { BuiltinVaArg $3 $5 ($1 `srcspan` $6) }--{- Extension: CUDA -}-execution_configuration :: { ExeConfig }-execution_configuration :- argument_expression_list- {%do { let args = rev $1- ; 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] ->- ExeConfig gridDim blockDim- Nothing Nothing- (srclocOf args)- [gridDim, blockDim, sharedSize] ->- ExeConfig gridDim blockDim- (Just sharedSize) Nothing- (srclocOf args)- [gridDim, blockDim, sharedSize, exeStream] ->- ExeConfig gridDim blockDim- (Just sharedSize) (Just exeStream)- (srclocOf args)- }- }--argument_expression_list :: { RevList Exp }-argument_expression_list :- assignment_expression- { rsingleton $1 }- | ANTI_ARGS- { rsingleton (AntiArgs (getANTI_ARGS $1) (srclocOf $1)) }- | argument_expression_list ',' assignment_expression- { rcons $3 $1}- | argument_expression_list ',' ANTI_ARGS- { rcons (AntiArgs (getANTI_ARGS $3) (srclocOf $3)) $1 }--unary_expression :: { Exp }-unary_expression :- postfix_expression { $1 }- | '++' unary_expression { PreInc $2 ($1 `srcspan` $2) }- | '--' unary_expression { PreDec $2 ($1 `srcspan` $2) }- | '&' cast_expression { UnOp AddrOf $2 ($1 `srcspan` $2) }- | '*' cast_expression { UnOp Deref $2 ($1 `srcspan` $2) }- | '+' cast_expression { UnOp Positive $2 ($1 `srcspan` $2) }- | '-' cast_expression { UnOp Negate $2 ($1 `srcspan` $2) }- | '~' cast_expression { UnOp Not $2 ($1 `srcspan` $2) }- | '!' cast_expression { UnOp Lnot $2 ($1 `srcspan` $2) }- | 'sizeof' unary_expression { SizeofExp $2 ($1 `srcspan` $2) }- | 'sizeof' '(' type_name ')' { SizeofType $3 ($1 `srcspan` $4) }- | 'sizeof' '(' type_name error {% unclosed ($2 <--> $3) "(" }--cast_expression :: { Exp }-cast_expression :- unary_expression { $1 }- | '(' type_name ')' cast_expression { Cast $2 $4 ($1 `srcspan` $4) }- | '(' type_name error {% unclosed ($1 <--> $2) "(" }--multiplicative_expression :: { Exp }-multiplicative_expression :- cast_expression- { $1 }- | multiplicative_expression '*' cast_expression- { BinOp Mul $1 $3 ($1 `srcspan` $3) }- | multiplicative_expression '/' cast_expression- { BinOp Div $1 $3 ($1 `srcspan` $3) }- | multiplicative_expression '%' cast_expression- { BinOp Mod $1 $3 ($1 `srcspan` $3) }--additive_expression :: { Exp }-additive_expression :- multiplicative_expression- { $1 }- | additive_expression '+' multiplicative_expression- { BinOp Add $1 $3 ($1 `srcspan` $3) }- | additive_expression '-' multiplicative_expression- { BinOp Sub $1 $3 ($1 `srcspan` $3) }--shift_expression :: { Exp }-shift_expression :- additive_expression- { $1 }- | shift_expression '<<' additive_expression- { BinOp Lsh $1 $3 ($1 `srcspan` $3) }- | shift_expression '>>' additive_expression- { BinOp Rsh $1 $3 ($1 `srcspan` $3) }--relational_expression :: { Exp }-relational_expression :- shift_expression- { $1 }- | relational_expression '<' shift_expression- { BinOp Lt $1 $3 ($1 `srcspan` $3) }- | relational_expression '>' shift_expression- { BinOp Gt $1 $3 ($1 `srcspan` $3) }- | relational_expression '<=' shift_expression- { BinOp Le $1 $3 ($1 `srcspan` $3) }- | relational_expression '>=' shift_expression- { BinOp Ge $1 $3 ($1 `srcspan` $3) }--equality_expression :: { Exp }-equality_expression :- relational_expression- { $1 }- | equality_expression '==' relational_expression- { BinOp Eq $1 $3 ($1 `srcspan` $3) }- | equality_expression '!=' relational_expression- { BinOp Ne $1 $3 ($1 `srcspan` $3) }--and_expression :: { Exp }-and_expression :- equality_expression- { $1 }- | and_expression '&' equality_expression- { BinOp And $1 $3 ($1 `srcspan` $3) }--exclusive_or_expression :: { Exp }-exclusive_or_expression :- and_expression- { $1 }- | exclusive_or_expression '^' and_expression- { BinOp Xor $1 $3 ($1 `srcspan` $3) }--inclusive_or_expression :: { Exp }-inclusive_or_expression :- exclusive_or_expression- { $1 }- | inclusive_or_expression '|' exclusive_or_expression- { BinOp Or $1 $3 ($1 `srcspan` $3) }--logical_and_expression :: { Exp }-logical_and_expression :- inclusive_or_expression- { $1 }- | logical_and_expression '&&' inclusive_or_expression- { BinOp Land $1 $3 ($1 `srcspan` $3) }--logical_or_expression :: { Exp }-logical_or_expression :- logical_and_expression- { $1 }- | logical_or_expression '||' logical_and_expression- { BinOp Lor $1 $3 ($1 `srcspan` $3) }--conditional_expression :: { Exp }-conditional_expression :- logical_or_expression- { $1 }- | logical_or_expression '?' expression ':' conditional_expression- { Cond $1 $3 $5 ($1 `srcspan` $5) }--assignment_expression :: { Exp }-assignment_expression :- conditional_expression- { $1 }- | unary_expression '=' assignment_expression- { Assign $1 JustAssign $3 ($1 `srcspan` $3) }- | unary_expression '*=' assignment_expression- { Assign $1 MulAssign $3 ($1 `srcspan` $3) }- | unary_expression '/=' assignment_expression- { Assign $1 DivAssign $3 ($1 `srcspan` $3) }- | unary_expression '%=' assignment_expression- { Assign $1 ModAssign $3 ($1 `srcspan` $3) }- | unary_expression '+=' assignment_expression- { Assign $1 AddAssign $3 ($1 `srcspan` $3) }- | unary_expression '-=' assignment_expression- { Assign $1 SubAssign $3 ($1 `srcspan` $3) }- | unary_expression '<<=' assignment_expression- { Assign $1 LshAssign $3 ($1 `srcspan` $3) }- | unary_expression '>>=' assignment_expression- { Assign $1 RshAssign $3 ($1 `srcspan` $3) }- | unary_expression '&=' assignment_expression- { Assign $1 AndAssign $3 ($1 `srcspan` $3) }- | unary_expression '^=' assignment_expression- { Assign $1 XorAssign $3 ($1 `srcspan` $3) }- | unary_expression '|=' assignment_expression- { Assign $1 OrAssign $3 ($1 `srcspan` $3) }--expression :: { Exp }-expression :- assignment_expression { $1 }- | expression ',' assignment_expression { Seq $1 $3 ($1 `srcspan` $3) }--maybe_expression :: { Maybe Exp }-maybe_expression:- {- empty -} { Nothing }- | expression { Just $1 }--constant_expression :: { Exp }-constant_expression :- conditional_expression { $1 }--{------------------------------------------------------------------------------- -- - Declarations- -- ------------------------------------------------------------------------------}--{---- XXX: This is an awful hack to get around problems with the interaction--- between lexer feedback and the one-token lookahead that happy does. If we--- encounter a typedef and the next token is the newly typedef'd type, we get an--- error if we include the terminal semicolon directly in the productions for--- declaration. By splitting the semicolon out, the lookahead token is--- guaranteed not to be a typedef use :)--}--declaration :: { InitGroup }-declaration :- declaration_ ';' { $1 }--declaration_ :: { InitGroup }-declaration_ :- declaration_specifiers- {% do{ let (dspec, decl) = $1- ; checkInitGroup dspec decl [] []- }- }- | declaration_specifiers attributes- {% do{ let (dspec, decl) = $1- ; checkInitGroup dspec decl $2 []- }- }- | declaration_specifiers init_declarator_list- {% do{ let (dspec, decl) = $1- ; let inits = rev $2- ; checkInitGroup dspec decl [] (rev $2)- }- }- | declaration_specifiers attributes init_declarator_list- {% do{ let (dspec, decl) = $1- ; checkInitGroup dspec decl $2 (rev $3)- }- }- | declaration_specifiers error- {% do{ let (_, decl) = $1- ; expected ["';'"]- }- }- | ANTI_DECL- { AntiDecl (getANTI_DECL $1) (srclocOf $1) }--declaration_specifiers :: { (DeclSpec, Decl) }-declaration_specifiers :- ANTI_TYPE- { let { v = getANTI_TYPE $1- ; l = srclocOf $1- }- in- (AntiTypeDeclSpec [] [] v l, AntiTypeDecl v l)- }- | storage_qualifier_specifiers ANTI_TYPE- { let { storage = mkStorage $1- ; typeQuals = mkTypeQuals $1- ; v = getANTI_TYPE $2- ; l = $1 `srcspan` $2- }- in- (AntiTypeDeclSpec storage typeQuals v l, AntiTypeDecl v l)- }- | nontypedef_declaration_specifiers- { $1 }- | typedef_declaration_specifiers- { $1 }--nontypedef_declaration_specifiers :: { (DeclSpec, Decl) }-nontypedef_declaration_specifiers :- ANTI_SPEC- { let dspec = AntiDeclSpec (getANTI_SPEC $1) (srclocOf $1)- in- (dspec, DeclRoot (srclocOf $1))- }- | storage_qualifier_specifiers %prec NAMED- {% do{ dspec <- mkDeclSpec $1- ; return (dspec, DeclRoot (srclocOf $1))- }- }- | type_specifier- {% do{ dspec <- mkDeclSpec [$1]- ; return (dspec, DeclRoot (srclocOf $1) )- }- }- | type_specifier declaration_specifiers_- {% do{ dspec <- mkDeclSpec ($1 : $2)- ; return (dspec, DeclRoot ($1 `srcspan` $2))- }- }- | storage_qualifier_specifiers type_specifier- {% do{ dspec <- mkDeclSpec ($1 ++ [$2])- ; return $(dspec, DeclRoot ($1 `srcspan` $2))- }- }- | storage_qualifier_specifiers type_specifier declaration_specifiers_- {% do{ dspec <- mkDeclSpec ($1 ++ $2 : $3)- ; return (dspec, DeclRoot ($1 `srcspan` $3))- }- }--typedef_declaration_specifiers :: { (DeclSpec, Decl) }-typedef_declaration_specifiers :- typedef_name- {% do{ dspec <- mkDeclSpec [$1]- ; return (dspec, DeclRoot (srclocOf $1))- }- }- | typedef_name storage_qualifier_specifiers- {% do{ dspec <- mkDeclSpec ($1 : $2)- ; return (dspec, DeclRoot ($1 `srcspan` $2))- }- }- | storage_qualifier_specifiers typedef_name- {% do{ dspec <- mkDeclSpec ($1 ++ [$2])- ; return (dspec, DeclRoot ($1 `srcspan` $2))- }- }- | storage_qualifier_specifiers typedef_name storage_qualifier_specifiers- {% do{ dspec <- mkDeclSpec ($1 ++ $2 : $3)- ; return (dspec, DeclRoot ($1 `srcspan` $3))- }- }--declaration_specifiers_ :: { [TySpec] }-declaration_specifiers_ :- storage_class_specifier %prec NAMED { [$1] }- | storage_class_specifier declaration_specifiers_ { $1 : $2 }- | type_specifier %prec NAMED { [$1] }- | type_specifier declaration_specifiers_ { $1 : $2 }- | type_qualifier %prec NAMED { [$1] }- | type_qualifier declaration_specifiers_ { $1 : $2 }---- | This production allows us to add storage class specifiers and type--- qualifiers to an anti-quoted type.--storage_qualifier_specifiers :: { [TySpec] }-storage_qualifier_specifiers :- storage_class_specifier %prec NAMED { [$1]}- | storage_class_specifier storage_qualifier_specifiers { $1 : $2 }- | type_qualifier %prec NAMED { [$1] }- | type_qualifier storage_qualifier_specifiers { $1 : $2 }--init_declarator_list :: { RevList Init }-init_declarator_list :- init_declarator { rsingleton $1 }- | init_declarator_list ',' init_declarator { rcons $3 $1 }--maybe_asmlabel :: { Maybe AsmLabel }-maybe_asmlabel :- {- empty -} { Nothing }- | '__asm__' '(' STRING ')' { Just ((fst . getSTRING) $3) }--init_declarator :: { Init }-init_declarator :- declarator maybe_asmlabel- { let { (ident, declToDecl) = $1- ; decl = declToDecl (declRoot ident)- }- in- Init ident decl $2 Nothing [] (ident `srcspan` decl)- }- | declarator attributes maybe_asmlabel- { let { (ident, declToDecl) = $1- ; decl = declToDecl (declRoot ident)- }- in- Init ident decl $3 Nothing $2 (ident `srcspan` decl)- }- | declarator maybe_asmlabel '=' initializer- { let { (ident, declToDecl) = $1- ; decl = declToDecl (declRoot ident)- }- in- Init ident decl $2 (Just $4) [] (ident `srcspan` $4)- }- | declarator attributes maybe_asmlabel '=' initializer- { let { (ident, declToDecl) = $1- ; decl = declToDecl (declRoot ident)- }- in- Init ident decl $3 (Just $5) $2 (ident `srcspan` $5)- }- | declarator error- {% do{ let (ident, declToDecl) = $1- ; let decl = declToDecl (declRoot ident)- ; expected ["'='"]- }- }--storage_class_specifier :: { TySpec }-storage_class_specifier :- 'auto' { TSauto (srclocOf $1) }- | 'register' { TSregister (srclocOf $1) }- | 'static' { TSstatic (srclocOf $1) }- | 'extern' { TSextern (srclocOf $1) }- | 'extern' STRING { TSexternL ((snd . getSTRING) $2) (srclocOf $1) }- | 'typedef' { TStypedef (srclocOf $1) }--type_specifier :: { TySpec }-type_specifier :- 'void' { TSvoid (srclocOf $1) }- | 'char' { TSchar (srclocOf $1) }- | 'short' { TSshort (srclocOf $1) }- | 'int' { TSint (srclocOf $1) }- | 'long' { TSlong (srclocOf $1) }- | 'float' { TSfloat (srclocOf $1) }- | 'double' { TSdouble (srclocOf $1) }- | 'signed' { TSsigned (srclocOf $1) }- | 'unsigned' { TSunsigned (srclocOf $1) }- | struct_or_union_specifier { $1 }- | enum_specifier { $1 }-- {- Extension: GCC -}- | '__builtin_va_list' { TSva_list (srclocOf $1) }--struct_or_union_specifier :: { TySpec }-struct_or_union_specifier :- struct_or_union identifier_or_typedef- { (unLoc $1) (Just $2) Nothing [] ($1 `srcspan` $2) }- | struct_or_union attributes identifier_or_typedef- { (unLoc $1) (Just $3) Nothing $2 ($1 `srcspan` $3) }- | struct_or_union '{' struct_declaration_list '}'- { (unLoc $1) Nothing (Just (rev $3)) [] ($1 `srcspan` $4) }- | struct_or_union '{' struct_declaration_list error- {% unclosed ($1 <--> rev $3) "{" }- | struct_or_union identifier_or_typedef '{' struct_declaration_list '}'- { (unLoc $1) (Just $2) (Just (rev $4)) [] ($1 `srcspan` $5) }- | struct_or_union identifier_or_typedef '{' struct_declaration_list error- {% unclosed ($1 <--> rev $4) "{" }- | struct_or_union attributes identifier_or_typedef '{' struct_declaration_list '}'- { (unLoc $1) (Just $3) (Just (rev $5)) $2 ($1 `srcspan` $6) }- | struct_or_union attributes '{' struct_declaration_list '}'- { (unLoc $1) Nothing (Just (rev $4)) $2 ($1 `srcspan` $5) }- | struct_or_union attributes identifier_or_typedef '{' struct_declaration_list error- {% unclosed ($1 <--> rev $5) "{" }--struct_or_union :: { L (Maybe Id -> Maybe [FieldGroup] -> [Attr] -> SrcLoc -> TySpec) }-struct_or_union :- 'struct' { L (locOf $1) TSstruct }- | 'union' { L (locOf $1) TSunion }--struct_declaration_list :: { RevList FieldGroup }-struct_declaration_list :- struct_declaration- { rsingleton $1 }- | ANTI_SDECLS- { rsingleton (AntiSdecls (getANTI_SDECLS $1) (srclocOf $1)) }- | struct_declaration_list struct_declaration- { rcons $2 $1 }- | struct_declaration_list ANTI_SDECLS- { rcons (AntiSdecls (getANTI_SDECLS $2) (srclocOf $2)) $1 }--struct_declaration :: { FieldGroup }-struct_declaration :- ANTI_SPEC struct_declarator_list ';'- { let dspec = AntiDeclSpec (getANTI_SPEC $1) (srclocOf $1)- in- FieldGroup dspec (rev $2) ($1 `srcspan` $3)- }- | specifier_qualifier_list struct_declarator_list ';'- {% do{ dspec <- mkDeclSpec $1- ; return $ FieldGroup dspec (rev $2) ($1 `srcspan` $3)- }- }- | ANTI_TYPE identifier_or_typedef ';'- {% do{ let v = getANTI_TYPE $1- ; let dspec = AntiTypeDeclSpec [] [] v (srclocOf $1)- ; let decl = AntiTypeDecl v (srclocOf $1)- ; let field = Field (Just $2) (Just decl) Nothing ($1 `srcspan` $2)- ; return $ FieldGroup dspec [field] ($1 `srcspan` $3)- }- }- | ANTI_SDECL- { AntiSdecl (getANTI_SDECL $1) (srclocOf $1) }--specifier_qualifier_list :: { [TySpec] }-specifier_qualifier_list :- type_specifier specifier_qualifier_list_- { $1 : $2 }- | type_qualifier_list type_specifier specifier_qualifier_list_- { rev $1 ++ [$2] ++ $3 }- | typedef_name- { [$1] }- | typedef_name type_qualifier_list- { $1 : rev $2 }- | type_qualifier_list typedef_name- { rev $1 ++ [$2] }- | type_qualifier_list typedef_name type_qualifier_list- { rev $1 ++ [$2] ++ rev $3 }--specifier_qualifier_list_ :: { [TySpec] }-specifier_qualifier_list_ :- {- empty -} %prec NAMED { [] }- | type_specifier %prec NAMED { [$1] }- | type_specifier specifier_qualifier_list { $1 : $2 }- | type_qualifier %prec NAMED { [$1] }- | type_qualifier specifier_qualifier_list { $1 : $2 }--struct_declarator_list :: { RevList Field }-struct_declarator_list :- struct_declarator { rsingleton $1 }- | struct_declarator_list ',' struct_declarator { rcons $3 $1 }--struct_declarator :: { Field }-struct_declarator :- declarator- { let { (ident, declToDecl) = $1- ; decl = declToDecl (declRoot ident)- }- in- Field (Just ident) (Just decl) Nothing (srclocOf decl)- }- | declarator attributes- { let { (ident, declToDecl) = $1- ; decl = declToDecl (declRoot ident)- }- in- Field (Just ident) (Just decl) Nothing (srclocOf decl)- }- | ':' constant_expression- { Field Nothing Nothing (Just $2) ($1 `srcspan` $2) }- | declarator ':' constant_expression- { let { (ident, declToDecl) = $1- ; decl = declToDecl (declRoot ident)- }- in- Field (Just ident) (Just decl) (Just $3) (srclocOf decl)- }--enum_specifier :: { TySpec }-enum_specifier :- 'enum' identifier_or_typedef- { TSenum (Just $2) [] [] ($1 `srcspan` $2) }- | 'enum' attributes identifier_or_typedef- { TSenum (Just $3) [] $2 ($1 `srcspan` $3) }- | 'enum' '{' enumerator_list '}'- { TSenum Nothing (rev $3) [] ($1 `srcspan` $4) }- | 'enum' identifier_or_typedef '{' enumerator_list '}'- { TSenum (Just $2) (rev $4) [] ($1 `srcspan` $5)}--enumerator_list :: { RevList CEnum }-enumerator_list :- enumerator- { rsingleton $1 }- | ANTI_ENUMS- { rsingleton (AntiEnums (getANTI_ENUMS $1) (srclocOf $1)) }- | enumerator_list ','- { $1 }- | enumerator_list ',' enumerator- { rcons $3 $1 }- | enumerator_list ',' ANTI_ENUMS- { rcons (AntiEnums (getANTI_ENUMS $3) (srclocOf $3)) $1 }--enumerator :: { CEnum }-enumerator:- identifier- { CEnum $1 Nothing (srclocOf $1)}- | identifier '=' constant_expression- { CEnum $1 (Just $3) ($1 `srcspan` $3) }- | ANTI_ENUM- { AntiEnum (getANTI_ENUM $1) (srclocOf $1) }--type_qualifier :: { TySpec }-type_qualifier :- 'const' { TSconst (srclocOf $1) }- | 'inline' { TSinline (srclocOf $1) }- | 'restrict' { TSrestrict (srclocOf $1) }- | 'volatile' { TSvolatile (srclocOf $1) }-- {- Extension: CUDA -}- | '__device__' { TSCUDAdevice (srclocOf $1) }- | '__global__' { TSCUDAglobal (srclocOf $1) }- | '__host__' { TSCUDAhost (srclocOf $1) }- | '__constant__' { TSCUDAconstant (srclocOf $1) }- | '__shared__' { TSCUDAshared (srclocOf $1) }- | '__restrict__' { TSCUDArestrict (srclocOf $1) }- | '__noinline__' { TSCUDAnoinline (srclocOf $1) }-- {- Extension: OpenCL -}- | 'private' { TSCLprivate (srclocOf $1) }- | '__private' { TSCLprivate (srclocOf $1) }- | 'local' { TSCLlocal (srclocOf $1) }- | '__local' { TSCLlocal (srclocOf $1) }- | 'global' { TSCLglobal (srclocOf $1) }- | '__global' { TSCLglobal (srclocOf $1) }- | 'constant' { TSCLconstant (srclocOf $1) }- | '__constant' { TSCLconstant (srclocOf $1) }- | 'read_only' { TSCLreadonly (srclocOf $1) }- | '__read_only' { TSCLreadonly (srclocOf $1) }- | 'write_only' { TSCLwriteonly (srclocOf $1) }- | '__write_only' { TSCLwriteonly (srclocOf $1) }- | 'kernel' { TSCLkernel (srclocOf $1) }- | '__kernel' { TSCLkernel (srclocOf $1) }---- Consider the following C program:------ typedef struct foo {--- int a;--- } foo;------ void f(foo* (foo));------ In the grammar in the C99 standard, a parameter declaration can result from--- either a declarator or an abstract declarator. This produces an ambiguity--- when a typedef name appears after '(' because we can't tell whether or not it--- is an item in a parmeter list for a function that is part of an abstract--- declarator, or if is just a parenthesized (standard) declarator. This--- ambiguity exists in the definition of f in the above program.------ To solve this ambiguity, we split the the declarator rule to handle the--- identifier and typedef name cases separately, and, furthermore, copy the--- typedef name declarator rule and remove the cases that leads to ambiguity--- when a declarator is used in a parameter list declaration.--identifier_declarator :: { (Id, Decl -> Decl) }-identifier_declarator :- identifier_direct_declarator- { $1 }- | pointer identifier_direct_declarator- { let (ident, dirDecl) = $2- in- (ident, dirDecl . $1)- }--identifier_direct_declarator :: { (Id, Decl -> Decl) }-identifier_direct_declarator :- identifier- { ($1, id) }- | '(' identifier_declarator ')'- { $2 }- | '(' identifier_declarator error- {%do { let (ident, declToDecl) = $2- ; let decl = declToDecl (declRoot ident)- ; unclosed ($1 <--> decl) "("- }- }- | identifier_direct_declarator array_declarator- { let (ident, declToDecl) = $1- in- (ident, declToDecl . $2)- }- | identifier_direct_declarator '(' ')'- { let { (ident, declToDecl) = $1- ; proto = mkOldProto []- }- in- (ident, declToDecl . proto)- }- | identifier_direct_declarator '(' parameter_type_list ')'- { let { (ident, declToDecl) = $1- ; proto = mkProto $3- }- in- (ident, declToDecl . proto)- }- | identifier_direct_declarator '(' identifier_list ')'- { let { (ident, declToDecl) = $1- ; proto = mkOldProto (rev $3)- }- in- (ident, declToDecl . proto)- }--typedef_declarator :: { (Id, Decl -> Decl) }-typedef_declarator :- typedef_direct_declarator- { $1 }- | pointer typedef_direct_declarator- { let (ident, dirDecl) = $2- in- (ident, dirDecl . $1)- }--typedef_direct_declarator :: { (Id, Decl -> Decl) }-typedef_direct_declarator :- NAMED- { (Id (getNAMED $1) (srclocOf $1), id) }- | '(' typedef_declarator ')'- { $2 }- | '(' typedef_declarator error- {%do { let (ident, declToDecl) = $2- ; let decl = declToDecl (declRoot ident)- ; unclosed ($1 <--> decl) "("- }- }- | typedef_direct_declarator array_declarator- { let (ident, declToDecl) = $1- in- (ident, declToDecl . $2)- }- | typedef_direct_declarator '(' ')'- { let { (ident, declToDecl) = $1- ; proto = mkOldProto []- }- in- (ident, declToDecl . proto)- }- | typedef_direct_declarator '(' parameter_type_list ')'- { let { (ident, declToDecl) = $1- ; proto = mkProto $3- }- in- (ident, declToDecl . proto)- }- | typedef_direct_declarator '(' identifier_list ')'- { let { (ident, declToDecl) = $1- ; proto = mkOldProto (rev $3)- }- in- (ident, declToDecl . proto)- }--declarator :: { (Id, Decl -> Decl) }-declarator :- identifier_declarator- { $1 }- | typedef_declarator- { $1 }--parameter_typedef_declarator :: { (Id, Decl -> Decl) }-parameter_typedef_declarator :- parameter_typedef_direct_declarator- { $1 }- | pointer parameter_typedef_direct_declarator- { let (ident, dirDecl) = $2- in- (ident, dirDecl . $1)- }--parameter_typedef_direct_declarator :: { (Id, Decl -> Decl) }-parameter_typedef_direct_declarator :- NAMED- { (Id (getNAMED $1) (srclocOf $1), id) }- | '(' pointer parameter_typedef_direct_declarator ')'- { let (ident, dirDecl) = $3- in- (ident, dirDecl . $2)- }- | parameter_typedef_direct_declarator array_declarator- { let (ident, declToDecl) = $1- in- (ident, declToDecl . $2)- }- | parameter_typedef_direct_declarator '(' ')'- { let { (ident, declToDecl) = $1- ; proto = mkOldProto []- }- in- (ident, declToDecl . proto)- }- | parameter_typedef_direct_declarator '(' parameter_type_list ')'- { let { (ident, declToDecl) = $1- ; proto = mkProto $3- }- in- (ident, declToDecl . proto)- }- | parameter_typedef_direct_declarator '(' identifier_list ')'- { let { (ident, declToDecl) = $1- ; proto = mkOldProto (rev $3)- }- in- (ident, declToDecl . proto)- }--parameter_declarator :: { (Id, Decl -> Decl) }-parameter_declarator :- identifier_declarator- { $1 }- | parameter_typedef_declarator- { $1 }--array_declarator :: { Decl -> Decl }-array_declarator :- '[' ']'- { mkArray [] (NoArraySize ($1 `srcspan` $2)) }- | '[' error- {% unclosed (locOf $1) "[" }- | '[' type_qualifier_list ']'- { mkArray (rev $2) (NoArraySize ($1 `srcspan` $3)) }- | '[' assignment_expression ']'- { mkArray [] (ArraySize False $2 (srclocOf $2)) }- | '[' type_qualifier_list assignment_expression ']'- { mkArray (rev $2) (ArraySize False $3 (srclocOf $3)) }- | '[' 'static' assignment_expression ']'- { mkArray [] (ArraySize True $3 (srclocOf $3)) }- | '[' 'static' type_qualifier_list assignment_expression ']'- { mkArray (rev $3) (ArraySize True $4 (srclocOf $4)) }- | '[' type_qualifier_list 'static' assignment_expression ']'- { mkArray (rev $2) (ArraySize True $4 (srclocOf $4)) }- | '[' '*' ']'- { mkArray [] (VariableArraySize ($1 `srcspan` $3)) }- | '[' type_qualifier_list '*' ']'- { mkArray (rev $2) (VariableArraySize ($1 `srcspan` $4)) }--pointer :: { Decl -> Decl }-pointer :- '*' { mkPtr [] }- | '*' type_qualifier_list { mkPtr (rev $2) }- | '*' pointer { $2 . mkPtr [] }- | '*' type_qualifier_list pointer { $3 . mkPtr (rev $2) }--type_qualifier_list :: { RevList TySpec }-type_qualifier_list :- type_qualifier { rsingleton $1 }- | type_qualifier_list type_qualifier { rcons $2 $1 }--parameter_type_list :: { Params }-parameter_type_list :- parameter_list- { let params = rev $1- in- Params params False (srclocOf params)- }- | parameter_list ',' '...'- { let params = rev $1- in- Params params True (params `srcspan` $3)- }--parameter_list :: { RevList Param }-parameter_list:- parameter_declaration- { rsingleton $1 }- | ANTI_PARAMS- { rsingleton (AntiParams (getANTI_PARAMS $1) (srclocOf $1)) }- | parameter_list ',' parameter_declaration- { rcons $3 $1 }- | parameter_list ',' ANTI_PARAMS- { rcons (AntiParams (getANTI_PARAMS $3) (srclocOf $3)) $1 }--parameter_declaration :: { Param }-parameter_declaration:- declaration_specifiers- { let (dspec, decl) = $1- in- Param Nothing dspec decl (dspec `srcspan` decl)- }- | declaration_specifiers parameter_declarator- { let { (dspec, declRoot) = $1- ; (ident, declToDecl) = $2- ; decl = declToDecl declRoot- }- in- Param (Just ident) dspec decl (ident `srcspan` decl)- }- | declaration_specifiers abstract_declarator- { let { (dspec, declRoot) = $1- ; decl = $2 declRoot- }- in- Param Nothing dspec decl (dspec `srcspan` decl)- }- | ANTI_PARAM- { AntiParam (getANTI_PARAM $1) (srclocOf $1) }---- The type_declaration rule is the parameter_declaration rule without the--- ANTI_PARAM option. This allows us to parse type declarations easily for later--- antiquoting.--type_declaration :: { Type }-type_declaration:- declaration_specifiers- { let (dspec, decl) = $1- in- Type dspec decl (dspec `srcspan` decl)- }- | declaration_specifiers parameter_declarator- { let { (dspec, declRoot) = $1- ; (ident, declToDecl) = $2- ; decl = declToDecl declRoot- }- in- Type dspec decl (dspec `srcspan` decl)- }- | declaration_specifiers abstract_declarator- { let { (dspec, declRoot) = $1- ; decl = $2 declRoot- }- in- Type dspec decl (dspec `srcspan` decl)- }--identifier_list :: { RevList Id }-identifier_list :- identifier { rsingleton $1 }- | identifier_list ',' identifier { rcons $3 $1 }--type_name :: { Type }-type_name :- ANTI_SPEC- { let dspec = AntiDeclSpec (getANTI_SPEC $1) (srclocOf $1)- in- Type dspec (declRoot $1) (srclocOf $1)- }- | specifier_qualifier_list- {% do{ dspec <- mkDeclSpec $1- ; return $ Type dspec (declRoot $1) (srclocOf $1)- }- }- | ANTI_SPEC abstract_declarator- { let { dspec = AntiDeclSpec (getANTI_SPEC $1) (srclocOf $1)- ; decl = $2 (declRoot $1)- }- in- Type dspec decl (dspec `srcspan` decl)- }- | specifier_qualifier_list abstract_declarator- {% do{ let decl = $2 (declRoot $1)- ; dspec <- mkDeclSpec $1- ; return $ Type dspec decl (dspec `srcspan` decl)- }- }- | ANTI_TYPE- { AntiType (getANTI_TYPE $1) (srclocOf $1) }- | ANTI_TYPE abstract_declarator- { let { v = getANTI_TYPE $1- ; decl = $2 (AntiTypeDecl v (srclocOf $1))- }- in- Type (AntiTypeDeclSpec [] [] v (srclocOf $1)) decl ($1 `srcspan` decl)- }--abstract_declarator :: { Decl -> Decl }-abstract_declarator :- pointer { $1 }- | direct_abstract_declarator { $1 }- | pointer direct_abstract_declarator { $2 . $1 }--direct_abstract_declarator :: { Decl -> Decl }-direct_abstract_declarator :- '(' abstract_declarator ')'- { $2 }- | '(' abstract_declarator error- {% do{ let decl = $2 (declRoot $1)- ; unclosed ($1 <--> decl) "("- }- }- | array_declarator- { $1 }- | direct_abstract_declarator array_declarator- { $1 . $2 }- | '(' ')'- { mkOldProto [] }- | '(' parameter_type_list ')'- { mkProto $2 }- | direct_abstract_declarator '(' ')'- { $1 . mkOldProto [] }- | direct_abstract_declarator '(' parameter_type_list ')'- { $1 . mkProto $3 }--typedef_name :: { TySpec }-typedef_name :- NAMED- { TSnamed (Id (getNAMED $1) (srclocOf $1)) (srclocOf $1) }- | 'typename' identifier- { TSnamed $2 ($1 `srcspan` $2) }- | 'typename' error- {% expected ["identifier"] }- | '__typeof__' '(' unary_expression ')'- { TStypeofExp $3 ($1 `srcspan` $4) }- | '__typeof__' '(' type_name ')'- { TStypeofType $3 ($1 `srcspan` $4) }- | '__typeof__' '(' type_name error- {% unclosed ($2 <--> $3) "(" }--initializer :: { Initializer }-initializer :- assignment_expression- { ExpInitializer $1 (srclocOf $1) }- | '{' initializer_list '}'- { CompoundInitializer (rev $2) ($1 `srcspan` $3) }- | '{' initializer_list error- {% do{ let (_, inits) = unzip (rev $2)- ; unclosed ($1 <--> inits) "{"- }- }- | '{' initializer_list ',' '}'- { CompoundInitializer (rev $2) ($1 `srcspan` $4) }- | '{' initializer_list ',' error- {% unclosed ($1 <--> $3) "{" }--initializer_list :: { RevList (Maybe Designation, Initializer) }-initializer_list :- initializer- { rsingleton (Nothing, $1) }- | designation initializer- { rsingleton (Just $1, $2) }- | initializer_list ',' initializer- { rcons (Nothing, $3) $1 }- | initializer_list ',' designation initializer- { rcons (Just $3, $4) $1 }--designation :: { Designation }-designation :- designator_list '='- { let designators = rev $1- in- Designation designators (designators `srcspan` $2)- }--designator_list :: { RevList Designator }-designator_list :- designator { rsingleton $1 }- | designator_list designator { rcons $2 $1 }--designator :: { Designator }-designator :- '[' constant_expression ']'- { IndexDesignator $2 ($1 `srcspan` $3) }- | '.' identifier- { MemberDesignator $2 ($1 `srcspan` $2) }--{------------------------------------------------------------------------------- -- - Statements- -- ------------------------------------------------------------------------------}--statement :: { Stm }-statement :- labeled_statement { $1 }- | compound_statement { $1 }- | expression_statement { $1 }- | selection_statement { $1 }- | iteration_statement { $1 }- | jump_statement { $1 }- | asm_statement { $1 }- | '#pragma' { Pragma (getPRAGMA $1) (srclocOf $1) }- | ANTI_PRAGMA { AntiPragma (getANTI_PRAGMA $1) (srclocOf $1) }- | ANTI_STM { AntiStm (getANTI_STM $1) (srclocOf $1) }--labeled_statement :: { Stm }-labeled_statement :- identifier ':' error {% expected ["statement"] }- | identifier ':' statement { Label $1 $3 ($1 `srcspan` $3) }- | 'case' constant_expression error {% expected ["`:'"] }- | 'case' constant_expression ':' error {% expected ["statement"] }- | 'case' constant_expression ':' statement { Case $2 $4 ($1 `srcspan` $4) }- | 'default' error {% expected ["`:'"] }- | 'default' ':' error {% expected ["statement"] }- | 'default' ':' statement { Default $3 ($1 `srcspan` $3) }--compound_statement :: { Stm }-compound_statement:- '{' begin_scope end_scope '}'- { Block [] ($1 `srcspan` $4) }- | '{' begin_scope error- {% unclosed (locOf $3) "{" }- | '{' begin_scope block_item_list end_scope '}'- { Block (rev $3) ($1 `srcspan` $5) }--block_item_list :: { RevList BlockItem }-block_item_list :- block_item { rsingleton $1 }- | block_item_list block_item { rcons $2 $1 }--block_item :: { BlockItem }-block_item :- declaration { BlockDecl $1 }- | statement { BlockStm $1 }- | ANTI_DECLS { BlockDecl (AntiDecls (getANTI_DECLS $1) (srclocOf $1)) }- | ANTI_STMS { BlockStm (AntiStms (getANTI_STMS $1) (srclocOf $1)) }- | ANTI_ITEM { AntiBlockItem (getANTI_ITEM $1) (srclocOf $1) }- | ANTI_ITEMS { AntiBlockItems (getANTI_ITEMS $1) (srclocOf $1) }--begin_scope :: { () }-begin_scope : {% pushScope }--end_scope :: { () }-end_scope : {% popScope }--declaration_list :: { RevList InitGroup }-declaration_list :- declaration- { rsingleton $1 }- | ANTI_DECLS- { rsingleton (AntiDecls (getANTI_DECLS $1) (srclocOf $1)) }- | declaration_list declaration- { rcons $2 $1 }- | declaration_list ANTI_DECLS- { rcons (AntiDecls (getANTI_DECLS $2) (srclocOf $2)) $1 }--expression_statement :: { Stm }-expression_statement:- ';' { Exp Nothing (srclocOf $1) }- | expression ';' { Exp (Just $1) ($1 `srcspan` $2) }- | expression error {% expected ["';'"] }--selection_statement :: { Stm }-selection_statement :- 'if' '(' expression ')' statement- { If $3 $5 Nothing ($1 `srcspan` $5) }- | 'if' '(' expression ')' statement 'else' statement- { If $3 $5 (Just $7) ($1 `srcspan` $7) }- | 'if' '(' expression error- {% unclosed ($2 <--> $3) "(" }- | 'switch' '(' expression ')' statement- { Switch $3 $5 ($1 `srcspan` $5) }- | 'switch' '(' expression error- {% unclosed ($2 <--> $3) "(" }--iteration_statement :: { Stm }-iteration_statement :- 'while' '(' expression ')' statement- { While $3 $5 ($1 `srcspan` $5) }- | 'while' '(' expression error- {% unclosed ($2 <--> $3) "(" }- | 'do' statement 'while' '(' expression ')' ';'- { DoWhile $2 $5 ($1 `srcspan` $7) }- | 'do' statement 'while' '(' expression error- {% unclosed ($4 <--> $5) "(" }- | 'for' '(' error- {% expected ["expression", "declaration"] }- | 'for' '(' declaration maybe_expression ';' ')' statement- { For (Left $3) $4 Nothing $7 ($1 `srcspan` $7) }- | 'for' '(' maybe_expression ';' maybe_expression ';' ')' statement- { For (Right $3) $5 Nothing $8 ($1 `srcspan` $8) }- | 'for' '(' maybe_expression ';' maybe_expression ';' error- {% unclosed ($2 <--> $6) "(" }- | 'for' '(' declaration maybe_expression ';' expression ')' statement- { For (Left $3) $4 (Just $6) $8 ($1 `srcspan` $8) }- | 'for' '(' maybe_expression ';' maybe_expression ';' expression ')' statement- { For (Right $3) $5 (Just $7) $9 ($1 `srcspan` $9) }- | 'for' '(' maybe_expression ';' maybe_expression ';' expression error- {% unclosed ($2 <--> $7) "(" }--jump_statement :: { Stm }-jump_statement :- 'goto' identifier ';' { Goto $2 ($1 `srcspan` $3) }- | 'goto' error {% expected ["identifier"] }- | 'goto' identifier error {% expected ["';'"] }- | 'continue' ';' { Continue ($1 `srcspan` $2) }- | 'continue' error {% expected ["';'"] }- | 'break' ';' { Break ($1 `srcspan` $2) }- | 'break' error {% expected ["';'"] }- | 'return' ';' { Return Nothing ($1 `srcspan` $2) }- | 'return' error {% expected ["';'"] }- | 'return' expression ';' { Return (Just $2) ($1 `srcspan` $3) }- | 'return' expression error {% expected ["';'"] }--{------------------------------------------------------------------------------- -- - External definitions- -- ------------------------------------------------------------------------------}--translation_unit :: { [Definition] }-translation_unit :- {- empty -} { [] }- | translation_unit_ { rev $1 }--translation_unit_ :: { RevList Definition }-translation_unit_ :- external_declaration- { rsingleton $1 }- | ANTI_EDECLS- { rsingleton (AntiEdecls (getANTI_EDECLS $1) (srclocOf $1)) }- | translation_unit_ external_declaration- { rcons $2 $1 }- | translation_unit_ ANTI_EDECLS- { rcons (AntiEdecls (getANTI_EDECLS $2) (srclocOf $2)) $1 }--external_declaration :: { Definition }-external_declaration :- function_definition- { FuncDef $1 (srclocOf $1) }- | declaration- { DecDef $1 (srclocOf $1) }- | ANTI_FUNC- { AntiFunc (getANTI_FUNC $1) (srclocOf $1) }- | ANTI_ESC- { AntiEsc (getANTI_ESC $1) (srclocOf $1) }- | ANTI_EDECL- { AntiEdecl (getANTI_EDECL $1) (srclocOf $1) }--function_definition :: { Func }-function_definition :- declaration_specifiers declarator compound_statement- {% do{ let (dspec, declRoot) = $1- ; let (ident, declToDecl) = $2- ; let Block blockItems _ = $3- ; let decl = declToDecl declRoot- ; case decl of- { Proto protoDecl args _ -> return $- Func dspec ident protoDecl args- blockItems- (decl `srcspan` blockItems)- ; OldProto protoDecl args _ -> return $- OldFunc dspec ident protoDecl args Nothing- blockItems- (decl `srcspan` blockItems)- ; _ -> parserError (decl <--> blockItems)- (text "bad function declaration")- }- }- }- | declaration_specifiers declarator declaration_list compound_statement- {% do{ let (dspec, declRoot) = $1- ; let (ident, declToDecl) = $2- ; let argDecls = $3- ; let Block blockItems _ = $4- ; let decl = declToDecl declRoot- ; case decl of- { OldProto protoDecl args _ -> return $- OldFunc dspec ident protoDecl args (Just (rev argDecls))- blockItems- (decl `srcspan` blockItems)- ; _ -> parserError (decl <--> blockItems)- (text "bad function declaration")- }- }- }--{------------------------------------------------------------------------------- -- - GCC extensions- -- ------------------------------------------------------------------------------}--attributes :: { [Attr] }-attributes :- attribute { $1 }- | attributes attribute { $1 ++ $2 }--attribute :: { [Attr] }-attribute :- '__attribute__' '(' '(' attribute_list ')' ')' { rev $4 }--attribute_list :: { RevList Attr }-attribute_list :- attrib { rsingleton $1 }- | attribute_list ',' attrib { rcons $3 $1 }--attrib :: { Attr }-attrib :- attrib_name- { Attr $1 [] (srclocOf $1)}- | attrib_name '(' argument_expression_list ')'- { Attr $1 (rev $3) ($1 `srcspan` $4) }--attrib_name :: { Id }-attrib_name :- identifier_or_typedef { $1 }- | 'static' { Id "static" (srclocOf $1) }- | 'extern' { Id "extern" (srclocOf $1) }- | 'register' { Id "register" (srclocOf $1) }- | 'typedef' { Id "typedef" (srclocOf $1) }- | 'inline' { Id "inline" (srclocOf $1) }- | 'auto' { Id "auto" (srclocOf $1) }- | 'const' { Id "const" (srclocOf $1) }- | 'volatile' { Id "volatile" (srclocOf $1) }- | 'unsigned' { Id "unsigned" (srclocOf $1) }- | 'long' { Id "long" (srclocOf $1) }- | 'short' { Id "short" (srclocOf $1) }- | 'signed' { Id "signed" (srclocOf $1) }- | 'int' { Id "int" (srclocOf $1) }- | 'char' { Id "char" (srclocOf $1) }- | 'float' { Id "float" (srclocOf $1) }- | 'double' { Id "double" (srclocOf $1) }- | 'void' { Id "void" (srclocOf $1) }--maybe_volatile :: { Bool }-maybe_volatile :- {- empty -} { False}- | 'volatile' { True}--asm_statement :: { Stm }-asm_statement :- '__asm__' maybe_volatile '(' asm_template ')' ';'- { Asm $2 [] (rev $4) [] [] [] ($1 `srcspan` $5) }- | '__asm__' maybe_volatile '(' asm_template ':' asm_inouts ')' ';'- { Asm $2 [] (rev $4) $6 [] [] ($1 `srcspan` $7) }- | '__asm__' maybe_volatile '(' asm_template ':' asm_inouts- ':' asm_inouts ')' ';'- { Asm $2 [] (rev $4) $6 $8 [] ($1 `srcspan` $9) }- | '__asm__' maybe_volatile '(' asm_template ':' asm_inouts- ':' asm_inouts- ':' asm_clobbers ')' ';'- { Asm $2 [] (rev $4) $6 $8 $10 ($1 `srcspan` $11) }--asm_template :: { RevList String }-asm_template :- STRING { rsingleton ((fst . getSTRING) $1) }- | asm_template STRING { rcons ((fst . getSTRING) $2) $1 }--asm_inouts :: { [(String, Exp)] }-asm_inouts :- {- empty -} { [] }- | asm_inouts_ne { rev $1 }--asm_inouts_ne :: { RevList (String, Exp) }-asm_inouts_ne:- asm_inout { rsingleton $1 }- | asm_inouts_ne ',' asm_inout { rcons $3 $1 }--asm_inout :: { (String, Exp) }-asm_inout :- STRING '(' expression ')' { ((fst . getSTRING) $1, $3) }--asm_clobbers :: { [String] }-asm_clobbers :- {- empty -} { [] }- | asm_clobbers_ne { rev $1 }--asm_clobbers_ne :: { RevList String }-asm_clobbers_ne :- asm_clobber { rsingleton $1 }- | asm_clobbers_ne ',' asm_clobber { rcons $3 $1 }--asm_clobber :: { String }-asm_clobber :- STRING { (fst . getSTRING) $1 }--{-happyError :: L T.Token -> P a-happyError (L loc t) =- parserError (locStart loc) (text "parse error on" <+> quoteTok (ppr t))--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 ident)) = ident-getNAMED (L _ (T.Tnamed ident)) = ident--getPRAGMA (L _ (T.Tpragma pragma)) = pragma--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_LLINT (L _ (T.Tanti_llint v)) = v-getANTI_ULLINT (L _ (T.Tanti_ullint 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-getANTI_PRAGMA (L _ (T.Tanti_pragma v)) = v--lexer :: (L T.Token -> P a) -> P a-lexer cont = do- t <- lexToken- setCurToken t- cont t--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- | TSCUDAdevice !SrcLoc- | TSCUDAglobal !SrcLoc- | TSCUDAhost !SrcLoc- | TSCUDAconstant !SrcLoc- | TSCUDAshared !SrcLoc- | TSCUDArestrict !SrcLoc- | TSCUDAnoinline !SrcLoc-- -- OpenCL- | TSCLprivate !SrcLoc- | TSCLlocal !SrcLoc- | TSCLglobal !SrcLoc- | TSCLconstant !SrcLoc- | TSCLreadonly !SrcLoc- | TSCLwriteonly !SrcLoc- | TSCLkernel !SrcLoc--instance Located DeclTySpec where- locOf (DeclTySpec _ loc) = locOf loc- locOf (AntiDeclTySpec _ loc) = locOf loc--instance Located TySpec where- locOf (TSauto loc) = locOf loc- locOf (TSregister loc) = locOf loc- locOf (TSstatic loc) = locOf loc- locOf (TSextern loc) = locOf loc- locOf (TSexternL _ loc) = locOf loc- locOf (TStypedef loc) = locOf loc-- locOf (TSconst loc) = locOf loc- locOf (TSvolatile loc) = locOf loc- locOf (TSinline loc) = locOf loc-- locOf (TSsigned loc) = locOf loc- locOf (TSunsigned loc) = locOf loc-- locOf (TSvoid loc) = locOf loc- locOf (TSchar loc) = locOf loc- locOf (TSshort loc) = locOf loc- locOf (TSint loc) = locOf loc- locOf (TSlong loc) = locOf loc- locOf (TSfloat loc) = locOf loc- locOf (TSdouble loc) = locOf loc-- locOf (TSstruct _ _ _ loc) = locOf loc- locOf (TSunion _ _ _ loc) = locOf loc- locOf (TSenum _ _ _ loc) = locOf loc- locOf (TSnamed _ loc) = locOf loc-- locOf (TStypeofExp _ loc) = locOf loc- locOf (TStypeofType _ loc) = locOf loc- locOf (TSva_list loc) = locOf loc-- locOf (TSrestrict loc) = locOf loc-- locOf (TSCUDAdevice loc) = locOf loc- locOf (TSCUDAglobal loc) = locOf loc- locOf (TSCUDAhost loc) = locOf loc- locOf (TSCUDAconstant loc) = locOf loc- locOf (TSCUDAshared loc) = locOf loc- locOf (TSCUDArestrict loc) = locOf loc- locOf (TSCUDAnoinline loc) = locOf loc-- locOf (TSCLprivate loc) = locOf loc- locOf (TSCLlocal loc) = locOf loc- locOf (TSCLglobal loc) = locOf loc- locOf (TSCLconstant loc) = locOf loc- locOf (TSCLreadonly loc) = locOf loc- locOf (TSCLwriteonly loc) = locOf loc- locOf (TSCLkernel loc) = locOf 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 (TSCUDAdevice _) = text "__device__"- ppr (TSCUDAglobal _) = text "__global__"- ppr (TSCUDAhost _) = text "__host__"- ppr (TSCUDAconstant _) = text "__constant__"- ppr (TSCUDAshared _) = text "__shared__"- ppr (TSCUDArestrict _) = text "__restrict__"- 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-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 (TSCUDAdevice _) = True-isTypeQual (TSCUDAglobal _) = True-isTypeQual (TSCUDAhost _) = True-isTypeQual (TSCUDAconstant _) = True-isTypeQual (TSCUDAshared _) = True-isTypeQual (TSCUDArestrict _) = 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 (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 (TSCUDArestrict loc) = TCUDArestrict 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-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 l] = do- checkNoSign specs "sign specified for void type"- return $ cdeclSpec storage quals (Tvoid l)-- go [TSchar l] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tchar sign l)-- go [TSshort l] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tshort sign l)-- go [TSshort _, TSint _] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tshort sign (srclocOf rest))-- go [TSint _, TSshort _] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tshort sign (srclocOf rest))-- go [TSint l] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tint sign l)-- go [TSlong l] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tlong sign l)-- go [TSlong _, TSint _] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tlong sign (srclocOf rest))-- go [TSint _, TSlong _] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tlong sign (srclocOf rest))-- go [TSlong _, TSlong _] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tlong_long sign (srclocOf rest))-- go [TSlong _, TSlong _, TSint _] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tlong_long sign (srclocOf rest))-- go [TSlong _, TSint _, TSlong _] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tlong_long sign (srclocOf rest))-- go [TSint _, TSlong _, TSlong _] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tlong_long sign (srclocOf 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 (srclocOf rest))-- go [TSdouble _, TSlong _] = do- checkNoSign specs "sign specified for long double type"- return $ cdeclSpec storage quals (Tlong_double (srclocOf 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 l] = do- checkNoSign specs "sign specified for __builtin_va_list"- return $ cdeclSpec storage quals (Tva_list l)-- go [] = do- sign <- mkSign specs- return $ cdeclSpec storage quals (Tint sign (storage `srcspan` quals))-- go tyspecs =- throw $ ParserException (locOf tyspecs)- (text "bad type:" <+> spread (map ppr tyspecs))--mkPtr :: [TySpec] -> Decl -> Decl-mkPtr specs decl = C.Ptr quals decl (specs `srcspan` decl)- where- quals = mkTypeQuals specs--mkArray :: [TySpec] -> ArraySize -> Decl -> Decl-mkArray specs size decl = Array quals size decl (specs `srcspan` decl)- where- quals = mkTypeQuals specs--mkProto :: Params -> Decl -> Decl-mkProto args decl = Proto decl args (args `srcspan` decl)--mkOldProto :: [Id] -> Decl -> Decl-mkOldProto args decl = OldProto decl args (args `srcspan` 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 (locOf init) $- text "typedef" <+>- quoteTok (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 <--> inits--declRoot :: Located a => a -> Decl-declRoot x = DeclRoot (srclocOf x)+-- (c) Manuel M T Chakravarty 2013+-- License : BSD-style+-- Maintainer : mainland@eecs.harvard.edu++module Language.C.Parser.Parser where++import Control.Monad (forM_,+ when,+ unless,+ liftM)+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+}++%token+ CHAR { L _ (T.TcharConst _) }+ STRING { L _ (T.TstringConst _) }+ INT { L _ (T.TintConst _) }+ LONG { L _ (T.TlongIntConst _) }+ LONG_LONG { L _ (T.TlongLongIntConst _) }+ FLOAT { L _ (T.TfloatConst _) }+ DOUBLE { L _ (T.TdoubleConst _) }+ LONG_DOUBLE { L _ (T.TlongDoubleConst _) }+ ID { L _ (T.Tidentifier _) }+ NAMED { L _ (T.Tnamed _) }++ '(' { L _ T.Tlparen }+ ')' { L _ T.Trparen }+ '[' { L _ T.Tlbrack }+ ']' { L _ T.Trbrack }+ '{' { L _ T.Tlbrace }+ '}' { L _ T.Trbrace }+ ',' { L _ T.Tcomma }+ ';' { L _ T.Tsemi }+ ':' { L _ T.Tcolon }+ '?' { L _ T.Tquestion }+ '.' { L _ T.Tdot }+ '->' { L _ T.Tarrow }+ '...' { L _ T.Tellipses }++ '+' { L _ T.Tplus }+ '-' { L _ T.Tminus }+ '*' { L _ T.Tstar }+ '/' { L _ T.Tdiv }+ '%' { L _ T.Tmod }+ '~' { L _ T.Tnot }+ '&' { L _ T.Tand }+ '|' { L _ T.Tor }+ '^' { L _ T.Txor }+ '<<' { L _ T.Tlsh }+ '>>' { L _ T.Trsh }+ '++' { L _ T.Tinc }+ '--' { L _ T.Tdec }++ '!' { L _ T.Tlnot }+ '&&' { L _ T.Tland }+ '||' { L _ T.Tlor }++ '==' { L _ T.Teq }+ '!=' { L _ T.Tne }+ '<' { L _ T.Tlt }+ '>' { L _ T.Tgt }+ '<=' { L _ T.Tle }+ '>=' { L _ T.Tge }++ '=' { L _ T.Tassign }+ '+=' { L _ T.Tadd_assign }+ '-=' { L _ T.Tsub_assign }+ '*=' { L _ T.Tmul_assign }+ '/=' { L _ T.Tdiv_assign }+ '%=' { L _ T.Tmod_assign }+ '<<=' { L _ T.Tlsh_assign }+ '>>=' { L _ T.Trsh_assign }+ '&=' { L _ T.Tand_assign }+ '|=' { L _ T.Tor_assign }+ '^=' { L _ T.Txor_assign }++ 'auto' { L _ T.Tauto }+ 'break' { L _ T.Tbreak }+ 'case' { L _ T.Tcase }+ 'char' { L _ T.Tchar }+ 'const' { L _ T.Tconst }+ 'continue' { L _ T.Tcontinue }+ 'default' { L _ T.Tdefault }+ 'do' { L _ T.Tdo }+ 'double' { L _ T.Tdouble }+ 'else' { L _ T.Telse }+ 'enum' { L _ T.Tenum }+ 'extern' { L _ T.Textern }+ 'float' { L _ T.Tfloat }+ 'for' { L _ T.Tfor }+ 'goto' { L _ T.Tgoto }+ 'if' { L _ T.Tif }+ 'inline' { L _ T.Tinline }+ 'int' { L _ T.Tint }+ 'long' { L _ T.Tlong }+ 'register' { L _ T.Tregister }+ 'restrict' { L _ T.Trestrict }+ 'return' { L _ T.Treturn }+ 'short' { L _ T.Tshort }+ 'signed' { L _ T.Tsigned }+ 'sizeof' { L _ T.Tsizeof }+ 'static' { L _ T.Tstatic }+ 'struct' { L _ T.Tstruct }+ 'switch' { L _ T.Tswitch }+ 'typedef' { L _ T.Ttypedef }+ 'union' { L _ T.Tunion }+ 'unsigned' { L _ T.Tunsigned }+ 'void' { L _ T.Tvoid }+ 'volatile' { L _ T.Tvolatile }+ 'while' { L _ T.Twhile }+ '_Bool' { L _ T.TBool }+ '_Complex' { L _ T.TComplex }+ '_Imaginary' { L _ T.TImaginary }++ '#pragma' { L _ (T.Tpragma _) }++ '__asm__' { L _ T.Tasm }+ '__attribute__' { L _ T.Tattribute }+ '__extension__' { L _ T.Textension }+ '__builtin_va_arg' { L _ T.Tbuiltin_va_arg }+ '__builtin_va_list' { L _ T.Tbuiltin_va_list }+ '__typeof__' { L _ T.Ttypeof }++ '<<<' { 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 }+ '__restrict__' { L _ T.TCUDArestrict }+ '__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 }++ '__block' { L _ T.T__block }++ OBJCNAMED { L _ (T.TObjCnamed _) }+ '@' { L _ T.TObjCat }+ 'autoreleasepool' { L _ T.TObjCautoreleasepool }+ 'catch' { L _ T.TObjCcatch }+ 'class' { L _ T.TObjCclass }+ 'compatibility_alias' { L _ T.TObjCcompatibility_alias }+ 'dynamic' { L _ T.TObjCdynamic }+ 'encode' { L _ T.TObjCencode }+ 'end' { L _ T.TObjCend }+ 'finally' { L _ T.TObjCfinally }+ 'interface' { L _ T.TObjCinterface }+ 'implementation' { L _ T.TObjCimplementation }+ 'NO' { L _ T.TObjCNO }+ 'objc_private' { L _ T.TObjCprivate }+ 'optional' { L _ T.TObjCoptional }+ 'public' { L _ T.TObjCpublic }+ 'property' { L _ T.TObjCproperty }+ 'protected' { L _ T.TObjCprotected }+ 'package' { L _ T.TObjCpackage }+ 'protocol' { L _ T.TObjCprotocol }+ 'required' { L _ T.TObjCrequired }+ 'selector' { L _ T.TObjCselector }+ 'synchronized' { L _ T.TObjCsynchronized }+ 'synthesize' { L _ T.TObjCsynthesize }+ 'throw' { L _ T.TObjCthrow }+ 'try' { L _ T.TObjCtry }+ 'YES' { L _ T.TObjCYES }+ '__weak' { L _ T.TObjC__weak }+ '__strong' { L _ T.TObjC__strong }+ '__unsafe_retained' { L _ T.TObjC__unsafe_retained }++ 'typename' { L _ T.Ttypename }++ ANTI_ID { L _ (T.Tanti_id _) }+ ANTI_INT { L _ (T.Tanti_int _) }+ ANTI_UINT { L _ (T.Tanti_uint _) }+ ANTI_LINT { L _ (T.Tanti_lint _) }+ ANTI_ULINT { L _ (T.Tanti_ulint _) }+ ANTI_LLINT { L _ (T.Tanti_llint _) }+ ANTI_ULLINT { L _ (T.Tanti_ullint _) }+ ANTI_FLOAT { L _ (T.Tanti_float _) }+ ANTI_DOUBLE { L _ (T.Tanti_double _) }+ ANTI_LONG_DOUBLE { L _ (T.Tanti_long_double _) }+ ANTI_CHAR { L _ (T.Tanti_char _) }+ ANTI_STRING { L _ (T.Tanti_string _) }+ ANTI_EXP { L _ (T.Tanti_exp _) }+ ANTI_FUNC { L _ (T.Tanti_func _) }+ ANTI_ARGS { L _ (T.Tanti_args _) }+ ANTI_DECL { L _ (T.Tanti_decl _) }+ ANTI_DECLS { L _ (T.Tanti_decls _) }+ ANTI_SDECL { L _ (T.Tanti_sdecl _) }+ ANTI_SDECLS { L _ (T.Tanti_sdecls _) }+ ANTI_ENUM { L _ (T.Tanti_enum _) }+ ANTI_ENUMS { L _ (T.Tanti_enums _) }+ ANTI_ESC { L _ (T.Tanti_esc _) }+ ANTI_EDECL { L _ (T.Tanti_edecl _) }+ ANTI_EDECLS { L _ (T.Tanti_edecls _) }+ ANTI_ITEM { L _ (T.Tanti_item _) }+ ANTI_ITEMS { L _ (T.Tanti_items _) }+ ANTI_STM { L _ (T.Tanti_stm _) }+ ANTI_STMS { L _ (T.Tanti_stms _) }+ ANTI_SPEC { L _ (T.Tanti_spec _) }+ ANTI_TYPE { L _ (T.Tanti_type _) }+ ANTI_PARAM { L _ (T.Tanti_param _) }+ ANTI_PARAMS { L _ (T.Tanti_params _) }+ ANTI_PRAGMA { L _ (T.Tanti_pragma _) }+ ANTI_INIT { L _ (T.Tanti_init _) }+ ANTI_INITS { L _ (T.Tanti_inits _) }++-- Three shift-reduce conflicts:+-- (1) Documented conflict in 'objc_protocol_declaration'+-- (2) Objective-C exception syntax (would need lookahead of 2 to disambiguate properly)+-- (3) The standard dangling else conflict+%expect 3++%monad { P } { >>= } { return }+%lexer { lexer } { L _ T.Teof }+%tokentype { (L T.Token) }+%error { happyError }++%name parseExp expression++%name parseEdecl external_declaration+%name parseDecl declaration+%name parseStructDecl struct_declaration+%name parseEnum enumerator++%name parseType type_declaration+%name parseParam parameter_declaration+%name parseInit initializer++%name parseStm statement+%name parseBlockItem block_item++%name parseUnit translation_unit+%name parseFunc function_definition++%right NAMED OBJCNAMED+%%++{------------------------------------------------------------------------------+ -+ - Identifiers+ -+ ------------------------------------------------------------------------------}++identifier :: { Id }+identifier :+ ID { Id (getID $1) (srclocOf $1) }+ | 'autoreleasepool' { Id "autoreleasepool" (srclocOf $1) } -- Objective-C+ | 'catch' { Id "catch" (srclocOf $1) } -- Objective-C+ | 'class' { Id "class" (srclocOf $1) } -- Objective-C+ | 'compatibility_alias' { Id "compatibility_alias" (srclocOf $1) } -- Objective-C+ | 'dynamic' { Id "dynamic" (srclocOf $1) } -- Objective-C+ | 'encode' { Id "encode" (srclocOf $1) } -- Objective-C+ | 'end' { Id "end" (srclocOf $1) } -- Objective-C+ | 'finally' { Id "finally" (srclocOf $1) } -- Objective-C+ | 'implementation' { Id "implementation" (srclocOf $1) } -- Objective-C+ | 'interface' { Id "interface" (srclocOf $1) } -- Objective-C+ | 'NO' { Id "NO" (srclocOf $1) } -- Objective-C+ | 'objc_private' { Id "private" (srclocOf $1) } -- Objective-C+ | 'optional' { Id "optional" (srclocOf $1) } -- Objective-C+ | 'public' { Id "public" (srclocOf $1) } -- Objective-C+ | 'property' { Id "property" (srclocOf $1) } -- Objective-C+ | 'protected' { Id "protected" (srclocOf $1) } -- Objective-C+ | 'package' { Id "package" (srclocOf $1) } -- Objective-C+ | 'protocol' { Id "protocol" (srclocOf $1) } -- Objective-C+ | 'required' { Id "required" (srclocOf $1) } -- Objective-C+ | 'selector' { Id "selector" (srclocOf $1) } -- Objective-C+ | 'synchronized' { Id "synchronized" (srclocOf $1) } -- Objective-C+ | 'synthesize' { Id "synthesize" (srclocOf $1) } -- Objective-C+ | 'throw' { Id "throw" (srclocOf $1) } -- Objective-C+ | 'try' { Id "try" (srclocOf $1) } -- Objective-C+ | 'YES' { Id "YES" (srclocOf $1) } -- Objective-C+ | ANTI_ID { AntiId (getANTI_ID $1) (srclocOf $1) }++identifier_or_typedef :: { Id }+identifier_or_typedef :+ identifier { $1 }+ | NAMED { Id (getNAMED $1) (srclocOf $1) }+ | OBJCNAMED { Id (getOBJCNAMED $1) (srclocOf $1) }++{------------------------------------------------------------------------------+ -+ - Constants+ -+ ------------------------------------------------------------------------------}++constant :: { Const }+constant :+ INT { let (s, sign, n) = getINT $1+ in+ IntConst s sign n (srclocOf $1)+ }+ | LONG { let (s, sign, n) = getLONG $1+ in+ LongIntConst s sign n (srclocOf $1)+ }+ | LONG_LONG { let (s, sign, n) = getLONG_LONG $1+ in+ LongLongIntConst s sign n (srclocOf $1)+ }+ | FLOAT { let (s, n) = getFLOAT $1+ in+ FloatConst s n (srclocOf $1)+ }+ | DOUBLE { let (s, n) = getDOUBLE $1+ in+ DoubleConst s n (srclocOf $1)+ }+ | LONG_DOUBLE { let (s, n) = getLONG_DOUBLE $1+ in+ LongDoubleConst s n (srclocOf $1)+ }+ | CHAR { let (s, c) = getCHAR $1+ in+ CharConst s c (srclocOf $1)+ }+ | ANTI_INT { AntiInt (getANTI_INT $1) (srclocOf $1) }+ | ANTI_UINT { AntiUInt (getANTI_UINT $1) (srclocOf $1) }+ | ANTI_LINT { AntiLInt (getANTI_LINT $1) (srclocOf $1) }+ | ANTI_ULINT { AntiULInt (getANTI_ULINT $1) (srclocOf $1) }+ | ANTI_LLINT { AntiLLInt (getANTI_LLINT $1) (srclocOf $1) }+ | ANTI_ULLINT { AntiULLInt (getANTI_ULLINT $1) (srclocOf $1) }+ | ANTI_FLOAT { AntiFloat (getANTI_FLOAT $1) (srclocOf $1) }+ | ANTI_DOUBLE { AntiDouble (getANTI_DOUBLE $1) (srclocOf $1) }+ | ANTI_LONG_DOUBLE { AntiLongDouble (getANTI_LONG_DOUBLE $1) (srclocOf $1) }+ | ANTI_CHAR { AntiChar (getANTI_CHAR $1) (srclocOf $1) }+ | ANTI_STRING { AntiString (getANTI_STRING $1) (srclocOf $1) }+++{------------------------------------------------------------------------------+ -+ - Expressions+ -+ ------------------------------------------------------------------------------}++primary_expression :: { Exp }+primary_expression :+ identifier+ { Var $1 (srclocOf $1) }+ | constant+ { Const $1 (srclocOf $1) }+ | string_literal+ { let str@(StringConst _raw _s l) = mkStringConst $1+ in+ Const str l+ }+ | '(' expression ')'+ { $2 }+ | '(' expression error+ {% unclosed ($1 <--> $2) "(" }+ | '(' compound_statement ')'+ { let Block items _ = $2+ in+ StmExpr items ($1 `srcspan` $3)+ }+ {- Extension: clang -}+ | block_literal+ { $1 }+ {- Extension: ObjC -}+ | objc_message_expr+ { $1 }+ {- Extension: ObjC -}+ | objc_at_expression+ { $1 }+ | ANTI_EXP+ { AntiExp (getANTI_EXP $1) (srclocOf $1) }++string_literal :: { RevList (L (String, String)) }+string_literal :+ STRING { rsingleton (L (locOf $1) (getSTRING $1)) }+ {- Extension: GCC -}+ | string_literal STRING { rcons (L (locOf $2) (getSTRING $2)) $1 }++-- Clang extension (currently only enabled with Objective-C): block literal expression+--+-- block-literal ->+-- '^' [block-type] attributes_opt compound-statement+--+-- block-type ->+-- '(' parameter-list ')' | specifier-qualifier-list abstract-declarator+--+block_literal :: { Exp }+block_literal :+ '^' attributes_opt compound_statement+ {% do { assertObjCEnabled ($1 <--> $3) "To use blocks, enable Objective-C support"+ ; let Block items _ = $3+ ; return $ BlockLit (BlockVoid (srclocOf $1)) $2 items ($1 `srcspan` $3)+ }+ }+ | '^' '(' parameter_list ')' attributes_opt compound_statement+ {% do { assertObjCEnabled ($1 <--> $6) "To use blocks, enable Objective-C support"+ ; let Block items _ = $6+ ; return $ BlockLit (BlockParam (rev $3) ($2 `srcspan` $4)) $5 items ($1 `srcspan` $6)+ }+ }+ | '^' specifier_qualifier_list abstract_declarator attributes_opt compound_statement+ {% do { assertObjCEnabled ($1 <--> $5) "To use blocks, enable Objective-C support"+ ; let { decl = $3 (declRoot $2)+ ; Block items _ = $5+ }+ ; dspec <- mkDeclSpec $2+ ; let typeLoc = dspec `srcspan` decl+ ; return $ BlockLit (BlockType (Type dspec decl typeLoc) typeLoc) $4 items ($1 `srcspan` $5)+ }+ }++-- Objective-C extension: message expression+--+-- objc-message-expr ->+-- '[' objc-receiver +-- ( objc-selector +-- | ([objc-selector] ':' assignment-expression)+ (',' assignment-expression)*+-- )+-- ']'+--+-- objc-receiver -> 'super' | expression | class-name | type-name+--+-- objc-selector is an identifier whose lexeme may also be that of the following keywords and type names:+-- asm auto bool break case char const continue default do double else enum+-- extern false float for goto if inline int long register restrict return+-- short signed sizeof static struct switch true try typedef type name+-- typeof union unsigned void volatile wchar_t while _Bool _Complex+-- _Imaginary __alignof+--+objc_message_expr :: { Exp }+objc_message_expr :+ '[' objc_receiver objc_message_args ']'+ {% do { assertObjCEnabled ($1 <--> $4) "To use a message expression, enable Objective-C support"+ ; let (args, vargs) = $3+ ; return $ ObjCMsg $2 args vargs ($1 `srcspan` $4) + }+ }++objc_receiver :: { ObjCRecv }+objc_receiver :+ NAMED+ { ObjCRecvTypeName (Id (getNAMED $1) (srclocOf $1)) (srclocOf $1) }+ | OBJCNAMED+ { ObjCRecvClassName (Id (getOBJCNAMED $1) (srclocOf $1)) (srclocOf $1) }+ | expression+ { case $1 of + Var (Id "super" _) loc -> ObjCRecvSuper loc+ _ -> ObjCRecvExp $1 (srclocOf $1) }++objc_message_args :: { ([ObjCArg], [Exp]) }+objc_message_args :+ objc_selector+ { ([ObjCArg (Just $1) Nothing (srclocOf $1)], []) }+ | objc_keywordarg_list objc_vararg_list+ { (rev $1, rev $2) }++objc_keywordarg_list :: { RevList ObjCArg } -- will be non-empty+objc_keywordarg_list :+ objc_keywordarg+ { rsingleton $1 }+ | objc_keywordarg_list objc_keywordarg+ { $2 `rcons` $1 }++objc_keywordarg :: { ObjCArg }+objc_keywordarg :+ ':' assignment_expression+ { ObjCArg Nothing (Just $2) ($1 `srcspan` $2) }+ | objc_selector ':' assignment_expression+ { ObjCArg (Just $1) (Just $3) ($1 `srcspan` $3) }++objc_selector :: { Id }+objc_selector :+ identifier_or_typedef { $1 }+-- | 'asm' { Id "asm" (srclocOf $1) }+ | 'auto' { Id "auto" (srclocOf $1) }+-- | 'bool' { Id "bool" (srclocOf $1) }+ | 'break' { Id "break" (srclocOf $1) }+ | 'case' { Id "case" (srclocOf $1) }+ | 'char' { Id "char" (srclocOf $1) }+ | 'const' { Id "const" (srclocOf $1) }+ | 'continue' { Id "continue" (srclocOf $1) }+ | 'default' { Id "default" (srclocOf $1) }+ | 'do' { Id "do" (srclocOf $1) }+ | 'double' { Id "double" (srclocOf $1) }+ | 'else' { Id "else" (srclocOf $1) }+ | 'enum' { Id "enum" (srclocOf $1) }+ | 'extern' { Id "extern" (srclocOf $1) }+-- | 'false' { Id "false" (srclocOf $1) }+ | 'float' { Id "float" (srclocOf $1) }+ | 'for' { Id "for" (srclocOf $1) }+ | 'goto' { Id "goto" (srclocOf $1) }+ | 'if' { Id "if" (srclocOf $1) }+ | 'inline' { Id "inline" (srclocOf $1) }+ | 'int' { Id "int" (srclocOf $1) }+ | 'long' { Id "long" (srclocOf $1) }+ | 'register' { Id "register" (srclocOf $1) }+ | 'restrict' { Id "restrict" (srclocOf $1) }+ | 'return' { Id "return" (srclocOf $1) }+ | 'short' { Id "short" (srclocOf $1) }+ | 'signed' { Id "signed" (srclocOf $1) }+ | 'sizeof' { Id "sizeof" (srclocOf $1) }+ | 'static' { Id "static" (srclocOf $1) }+ | 'struct' { Id "struct" (srclocOf $1) }+ | 'switch' { Id "switch" (srclocOf $1) }+-- | 'true' { Id "true" (srclocOf $1) }+-- | 'try' { Id "try" (srclocOf $1) }+ | 'typedef' { Id "typedef" (srclocOf $1) }+ | 'typename' { Id "typename" (srclocOf $1) }+-- | 'typeof' { Id "typeof" (srclocOf $1) }+ | 'union' { Id "union" (srclocOf $1) }+ | 'unsigned' { Id "unsigned" (srclocOf $1) }+ | 'void' { Id "void" (srclocOf $1) }+ | 'volatile' { Id "volatile" (srclocOf $1) }+-- | 'wchar_t' { Id "wchar_t" (srclocOf $1) }+ | 'while' { Id "while" (srclocOf $1) }+-- | '_Bool' { Id "_Bool" (srclocOf $1) }+-- | '_Complex' { Id "_Complex" (srclocOf $1) }+-- | '_Imaginary' { Id "_Imaginary" (srclocOf $1) }+ | '__block' { Id "__block" (srclocOf $1) }+ | '__weak' { Id "__weak" (srclocOf $1) }+ | '__strong' { Id "__strong" (srclocOf $1) }+ | '__unsafe_retained' { Id "__unsafe_retained" (srclocOf $1) }+-- | '__alignof' { Id "__alignof" (srclocOf $1) }++objc_vararg_list :: { RevList Exp } -- might be empty+objc_vararg_list :+ -- epsilon+ { rnil }+ | objc_vararg_list ',' assignment_expression+ { $3 `rcons` $1 }++-- Objective-C extension: at expression+--+-- objc-at-expression ->+-- '@' ['+' | '-'] constant+-- | '@' string-literal+-- | '@' ('YES' | 'NO')+-- | '@' '[' [assignment-expression (',' assignment-expression)* [',']] ']'+-- | '@' '{' [objc-key-value (',' objc-key-value)* [',']] '}'+-- | '@' '(' assignment-expression ')'+-- | '@' 'encode' '(' type-name ')'+-- | '@' 'protocol' '(' identifier ')'+-- | '@' 'selector' '(' ( objc-selector | ([objc-selector] ':')+ ')'+--+-- objc-key-value ->+-- assignment-expression ':' assignment-expression+--+-- NB: We need to make 'NO' and 'YES' into special tokens. If we match on "'@' identifier" instead,+-- we get lots of shift-reduce conflicts as other special tokens that may appear behind a '@'+-- can also reduce to "identifier".+--+objc_at_expression :: { Exp }+objc_at_expression :+ '@' constant+ { ObjCLitConst Nothing $2 ($1 `srcspan` $2) }+ | '@' '+' constant+ { ObjCLitConst (Just Positive) $3 ($1 `srcspan` $3) }+ | '@' '-' constant+ { ObjCLitConst (Just Negate) $3 ($1 `srcspan` $3) }+ | objc_string_literal_list+ { let lits = rev $1 in ObjCLitString lits (head lits `srcspan` last lits) }+ | '@' 'NO'+ { ObjCLitBool False ($1 `srcspan` $2) }+ | '@' 'YES'+ { ObjCLitBool True ($1 `srcspan` $2) }+ | '@' '[' ']'+ { ObjCLitArray [] ($1 `srcspan` $3) }+ | '@' '[' assignment_expression_list ']'+ { ObjCLitArray (rev $3) ($1 `srcspan` $4) }+ | '@' '[' assignment_expression_list ',' ']'+ { ObjCLitArray (rev $3) ($1 `srcspan` $5) }+ | '@' '{' '}'+ { ObjCLitDict [] ($1 `srcspan` $3) }+ | '@' '{' objc_key_value_list '}'+ { ObjCLitDict (rev $3) ($1 `srcspan` $4) }+ | '@' '{' objc_key_value_list ',' '}'+ { ObjCLitDict (rev $3) ($1 `srcspan` $5) }+ | '@' '(' expression ')'+ { ObjCLitBoxed $3 ($1 `srcspan` $4) }+ | '@' 'encode' '(' type_name ')'+ { ObjCEncode $4 ($1 `srcspan` $5) }+ | '@' 'protocol' '(' identifier ')'+ { ObjCProtocol $4 ($1 `srcspan` $5) }+ | '@' 'selector' '(' objc_selector ')'+ { let Id str _ = $4+ in+ ObjCSelector str ($1 `srcspan` $5) }+ | '@' 'selector' '(' objc_selector_list ')'+ { let str = concat [s ++ ":" | Id s _ <- rev $4]+ in+ ObjCSelector str ($1 `srcspan` $5) }++assignment_expression_list :: { RevList Exp }+assignment_expression_list :+ assignment_expression+ { rsingleton $1 }+ | assignment_expression_list ',' assignment_expression+ { rcons $3 $1 }++objc_key_value_list :: { RevList (Exp, Exp) }+objc_key_value_list :+ assignment_expression ':' assignment_expression+ { rsingleton ($1, $3) }+ | objc_key_value_list ',' assignment_expression ':' assignment_expression+ { rcons ($3, $5) $1 }++objc_string_literal_list :: { RevList Const }+objc_string_literal_list :+ '@' string_literal+ { rsingleton (mkStringConst $2) }+ | objc_string_literal_list '@' string_literal+ { rcons (mkStringConst $3) $1 }++objc_selector_list :: { RevList Id }+objc_selector_list :+ ':'+ { rsingleton (Id "" (srclocOf $1)) }+ | objc_selector ':'+ { rsingleton $1 }+ | objc_selector_list ':'+ { rcons (Id "" (srclocOf $2)) $1 }+ | objc_selector_list objc_selector ':'+ { rcons $2 $1 }++postfix_expression :: { Exp }+postfix_expression :+ primary_expression+ { $1 }+ | postfix_expression '[' error+ {% unclosed (locOf $1) "[" }+ | postfix_expression '[' expression ']'+ { Index $1 $3 ($1 `srcspan` $4) }++ | postfix_expression '(' error+ {% unclosed (locOf $2) "(" }+ | postfix_expression '(' ')'+ { FnCall $1 [] ($1 `srcspan` $3) }+ | postfix_expression '(' argument_expression_list error+ {% unclosed ($2 <--> rev $3) "(" }+ | postfix_expression '(' argument_expression_list ')'+ { FnCall $1 (rev $3) ($1 `srcspan` $4) }++ | postfix_expression '<<<' execution_configuration error+ {% unclosed ($2 <--> $3) "<<<" }+ | postfix_expression '<<<' execution_configuration '>>>' '(' ')'+ { CudaCall $1 $3 [] ($1 `srcspan` $6) }+ | postfix_expression '<<<' execution_configuration '>>>'+ '(' argument_expression_list error+ {% unclosed ($5 <--> rev $6) "(" }+ | postfix_expression '<<<' execution_configuration '>>>'+ '(' argument_expression_list ')'+ { CudaCall $1 $3 (rev $6) ($1 `srcspan` $7) }++ | postfix_expression '.' identifier_or_typedef+ { Member $1 $3 ($1 `srcspan` $3) }+ | postfix_expression '->' identifier_or_typedef+ { PtrMember $1 $3 ($1 `srcspan` $3) }+ | postfix_expression '++'+ { PostInc $1 ($1 `srcspan` $2) }+ | postfix_expression '--'+ { PostDec $1 ($1 `srcspan` $2) }+ | '(' type_name ')' '{' initializer_list '}'+ { CompoundLit ($2 :: Type) (rev $5) ($1 `srcspan` $6) }+ | '(' type_name ')' '{' initializer_list ',' '}'+ { CompoundLit $2 (rev $5) ($1 `srcspan` $7) }+ {- Extension: GCC -}+ | '__builtin_va_arg' '(' assignment_expression ',' type_declaration ')'+ { BuiltinVaArg $3 $5 ($1 `srcspan` $6) }++{- Extension: CUDA -}+execution_configuration :: { ExeConfig }+execution_configuration :+ argument_expression_list+ {%do { let args = rev $1+ ; 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] ->+ ExeConfig gridDim blockDim+ Nothing Nothing+ (srclocOf args)+ [gridDim, blockDim, sharedSize] ->+ ExeConfig gridDim blockDim+ (Just sharedSize) Nothing+ (srclocOf args)+ [gridDim, blockDim, sharedSize, exeStream] ->+ ExeConfig gridDim blockDim+ (Just sharedSize) (Just exeStream)+ (srclocOf args)+ }+ }++argument_expression_list :: { RevList Exp }+argument_expression_list :+ assignment_expression+ { rsingleton $1 }+ | ANTI_ARGS+ { rsingleton (AntiArgs (getANTI_ARGS $1) (srclocOf $1)) }+ | argument_expression_list ',' assignment_expression+ { rcons $3 $1}+ | argument_expression_list ',' ANTI_ARGS+ { rcons (AntiArgs (getANTI_ARGS $3) (srclocOf $3)) $1 }++unary_expression :: { Exp }+unary_expression :+ postfix_expression { $1 }+ | '++' unary_expression { PreInc $2 ($1 `srcspan` $2) }+ | '--' unary_expression { PreDec $2 ($1 `srcspan` $2) }+ | '&' cast_expression { UnOp AddrOf $2 ($1 `srcspan` $2) }+ | '*' cast_expression { UnOp Deref $2 ($1 `srcspan` $2) }+ | '+' cast_expression { UnOp Positive $2 ($1 `srcspan` $2) }+ | '-' cast_expression { UnOp Negate $2 ($1 `srcspan` $2) }+ | '~' cast_expression { UnOp Not $2 ($1 `srcspan` $2) }+ | '!' cast_expression { UnOp Lnot $2 ($1 `srcspan` $2) }+ | 'sizeof' unary_expression { SizeofExp $2 ($1 `srcspan` $2) }+ | 'sizeof' '(' type_name ')' { SizeofType $3 ($1 `srcspan` $4) }+ | 'sizeof' '(' type_name error {% unclosed ($2 <--> $3) "(" }++cast_expression :: { Exp }+cast_expression :+ unary_expression { $1 }+ | '(' type_name ')' cast_expression { Cast $2 $4 ($1 `srcspan` $4) }+ | '(' type_name error {% unclosed ($1 <--> $2) "(" }++multiplicative_expression :: { Exp }+multiplicative_expression :+ cast_expression+ { $1 }+ | multiplicative_expression '*' cast_expression+ { BinOp Mul $1 $3 ($1 `srcspan` $3) }+ | multiplicative_expression '/' cast_expression+ { BinOp Div $1 $3 ($1 `srcspan` $3) }+ | multiplicative_expression '%' cast_expression+ { BinOp Mod $1 $3 ($1 `srcspan` $3) }++additive_expression :: { Exp }+additive_expression :+ multiplicative_expression+ { $1 }+ | additive_expression '+' multiplicative_expression+ { BinOp Add $1 $3 ($1 `srcspan` $3) }+ | additive_expression '-' multiplicative_expression+ { BinOp Sub $1 $3 ($1 `srcspan` $3) }++shift_expression :: { Exp }+shift_expression :+ additive_expression+ { $1 }+ | shift_expression '<<' additive_expression+ { BinOp Lsh $1 $3 ($1 `srcspan` $3) }+ | shift_expression '>>' additive_expression+ { BinOp Rsh $1 $3 ($1 `srcspan` $3) }++relational_expression :: { Exp }+relational_expression :+ shift_expression+ { $1 }+ | relational_expression '<' shift_expression+ { BinOp Lt $1 $3 ($1 `srcspan` $3) }+ | relational_expression '>' shift_expression+ { BinOp Gt $1 $3 ($1 `srcspan` $3) }+ | relational_expression '<=' shift_expression+ { BinOp Le $1 $3 ($1 `srcspan` $3) }+ | relational_expression '>=' shift_expression+ { BinOp Ge $1 $3 ($1 `srcspan` $3) }++equality_expression :: { Exp }+equality_expression :+ relational_expression+ { $1 }+ | equality_expression '==' relational_expression+ { BinOp Eq $1 $3 ($1 `srcspan` $3) }+ | equality_expression '!=' relational_expression+ { BinOp Ne $1 $3 ($1 `srcspan` $3) }++and_expression :: { Exp }+and_expression :+ equality_expression+ { $1 }+ | and_expression '&' equality_expression+ { BinOp And $1 $3 ($1 `srcspan` $3) }++exclusive_or_expression :: { Exp }+exclusive_or_expression :+ and_expression+ { $1 }+ | exclusive_or_expression '^' and_expression+ { BinOp Xor $1 $3 ($1 `srcspan` $3) }++inclusive_or_expression :: { Exp }+inclusive_or_expression :+ exclusive_or_expression+ { $1 }+ | inclusive_or_expression '|' exclusive_or_expression+ { BinOp Or $1 $3 ($1 `srcspan` $3) }++logical_and_expression :: { Exp }+logical_and_expression :+ inclusive_or_expression+ { $1 }+ | logical_and_expression '&&' inclusive_or_expression+ { BinOp Land $1 $3 ($1 `srcspan` $3) }++logical_or_expression :: { Exp }+logical_or_expression :+ logical_and_expression+ { $1 }+ | logical_or_expression '||' logical_and_expression+ { BinOp Lor $1 $3 ($1 `srcspan` $3) }++conditional_expression :: { Exp }+conditional_expression :+ logical_or_expression+ { $1 }+ | logical_or_expression '?' expression ':' conditional_expression+ { Cond $1 $3 $5 ($1 `srcspan` $5) }++assignment_expression :: { Exp }+assignment_expression :+ conditional_expression+ { $1 }+ | unary_expression '=' assignment_expression+ { Assign $1 JustAssign $3 ($1 `srcspan` $3) }+ | unary_expression '*=' assignment_expression+ { Assign $1 MulAssign $3 ($1 `srcspan` $3) }+ | unary_expression '/=' assignment_expression+ { Assign $1 DivAssign $3 ($1 `srcspan` $3) }+ | unary_expression '%=' assignment_expression+ { Assign $1 ModAssign $3 ($1 `srcspan` $3) }+ | unary_expression '+=' assignment_expression+ { Assign $1 AddAssign $3 ($1 `srcspan` $3) }+ | unary_expression '-=' assignment_expression+ { Assign $1 SubAssign $3 ($1 `srcspan` $3) }+ | unary_expression '<<=' assignment_expression+ { Assign $1 LshAssign $3 ($1 `srcspan` $3) }+ | unary_expression '>>=' assignment_expression+ { Assign $1 RshAssign $3 ($1 `srcspan` $3) }+ | unary_expression '&=' assignment_expression+ { Assign $1 AndAssign $3 ($1 `srcspan` $3) }+ | unary_expression '^=' assignment_expression+ { Assign $1 XorAssign $3 ($1 `srcspan` $3) }+ | unary_expression '|=' assignment_expression+ { Assign $1 OrAssign $3 ($1 `srcspan` $3) }++expression :: { Exp }+expression :+ assignment_expression { $1 }+ | expression ',' assignment_expression { Seq $1 $3 ($1 `srcspan` $3) }++maybe_expression :: { Maybe Exp }+maybe_expression:+ {- empty -} { Nothing }+ | expression { Just $1 }++constant_expression :: { Exp }+constant_expression :+ conditional_expression { $1 }++{------------------------------------------------------------------------------+ -+ - Declarations+ -+ ------------------------------------------------------------------------------}++{-+-- XXX: This is an awful hack to get around problems with the interaction+-- between lexer feedback and the one-token lookahead that happy does. If we+-- encounter a typedef and the next token is the newly typedef'd type, we get an+-- error if we include the terminal semicolon directly in the productions for+-- declaration. By splitting the semicolon out, the lookahead token is+-- guaranteed not to be a typedef use :)+-}++declaration :: { InitGroup }+declaration :+ declaration_ ';' { $1 }++declaration_ :: { InitGroup }+declaration_ :+ declaration_specifiers+ {% do{ let (dspec, decl) = $1+ ; checkInitGroup dspec decl [] []+ }+ }+ | declaration_specifiers attributes+ {% do{ let (dspec, decl) = $1+ ; checkInitGroup dspec decl $2 []+ }+ }+ | declaration_specifiers init_declarator_list+ {% do{ let (dspec, decl) = $1+ ; let inits = rev $2+ ; checkInitGroup dspec decl [] (rev $2)+ }+ }+ | declaration_specifiers attributes init_declarator_list+ {% do{ let (dspec, decl) = $1+ ; checkInitGroup dspec decl $2 (rev $3)+ }+ }+ | declaration_specifiers error+ {% do{ let (_, decl) = $1+ ; expected ["';'"] (Just "declaration")+ }+ }+ | ANTI_DECL+ { AntiDecl (getANTI_DECL $1) (srclocOf $1) }++declaration_specifiers :: { (DeclSpec, Decl) }+declaration_specifiers :+ ANTI_TYPE+ { let { v = getANTI_TYPE $1+ ; l = srclocOf $1+ }+ in+ (AntiTypeDeclSpec [] [] v l, AntiTypeDecl v l)+ }+ | storage_qualifier_specifiers ANTI_TYPE+ { let { storage = mkStorage $1+ ; typeQuals = mkTypeQuals $1+ ; v = getANTI_TYPE $2+ ; l = $1 `srcspan` $2+ }+ in+ (AntiTypeDeclSpec storage typeQuals v l, AntiTypeDecl v l)+ }+ | nontypedef_declaration_specifiers+ { $1 }+ | typedef_declaration_specifiers+ { $1 }++nontypedef_declaration_specifiers :: { (DeclSpec, Decl) }+nontypedef_declaration_specifiers :+ ANTI_SPEC+ { let dspec = AntiDeclSpec (getANTI_SPEC $1) (srclocOf $1)+ in+ (dspec, DeclRoot (srclocOf $1))+ }+ | storage_qualifier_specifiers %prec NAMED+ {% do{ dspec <- mkDeclSpec $1+ ; return (dspec, DeclRoot (srclocOf $1))+ }+ }+ | type_specifier+ {% do{ dspec <- mkDeclSpec [$1]+ ; return (dspec, DeclRoot (srclocOf $1) )+ }+ }+ | type_specifier declaration_specifiers_+ {% do{ dspec <- mkDeclSpec ($1 : $2)+ ; return (dspec, DeclRoot ($1 `srcspan` $2))+ }+ }+ | storage_qualifier_specifiers type_specifier+ {% do{ dspec <- mkDeclSpec ($1 ++ [$2])+ ; return $(dspec, DeclRoot ($1 `srcspan` $2))+ }+ }+ | storage_qualifier_specifiers type_specifier declaration_specifiers_+ {% do{ dspec <- mkDeclSpec ($1 ++ $2 : $3)+ ; return (dspec, DeclRoot ($1 `srcspan` $3))+ }+ }++typedef_declaration_specifiers :: { (DeclSpec, Decl) }+typedef_declaration_specifiers :+ typedef_name+ {% do{ dspec <- mkDeclSpec [$1]+ ; return (dspec, DeclRoot (srclocOf $1))+ }+ }+ | typedef_name storage_qualifier_specifiers+ {% do{ dspec <- mkDeclSpec ($1 : $2)+ ; return (dspec, DeclRoot ($1 `srcspan` $2))+ }+ }+ | storage_qualifier_specifiers typedef_name+ {% do{ dspec <- mkDeclSpec ($1 ++ [$2])+ ; return (dspec, DeclRoot ($1 `srcspan` $2))+ }+ }+ | storage_qualifier_specifiers typedef_name storage_qualifier_specifiers+ {% do{ dspec <- mkDeclSpec ($1 ++ $2 : $3)+ ; return (dspec, DeclRoot ($1 `srcspan` $3))+ }+ }++declaration_specifiers_ :: { [TySpec] }+declaration_specifiers_ :+ storage_class_specifier %prec NAMED { [$1] }+ | storage_class_specifier declaration_specifiers_ { $1 : $2 }+ | type_specifier %prec NAMED { [$1] }+ | type_specifier declaration_specifiers_ { $1 : $2 }+ | type_qualifier %prec NAMED { [$1] }+ | type_qualifier declaration_specifiers_ { $1 : $2 }++-- | This production allows us to add storage class specifiers and type+-- qualifiers to an anti-quoted type.++storage_qualifier_specifiers :: { [TySpec] }+storage_qualifier_specifiers :+ storage_class_specifier %prec NAMED { [$1]}+ | storage_class_specifier storage_qualifier_specifiers { $1 : $2 }+ | type_qualifier %prec NAMED { [$1] }+ | type_qualifier storage_qualifier_specifiers { $1 : $2 }++init_declarator_list :: { RevList Init }+init_declarator_list :+ init_declarator { rsingleton $1 }+ | init_declarator_list ',' init_declarator { rcons $3 $1 }++maybe_asmlabel :: { Maybe AsmLabel }+maybe_asmlabel :+ {- empty -} { Nothing }+ | '__asm__' '(' STRING ')' { Just ((fst . getSTRING) $3) }++init_declarator :: { Init }+init_declarator :+ declarator maybe_asmlabel+ { let { (ident, declToDecl) = $1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Init ident decl $2 Nothing [] (ident `srcspan` decl)+ }+ | declarator attributes maybe_asmlabel+ { let { (ident, declToDecl) = $1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Init ident decl $3 Nothing $2 (ident `srcspan` decl)+ }+ | declarator maybe_asmlabel '=' initializer+ { let { (ident, declToDecl) = $1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Init ident decl $2 (Just $4) [] (ident `srcspan` $4)+ }+ | declarator attributes maybe_asmlabel '=' initializer+ { let { (ident, declToDecl) = $1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Init ident decl $3 (Just $5) $2 (ident `srcspan` $5)+ }+ | declarator error+ {% do{ let (ident, declToDecl) = $1+ ; let decl = declToDecl (declRoot ident)+ ; expected ["'='"] Nothing+ }+ }++storage_class_specifier :: { TySpec }+storage_class_specifier :+ 'auto' { TSauto (srclocOf $1) }+ | 'register' { TSregister (srclocOf $1) }+ | 'static' { TSstatic (srclocOf $1) }+ | 'extern' { TSextern (srclocOf $1) }+ | 'extern' STRING { TSexternL ((snd . getSTRING) $2) (srclocOf $1) }+ | '__block' { TS__block (srclocOf $1) }+ | '__weak' { TSObjC__weak (srclocOf $1) }+ | '__strong' { TSObjC__strong (srclocOf $1) }+ | '__unsafe_retained' { TSObjC__unsafe_retained (srclocOf $1) }+ | 'typedef' { TStypedef (srclocOf $1) }++type_specifier :: { TySpec }+type_specifier :+ 'void' { TSvoid (srclocOf $1) }+ | 'char' { TSchar (srclocOf $1) }+ | 'short' { TSshort (srclocOf $1) }+ | 'int' { TSint (srclocOf $1) }+ | 'long' { TSlong (srclocOf $1) }+ | 'float' { TSfloat (srclocOf $1) }+ | 'double' { TSdouble (srclocOf $1) }+ | 'signed' { TSsigned (srclocOf $1) }+ | 'unsigned' { TSunsigned (srclocOf $1) }+ | struct_or_union_specifier { $1 }+ | enum_specifier { $1 }++ {- Extension: GCC -}+ | '__builtin_va_list' { TSva_list (srclocOf $1) }++struct_or_union_specifier :: { TySpec }+struct_or_union_specifier :+ struct_or_union identifier_or_typedef+ { (unLoc $1) (Just $2) Nothing [] ($1 `srcspan` $2) }+ | struct_or_union attributes identifier_or_typedef+ { (unLoc $1) (Just $3) Nothing $2 ($1 `srcspan` $3) }+ | struct_or_union '{' struct_declaration_list '}'+ { (unLoc $1) Nothing (Just (rev $3)) [] ($1 `srcspan` $4) }+ | struct_or_union '{' struct_declaration_list error+ {% unclosed ($1 <--> rev $3) "{" }+ | struct_or_union identifier_or_typedef '{' struct_declaration_list '}'+ { (unLoc $1) (Just $2) (Just (rev $4)) [] ($1 `srcspan` $5) }+ | struct_or_union identifier_or_typedef '{' struct_declaration_list error+ {% unclosed ($1 <--> rev $4) "{" }+ | struct_or_union attributes identifier_or_typedef '{' struct_declaration_list '}'+ { (unLoc $1) (Just $3) (Just (rev $5)) $2 ($1 `srcspan` $6) }+ | struct_or_union attributes '{' struct_declaration_list '}'+ { (unLoc $1) Nothing (Just (rev $4)) $2 ($1 `srcspan` $5) }+ | struct_or_union attributes identifier_or_typedef '{' struct_declaration_list error+ {% unclosed ($1 <--> rev $5) "{" }++struct_or_union :: { L (Maybe Id -> Maybe [FieldGroup] -> [Attr] -> SrcLoc -> TySpec) }+struct_or_union :+ 'struct' { L (locOf $1) TSstruct }+ | 'union' { L (locOf $1) TSunion }++struct_declaration_list :: { RevList FieldGroup }+struct_declaration_list :+ struct_declaration+ { rsingleton $1 }+ | ANTI_SDECLS+ { rsingleton (AntiSdecls (getANTI_SDECLS $1) (srclocOf $1)) }+ | struct_declaration_list struct_declaration+ { rcons $2 $1 }+ | struct_declaration_list ANTI_SDECLS+ { rcons (AntiSdecls (getANTI_SDECLS $2) (srclocOf $2)) $1 }++struct_declaration :: { FieldGroup }+struct_declaration :+ ANTI_SPEC struct_declarator_list ';'+ { let dspec = AntiDeclSpec (getANTI_SPEC $1) (srclocOf $1)+ in+ FieldGroup dspec (rev $2) ($1 `srcspan` $3)+ }+ | specifier_qualifier_list struct_declarator_list ';'+ {% do{ dspec <- mkDeclSpec $1+ ; return $ FieldGroup dspec (rev $2) ($1 `srcspan` $3)+ }+ }+ | ANTI_TYPE identifier_or_typedef ';'+ {% do{ let v = getANTI_TYPE $1+ ; let dspec = AntiTypeDeclSpec [] [] v (srclocOf $1)+ ; let decl = AntiTypeDecl v (srclocOf $1)+ ; let field = Field (Just $2) (Just decl) Nothing ($1 `srcspan` $2)+ ; return $ FieldGroup dspec [field] ($1 `srcspan` $3)+ }+ }+ | ANTI_SDECL+ { AntiSdecl (getANTI_SDECL $1) (srclocOf $1) }++specifier_qualifier_list :: { [TySpec] }+specifier_qualifier_list :+ type_specifier specifier_qualifier_list_+ { $1 : $2 }+ | type_qualifier_list type_specifier specifier_qualifier_list_+ { rev $1 ++ [$2] ++ $3 }+ | typedef_name+ { [$1] }+ | typedef_name type_qualifier_list+ { $1 : rev $2 }+ | type_qualifier_list typedef_name+ { rev $1 ++ [$2] }+ | type_qualifier_list typedef_name type_qualifier_list+ { rev $1 ++ [$2] ++ rev $3 }++specifier_qualifier_list_ :: { [TySpec] }+specifier_qualifier_list_ :+ {- empty -} %prec NAMED { [] }+ | type_specifier %prec NAMED { [$1] }+ | type_specifier specifier_qualifier_list { $1 : $2 }+ | type_qualifier %prec NAMED { [$1] }+ | type_qualifier specifier_qualifier_list { $1 : $2 }++struct_declarator_list :: { RevList Field }+struct_declarator_list :+ struct_declarator { rsingleton $1 }+ | struct_declarator_list ',' struct_declarator { rcons $3 $1 }++struct_declarator :: { Field }+struct_declarator :+ declarator+ { let { (ident, declToDecl) = $1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Field (Just ident) (Just decl) Nothing (srclocOf decl)+ }+ | declarator attributes+ { let { (ident, declToDecl) = $1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Field (Just ident) (Just decl) Nothing (srclocOf decl)+ }+ | ':' constant_expression+ { Field Nothing Nothing (Just $2) ($1 `srcspan` $2) }+ | declarator ':' constant_expression+ { let { (ident, declToDecl) = $1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Field (Just ident) (Just decl) (Just $3) (srclocOf decl)+ }++enum_specifier :: { TySpec }+enum_specifier :+ 'enum' identifier_or_typedef+ { TSenum (Just $2) [] [] ($1 `srcspan` $2) }+ | 'enum' attributes identifier_or_typedef+ { TSenum (Just $3) [] $2 ($1 `srcspan` $3) }+ | 'enum' '{' enumerator_list '}'+ { TSenum Nothing (rev $3) [] ($1 `srcspan` $4) }+ | 'enum' identifier_or_typedef '{' enumerator_list '}'+ { TSenum (Just $2) (rev $4) [] ($1 `srcspan` $5)}++enumerator_list :: { RevList CEnum }+enumerator_list :+ enumerator+ { rsingleton $1 }+ | ANTI_ENUMS+ { rsingleton (AntiEnums (getANTI_ENUMS $1) (srclocOf $1)) }+ | enumerator_list ','+ { $1 }+ | enumerator_list ',' enumerator+ { rcons $3 $1 }+ | enumerator_list ',' ANTI_ENUMS+ { rcons (AntiEnums (getANTI_ENUMS $3) (srclocOf $3)) $1 }++enumerator :: { CEnum }+enumerator:+ identifier+ { CEnum $1 Nothing (srclocOf $1)}+ | identifier '=' constant_expression+ { CEnum $1 (Just $3) ($1 `srcspan` $3) }+ | ANTI_ENUM+ { AntiEnum (getANTI_ENUM $1) (srclocOf $1) }++type_qualifier :: { TySpec }+type_qualifier :+ 'const' { TSconst (srclocOf $1) }+ | 'inline' { TSinline (srclocOf $1) }+ | 'restrict' { TSrestrict (srclocOf $1) }+ | 'volatile' { TSvolatile (srclocOf $1) }++ {- Extension: CUDA -}+ | '__device__' { TSCUDAdevice (srclocOf $1) }+ | '__global__' { TSCUDAglobal (srclocOf $1) }+ | '__host__' { TSCUDAhost (srclocOf $1) }+ | '__constant__' { TSCUDAconstant (srclocOf $1) }+ | '__shared__' { TSCUDAshared (srclocOf $1) }+ | '__restrict__' { TSCUDArestrict (srclocOf $1) }+ | '__noinline__' { TSCUDAnoinline (srclocOf $1) }++ {- Extension: OpenCL -}+ | 'private' { TSCLprivate (srclocOf $1) }+ | '__private' { TSCLprivate (srclocOf $1) }+ | 'local' { TSCLlocal (srclocOf $1) }+ | '__local' { TSCLlocal (srclocOf $1) }+ | 'global' { TSCLglobal (srclocOf $1) }+ | '__global' { TSCLglobal (srclocOf $1) }+ | 'constant' { TSCLconstant (srclocOf $1) }+ | '__constant' { TSCLconstant (srclocOf $1) }+ | 'read_only' { TSCLreadonly (srclocOf $1) }+ | '__read_only' { TSCLreadonly (srclocOf $1) }+ | 'write_only' { TSCLwriteonly (srclocOf $1) }+ | '__write_only' { TSCLwriteonly (srclocOf $1) }+ | 'kernel' { TSCLkernel (srclocOf $1) }+ | '__kernel' { TSCLkernel (srclocOf $1) }++-- Consider the following C program:+--+-- typedef struct foo {+-- int a;+-- } foo;+--+-- void f(foo* (foo));+--+-- In the grammar in the C99 standard, a parameter declaration can result from+-- either a declarator or an abstract declarator. This produces an ambiguity+-- when a typedef name appears after '(' because we can't tell whether or not it+-- is an item in a parmeter list for a function that is part of an abstract+-- declarator, or if is just a parenthesized (standard) declarator. This+-- ambiguity exists in the definition of f in the above program.+--+-- To solve this ambiguity, we split the the declarator rule to handle the+-- identifier and typedef name cases separately, and, furthermore, copy the+-- typedef name declarator rule and remove the cases that leads to ambiguity+-- when a declarator is used in a parameter list declaration.++identifier_declarator :: { (Id, Decl -> Decl) }+identifier_declarator :+ identifier_direct_declarator+ { $1 }+ | pointer identifier_direct_declarator+ { let (ident, dirDecl) = $2+ in+ (ident, dirDecl . $1)+ }++identifier_direct_declarator :: { (Id, Decl -> Decl) }+identifier_direct_declarator :+ identifier+ { ($1, id) }+ | '(' identifier_declarator ')'+ { $2 }+ | '(' identifier_declarator error+ {%do { let (ident, declToDecl) = $2+ ; let decl = declToDecl (declRoot ident)+ ; unclosed ($1 <--> decl) "("+ }+ }+ | identifier_direct_declarator array_declarator+ { let (ident, declToDecl) = $1+ in+ (ident, declToDecl . $2)+ }+ | identifier_direct_declarator '(' ')'+ { let { (ident, declToDecl) = $1+ ; proto = mkOldProto []+ }+ in+ (ident, declToDecl . proto)+ }+ | identifier_direct_declarator '(' parameter_type_list ')'+ { let { (ident, declToDecl) = $1+ ; proto = mkProto $3+ }+ in+ (ident, declToDecl . proto)+ }+ | identifier_direct_declarator '(' identifier_list ')'+ { let { (ident, declToDecl) = $1+ ; proto = mkOldProto (rev $3)+ }+ in+ (ident, declToDecl . proto)+ }++typedef_declarator :: { (Id, Decl -> Decl) }+typedef_declarator :+ typedef_direct_declarator+ { $1 }+ | pointer typedef_direct_declarator+ { let (ident, dirDecl) = $2+ in+ (ident, dirDecl . $1)+ }++typedef_direct_declarator :: { (Id, Decl -> Decl) }+typedef_direct_declarator :+ NAMED+ { (Id (getNAMED $1) (srclocOf $1), id) }+ | OBJCNAMED+ { (Id (getOBJCNAMED $1) (srclocOf $1), id) }+ | '(' typedef_declarator ')'+ { $2 }+ | '(' typedef_declarator error+ {%do { let (ident, declToDecl) = $2+ ; let decl = declToDecl (declRoot ident)+ ; unclosed ($1 <--> decl) "("+ }+ }+ | typedef_direct_declarator array_declarator+ { let (ident, declToDecl) = $1+ in+ (ident, declToDecl . $2)+ }+ | typedef_direct_declarator '(' ')'+ { let { (ident, declToDecl) = $1+ ; proto = mkOldProto []+ }+ in+ (ident, declToDecl . proto)+ }+ | typedef_direct_declarator '(' parameter_type_list ')'+ { let { (ident, declToDecl) = $1+ ; proto = mkProto $3+ }+ in+ (ident, declToDecl . proto)+ }+ | typedef_direct_declarator '(' identifier_list ')'+ { let { (ident, declToDecl) = $1+ ; proto = mkOldProto (rev $3)+ }+ in+ (ident, declToDecl . proto)+ }++declarator :: { (Id, Decl -> Decl) }+declarator :+ identifier_declarator+ { $1 }+ | typedef_declarator+ { $1 }++parameter_typedef_declarator :: { (Id, Decl -> Decl) }+parameter_typedef_declarator :+ parameter_typedef_direct_declarator+ { $1 }+ | pointer parameter_typedef_direct_declarator+ { let (ident, dirDecl) = $2+ in+ (ident, dirDecl . $1)+ }++parameter_typedef_direct_declarator :: { (Id, Decl -> Decl) }+parameter_typedef_direct_declarator :+ NAMED+ { (Id (getNAMED $1) (srclocOf $1), id) }+ | OBJCNAMED+ { (Id (getOBJCNAMED $1) (srclocOf $1), id) }+ | '(' pointer parameter_typedef_direct_declarator ')'+ { let (ident, dirDecl) = $3+ in+ (ident, dirDecl . $2)+ }+ | parameter_typedef_direct_declarator array_declarator+ { let (ident, declToDecl) = $1+ in+ (ident, declToDecl . $2)+ }+ | parameter_typedef_direct_declarator '(' ')'+ { let { (ident, declToDecl) = $1+ ; proto = mkOldProto []+ }+ in+ (ident, declToDecl . proto)+ }+ | parameter_typedef_direct_declarator '(' parameter_type_list ')'+ { let { (ident, declToDecl) = $1+ ; proto = mkProto $3+ }+ in+ (ident, declToDecl . proto)+ }+ | parameter_typedef_direct_declarator '(' identifier_list ')'+ { let { (ident, declToDecl) = $1+ ; proto = mkOldProto (rev $3)+ }+ in+ (ident, declToDecl . proto)+ }++parameter_declarator :: { (Id, Decl -> Decl) }+parameter_declarator :+ identifier_declarator+ { $1 }+ | parameter_typedef_declarator+ { $1 }++array_declarator :: { Decl -> Decl }+array_declarator :+ '[' ']'+ { mkArray [] (NoArraySize ($1 `srcspan` $2)) }+ | '[' error+ {% unclosed (locOf $1) "[" }+ | '[' type_qualifier_list ']'+ { mkArray (rev $2) (NoArraySize ($1 `srcspan` $3)) }+ | '[' assignment_expression ']'+ { mkArray [] (ArraySize False $2 (srclocOf $2)) }+ | '[' type_qualifier_list assignment_expression ']'+ { mkArray (rev $2) (ArraySize False $3 (srclocOf $3)) }+ | '[' 'static' assignment_expression ']'+ { mkArray [] (ArraySize True $3 (srclocOf $3)) }+ | '[' 'static' type_qualifier_list assignment_expression ']'+ { mkArray (rev $3) (ArraySize True $4 (srclocOf $4)) }+ | '[' type_qualifier_list 'static' assignment_expression ']'+ { mkArray (rev $2) (ArraySize True $4 (srclocOf $4)) }+ | '[' '*' ']'+ { mkArray [] (VariableArraySize ($1 `srcspan` $3)) }+ | '[' type_qualifier_list '*' ']'+ { mkArray (rev $2) (VariableArraySize ($1 `srcspan` $4)) }++-- Extension: blocks <http://clang.llvm.org/docs/BlockLanguageSpec.html>+--+-- Any declarator for a function pointer turns into a block declarator by replacing the '*' by a '^'.+-- However, block pointers can only point to function types.+--+-- Currently, we only allow blocks in Objective-C code, but technically, they are a language+-- extension independent of Objective-C.+--+pointer :: { Decl -> Decl }+pointer :+ '*' { mkPtr [] }+ | '*' type_qualifier_list { mkPtr (rev $2) }+ | '*' pointer { $2 . mkPtr [] }+ | '*' type_qualifier_list pointer { $3 . mkPtr (rev $2) }+ | '^' {% mkBlockPtr (locOf $1) [] }+ | '^' type_qualifier_list {% mkBlockPtr (locOf $1) (rev $2) }+ | '^' pointer {% ($2 .) `liftM` mkBlockPtr (locOf $1) [] }+ | '^' type_qualifier_list pointer {% ($3 .) `liftM` mkBlockPtr (locOf $1) (rev $2) }++type_qualifier_list :: { RevList TySpec }+type_qualifier_list :+ type_qualifier { rsingleton $1 }+ | type_qualifier_list type_qualifier { rcons $2 $1 }++parameter_type_list :: { Params }+parameter_type_list :+ parameter_list+ { let params = rev $1+ in+ Params params False (srclocOf params)+ }+ | parameter_list ',' '...'+ { let params = rev $1+ in+ Params params True (params `srcspan` $3)+ }++parameter_list :: { RevList Param }+parameter_list:+ parameter_declaration+ { rsingleton $1 }+ | ANTI_PARAMS+ { rsingleton (AntiParams (getANTI_PARAMS $1) (srclocOf $1)) }+ | parameter_list ',' parameter_declaration+ { rcons $3 $1 }+ | parameter_list ',' ANTI_PARAMS+ { rcons (AntiParams (getANTI_PARAMS $3) (srclocOf $3)) $1 }++parameter_declaration :: { Param }+parameter_declaration:+ declaration_specifiers+ { let (dspec, decl) = $1+ in+ Param Nothing dspec decl (dspec `srcspan` decl)+ }+ | declaration_specifiers parameter_declarator+ { let { (dspec, declRoot) = $1+ ; (ident, declToDecl) = $2+ ; decl = declToDecl declRoot+ }+ in+ Param (Just ident) dspec decl (ident `srcspan` decl)+ }+ | declaration_specifiers abstract_declarator+ { let { (dspec, declRoot) = $1+ ; decl = $2 declRoot+ }+ in+ Param Nothing dspec decl (dspec `srcspan` decl)+ }+ | ANTI_PARAM+ { AntiParam (getANTI_PARAM $1) (srclocOf $1) }++-- The type_declaration rule is the parameter_declaration rule without the+-- ANTI_PARAM option. This allows us to parse type declarations easily for later+-- antiquoting.++type_declaration :: { Type }+type_declaration:+ declaration_specifiers+ { let (dspec, decl) = $1+ in+ Type dspec decl (dspec `srcspan` decl)+ }+ | declaration_specifiers parameter_declarator+ { let { (dspec, declRoot) = $1+ ; (ident, declToDecl) = $2+ ; decl = declToDecl declRoot+ }+ in+ Type dspec decl (dspec `srcspan` decl)+ }+ | declaration_specifiers abstract_declarator+ { let { (dspec, declRoot) = $1+ ; decl = $2 declRoot+ }+ in+ Type dspec decl (dspec `srcspan` decl)+ }++identifier_list :: { RevList Id }+identifier_list :+ identifier { rsingleton $1 }+ | identifier_list ',' identifier { rcons $3 $1 }++type_name :: { Type }+type_name :+ ANTI_SPEC+ { let dspec = AntiDeclSpec (getANTI_SPEC $1) (srclocOf $1)+ in+ Type dspec (declRoot $1) (srclocOf $1)+ }+ | specifier_qualifier_list+ {% do{ dspec <- mkDeclSpec $1+ ; return $ Type dspec (declRoot $1) (srclocOf $1)+ }+ }+ | ANTI_SPEC abstract_declarator+ { let { dspec = AntiDeclSpec (getANTI_SPEC $1) (srclocOf $1)+ ; decl = $2 (declRoot $1)+ }+ in+ Type dspec decl (dspec `srcspan` decl)+ }+ | specifier_qualifier_list abstract_declarator+ {% do{ let decl = $2 (declRoot $1)+ ; dspec <- mkDeclSpec $1+ ; return $ Type dspec decl (dspec `srcspan` decl)+ }+ }+ | ANTI_TYPE+ { AntiType (getANTI_TYPE $1) (srclocOf $1) }+ | ANTI_TYPE abstract_declarator+ { let { v = getANTI_TYPE $1+ ; decl = $2 (AntiTypeDecl v (srclocOf $1))+ }+ in+ Type (AntiTypeDeclSpec [] [] v (srclocOf $1)) decl ($1 `srcspan` decl)+ }++abstract_declarator :: { Decl -> Decl }+abstract_declarator :+ pointer { $1 }+ | direct_abstract_declarator { $1 }+ | pointer direct_abstract_declarator { $2 . $1 }++direct_abstract_declarator :: { Decl -> Decl }+direct_abstract_declarator :+ '(' abstract_declarator ')'+ { $2 }+ | '(' abstract_declarator error+ {% do{ let decl = $2 (declRoot $1)+ ; unclosed ($1 <--> decl) "("+ }+ }+ | array_declarator+ { $1 }+ | direct_abstract_declarator array_declarator+ { $1 . $2 }+ | '(' ')'+ { mkOldProto [] }+ | '(' parameter_type_list ')'+ { mkProto $2 }+ | direct_abstract_declarator '(' ')'+ { $1 . mkOldProto [] }+ | direct_abstract_declarator '(' parameter_type_list ')'+ { $1 . mkProto $3 }++typedef_name :: { TySpec }+typedef_name :+ NAMED+ { TSnamed (Id (getNAMED $1) (srclocOf $1)) [] (srclocOf $1) }+ | NAMED '<' identifier_list '>'+ {% do { assertObjCEnabled ($1 <--> $4) "To use protocol qualifiers, enable support for Objective-C"+ ; return $ TSnamed (Id (getNAMED $1) (srclocOf $1)) (rev $3) ($1 `srcspan` $4) + } }+ | OBJCNAMED+ { TSnamed (Id (getOBJCNAMED $1) (srclocOf $1)) [] (srclocOf $1) }+ | OBJCNAMED '<' identifier_list '>'+ {% do { assertObjCEnabled ($1 <--> $4) "To use protocol qualifiers, enable support for Objective-C"+ ; return $ TSnamed (Id (getOBJCNAMED $1) (srclocOf $1)) (rev $3) ($1 `srcspan` $4) + } }+ | 'typename' identifier+ { TSnamed $2 [] (srclocOf $1) }+ | 'typename' identifier '<' identifier_list '>'+ {% do { assertObjCEnabled ($1 <--> $5) "To use protocol qualifiers, enable support for Objective-C"+ ; return $ TSnamed $2 (rev $4) ($1 `srcspan` $5) + } }+ | 'typename' error+ {% expected ["identifier"] (Just "'typename'")}+ | '__typeof__' '(' unary_expression ')'+ { TStypeofExp $3 ($1 `srcspan` $4) }+ | '__typeof__' '(' type_name ')'+ { TStypeofType $3 ($1 `srcspan` $4) }+ | '__typeof__' '(' type_name error+ {% unclosed ($2 <--> $3) "(" }++initializer :: { Initializer }+initializer :+ assignment_expression+ { ExpInitializer $1 (srclocOf $1) }+ | '{' initializer_list '}'+ { CompoundInitializer (rev $2) ($1 `srcspan` $3) }+ | '{' initializer_list error+ {% do{ let (_, inits) = unzip (rev $2)+ ; unclosed ($1 <--> inits) "{"+ }+ }+ | '{' initializer_list ',' '}'+ { CompoundInitializer (rev $2) ($1 `srcspan` $4) }+ | '{' initializer_list ',' error+ {% unclosed ($1 <--> $3) "{" }+ | ANTI_INIT+ { AntiInit (getANTI_INIT $1) (srclocOf $1) }++initializer_list :: { RevList (Maybe Designation, Initializer) }+initializer_list :+ initializer+ { rsingleton (Nothing, $1) }+ | ANTI_INITS+ { rsingleton (Nothing, AntiInits (getANTI_INITS $1) (srclocOf $1)) }+ | designation initializer+ { rsingleton (Just $1, $2) }+ | initializer_list ',' initializer+ { rcons (Nothing, $3) $1 }+ | initializer_list ',' designation initializer+ { rcons (Just $3, $4) $1 }++designation :: { Designation }+designation :+ designator_list '='+ { let designators = rev $1+ in+ Designation designators (designators `srcspan` $2)+ }++designator_list :: { RevList Designator }+designator_list :+ designator { rsingleton $1 }+ | designator_list designator { rcons $2 $1 }++designator :: { Designator }+designator :+ '[' constant_expression ']'+ { IndexDesignator $2 ($1 `srcspan` $3) }+ | '.' identifier+ { MemberDesignator $2 ($1 `srcspan` $2) }++{------------------------------------------------------------------------------+ -+ - Statements+ -+ ------------------------------------------------------------------------------}++statement :: { Stm }+statement :+ labeled_statement { $1 }+ | compound_statement { $1 }+ | expression_statement { $1 }+ | selection_statement { $1 }+ | iteration_statement { $1 }+ | jump_statement { $1 }+ | asm_statement { $1 }+ | '#pragma' { Pragma (getPRAGMA $1) (srclocOf $1) }+ {- Extension: ObjC -}+ | objc_at_statement { $1 }+ | ANTI_PRAGMA { AntiPragma (getANTI_PRAGMA $1) (srclocOf $1) }+ | ANTI_STM { AntiStm (getANTI_STM $1) (srclocOf $1) }++labeled_statement :: { Stm }+labeled_statement :+ identifier ':' error {% expected ["statement"] (Just "label") }+ | identifier ':' statement { Label $1 $3 ($1 `srcspan` $3) }+ | 'case' constant_expression error {% expected ["`:'"] Nothing }+ | 'case' constant_expression ':' error {% expected ["statement"] Nothing }+ | 'case' constant_expression ':' statement { Case $2 $4 ($1 `srcspan` $4) }+ | 'default' error {% expected ["`:'"] (Just "`default'")}+ | 'default' ':' error {% expected ["statement"] Nothing }+ | 'default' ':' statement { Default $3 ($1 `srcspan` $3) }++compound_statement :: { Stm }+compound_statement:+ '{' begin_scope end_scope '}'+ { Block [] ($1 `srcspan` $4) }+ | '{' begin_scope error+ {% unclosed (locOf $3) "{" }+ | '{' begin_scope block_item_list end_scope '}'+ { Block (rev $3) ($1 `srcspan` $5) }++block_item_list :: { RevList BlockItem }+block_item_list :+ block_item { rsingleton $1 }+ | block_item_list block_item { rcons $2 $1 }++block_item :: { BlockItem }+block_item :+ declaration { BlockDecl $1 }+ | statement { BlockStm $1 }+ | ANTI_DECLS { BlockDecl (AntiDecls (getANTI_DECLS $1) (srclocOf $1)) }+ | ANTI_STMS { BlockStm (AntiStms (getANTI_STMS $1) (srclocOf $1)) }+ | ANTI_ITEM { AntiBlockItem (getANTI_ITEM $1) (srclocOf $1) }+ | ANTI_ITEMS { AntiBlockItems (getANTI_ITEMS $1) (srclocOf $1) }++begin_scope :: { () }+begin_scope : {% pushScope }++end_scope :: { () }+end_scope : {% popScope }++declaration_list :: { RevList InitGroup }+declaration_list :+ declaration+ { rsingleton $1 }+ | ANTI_DECLS+ { rsingleton (AntiDecls (getANTI_DECLS $1) (srclocOf $1)) }+ | declaration_list declaration+ { rcons $2 $1 }+ | declaration_list ANTI_DECLS+ { rcons (AntiDecls (getANTI_DECLS $2) (srclocOf $2)) $1 }++expression_statement :: { Stm }+expression_statement:+ ';' { Exp Nothing (srclocOf $1) }+ | expression ';' { Exp (Just $1) ($1 `srcspan` $2) }+ | expression error {% expected ["';'"] Nothing }++selection_statement :: { Stm }+selection_statement :+ 'if' '(' expression ')' statement+ { If $3 $5 Nothing ($1 `srcspan` $5) }+ | 'if' '(' expression ')' statement 'else' statement+ { If $3 $5 (Just $7) ($1 `srcspan` $7) }+ | 'if' error + {% expected ["("] (Just "`if'") }+ | 'if' '(' expression error+ {% unclosed ($2 <--> $3) "(" }+ | 'switch' '(' expression ')' statement+ { Switch $3 $5 ($1 `srcspan` $5) }+ | 'switch' '(' expression error+ {% unclosed ($2 <--> $3) "(" }++iteration_statement :: { Stm }+iteration_statement :+ 'while' '(' expression ')' statement+ { While $3 $5 ($1 `srcspan` $5) }+ | 'while' '(' expression error+ {% unclosed ($2 <--> $3) "(" }+ | 'do' statement 'while' '(' expression ')' ';'+ { DoWhile $2 $5 ($1 `srcspan` $7) }+ | 'do' statement 'while' '(' expression error+ {% unclosed ($4 <--> $5) "(" }+ | 'for' '(' error+ {% expected ["expression", "declaration"] Nothing }+ | 'for' '(' declaration maybe_expression ';' ')' statement+ { For (Left $3) $4 Nothing $7 ($1 `srcspan` $7) }+ | 'for' '(' maybe_expression ';' maybe_expression ';' ')' statement+ { For (Right $3) $5 Nothing $8 ($1 `srcspan` $8) }+ | 'for' '(' maybe_expression ';' maybe_expression ';' error+ {% unclosed ($2 <--> $6) "(" }+ | 'for' '(' declaration maybe_expression ';' expression ')' statement+ { For (Left $3) $4 (Just $6) $8 ($1 `srcspan` $8) }+ | 'for' '(' maybe_expression ';' maybe_expression ';' expression ')' statement+ { For (Right $3) $5 (Just $7) $9 ($1 `srcspan` $9) }+ | 'for' '(' maybe_expression ';' maybe_expression ';' expression error+ {% unclosed ($2 <--> $7) "(" }++jump_statement :: { Stm }+jump_statement :+ 'goto' identifier ';' { Goto $2 ($1 `srcspan` $3) }+ | 'goto' error {% expected ["identifier"] (Just "`goto'") }+ | 'goto' identifier error {% expected ["';'"] Nothing }+ | 'continue' ';' { Continue ($1 `srcspan` $2) }+ | 'continue' error {% expected ["';'"] (Just "`continue'") }+ | 'break' ';' { Break ($1 `srcspan` $2) }+ | 'break' error {% expected ["';'"] (Just "`break'") }+ | 'return' ';' { Return Nothing ($1 `srcspan` $2) }+ | 'return' error {% expected ["';'", "expression"] Nothing }+ | 'return' expression ';' { Return (Just $2) ($1 `srcspan` $3) }+ | 'return' expression error {% expected ["';'"] Nothing }++-- Objective-C extension: at statement+--+-- objc-at-statement ->+-- '@' 'try' compound-statement objc-catch-statement++-- | '@' 'try' compound-statement objc-catch-statement* '@' 'finally' compound-statement+-- | '@' 'throw' [expression] ';'+-- | '@' 'synchronized' '(' expression ')' compound-statement+-- | '@' 'autoreleasepool' compound-statement+--+-- objc-catch-statement ->+-- '@' 'catch' '(' (parameter-declaration | '...') ')' compound-statement+-- +-- NB: If a try-catch statement without a finally clause is followed by another '@' statement,+-- we require a ';' after the try-catch statement. To avoid that, we would need a lookahead+-- of 2 (to see what special keyword comes after the '@'). In LALR(1), we get a shift-reduce+-- conflict that shifts to continue the try-catch statement.+--+objc_at_statement :: { Stm }+objc_at_statement :+ '@' 'try' compound_statement objc_catch_statement_list '@' 'finally' compound_statement+ { let { Block tryItems _ = $3+ ; Block finallyItems _ = $7+ }+ in+ ObjCTry tryItems (rev $4) (Just finallyItems) ($1 `srcspan` $7) }+ | '@' 'try' compound_statement objc_catch_statement_list+ {% do { let { Block tryItems _ = $3+ ; catchStmts = rev $4+ }+ ; when (null catchStmts) $+ throw $ ParserException ($1 <--> $3) $ + text "@try statement without @finally needs at least one @catch statement"+ ; return $ ObjCTry tryItems catchStmts Nothing ($1 `srcspan` catchStmts) + } }+ | '@' 'try' compound_statement objc_catch_statement_list '@' error+ {% parserError ($1 <--> $5)+ (text $ "a @try-@catch statement without a @finally clause needs to be followed\n" +++ "by a semicolon if the next statement begins with a '@'")+ }+ | '@' 'throw' expression ';'+ { ObjCThrow (Just $3) ($1 `srcspan` $4) }+ | '@' 'throw' expression error+ {% expected ["';'"] Nothing }+ | '@' 'throw' ';'+ { ObjCThrow Nothing ($1 `srcspan` $3) }+ | '@' 'throw' error+ {% expected ["';'", "expression"] Nothing }+ | '@' 'synchronized' '(' expression ')' compound_statement+ { let Block items _ = $6+ in+ ObjCSynchronized $4 items ($1 `srcspan` $6) }+ | '@' 'autoreleasepool' compound_statement+ { let Block items _ = $3+ in+ ObjCAutoreleasepool items ($1 `srcspan` $3) }++objc_catch_statement_list :: { RevList ObjCCatch }+objc_catch_statement_list :+ {- empty -}+ { rnil }+ | objc_catch_statement_list '@' 'catch' '(' parameter_declaration ')' compound_statement+ { let Block items _ = $7+ in+ rcons (ObjCCatch (Just $5) items ($2 `srcspan` $7)) $1 }+ | objc_catch_statement_list '@' 'catch' '(' '...' ')' compound_statement+ { let Block items _ = $7+ in+ rcons (ObjCCatch Nothing items ($2 `srcspan` $7)) $1 }+++{------------------------------------------------------------------------------+ -+ - External definitions+ -+ ------------------------------------------------------------------------------}++translation_unit :: { [Definition] }+translation_unit :+ {- empty -} { [] }+ | translation_unit_ { rev $1 }++translation_unit_ :: { RevList Definition }+translation_unit_ :+ external_declaration+ { rsingleton $1 }+ | ANTI_EDECLS+ { rsingleton (AntiEdecls (getANTI_EDECLS $1) (srclocOf $1)) }+ | translation_unit_ external_declaration+ { rcons $2 $1 }+ | translation_unit_ ANTI_EDECLS+ { rcons (AntiEdecls (getANTI_EDECLS $2) (srclocOf $2)) $1 }++external_declaration :: { Definition }+external_declaration :+ function_definition+ { FuncDef $1 (srclocOf $1) }+ | declaration+ { DecDef $1 (srclocOf $1) }+ {- Extension: ObjC -}+ | objc_class_declaration+ { $1 }+ {- Extension: ObjC -}+ | objc_interface+ { $1 }+ {- Extension: ObjC -}+ | objc_protocol_declaration+ { $1 }+ {- Extension: ObjC -}+ | objc_implementation+ { $1 }+ {- Extension: ObjC -}+ | objc_compatibility_alias+ { $1 }+ | ANTI_FUNC+ { AntiFunc (getANTI_FUNC $1) (srclocOf $1) }+ | ANTI_ESC+ { AntiEsc (getANTI_ESC $1) (srclocOf $1) }+ | ANTI_EDECL+ { AntiEdecl (getANTI_EDECL $1) (srclocOf $1) }++function_definition :: { Func }+function_definition :+ declaration_specifiers declarator compound_statement+ {% do{ let (dspec, declRoot) = $1+ ; let (ident, declToDecl) = $2+ ; let Block blockItems _ = $3+ ; let decl = declToDecl declRoot+ ; case decl of+ { Proto protoDecl args _ -> return $+ Func dspec ident protoDecl args+ blockItems+ (decl `srcspan` blockItems)+ ; OldProto protoDecl args _ -> return $+ OldFunc dspec ident protoDecl args Nothing+ blockItems+ (decl `srcspan` blockItems)+ ; _ -> parserError (decl <--> blockItems)+ (text "bad function declaration")+ }+ }+ }+ | declaration_specifiers declarator declaration_list compound_statement+ {% do{ let (dspec, declRoot) = $1+ ; let (ident, declToDecl) = $2+ ; let argDecls = $3+ ; let Block blockItems _ = $4+ ; let decl = declToDecl declRoot+ ; case decl of+ { OldProto protoDecl args _ -> return $+ OldFunc dspec ident protoDecl args (Just (rev argDecls))+ blockItems+ (decl `srcspan` blockItems)+ ; _ -> parserError (decl <--> blockItems)+ (text "bad function declaration")+ }+ }+ }++-- Objective-C extension: class declaration+--+-- objc-class-declaration -> +-- '@' 'class' identifier+ ';'+--+objc_class_declaration :: { Definition }+objc_class_declaration : + '@' 'class' identifier_list ';'+ {% do { let idents = rev $3+ ; mapM addClassdefId idents+ ; return $ ObjCClassDec idents ($1 `srcspan` $4)+ } + }++-- Objective-C extension: class or category interface+--+-- objc-interface ->+-- [attributes] objc-class-interface | objc-category-interface+--+-- objc-class-interface -> +-- '@' 'interface' identifier [':' identifier]+-- [objc-protocol-refs]+-- [objc-class-instance-variables]+-- objc-interface-decl*+-- '@' 'end'+--+-- objc-category-interface -> +-- '@' 'interface' identifier '(' [identifier] ')'+-- [objc-protocol-refs]+-- [objc-class-instance-variables]+-- objc-interface-decl*+-- '@' 'end'+--+-- objc-protocol-refs ->+-- '<' identifier-list '>'+--+-- objc-class-instance-variables ->+-- '{' objc-instance-variable-decl* '}'+--+-- objc-instance-variable-decl ->+-- objc-visibility-spec | [objc-instance-variable-decl] ';'+--+-- objc-instance-variable-decl -> struct-declaration+--+-- objc-visibility-spec -> '@' 'private' | '@' 'public' | '@' 'protected' | '@' 'package'+--+-- objc-interface-decl ->+-- objc-property-decl | objc-method-requirement | objc-method-proto ';' | declaration | ';'+--+-- objc-property-decl ->+-- '@' 'property' [objc-property-attrs] struct-declaration ';'+--+-- objc-property-attrs ->+-- '(' objc-property-attribute (',' objc-property-attribute)* ')'+--+-- objc-property-attribute ->+-- 'getter' '=' objc-selector+-- | 'setter' '=' objc-selector ':'+-- | 'readonly'+-- | 'readwrite'+-- | 'assign'+-- | 'retain'+-- | 'copy'+-- | 'nonatomic'+-- | 'atomic'+-- | 'strong'+-- | 'weak'+-- | 'unsafe_unretained'+--+-- objc-method-requirement -> '@' 'required' | '@' 'optional'+--+-- objc-method-proto ->+-- ('-' | '+') objc-method-decl [attributes]+--+-- objc-method-decl ->+-- ['(' type-name ')'] [attributes]+-- ( objc-selector+-- | ([objc-selector] ':' ['(' type-name ')'] [attributes] identifier)++-- ) [',' '...']+--+-- NB: We omit C-style parameters to methods as they don't appear to be current anymore.+--+objc_interface :: { Definition }+objc_interface :+ '@' 'interface' identifier objc_interface_body+ {% do { let (prot, vars, decls, loc) = $4+ ; addClassdefId $3+ ; return $ ObjCClassIface $3 Nothing prot vars decls [] ($1 `srcspan` loc) + } }+ | attributes '@' 'interface' identifier objc_interface_body+ {% do { let (prot, vars, decls, loc) = $5+ ; addClassdefId $4+ ; return $ ObjCClassIface $4 Nothing prot vars decls $1 ($2 `srcspan` loc) + } }+ | '@' 'interface' identifier ':' identifier_or_typedef objc_interface_body+ {% do { let (prot, vars, decls, loc) = $6+ ; addClassdefId $3+ ; return $ ObjCClassIface $3 (Just $5) prot vars decls [] ($1 `srcspan` loc) + } }+ | attributes '@' 'interface' identifier ':' identifier_or_typedef objc_interface_body+ {% do { let (prot, vars, decls, loc) = $7+ ; addClassdefId $4+ ; return $ ObjCClassIface $4 (Just $6) prot vars decls $1 ($2 `srcspan` loc)+ } }+ | '@' 'interface' identifier_or_typedef '(' ')' objc_interface_body+ { let (prot, vars, decls, loc) = $6+ in + ObjCCatIface $3 Nothing prot vars decls ($1 `srcspan` loc) }+ | '@' 'interface' identifier_or_typedef '(' identifier ')' objc_interface_body+ { let (prot, vars, decls, loc) = $7+ in + ObjCCatIface $3 (Just $5) prot vars decls ($1 `srcspan` loc) }++objc_interface_body :: { ([Id], [ObjCIvarDecl], [ObjCIfaceDecl], Loc) }+objc_interface_body :+ objc_protocol_refs_opt objc_class_instance_variables_opt objc_interface_decl_list '@' 'end'+ { ( rev $1, rev $2, rev $3, $4 <--> $5) }++objc_protocol_refs_opt :: { RevList Id }+objc_protocol_refs_opt :+ {- empty -}+ { rnil }+ | '<' identifier_list '>'+ { $2 }++objc_class_instance_variables_opt :: { RevList ObjCIvarDecl }+objc_class_instance_variables_opt :+ {- empty -}+ { rnil }+ | '{' '}'+ { rnil }+ | '{' objc_instance_variable_decl_list '}'+ { $2 }++objc_instance_variable_decl_list :: { RevList ObjCIvarDecl }+objc_instance_variable_decl_list :+ objc_visibility_spec+ { rsingleton (ObjCIvarVisi $1 (srclocOf $1)) }+ | ';'+ { rnil }+ | struct_declaration ';'+ { rsingleton (ObjCIvarDecl $1 (srclocOf $1)) }+ | objc_instance_variable_decl_list objc_visibility_spec+ { rcons (ObjCIvarVisi $2 (srclocOf $2)) $1 }+ | objc_instance_variable_decl_list ';'+ { $1 }+ | objc_instance_variable_decl_list struct_declaration ';'+ { rcons (ObjCIvarDecl $2 (srclocOf $2)) $1 }++objc_visibility_spec :: { ObjCVisibilitySpec }+objc_visibility_spec :+ '@' 'objc_private'+ { ObjCPrivate ($1 `srcspan` $2) }+ | '@' 'public'+ { ObjCPublic ($1 `srcspan` $2) }+ | '@' 'protected'+ { ObjCProtected ($1 `srcspan` $2) }+ | '@' 'package'+ { ObjCPackage ($1 `srcspan` $2) }++objc_interface_decl_list :: { RevList ObjCIfaceDecl }+objc_interface_decl_list :+ {- empty -}+ { rnil }+ | objc_interface_decl_list ';'+ { $1 }+ | objc_interface_decl_list objc_property_decl+ { rcons $2 $1 }+ | objc_interface_decl_list objc_method_requirement+ { rcons (ObjCIfaceReq $2 (srclocOf $2)) $1 }+ | objc_interface_decl_list objc_method_proto ';' + { rcons (ObjCIfaceMeth $2 (srclocOf $2)) $1 }+ | objc_interface_decl_list declaration+ { rcons (ObjCIfaceDecl $2 (srclocOf $2)) $1 }++objc_property_decl :: { ObjCIfaceDecl }+objc_property_decl :+ '@' 'property' struct_declaration+ { ObjCIfaceProp [] $3 ($1 `srcspan` $3) }+ | '@' 'property' '(' objc_property_attr_list ')' struct_declaration+ { ObjCIfaceProp (rev $4) $6 ($1 `srcspan` $6) }++objc_property_attr_list :: { RevList ObjCPropAttr }+objc_property_attr_list :+ objc_property_attr+ { rsingleton $1 }+ | objc_property_attr_list objc_property_attr+ { rcons $2 $1 }++objc_property_attr :: { ObjCPropAttr }+objc_property_attr :+ identifier '=' objc_selector + {% case $1 of + Id "getter" _ -> return $ ObjCGetter $3 ($1 `srcspan` $3)+ _ -> expectedObjCPropertyAttr (locOf $1) }+ | identifier '=' objc_selector ':'+ {% case $1 of + Id "setter" _ -> return $ ObjCSetter $3 ($1 `srcspan` $4)+ _ -> expectedObjCPropertyAttr (locOf $1) }+ | identifier+ {% case $1 of + Id "readonly" _ -> return $ ObjCReadonly (srclocOf $1) + Id "readwrite" _ -> return $ ObjCReadwrite (srclocOf $1) + Id "assign" _ -> return $ ObjCAssign (srclocOf $1) + Id "retain" _ -> return $ ObjCRetain (srclocOf $1) + Id "copy" _ -> return $ ObjCCopy (srclocOf $1) + Id "nonatomic" _ -> return $ ObjCNonatomic (srclocOf $1) + Id "atomic" _ -> return $ ObjCAtomic (srclocOf $1) + Id "strong" _ -> return $ ObjCStrong (srclocOf $1) + Id "weak" _ -> return $ ObjCWeak (srclocOf $1) + Id "unsafe_retained" _ -> return $ ObjCUnsafeRetained (srclocOf $1) + _ -> expectedObjCPropertyAttr (locOf $1) }++objc_method_requirement :: { ObjCMethodReq }+objc_method_requirement :+ '@' 'required'+ { ObjCRequired ($1 `srcspan` $2) }+ | '@' 'optional'+ { ObjCOptional ($1 `srcspan` $2) }++objc_method_proto :: { ObjCMethodProto }+objc_method_proto :+ '-' objc_method_decl attributes_opt+ { let (res, attrs, parms, hasVargs) = $2+ in+ ObjCMethodProto False res attrs parms hasVargs $3 ($1 `srcspan` $3) }+ | '+' objc_method_decl attributes_opt+ { let (res, attrs, parms, hasVargs) = $2+ in+ ObjCMethodProto True res attrs parms hasVargs $3 ($1 `srcspan` $3) }++objc_method_decl :: { (Maybe Type, [Attr], [ObjCParm], Bool) }+objc_method_decl :+ attributes_opt objc_method_args+ { (Nothing, $1, $2, False) }+ | '(' type_name ')' attributes_opt objc_method_args+ { (Just $2, $4, $5, False) }+ | attributes_opt objc_method_args ',' '...'+ { (Nothing, $1, $2, True) }+ | '(' type_name ')' attributes_opt objc_method_args ',' '...'+ { (Just $2, $4, $5, True) }++objc_method_args :: { [ObjCParm] }+objc_method_args :+ objc_selector+ { [ObjCParm (Just $1) Nothing [] Nothing (srclocOf $1)] }+ | objc_method_arg_list+ { rev $1 }++objc_method_arg_list :: { RevList ObjCParm }+objc_method_arg_list :+ objc_method_arg+ { rsingleton $1 }+ | objc_method_arg_list objc_method_arg+ { rcons $2 $1 }++objc_method_arg :: { ObjCParm }+objc_method_arg :+ objc_selector ':' '(' type_name ')' attributes_opt identifier+ { ObjCParm (Just $1) (Just $4) $6 (Just $7) ($1 `srcspan` $7) }+ | ':' '(' type_name ')' attributes_opt identifier+ { ObjCParm Nothing (Just $3) $5 (Just $6) ($1 `srcspan` $6) }+ | objc_selector ':' attributes_opt identifier+ { ObjCParm (Just $1) Nothing $3 (Just $4) ($1 `srcspan` $4) }+ | ':' attributes_opt identifier+ { ObjCParm Nothing Nothing $2 (Just $3) ($1 `srcspan` $3) }++-- Objective-C extension: protocol declaration+--+-- objc-protocol-declaration ->+-- objc-protocol-definition | objc-protocol-forward-reference+--+-- objc-protocol-definition ->+-- '@' 'protocol' identifier+-- [objc-protocol-refs] +-- objc-interface-decl*+-- '@' 'end'+--+-- objc-protocol-forward-reference ->+-- '@' 'protocol' identifier-list ';'+--+-- NB: "@protocol identifier ;" should be parsed as a 'objc-protocol-forward-reference', which means that+-- 'objc-interface-decl-list' in 'objc-protocol-definition' may not start with a semicolon if the+-- 'objc-protocol-refs' are empty.+--+-- We achieve this by factoring the common prefix into the non-terminal 'objc_protocol_prefix' to turn+-- the ambiguity into a shift-reduce conflict that is resolved by preferring shifting.+--+objc_protocol_declaration :: { Definition }+objc_protocol_declaration :+ objc_protocol_prefix objc_protocol_refs_opt objc_interface_decl_list '@' 'end'+ { ObjCProtDef (fst $1) (rev $2) (rev $3) (snd $1 `srcspan` $5) }+ | objc_protocol_prefix ';' -- this rule wins the shift-reduce conflict+ { ObjCProtDec [fst $1] (snd $1 `srcspan` $2) }+ | objc_protocol_prefix ',' identifier_list ';'+ { ObjCProtDec (fst $1 : rev $3) (snd $1 `srcspan` $4) }++objc_protocol_prefix :: { (Id, Loc) }+objc_protocol_prefix :+ '@' 'protocol' identifier+ { ($3, locOf $1) } ++-- Objective-C extension: class or category implementation+--+-- objc-implementation ->+-- objc-class-implementation | objc-category-implementation+--+-- objc-class-implementation ->+-- '@' 'implementation' identifier [':' identifier]+-- [objc-class-instance-variables]+-- objc-implementation-decl*+-- '@' end+--+-- objc-category-implementation ->+-- '@' 'implementation' identifier '(' identifier ')'+-- objc-implementation-decl*+-- '@' end+--+-- objc-implementation-decl ->+-- function-definition | declaration | property-synthesize | property-dynamic | objc-method-definition+--+-- property-synthesize ->+-- '@' 'synthesize' property-ivar (',' property-ivar)* ';'+--+-- property-dynamic ->+-- '@' 'dynamic' identifier (',' identifier)* ';'+--+-- property-ivar ->+-- identifier | identifier '=' identifier+--+-- objc-method-definition ->+-- objc-method-proto [';'] compound_statement+--+objc_implementation :: { Definition }+objc_implementation :+ '@' 'implementation' identifier_or_typedef ':' identifier_or_typedef objc_implementation_body_vars+ { let (ivars, defs, loc) = $6+ in+ ObjCClassImpl $3 (Just $5) ivars defs ($1 `srcspan` loc) }+ | '@' 'implementation' identifier_or_typedef objc_implementation_body_vars+ { let (ivars, defs, loc) = $4+ in+ ObjCClassImpl $3 Nothing ivars defs ($1 `srcspan` loc) }+ | '@' 'implementation' identifier_or_typedef '(' identifier ')' objc_implementation_body+ { ObjCCatImpl $3 $5 (fst $7) ($1 `srcspan` snd $7) }++objc_implementation_body_vars :: { ([ObjCIvarDecl], [Definition], Loc) }+objc_implementation_body_vars :+ objc_class_instance_variables_opt objc_implementation_body+ { (rev $1, fst $2, snd $2) }++objc_implementation_body :: { ([Definition], Loc) }+objc_implementation_body :+ objc_implementation_decl_list '@' 'end'+ { (rev $1, locOf $3) }++objc_implementation_decl_list :: { RevList Definition }+objc_implementation_decl_list :+ {- empty -}+ { rnil }+ | objc_implementation_decl_list function_definition+ { rcons (FuncDef $2 (srclocOf $2)) $1 }+ | objc_implementation_decl_list declaration+ { rcons (DecDef $2 (srclocOf $2)) $1 }+ | objc_implementation_decl_list property_synthesize+ { rcons $2 $1 }+ | objc_implementation_decl_list property_dynamic+ { rcons $2 $1 }+ | objc_implementation_decl_list objc_method_definition+ { rcons $2 $1 }+ | objc_implementation_decl_list ANTI_FUNC+ { rcons (AntiFunc (getANTI_FUNC $2) (srclocOf $2)) $1 }+ | objc_implementation_decl_list ANTI_ESC+ { rcons (AntiEsc (getANTI_ESC $2) (srclocOf $2)) $1 }+-- FIXME: we need an anti implementation decl like this:+-- | objc_implementation_decl_list ANTI_IDECL+-- { rcons (AntiIdecl (getANTI_IDECL $2) (srclocOf $2)) $1 }++property_synthesize :: { Definition }+property_synthesize :+ '@' 'synthesize' property_ivar_list ';'+ { ObjCSynDef (rev $3) ($1 `srcspan` $4) }++property_ivar_list :: { RevList (Id, Maybe Id) }+property_ivar_list :+ identifier+ { rsingleton ($1, Nothing) }+ | identifier '=' identifier+ { rsingleton ($1, Just $3) }+ | property_ivar_list identifier+ { rcons ($2, Nothing) $1 }+ | property_ivar_list identifier '=' identifier+ { rcons ($2, Just $4) $1 }++property_dynamic :: { Definition }+property_dynamic :+ '@' 'dynamic' identifier_list ';'+ { ObjCDynDef (rev $3) ($1 `srcspan` $4) }++objc_method_definition :: { Definition }+objc_method_definition :+ objc_method_proto ';' compound_statement+ { let Block stmts loc = $3+ in+ ObjCMethDef $1 stmts ($1 `srcspan` loc)+ }+ | objc_method_proto compound_statement+ { let Block stmts loc = $2+ in+ ObjCMethDef $1 stmts ($1 `srcspan` loc)+ }++-- Objective-C extension: compatibility alias+--+-- objc-compatibility-alias ->+-- '@' 'compatibility_alias' identifier class-name ';'+--+objc_compatibility_alias :: { Definition }+objc_compatibility_alias :+ '@' 'compatibility_alias' identifier OBJCNAMED ';'+ {% do { addClassdefId $3+ ; return $ ObjCCompAlias $3 (Id (getOBJCNAMED $1) (srclocOf $1)) ($1 `srcspan` $5)+ } + }++attributes_opt :: { [Attr] }+attributes_opt :+ {- empty -}+ { [] }+ | attributes+ { $1 }+++{------------------------------------------------------------------------------+ -+ - GCC extensions+ -+ ------------------------------------------------------------------------------}++attributes :: { [Attr] }+attributes :+ attribute { $1 }+ | attributes attribute { $1 ++ $2 }++attribute :: { [Attr] }+attribute :+ '__attribute__' '(' '(' attribute_list ')' ')' { rev $4 }++attribute_list :: { RevList Attr }+attribute_list :+ attrib { rsingleton $1 }+ | attribute_list ',' attrib { rcons $3 $1 }++attrib :: { Attr }+attrib :+ attrib_name+ { Attr $1 [] (srclocOf $1)}+ | attrib_name '(' argument_expression_list ')'+ { Attr $1 (rev $3) ($1 `srcspan` $4) }++attrib_name :: { Id }+attrib_name :+ identifier_or_typedef { $1 }+ | 'static' { Id "static" (srclocOf $1) }+ | 'extern' { Id "extern" (srclocOf $1) }+ | 'register' { Id "register" (srclocOf $1) }+ | '__block' { Id "__block" (srclocOf $1) }+ | 'typedef' { Id "typedef" (srclocOf $1) }+ | 'inline' { Id "inline" (srclocOf $1) }+ | 'auto' { Id "auto" (srclocOf $1) }+ | 'const' { Id "const" (srclocOf $1) }+ | 'volatile' { Id "volatile" (srclocOf $1) }+ | 'unsigned' { Id "unsigned" (srclocOf $1) }+ | 'long' { Id "long" (srclocOf $1) }+ | 'short' { Id "short" (srclocOf $1) }+ | 'signed' { Id "signed" (srclocOf $1) }+ | 'int' { Id "int" (srclocOf $1) }+ | 'char' { Id "char" (srclocOf $1) }+ | 'float' { Id "float" (srclocOf $1) }+ | 'double' { Id "double" (srclocOf $1) }+ | 'void' { Id "void" (srclocOf $1) }++maybe_volatile :: { Bool }+maybe_volatile :+ {- empty -} { False}+ | 'volatile' { True}++asm_statement :: { Stm }+asm_statement :+ '__asm__' maybe_volatile '(' asm_template ')' ';'+ { Asm $2 [] (rev $4) [] [] [] ($1 `srcspan` $5) }+ | '__asm__' maybe_volatile '(' asm_template ':' asm_inouts ')' ';'+ { Asm $2 [] (rev $4) $6 [] [] ($1 `srcspan` $7) }+ | '__asm__' maybe_volatile '(' asm_template ':' asm_inouts+ ':' asm_inouts ')' ';'+ { Asm $2 [] (rev $4) $6 $8 [] ($1 `srcspan` $9) }+ | '__asm__' maybe_volatile '(' asm_template ':' asm_inouts+ ':' asm_inouts+ ':' asm_clobbers ')' ';'+ { Asm $2 [] (rev $4) $6 $8 $10 ($1 `srcspan` $11) }++asm_template :: { RevList String }+asm_template :+ STRING { rsingleton ((fst . getSTRING) $1) }+ | asm_template STRING { rcons ((fst . getSTRING) $2) $1 }++asm_inouts :: { [(String, Exp)] }+asm_inouts :+ {- empty -} { [] }+ | asm_inouts_ne { rev $1 }++asm_inouts_ne :: { RevList (String, Exp) }+asm_inouts_ne:+ asm_inout { rsingleton $1 }+ | asm_inouts_ne ',' asm_inout { rcons $3 $1 }++asm_inout :: { (String, Exp) }+asm_inout :+ STRING '(' expression ')' { ((fst . getSTRING) $1, $3) }++asm_clobbers :: { [String] }+asm_clobbers :+ {- empty -} { [] }+ | asm_clobbers_ne { rev $1 }++asm_clobbers_ne :: { RevList String }+asm_clobbers_ne :+ asm_clobber { rsingleton $1 }+ | asm_clobbers_ne ',' asm_clobber { rcons $3 $1 }++asm_clobber :: { String }+asm_clobber :+ STRING { (fst . getSTRING) $1 }++{+happyError :: L T.Token -> P a+happyError (L loc t) =+ parserError (locStart loc) (text "parse error on" <+> quoteTok (ppr t))++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 ident)) = ident+getNAMED (L _ (T.Tnamed ident)) = ident+getOBJCNAMED (L _ (T.TObjCnamed ident)) = ident++getPRAGMA (L _ (T.Tpragma pragma)) = pragma++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_LLINT (L _ (T.Tanti_llint v)) = v+getANTI_ULLINT (L _ (T.Tanti_ullint 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+getANTI_PRAGMA (L _ (T.Tanti_pragma v)) = v+getANTI_INIT (L _ (T.Tanti_init v)) = v+getANTI_INITS (L _ (T.Tanti_inits v)) = v++lexer :: (L T.Token -> P a) -> P a+lexer cont = do+ t <- lexToken+ setCurToken t+ cont t++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+ | TS__block !SrcLoc+ | TSObjC__weak !SrcLoc+ | TSObjC__strong !SrcLoc+ | TSObjC__unsafe_retained !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 [Id] !SrcLoc -- the '[Id]' are Objective-C protocol references++ | TStypeofExp Exp !SrcLoc+ | TStypeofType Type !SrcLoc+ | TSva_list !SrcLoc++ -- C99+ | TSrestrict !SrcLoc++ -- CUDA+ | TSCUDAdevice !SrcLoc+ | TSCUDAglobal !SrcLoc+ | TSCUDAhost !SrcLoc+ | TSCUDAconstant !SrcLoc+ | TSCUDAshared !SrcLoc+ | TSCUDArestrict !SrcLoc+ | TSCUDAnoinline !SrcLoc++ -- OpenCL+ | TSCLprivate !SrcLoc+ | TSCLlocal !SrcLoc+ | TSCLglobal !SrcLoc+ | TSCLconstant !SrcLoc+ | TSCLreadonly !SrcLoc+ | TSCLwriteonly !SrcLoc+ | TSCLkernel !SrcLoc++instance Located DeclTySpec where+ locOf (DeclTySpec _ loc) = locOf loc+ locOf (AntiDeclTySpec _ loc) = locOf loc++instance Located TySpec where+ locOf (TSauto loc) = locOf loc+ locOf (TSregister loc) = locOf loc+ locOf (TSstatic loc) = locOf loc+ locOf (TSextern loc) = locOf loc+ locOf (TSexternL _ loc) = locOf loc+ locOf (TStypedef loc) = locOf loc+ locOf (TS__block loc) = locOf loc+ locOf (TSObjC__weak loc) = locOf loc+ locOf (TSObjC__strong loc) = locOf loc+ locOf (TSObjC__unsafe_retained loc)+ = locOf loc++ locOf (TSconst loc) = locOf loc+ locOf (TSvolatile loc) = locOf loc+ locOf (TSinline loc) = locOf loc++ locOf (TSsigned loc) = locOf loc+ locOf (TSunsigned loc) = locOf loc++ locOf (TSvoid loc) = locOf loc+ locOf (TSchar loc) = locOf loc+ locOf (TSshort loc) = locOf loc+ locOf (TSint loc) = locOf loc+ locOf (TSlong loc) = locOf loc+ locOf (TSfloat loc) = locOf loc+ locOf (TSdouble loc) = locOf loc++ locOf (TSstruct _ _ _ loc) = locOf loc+ locOf (TSunion _ _ _ loc) = locOf loc+ locOf (TSenum _ _ _ loc) = locOf loc+ locOf (TSnamed _ _ loc) = locOf loc++ locOf (TStypeofExp _ loc) = locOf loc+ locOf (TStypeofType _ loc) = locOf loc+ locOf (TSva_list loc) = locOf loc++ locOf (TSrestrict loc) = locOf loc++ locOf (TSCUDAdevice loc) = locOf loc+ locOf (TSCUDAglobal loc) = locOf loc+ locOf (TSCUDAhost loc) = locOf loc+ locOf (TSCUDAconstant loc) = locOf loc+ locOf (TSCUDAshared loc) = locOf loc+ locOf (TSCUDArestrict loc) = locOf loc+ locOf (TSCUDAnoinline loc) = locOf loc++ locOf (TSCLprivate loc) = locOf loc+ locOf (TSCLlocal loc) = locOf loc+ locOf (TSCLglobal loc) = locOf loc+ locOf (TSCLconstant loc) = locOf loc+ locOf (TSCLreadonly loc) = locOf loc+ locOf (TSCLwriteonly loc) = locOf loc+ locOf (TSCLkernel loc) = locOf 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 (TS__block _) = text "__block"+ ppr (TSObjC__weak _) = text "__weak"+ ppr (TSObjC__strong _) = text "__strong"+ ppr (TSObjC__unsafe_retained _) = text "__unsafe_retained"++ 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 ps _)= ppr ident <> if null ps then empty else angles (commasep (map ppr ps))++ ppr (TSva_list _) = text "__builtin_va_list"++ ppr (TSCUDAdevice _) = text "__device__"+ ppr (TSCUDAglobal _) = text "__global__"+ ppr (TSCUDAhost _) = text "__host__"+ ppr (TSCUDAconstant _) = text "__constant__"+ ppr (TSCUDAshared _) = text "__shared__"+ ppr (TSCUDArestrict _) = text "__restrict__"+ 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+isStorage (TSstatic _) = True+isStorage (TSextern _) = True+isStorage (TSexternL _ _) = True+isStorage (TStypedef _) = True+isStorage (TS__block _) = True+isStorage (TSObjC__weak _) = True+isStorage (TSObjC__strong _) = True+isStorage (TSObjC__unsafe_retained _) = 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 (TS__block loc) = T__block loc+ mk (TSObjC__weak loc) = TObjC__weak loc+ mk (TSObjC__strong loc) = TObjC__strong loc+ mk (TSObjC__unsafe_retained loc) = TObjC__unsafe_retained loc+ mk _ = error "internal error in mkStorage"++isTypeQual :: TySpec -> Bool+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 (TSCUDArestrict _) = 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 (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 (TSCUDArestrict loc) = TCUDArestrict 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+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 ()++mkStringConst :: RevList (L (String, String)) -> Const+mkStringConst str_desc+ = let ss = rev str_desc+ l = srclocOf ss+ raw = map (fst . unLoc) ss+ s = (concat . intersperse " " . map (snd . unLoc)) ss+ in+ StringConst raw s l++composeDecls :: Decl -> Decl -> Decl+composeDecls (DeclRoot _) root =+ root++composeDecls (C.Ptr quals decl loc) root =+ C.Ptr quals (composeDecls decl root) loc++composeDecls (C.BlockPtr quals decl loc) root =+ C.BlockPtr 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 l] = do+ checkNoSign specs "sign specified for void type"+ return $ cdeclSpec storage quals (Tvoid l)++ go [TSchar l] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tchar sign l)++ go [TSshort l] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tshort sign l)++ go [TSshort _, TSint _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tshort sign (srclocOf rest))++ go [TSint _, TSshort _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tshort sign (srclocOf rest))++ go [TSint l] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tint sign l)++ go [TSlong l] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong sign l)++ go [TSlong _, TSint _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong sign (srclocOf rest))++ go [TSint _, TSlong _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong sign (srclocOf rest))++ go [TSlong _, TSlong _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong_long sign (srclocOf rest))++ go [TSlong _, TSlong _, TSint _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong_long sign (srclocOf rest))++ go [TSlong _, TSint _, TSlong _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong_long sign (srclocOf rest))++ go [TSint _, TSlong _, TSlong _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong_long sign (srclocOf 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 (srclocOf rest))++ go [TSdouble _, TSlong _] = do+ checkNoSign specs "sign specified for long double type"+ return $ cdeclSpec storage quals (Tlong_double (srclocOf 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 refs loc] = do+ checkNoSign specs "sign specified for named type"+ return $ cdeclSpec storage quals (Tnamed ident refs 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 l] = do+ checkNoSign specs "sign specified for __builtin_va_list"+ return $ cdeclSpec storage quals (Tva_list l)++ go [] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tint sign (storage `srcspan` quals))++ go tyspecs =+ throw $ ParserException (locOf tyspecs)+ (text "bad type:" <+> spread (map ppr tyspecs))++mkPtr :: [TySpec] -> Decl -> Decl+mkPtr specs decl = C.Ptr quals decl (specs `srcspan` decl)+ where+ quals = mkTypeQuals specs++mkBlockPtr :: Loc -> [TySpec] -> P (Decl -> Decl)+mkBlockPtr loc specs+ = do+ { assertObjCEnabled loc "blocks are currently only allowed as part of the Objective-C extension"+ ; return $ \decl -> C.BlockPtr quals decl (specs `srcspan` decl)+ }+ where+ quals = mkTypeQuals specs++mkArray :: [TySpec] -> ArraySize -> Decl -> Decl+mkArray specs size decl = Array quals size decl (specs `srcspan` decl)+ where+ quals = mkTypeQuals specs++mkProto :: Params -> Decl -> Decl+mkProto args decl = Proto decl args (args `srcspan` decl)++mkOldProto :: [Id] -> Decl -> Decl+mkOldProto args decl = OldProto decl args (args `srcspan` 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 (locOf init) $+ text "typedef" <+>+ quoteTok (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 <--> inits++declRoot :: Located a => a -> Decl+declRoot x = DeclRoot (srclocOf x)++addClassdefId :: Id -> P ()+addClassdefId (Id str _) = addClassdef str+addClassdefId (AntiId {}) = return ()++expectedObjCPropertyAttr :: Loc -> P a+expectedObjCPropertyAttr loc+ = throw $ ParserException loc $+ text "Expected an Objective-C property attribute; allowed are the following:" </>+ nest 2 + (text "'getter = <sel>', 'setter = <sel>:', 'readonly', 'readwrite', 'assign'," <+>+ text "'retain', 'copy', 'nonatomic', 'atomic', 'strong', 'weak', and 'unsafe_retained'")++assertObjCEnabled :: Loc -> String -> P ()+assertObjCEnabled loc errMsg+ = do+ { objc_enabled <- useObjCExts+ ; unless objc_enabled $ + throw $ ParserException loc $ + text errMsg+ } data RevList a = RNil | RCons a (RevList a)
Language/C/Parser/Tokens.hs view
@@ -1,7 +1,8 @@ -- | -- Module : Language.C.Parser.Tokens -- Copyright : (c) Harvard University 2006-2011--- (c) Geoffrey Mainland 2011-2012+-- (c) Geoffrey Mainland 2011-2013+-- (c) Manuel M T Chakravarty 2013 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu @@ -150,6 +151,41 @@ | TCLreadonly | TCLwriteonly | TCLkernel+ + -- Clang (currently active is Objective-C is active)+ | T__block+ + -- Objective-C+ | TObjCnamed String+ | TObjCat+ | TObjCautoreleasepool+ | TObjCcatch+ | TObjCclass+ | TObjCcompatibility_alias+ | TObjCdynamic+ | TObjCencode+ | TObjCend+ | TObjCfinally+ | TObjCimplementation+ | TObjCinterface+ | TObjCNO+ | TObjCprivate+ | TObjCoptional+ | TObjCpublic+ | TObjCproperty+ | TObjCprotected+ | TObjCprotocol+ | TObjCpackage+ | TObjCrequired+ | TObjCselector+ | TObjCsynchronized+ | TObjCsynthesize+ | TObjCthrow+ | TObjCtry+ | TObjCYES+ | TObjC__weak+ | TObjC__strong+ | TObjC__unsafe_retained -- Antiquoting | Ttypename@@ -187,6 +223,8 @@ | Tanti_param String | Tanti_params String | Tanti_pragma String+ | Tanti_init String+ | Tanti_inits String deriving (Ord, Eq) instance Pretty Token where@@ -204,7 +242,45 @@ show (TcharConst (s, _)) = s show (TstringConst (s, _)) = s show (Tidentifier s) = s- show t = fromMaybe (error "internal error: unknown token")+ show (Tnamed s) = s+ show (TObjCnamed s) = s++ show (Tanti_id s) = "$id:" ++ s+ show (Tanti_int s) = "$int:" ++ s+ show (Tanti_uint s) = "$uint:" ++ s+ show (Tanti_lint s) = "$lint:" ++ s+ show (Tanti_ulint s) = "$ulint:" ++ s+ show (Tanti_llint s) = "$llint:" ++ s+ show (Tanti_ullint s) = "$ullint:" ++ s+ show (Tanti_float s) = "$float:" ++ s+ show (Tanti_double s) = "$double:" ++ s+ show (Tanti_long_double s) = "$longdouble:" ++ s+ show (Tanti_char s) = "$char:" ++ s+ show (Tanti_string s) = "$string:" ++ s+ show (Tanti_exp s) = "$exp:" ++ s+ show (Tanti_func s) = "$func:" ++ s+ show (Tanti_args s) = "$args:" ++ s+ show (Tanti_decl s) = "$decl:" ++ s+ show (Tanti_decls s) = "$decls:" ++ s+ show (Tanti_sdecl s) = "$sdecl:" ++ s+ show (Tanti_sdecls s) = "$sdecls:" ++ s+ show (Tanti_enum s) = "$enum:" ++ s+ show (Tanti_enums s) = "$enums:" ++ s+ show (Tanti_esc s) = "$esc:" ++ s+ show (Tanti_edecl s) = "$edecl:" ++ s+ show (Tanti_edecls s) = "$edecls:" ++ s+ show (Tanti_item s) = "$item:" ++ s+ show (Tanti_items s) = "$items:" ++ s+ show (Tanti_stm s) = "$stm:" ++ s+ show (Tanti_stms s) = "$stms:" ++ s+ show (Tanti_type s) = "$type:" ++ s+ show (Tanti_spec s) = "$spec:" ++ s+ show (Tanti_param s) = "$param:" ++ s+ show (Tanti_params s) = "$params:" ++ s+ show (Tanti_pragma s) = "$pragma:" ++ s+ show (Tanti_init s) = "$init:" ++ s+ show (Tanti_inits s) = "$inits:" ++ s+ show t = fromMaybe (error "language-c-quote: internal error: unknown token") (lookup t tokenStrings) tokenStrings :: [(Token, String)]@@ -320,13 +396,53 @@ -- -- OpenCL extensions --- (TCLprivate, "__private"),+ (TCLprivate, "private"), -- must be without '__' prefix for Objective-C (TCLlocal, "__local"), (TCLglobal, "__global"), (TCLconstant, "__constant"), (TCLreadonly, "read_only"), (TCLwriteonly, "write_only"),- (TCLkernel, "__kernel")+ (TCLkernel, "__kernel"),++ --+ -- Clang extensions+ --+ (T__block , "__block"),++ --+ -- Objective-C extensions+ --+ (TObjCat , "@"),+ (TObjCautoreleasepool , "autoreleasepool"),+ (TObjCcatch , "catch"),+ (TObjCclass , "class"),+ (TObjCcompatibility_alias, "compatibility_alias"),+ (TObjCdynamic , "dynamic"),+ (TObjCencode , "encode"),+ (TObjCend , "end"),+ (TObjCfinally , "finally"),+ (TObjCimplementation , "implementation"),+ (TObjCinterface , "interface"),+ (TObjCNO , "NO"),+ (TObjCoptional , "optional"),+ (TObjCprivate , "private"),+ (TObjCpublic , "public"),+ (TObjCproperty , "property"),+ (TObjCprotected , "protected"),+ (TObjCprotocol , "protocol"),+ (TObjCpackage , "package"),+ (TObjCrequired , "required"),+ (TObjCselector , "selector"),+ (TObjCsynchronized , "synchronized"),+ (TObjCsynthesize , "synthesize"),+ (TObjCthrow , "throw"),+ (TObjCtry , "try"),+ (TObjCYES , "YES"),+ (TObjC__weak , "__weak"),+ (TObjC__strong , "__strong"),+ (TObjC__unsafe_retained , "__unsafe_retained"),++ (Ttypename, "typename") ] keywords :: [(String, Token, Maybe [Extensions])]@@ -394,7 +510,7 @@ ("__restrict__", TCUDArestrict, Just [CUDA]), ("__noinline__", TCUDAnoinline, Just [CUDA]), - ("private", TCLprivate, Just [OpenCL]),+ ("private", TCLprivate, Just [OpenCL, ObjC]), -- see Lexer.identifier for 'TObjCprivate' ("__private", TCLprivate, Just [OpenCL]), ("local", TCLlocal, Just [OpenCL]), ("__local", TCLlocal, Just [OpenCL]),@@ -407,7 +523,37 @@ ("write_only", TCLwriteonly, Just [OpenCL]), ("__write_only", TCLwriteonly, Just [OpenCL]), ("kernel", TCLkernel, Just [OpenCL]),- ("__kernel", TCLkernel, Just [OpenCL])+ ("__kernel", TCLkernel, Just [OpenCL]),+ + ("__block", T__block, Just [ObjC]),++ ("autoreleasepool", TObjCautoreleasepool, Just [ObjC]),+ ("catch", TObjCcatch, Just [ObjC]),+ ("class", TObjCclass, Just [ObjC]),+ ("compatibility_alias", TObjCcompatibility_alias, Just [ObjC]),+ ("dynamic", TObjCdynamic, Just [ObjC]),+ ("encode", TObjCencode, Just [ObjC]),+ ("end", TObjCend, Just [ObjC]),+ ("finally", TObjCfinally, Just [ObjC]),+ ("implementation", TObjCimplementation, Just [ObjC]),+ ("interface", TObjCinterface, Just [ObjC]),+ ("NO", TObjCNO, Just [ObjC]),+ ("optional", TObjCoptional, Just [ObjC]),+ ("public", TObjCpublic, Just [ObjC]),+ ("property", TObjCproperty, Just [ObjC]),+ ("protected", TObjCprotected, Just [ObjC]),+ ("package", TObjCpackage, Just [ObjC]),+ ("protocol", TObjCprotocol, Just [ObjC]),+ ("required", TObjCrequired, Just [ObjC]),+ ("selector", TObjCselector, Just [ObjC]),+ ("synchronized", TObjCsynchronized, Just [ObjC]),+ ("synthesize", TObjCsynthesize, Just [ObjC]),+ ("throw", TObjCthrow, Just [ObjC]),+ ("try", TObjCtry, Just [ObjC]),+ ("YES", TObjCYES, Just [ObjC]),+ ("__weak", TObjC__weak, Just [ObjC]),+ ("__strong", TObjC__strong, Just [ObjC]),+ ("__unsafe_retained", TObjC__unsafe_retained, Just [ObjC]) ] type ExtensionsInt = Word32
Language/C/Pretty.hs view
@@ -1,11 +1,13 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE FlexibleInstances #-}+{-# OPTIONS_GHC -fno-warn-orphans #-} -- | -- Module : Language.C.Pretty -- Copyright : (c) Harvard University 2006-2011--- (c) Geoffrey Mainland 2011-2012+-- (c) Geoffrey Mainland 2011-2013+-- (c) Manuel M T Chakravarty 2013 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu @@ -62,6 +64,9 @@ bracesSemiList :: [Doc] -> Doc bracesSemiList = encloseSep lbrace rbrace semi +angleList :: [Doc] -> Doc+angleList = encloseSep langle rangle comma+ pprAnti :: String -> String -> Doc pprAnti anti s = char '$' <> text anti <> colon <> if isIdentifier s then text s else parens (text s)@@ -110,19 +115,17 @@ ppr (Id ident _) = text ident ppr (AntiId v _) = pprAnti "id" v -instance Show Id where- showsPrec p = shows . pprPrec p- instance Pretty Storage where- ppr (Tauto _) = text "auto"- ppr (Tregister _) = text "register"- ppr (Tstatic _) = text "static"- ppr (Textern _) = text "extern"- ppr (TexternL l _) = text "extern" <+> ppr l- ppr (Ttypedef _) = text "typedef"--instance Show Storage where- showsPrec p = shows . pprPrec p+ ppr (Tauto _) = text "auto"+ ppr (Tregister _) = text "register"+ ppr (Tstatic _) = text "static"+ ppr (Textern _) = text "extern"+ ppr (TexternL l _) = text "extern" <+> ppr l+ ppr (Ttypedef _) = text "typedef"+ ppr (T__block _) = text "__block"+ ppr (TObjC__weak _) = text "__weak"+ ppr (TObjC__strong _) = text "__strong"+ ppr (TObjC__unsafe_retained _) = text "__unsafe_retained" instance Pretty TypeQual where ppr (Tconst _) = text "const"@@ -147,16 +150,10 @@ ppr (TCLwriteonly _) = text "write_only" ppr (TCLkernel _) = text "__kernel" -instance Show TypeQual where- showsPrec p = shows . pprPrec p- instance Pretty Sign where ppr (Tsigned _) = text "signed" ppr (Tunsigned _) = text "unsigned" -instance Show Sign where- showsPrec p = shows . pprPrec p- pprSign :: Maybe Sign -> Doc pprSign Nothing = empty pprSign (Just sign) = ppr sign <> space@@ -181,8 +178,8 @@ ppr (Tenum maybe_ident cenums attrs _) = pprEnum maybe_ident cenums attrs - ppr (Tnamed ident _) =- ppr ident+ ppr (Tnamed ident refs _) =+ ppr ident <> if null refs then empty else angles (commasep (map ppr refs)) ppr (TtypeofExp e _) = text "__typeof__" <> parens (pprPrec 14 e)@@ -193,9 +190,6 @@ ppr (Tva_list _) = text "__builtin_va_list" -instance Show TypeSpec where- showsPrec p = shows . pprPrec p- pprStructOrUnion :: String -> Maybe Id -> Maybe [FieldGroup]@@ -246,18 +240,12 @@ spread (map ppr storage ++ map ppr quals) <+/> pprAnti "ty" v -instance Show DeclSpec where- showsPrec p = shows . pprPrec p- instance Pretty ArraySize where ppr (ArraySize True e _) = text "static" <+> ppr e ppr (ArraySize False e _) = ppr e ppr (VariableArraySize _) = text "*" ppr (NoArraySize _) = empty -instance Show ArraySize where- showsPrec p = shows . pprPrec p- pprDeclarator :: Maybe Id -> Decl -> Doc pprDeclarator maybe_ident declarator = case maybe_ident of@@ -271,6 +259,12 @@ pprPtr (Ptr quals decl _) post = pprPtr decl $ text "*" <+> spread (map ppr quals) <> post+ pprPtr (BlockPtr [] decl _) post =+ pprPtr decl $+ text "^" <> post+ pprPtr (BlockPtr quals decl _) post =+ pprPtr decl $+ text "^" <+> spread (map ppr quals) <> post pprPtr decl post = (decl, post) pprDirDecl :: Decl -> Doc -> (Decl, Doc)@@ -304,22 +298,13 @@ ppr (Type spec decl _) = ppr spec <> pprDeclarator Nothing decl ppr (AntiType v _) = pprAnti "ty" v -instance Show Type where- showsPrec p = shows . pprPrec p- instance Pretty Designator where ppr (IndexDesignator e _) = brackets $ ppr e ppr (MemberDesignator ident _) = dot <> ppr ident -instance Show Designator where- showsPrec p = shows . pprPrec p- instance Pretty Designation where ppr (Designation ds _) = folddoc (<>) (map ppr ds) -instance Show Designation where- showsPrec p = shows . pprPrec p- instance Pretty Initializer where ppr (ExpInitializer e _) = ppr e @@ -327,11 +312,11 @@ bracesList (map pprInit inits) where pprInit :: (Maybe Designation, Initializer) -> Doc- pprInit (Nothing, init) = ppr init- pprInit (Just d, init) = ppr d <+> text "=" <//> ppr init+ pprInit (Nothing, ini) = ppr ini+ pprInit (Just d, ini) = ppr d <+> text "=" <//> ppr ini -instance Show Initializer where- showsPrec p = shows . pprPrec p+ ppr (AntiInit v _) = pprAnti "init" v+ ppr (AntiInits v _) = pprAnti "inits" v instance Pretty Init where ppr (Init ident decl maybe_asmlabel maybe_e attrs _) =@@ -346,16 +331,10 @@ Nothing -> empty Just e -> space <> text "=" <+/> ppr e -instance Show Init where- showsPrec p = shows . pprPrec p- instance Pretty Typedef where ppr (Typedef ident decl attrs loc) = ppr (Init ident decl Nothing Nothing attrs loc) -instance Show Typedef where- showsPrec p = shows . pprPrec p- instance Pretty InitGroup where ppr (InitGroup spec attrs inits _) = ppr spec@@ -378,9 +357,6 @@ ppr (AntiDecls v _) = pprAnti "decls" v ppr (AntiDecl v _) = pprAnti "decl" v -instance Show InitGroup where- showsPrec p = shows . pprPrec p- instance Pretty Field where ppr (Field maybe_ident maybe_decl maybe_e _) = case maybe_decl of@@ -390,9 +366,6 @@ Nothing -> empty Just e -> space <> colon <+> ppr e -instance Show Field where- showsPrec p = shows . pprPrec p- instance Pretty FieldGroup where ppr (FieldGroup spec fields _) = ppr spec <> commasep (map ppr fields)@@ -400,9 +373,6 @@ ppr (AntiSdecls v _) = pprAnti "sdecls" v ppr (AntiSdecl v _) = pprAnti "sdecl" v -instance Show FieldGroup where- showsPrec p = shows . pprPrec p- instance Pretty CEnum where ppr (CEnum ident maybe_e _) = ppr ident@@ -413,9 +383,6 @@ ppr (AntiEnums v _) = pprAnti "enums" v ppr (AntiEnum v _) = pprAnti "enum" v -instance Show CEnum where- showsPrec p = shows . pprPrec p- instance Pretty Attr where ppr (Attr ident [] _) = ppr ident ppr (Attr ident args _) =@@ -425,9 +392,6 @@ pprList attrs = text "__attribute__" <> parens (parens (commasep (map ppr attrs))) -instance Show Attr where- showsPrec p = shows . pprPrec p- instance Pretty Param where ppr (Param maybe_ident spec decl _) = ppr spec <> pprDeclarator maybe_ident decl@@ -435,9 +399,6 @@ ppr (AntiParams v _) = pprAnti "params" v ppr (AntiParam v _) = pprAnti "param" v -instance Show Param where- showsPrec p = shows . pprPrec p- instance Pretty Params where ppr (Params args True _) = commasep (map ppr args ++ [text "..."])@@ -445,9 +406,6 @@ ppr (Params args False _) = commasep (map ppr args) -instance Show Params where- showsPrec p = shows . pprPrec p- instance Pretty Func where ppr (Func spec ident decl args body loc) = ppr spec <> pprDeclarator (Just ident) (Proto decl args loc)@@ -461,13 +419,51 @@ stack (zipWith (<>) (map ppr initgroups) (repeat semi)) </> ppr body -instance Show Func where- showsPrec p = shows . pprPrec p- instance Pretty Definition where- ppr (FuncDef func loc) = srcloc loc <> ppr func- ppr (DecDef initgroup loc) = srcloc loc <> ppr initgroup <> semi- ppr (EscDef s loc) = srcloc loc <> text s+ ppr (FuncDef func loc) = srcloc loc <> ppr func+ ppr (DecDef initgroup loc) = srcloc loc <> ppr initgroup <> semi+ ppr (EscDef s loc) = srcloc loc <> text s+ ppr (ObjCClassDec clss loc) = srcloc loc <> text "@class" <+> commasep (map ppr clss) <> semi+ ppr (ObjCClassIface cident sident refs ivars decls attrs loc)+ = srcloc loc+ <> case attrs of+ [] -> empty+ _ -> ppr attrs <> softline+ <> text "@interface" <+> ppr cident <+> maybe empty (\ident -> char ':' <+> ppr ident) sident + <+> pprIfaceBody refs ivars decls+ ppr (ObjCCatIface cident catident refs ivars decls loc)+ = srcloc loc+ <> text "@interface" <+> ppr cident <+> parens (maybe empty ppr catident) <+> pprIfaceBody refs ivars decls+ ppr (ObjCProtDec prots loc) = srcloc loc <> text "@protocol" <+> commasep (map ppr prots) <> semi+ ppr (ObjCProtDef pident refs decls loc)+ = srcloc loc+ <> text "@protocol" <+> ppr pident <+> pprIfaceBody refs [] decls+ ppr (ObjCClassImpl cident sident ivars defs loc)+ = srcloc loc+ <> text "@implementation" <+> ppr cident <+> maybe empty (\ident -> char ':' <+> ppr ident) sident+ </> stack (map ppr ivars)+ <//> stack (map ppr defs)+ </> text "@end"+ ppr (ObjCCatImpl cident catident defs loc)+ = srcloc loc+ <> text "@implementation" <+> ppr cident <+> parens (ppr catident)+ <//> stack (map ppr defs)+ </> text "@end"+ ppr (ObjCSynDef pivars loc)+ = srcloc loc+ <> text "@synthesize" <+> commasep (map pprPivar pivars) <> semi+ where+ pprPivar (ident, Nothing) = ppr ident+ pprPivar (ident1, Just ident2) = ppr ident1 <> char '=' <> ppr ident2+ ppr (ObjCDynDef pivars loc)+ = srcloc loc+ <> text "@dynamic" <+> commasep (map ppr pivars) <> semi+ ppr (ObjCMethDef proto body loc)+ = srcloc loc+ <> ppr proto </> ppr body+ ppr (ObjCCompAlias aident cident loc)+ = srcloc loc+ <> text "@compatibility_alias" <+> ppr aident <+> ppr cident ppr (AntiFunc v _) = pprAnti "func" v ppr (AntiEsc v _) = pprAnti "esc" v@@ -476,9 +472,82 @@ pprList ds = stack (map ppr ds) <> line -instance Show Definition where- showsPrec p = shows . pprPrec p+pprIfaceBody :: [Id] -> [ObjCIvarDecl] -> [ObjCIfaceDecl] -> Doc+pprIfaceBody refs ivars decls+ = case refs of+ [] -> empty+ _ -> angleList (map ppr refs)+ </> stack (map ppr ivars)+ <//> stack (map ppr decls)+ </> text "@end" +instance Pretty ObjCIvarDecl where+ ppr (ObjCIvarVisi visi loc) = pprLoc loc $ ppr visi+ ppr (ObjCIvarDecl field loc) = pprLoc loc $ ppr field <> semi++instance Pretty ObjCVisibilitySpec where+ ppr (ObjCPrivate _loc) = text "@private"+ ppr (ObjCPublic _loc) = text "@public"+ ppr (ObjCProtected _loc) = text "@protected"+ ppr (ObjCPackage _loc) = text "@package"++instance Pretty ObjCIfaceDecl where+ ppr (ObjCIfaceProp attrs field loc) + = pprLoc loc $ + text "@property"+ <+> case attrs of+ [] -> empty+ _ -> parensList (map ppr attrs)+ <> ppr field+ <> semi+ ppr (ObjCIfaceReq req loc) + = pprLoc loc $ ppr req+ ppr (ObjCIfaceMeth proto _loc) + = ppr proto+ <> semi+ ppr (ObjCIfaceDecl decl loc) + = pprLoc loc $ ppr decl++instance Pretty ObjCPropAttr where+ ppr (ObjCGetter ident loc) = pprLoc loc $ text "getter=" <> ppr ident+ ppr (ObjCSetter ident loc) = pprLoc loc $ text "setter=" <> ppr ident <> colon+ ppr (ObjCReadonly loc) = pprLoc loc $ text "readonly"+ ppr (ObjCReadwrite loc) = pprLoc loc $ text "readwrite"+ ppr (ObjCAssign loc) = pprLoc loc $ text "assign"+ ppr (ObjCRetain loc) = pprLoc loc $ text "retain"+ ppr (ObjCCopy loc) = pprLoc loc $ text "copy"+ ppr (ObjCNonatomic loc) = pprLoc loc $ text "nonatomic"+ ppr (ObjCAtomic loc) = pprLoc loc $ text "atomic"+ ppr (ObjCStrong loc) = pprLoc loc $ text "strong"+ ppr (ObjCWeak loc) = pprLoc loc $ text "weak"+ ppr (ObjCUnsafeRetained loc) = pprLoc loc $ text "unsafe_retained"++instance Pretty ObjCMethodReq where+ ppr (ObjCRequired _loc) = text "@required"+ ppr (ObjCOptional _loc) = text "@optional"++instance Pretty ObjCParm where+ ppr (ObjCParm sel ty attrs arg loc)+ = pprLoc loc $+ maybe empty ppr sel+ <> case (sel, arg) of+ (Nothing , Nothing) -> error $ "pretty printing 'ObjCParm': empty " ++ show loc+ (Just sid, Nothing) -> ppr sid+ (_ , Just pid) + -> maybe empty ppr sel <> colon <> maybe empty (parens . ppr) ty <> ppr attrs <> ppr pid++instance Pretty ObjCMethodProto where+ ppr (ObjCMethodProto isClassMeth resTy attrs1 parms vargs attrs2 loc) + = pprLoc loc $+ (if isClassMeth then char '+' else char '-')+ <+> maybe empty (parens . ppr) resTy+ <> case attrs1 of+ [] -> empty+ _ -> space <> ppr attrs1 <> space+ <> spread (map ppr parms) + <> if vargs then text ", ..." else empty+ <> ppr attrs2+ instance Pretty Stm where ppr (Label ident stm sloc) = srcloc sloc <>@@ -570,28 +639,58 @@ [] -> space <> colon _ -> colon <+/> commasep (map pprReg outputs) - pprAsm inputs clobbered =+ pprAsm inp clob = spread (map text template) <> case outputs of [] -> space <> colon _ -> colon <+/> commasep (map pprReg outputs)- <> case inputs of+ <> case inp of [] -> space <> colon _ -> colon <+/> commasep (map pprReg inputs)- <> case clobbered of+ <> case clob of [] -> space <> colon _ -> colon <+/> commasep (map text clobbered) pprReg :: (String, Exp) -> Doc pprReg (reg, e) = text reg <+> parens (ppr e) + ppr (ObjCTry try catchs finally sloc) =+ srcloc sloc+ <> text "@try" + </> ppr try+ </> stack (map ppr catchs)+ </> case finally of+ Nothing -> empty+ Just block -> text "@finally" </> ppr block++ ppr (ObjCThrow e sloc) =+ srcloc sloc + <> text "@throw" + <> case e of + Nothing -> semi+ Just e' -> space <> ppr e' <> semi++ ppr (ObjCSynchronized e block sloc) =+ srcloc sloc+ <> text "@synchronized" <+> parens (ppr e)+ </> ppr block++ ppr (ObjCAutoreleasepool block sloc) =+ srcloc sloc+ <> text "@autoreleasepool"+ </> ppr block+ ppr (AntiPragma v _) = pprAnti "pragma" v ppr (AntiStm v _) = pprAnti "stm" v ppr (AntiStms v _) = pprAnti "stms" v -instance Show Stm where- showsPrec p = shows . pprPrec p-+instance Pretty ObjCCatch where+ ppr (ObjCCatch Nothing block loc) = srcloc loc <> text "@catch (...)" <+> ppr block+ ppr (ObjCCatch (Just parm) block loc) = srcloc loc + <> text "@catch" <+> parens (ppr parm) <+> ppr block+ + pprList = stack . map ppr+ instance Pretty BlockItem where ppr (BlockDecl decl) = ppr decl <> semi ppr (BlockStm stm) = ppr stm@@ -619,9 +718,6 @@ nest 4 (line <> stack ds) </> rbrace -instance Show BlockItem where- showsPrec p = shows . pprPrec p- instance Pretty Const where ppr (IntConst s _ _ _) = text s ppr (LongIntConst s _ _ _) = text s@@ -644,9 +740,6 @@ ppr (AntiUInt v _) = pprAnti "uint" v ppr (AntiInt v _) = pprAnti "int" v -instance Show Const where- showsPrec p = shows . pprPrec p- instance Pretty Exp where pprPrec _ (Var ident loc) = pprLoc loc $ ppr ident pprPrec _ (Const k loc) = pprLoc loc $ ppr k@@ -725,11 +818,11 @@ parensIf (p > 15) $ pprPrec 15 f <> parensList (map ppr args) - pprPrec p (CudaCall f conf args loc) =+ pprPrec p (CudaCall f config args loc) = pprLoc loc $ parensIf (p > 15) $ pprPrec 15 f <>- text "<<<" <> pprConfig conf <> text ">>>" <>+ text "<<<" <> pprConfig config <> text ">>>" <> parensList (map ppr args) where pprConfig :: ExeConfig -> Doc@@ -755,8 +848,8 @@ braces (commasep (map pprInit inits)) where pprInit :: (Maybe Designation, Initializer) -> Doc- pprInit (Nothing, init) = ppr init- pprInit (Just d, init) = ppr d <+> text "=" <+/> ppr init+ pprInit (Nothing, ini) = ppr ini+ pprInit (Just d, ini) = ppr d <+> text "=" <+/> ppr ini pprPrec _ (StmExpr blockItems loc) = pprLoc loc $ parens $@@ -766,13 +859,77 @@ pprLoc loc $ text "__builtin_va_arg(" <> ppr e <> comma <+> ppr ty <> rparen + pprPrec _ (BlockLit ty attrs block loc) =+ pprLoc loc $+ char '^' <> ppr ty <>+ (if null attrs then empty else softline <> ppr attrs) <+>+ ppr block++ pprPrec _ (ObjCMsg recv args varArgs loc1) =+ pprLoc loc1 $+ brackets $+ ppr recv <+/>+ nest 2 (pprMsgArgs args)+ where+ pprMsgArgs ([ObjCArg (Just sel) Nothing loc]) = pprLoc loc $ ppr sel+ pprMsgArgs _ = sep (map pprMsgArg args) <>+ cat (map pprVarArg varArgs)+ + pprMsgArg (ObjCArg (Just sel) (Just e) loc) = pprLoc loc $ ppr sel <> colon <+> ppr e+ pprMsgArg (ObjCArg Nothing (Just e) loc) = pprLoc loc $ colon <+> ppr e+ pprMsgArg (ObjCArg _ Nothing loc) + = error $ "pretty printing 'ObjCArg': missing expression at " ++ show loc++ pprVarArg e = comma <+> ppr e++ pprPrec _ (ObjCLitConst op c loc) =+ srcloc loc <>+ char '@' <>+ maybe empty ppr op <>+ ppr c++ pprPrec _ (ObjCLitString strs loc) =+ srcloc loc <>+ spread (map ((char '@' <>) . ppr) strs)++ pprPrec _ (ObjCLitBool False loc) =+ srcloc loc <>+ text "@NO"++ pprPrec _ (ObjCLitBool True loc) =+ srcloc loc <>+ text "@YES"++ pprPrec _ (ObjCLitArray es loc) =+ srcloc loc <>+ char '@' <> brackets+ (commasep (map ppr es))+ + pprPrec _ (ObjCLitDict as loc) =+ srcloc loc <>+ char '@' <> braces+ (commasep (map (\(l, r) -> ppr l <+> colon <+> ppr r) as))++ pprPrec _ (ObjCLitBoxed e loc) =+ srcloc loc <>+ char '@' <> parens (ppr e)+ + pprPrec _ (ObjCEncode t loc) =+ srcloc loc <>+ text "@encode" <> parens (ppr t)+ + pprPrec _ (ObjCProtocol ident loc) =+ srcloc loc <>+ text "@protocol" <> parens (ppr ident)+ + pprPrec _ (ObjCSelector sel loc) =+ srcloc loc <>+ text "@selector" <> parens (text sel)+ pprPrec _ (AntiArgs v _) = pprAnti "args" v pprPrec _ (AntiExp v _) = pprAnti "var" v -instance Show Exp where- showsPrec p = shows . pprPrec p- instance Pretty BinOp where ppr Add = text "+" ppr Sub = text "-"@@ -793,9 +950,6 @@ ppr Lsh = text "<<" ppr Rsh = text ">>" -instance Show BinOp where- showsPrec p = shows . pprPrec p- instance Pretty AssignOp where ppr JustAssign = text "=" ppr AddAssign = text "+="@@ -809,9 +963,6 @@ ppr XorAssign = text "^=" ppr OrAssign = text "|=" -instance Show AssignOp where- showsPrec p = shows . pprPrec p- instance Pretty UnOp where ppr AddrOf = text "&" ppr Deref = text "*"@@ -820,5 +971,13 @@ ppr Not = text "~" ppr Lnot = text "!" -instance Show UnOp where- showsPrec p = shows . pprPrec p+instance Pretty BlockType where+ ppr (BlockVoid _loc) = empty+ ppr (BlockParam params loc) = pprLoc loc $ parens (commasep (map ppr params))+ ppr (BlockType ty loc) = pprLoc loc $ ppr ty++instance Pretty ObjCRecv where+ ppr (ObjCRecvSuper loc) = pprLoc loc $ text "super"+ ppr (ObjCRecvExp e loc) = pprLoc loc $ ppr e+ ppr (ObjCRecvClassName className loc) = pprLoc loc $ ppr className+ ppr (ObjCRecvTypeName typeName loc) = pprLoc loc $ ppr typeName
Language/C/Quote.hs view
@@ -1,15 +1,15 @@ -- | -- Module : Language.C.Quote -- Copyright : (c) Harvard University 2010-2011--- (c) Geoffrey Mainland 2011-2012+-- (c) Geoffrey Mainland 2011-2013 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu ----- There are four modules that provide quasiquoters, each for a different C+-- There are five 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, 'Language.C.Quote.CUDA' parses C99 plus GNU and CUDA--- extensions, and 'Language.C.Quote.OpenCL' parses C99 plus GNU and OpenCL--- extensions.+-- extensions, 'Language.C.Quote.OpenCL' parses C99 plus GNU and OpenCL+-- extensions and, 'Language.C.Quote.ObjC' parses C99 plus a subset of Objective-C -- -- 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@@ -38,6 +38,9 @@ -- -- [@cstm@] Statement, of type @'Stm'@. --+-- [@citem@] Block item, of type @'BlockItem'@. A block item is either a+-- declaration or a statement.+-- -- [@cfun@] Function definition, of type @'Func'@. -- -- [@cinit@] Initializer, of type @'Initializer'@.@@ -152,9 +155,17 @@ -- @['Param']@. -- -- [@pragma@] A pragma statement. The argument must have type @'String'@.+--+-- [@init@] An initializer. The argument must have type @'Initializer'@.+--+-- [@inits@] A list of initializers. The argument must have type+-- @['Initializer']@. -------------------------------------------------------------------------------- -module Language.C.Quote where+module Language.C.Quote (+ module Language.C.Quote.Base,+ module Language.C.Syntax+ ) where import Language.C.Quote.Base import Language.C.Syntax
Language/C/Quote/Base.hs view
@@ -1,7 +1,7 @@ -- | -- Module : Language.C.Quote -- Copyright : (c) Harvard University 2006-2011--- (c) Geoffrey Mainland 2011-2012+-- (c) Geoffrey Mainland 2011-2013 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu @@ -21,8 +21,10 @@ import Control.Monad ((>=>)) import qualified Data.ByteString.Char8 as B-import Data.Generics+import Data.Data (Data(..))+import Data.Generics (extQ) import Data.Loc+import Data.Typeable (Typeable(..)) import Language.Haskell.Meta (parseExp, parsePat) import Language.Haskell.TH #if MIN_VERSION_template_haskell(2,7,0)@@ -100,6 +102,17 @@ qqTypeE (C.AntiType v _) = Just $ antiVarE v qqTypeE _ = Nothing +qqInitializerE :: C.Initializer -> Maybe (Q Exp)+qqInitializerE (C.AntiInit v _) = Just $ antiVarE v+qqInitializerE _ = Nothing++qqInitializerListE :: [(Maybe C.Designation, C.Initializer)] -> Maybe (Q Exp)+qqInitializerListE [] = Just [|[]|]+qqInitializerListE ((Nothing, C.AntiInits v _) : fields) =+ Just [|[(Nothing, init) | init <- $(antiVarE v)] ++ $(dataToExpQ qqExp fields)|]+qqInitializerListE (field : fields) =+ Just [|$(dataToExpQ qqExp field) : $(dataToExpQ qqExp fields)|]+ qqInitGroupE :: C.InitGroup -> Maybe (Q Exp) qqInitGroupE (C.AntiDecl v _) = Just $ antiVarE v qqInitGroupE _ = Nothing@@ -269,6 +282,8 @@ `extQ` qqDeclSpecE `extQ` qqDeclE `extQ` qqTypeE+ `extQ` qqInitializerE+ `extQ` qqInitializerListE `extQ` qqInitGroupE `extQ` qqInitGroupListE `extQ` qqFieldGroupE@@ -315,6 +330,18 @@ qqTypeP (C.AntiType v _) = Just $ antiVarP v qqTypeP _ = Nothing +qqInitializerP :: C.Initializer -> Maybe (Q Pat)+qqInitializerP (C.AntiInit v _) = Just $ antiVarP v+qqInitializerP _ = Nothing++qqInitializerListP :: [C.Initializer] -> Maybe (Q Pat)+qqInitializerListP [] = Just $ listP []+qqInitializerListP [C.AntiInits v _] = Just $ antiVarP v+qqInitializerListP (C.AntiInits {} : _ : _) =+ error "Antiquoted list of initializers must be last item in quoted list"+qqInitializerListP (ini : inis) =+ Just $ conP (mkName ":") [dataToPatQ qqPat ini, dataToPatQ qqPat inis]+ qqInitGroupP :: C.InitGroup -> Maybe (Q Pat) qqInitGroupP (C.AntiDecl v _) = Just $ antiVarP v qqInitGroupP _ = Nothing@@ -453,6 +480,8 @@ `extQ` qqDeclSpecP `extQ` qqDeclP `extQ` qqTypeP+ `extQ` qqInitializerP+ `extQ` qqInitializerListP `extQ` qqInitGroupP `extQ` qqInitGroupListP `extQ` qqFieldGroupP
Language/C/Quote/C.hs view
@@ -1,7 +1,7 @@ -- | -- Module : Language.C.Quote.C -- Copyright : (c) Harvard University 2006-2011--- (c) Geoffrey Mainland 2011-2012+-- (c) Geoffrey Mainland 2011-2013 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu @@ -16,6 +16,7 @@ cparam, cinit, cstm,+ citem, cunit, cfun ) where@@ -23,6 +24,7 @@ import qualified Language.C.Parser as P import qualified Language.C.Syntax as C import Language.C.Quote.Base (ToExp(..), quasiquote)+import Language.Haskell.TH.Quote (QuasiQuoter) exts :: [C.Extensions] exts = []@@ -30,6 +32,8 @@ typenames :: [String] typenames = [] +cdecl, cedecl, cenum, cexp, cfun, cinit, cparam, csdecl, cstm :: QuasiQuoter+citem, cty, cunit :: QuasiQuoter cdecl = quasiquote exts typenames P.parseDecl cedecl = quasiquote exts typenames P.parseEdecl cenum = quasiquote exts typenames P.parseEnum@@ -39,5 +43,6 @@ cparam = quasiquote exts typenames P.parseParam csdecl = quasiquote exts typenames P.parseStructDecl cstm = quasiquote exts typenames P.parseStm+citem = quasiquote exts typenames P.parseBlockItem cty = quasiquote exts typenames P.parseType cunit = quasiquote exts typenames P.parseUnit
Language/C/Quote/CUDA.hs view
@@ -1,7 +1,7 @@ -- | -- Module : Language.C.Quote.CUDA -- Copyright : (c) Harvard University 2006-2011--- (c) Geoffrey Mainland 2011-2012+-- (c) Geoffrey Mainland 2011-2013 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu @@ -16,6 +16,7 @@ cparam, cinit, cstm,+ citem, cunit, cfun ) where@@ -23,6 +24,7 @@ import qualified Language.C.Parser as P import qualified Language.C.Syntax as C import Language.C.Quote.Base (ToExp(..), quasiquote)+import Language.Haskell.TH.Quote (QuasiQuoter) exts :: [C.Extensions] exts = [C.CUDA]@@ -38,6 +40,8 @@ typeN :: Int -> String -> [String] typeN k typename = [typename ++ show n | n <- [1..k]] +cdecl, cedecl, cenum, cexp, cfun, cinit, cparam, csdecl, cstm :: QuasiQuoter+citem, cty, cunit :: QuasiQuoter cdecl = quasiquote exts typenames P.parseDecl cedecl = quasiquote exts typenames P.parseEdecl cenum = quasiquote exts typenames P.parseEnum@@ -47,5 +51,6 @@ cparam = quasiquote exts typenames P.parseParam csdecl = quasiquote exts typenames P.parseStructDecl cstm = quasiquote exts typenames P.parseStm+citem = quasiquote exts typenames P.parseBlockItem cty = quasiquote exts typenames P.parseType cunit = quasiquote exts typenames P.parseUnit
Language/C/Quote/GCC.hs view
@@ -1,7 +1,7 @@ -- | -- Module : Language.C.Quote.C -- Copyright : (c) Harvard University 2006-2011--- (c) Geoffrey Mainland 2011-2012+-- (c) Geoffrey Mainland 2011-2013 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu @@ -16,6 +16,7 @@ cparam, cinit, cstm,+ citem, cunit, cfun ) where@@ -23,6 +24,7 @@ import qualified Language.C.Parser as P import qualified Language.C.Syntax as C import Language.C.Quote.Base (ToExp(..), quasiquote)+import Language.Haskell.TH.Quote (QuasiQuoter) exts :: [C.Extensions] exts = [C.Gcc]@@ -30,6 +32,8 @@ typenames :: [String] typenames = [] +cdecl, cedecl, cenum, cexp, cfun, cinit, cparam, csdecl, cstm :: QuasiQuoter+citem, cty, cunit :: QuasiQuoter cdecl = quasiquote exts typenames P.parseDecl cedecl = quasiquote exts typenames P.parseEdecl cenum = quasiquote exts typenames P.parseEnum@@ -39,5 +43,6 @@ cparam = quasiquote exts typenames P.parseParam csdecl = quasiquote exts typenames P.parseStructDecl cstm = quasiquote exts typenames P.parseStm+citem = quasiquote exts typenames P.parseBlockItem cty = quasiquote exts typenames P.parseType cunit = quasiquote exts typenames P.parseUnit
+ Language/C/Quote/ObjC.hs view
@@ -0,0 +1,49 @@+-- |+-- Module : Language.C.Quote.ObjC+-- Copyright : (c) Harvard University 2006-2011+-- (c) Geoffrey Mainland 2011-2013+-- (c) Manuel M T Chakravarty 2013+-- License : BSD-style+-- Maintainer : mainland@eecs.harvard.edu++module Language.C.Quote.ObjC (+ ToExp(..),+ cexp,+ cedecl,+ cdecl,+ csdecl,+ cenum,+ cty,+ cparam,+ cinit,+ cstm,+ citem,+ cunit,+ cfun+ ) where++import qualified Language.C.Parser as P+import qualified Language.C.Syntax as C+import Language.C.Quote.Base (ToExp(..), quasiquote)+import Language.Haskell.TH.Quote (QuasiQuoter)++exts :: [C.Extensions]+exts = [C.ObjC]++typenames :: [String]+typenames = ["id"]++cdecl, cedecl, cenum, cexp, cfun, cinit, cparam, csdecl, cstm :: QuasiQuoter+citem, cty, cunit :: QuasiQuoter+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+citem = quasiquote exts typenames P.parseBlockItem+cty = quasiquote exts typenames P.parseType+cunit = quasiquote exts typenames P.parseUnit
Language/C/Quote/OpenCL.hs view
@@ -1,8 +1,9 @@ -- | -- Module : Language.C.Quote.OpenCL -- Copyright : (c) Harvard University 2006-2011+-- (c) Geoffrey Mainland 2011-2013 -- License : BSD-style--- Maintainer : Martin Dybdal <dybber@dybber.dk>+-- Maintainer : mainland@eecs.harvard.edu module Language.C.Quote.OpenCL ( ToExp(..),@@ -15,6 +16,7 @@ cparam, cinit, cstm,+ citem, cunit, cfun ) where@@ -22,11 +24,11 @@ import qualified Language.C.Parser as P import qualified Language.C.Syntax as C import Language.C.Quote.Base (ToExp(..), quasiquote)+import Language.Haskell.TH.Quote (QuasiQuoter) exts :: [C.Extensions] exts = [C.OpenCL] - typenames :: [String] typenames = concatMap typeN@@ -36,8 +38,10 @@ "half", "quad", "image2d_t", "image3d_t", "sampler_t", "event_t"] typeN :: String -> [String]-typeN typename = [typename ++ show n | n <- [2, 3, 4, 8, 16]]+typeN typename = [typename ++ show n | n <- [2, 3, 4, 8, 16 :: Integer]] +cdecl, cedecl, cenum, cexp, cfun, cinit, cparam, csdecl, cstm :: QuasiQuoter+citem, cty, cunit :: QuasiQuoter cdecl = quasiquote exts typenames P.parseDecl cedecl = quasiquote exts typenames P.parseEdecl cenum = quasiquote exts typenames P.parseEnum@@ -47,5 +51,6 @@ cparam = quasiquote exts typenames P.parseParam csdecl = quasiquote exts typenames P.parseStructDecl cstm = quasiquote exts typenames P.parseStm+citem = quasiquote exts typenames P.parseBlockItem cty = quasiquote exts typenames P.parseType cunit = quasiquote exts typenames P.parseUnit
Language/C/Smart.hs view
@@ -1,12 +1,13 @@ -- | -- Module : Language.C.Smart -- Copyright : (c) Harvard University 2010-2011--- (c) Geoffrey Mainland 2011-2012+-- (c) Geoffrey Mainland 2011-2013 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu {-# LANGUAGE CPP #-} {-# LANGUAGE QuasiQuotes #-}+{-# OPTIONS_GHC -fno-warn-orphans #-} module Language.C.Smart where
Language/C/Syntax.hs view
@@ -1,7 +1,8 @@ -- | -- Module : Language.C.Syntax -- Copyright : (c) Harvard University 2006-2011--- (c) Geoffrey Mainland 2011-2012+-- (c) Geoffrey Mainland 2011-2013+-- (c) Manuel M T Chakravarty 2013 -- License : BSD-style -- Maintainer : mainland@eecs.harvard.edu @@ -11,19 +12,20 @@ module Language.C.Syntax where -import Data.Generics-+import Data.Data (Data(..)) import Data.Loc+import Data.Typeable (Typeable(..)) data Extensions = Antiquotation | Gcc | CUDA | OpenCL+ | ObjC deriving (Eq, Ord, Enum, Show) data Id = Id String !SrcLoc | AntiId String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Storage = Tauto !SrcLoc | Tregister !SrcLoc@@ -31,7 +33,11 @@ | Textern !SrcLoc | TexternL String !SrcLoc | Ttypedef !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ | T__block !SrcLoc -- Extension: clang blocks extension+ | TObjC__weak !SrcLoc -- Extension: Objective-C+ | TObjC__strong !SrcLoc -- Extension: Objective-C+ | TObjC__unsafe_retained !SrcLoc -- Extension: Objective-C+ deriving (Eq, Ord, Show, Data, Typeable) data TypeQual = Tconst !SrcLoc | Tvolatile !SrcLoc@@ -57,11 +63,11 @@ | TCLreadonly !SrcLoc | TCLwriteonly !SrcLoc | TCLkernel !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Sign = Tsigned !SrcLoc | Tunsigned !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data TypeSpec = Tvoid !SrcLoc | Tchar (Maybe Sign) !SrcLoc@@ -75,16 +81,16 @@ | Tstruct (Maybe Id) (Maybe [FieldGroup]) [Attr] !SrcLoc | Tunion (Maybe Id) (Maybe [FieldGroup]) [Attr] !SrcLoc | Tenum (Maybe Id) [CEnum] [Attr] !SrcLoc- | Tnamed Id !SrcLoc+ | Tnamed Id [Id] !SrcLoc -- the '[Id]' are Objective-C protocol references | TtypeofExp Exp !SrcLoc | TtypeofType Type !SrcLoc | Tva_list !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data DeclSpec = DeclSpec [Storage] [TypeQual] TypeSpec !SrcLoc | AntiDeclSpec String !SrcLoc | AntiTypeDeclSpec [Storage] [TypeQual] String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) -- | There are two types of declarators in C, regular declarators and abstract -- declarators. The former is for declaring variables, function parameters,@@ -96,82 +102,143 @@ data ArraySize = ArraySize Bool Exp !SrcLoc | VariableArraySize !SrcLoc | NoArraySize !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Decl = DeclRoot !SrcLoc | Ptr [TypeQual] Decl !SrcLoc+ | BlockPtr [TypeQual] Decl !SrcLoc -- Extension: clang blocks extension | Array [TypeQual] ArraySize Decl !SrcLoc | Proto Decl Params !SrcLoc | OldProto Decl [Id] !SrcLoc | AntiTypeDecl String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Type = Type DeclSpec Decl !SrcLoc | AntiType String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Designator = IndexDesignator Exp !SrcLoc | MemberDesignator Id !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Designation = Designation [Designator] !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Initializer = ExpInitializer Exp !SrcLoc | CompoundInitializer [(Maybe Designation, Initializer)] !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ | AntiInit String !SrcLoc+ | AntiInits String !SrcLoc+ deriving (Eq, Ord, Show, Data, Typeable) type AsmLabel = String data Init = Init Id Decl (Maybe AsmLabel) (Maybe Initializer) [Attr] !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Typedef = Typedef Id Decl [Attr] !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data InitGroup = InitGroup DeclSpec [Attr] [Init] !SrcLoc | TypedefGroup DeclSpec [Attr] [Typedef] !SrcLoc | AntiDecl String !SrcLoc | AntiDecls String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Field = Field (Maybe Id) (Maybe Decl) (Maybe Exp) !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data FieldGroup = FieldGroup DeclSpec [Field] !SrcLoc | AntiSdecl String !SrcLoc | AntiSdecls String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data CEnum = CEnum Id (Maybe Exp) !SrcLoc | AntiEnum String !SrcLoc | AntiEnums String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Attr = Attr Id [Exp] !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Param = Param (Maybe Id) DeclSpec Decl !SrcLoc | AntiParam String !SrcLoc | AntiParams String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Params = Params [Param] Bool !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Func = Func DeclSpec Id Decl Params [BlockItem] !SrcLoc | OldFunc DeclSpec Id Decl [Id] (Maybe [InitGroup]) [BlockItem] !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Definition = FuncDef Func !SrcLoc | DecDef InitGroup !SrcLoc | EscDef String !SrcLoc+ | ObjCClassDec [Id] !SrcLoc+ | ObjCClassIface Id (Maybe Id) [Id] [ObjCIvarDecl] [ObjCIfaceDecl] [Attr] !SrcLoc+ | ObjCCatIface Id (Maybe Id) [Id] [ObjCIvarDecl] [ObjCIfaceDecl] !SrcLoc+ | ObjCProtDec [Id] !SrcLoc+ | ObjCProtDef Id [Id] [ObjCIfaceDecl] !SrcLoc+ | ObjCClassImpl Id (Maybe Id) [ObjCIvarDecl] [Definition] !SrcLoc+ | ObjCCatImpl Id Id [Definition] !SrcLoc+ | ObjCSynDef [(Id, Maybe Id)] !SrcLoc+ | ObjCDynDef [Id] !SrcLoc+ | ObjCMethDef ObjCMethodProto [BlockItem] !SrcLoc+ | ObjCCompAlias Id Id !SrcLoc+ -- -=chak FIXME: do we need an AntiObjCMeth? | AntiFunc String !SrcLoc | AntiEsc String !SrcLoc | AntiEdecl String !SrcLoc | AntiEdecls String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) +data ObjCIvarDecl = ObjCIvarVisi ObjCVisibilitySpec !SrcLoc+ | ObjCIvarDecl FieldGroup !SrcLoc+ -- -=chak FIXME: needs ANTI forms+ deriving (Eq, Ord, Show, Data, Typeable)++data ObjCVisibilitySpec = ObjCPrivate !SrcLoc+ | ObjCPublic !SrcLoc+ | ObjCProtected !SrcLoc+ | ObjCPackage !SrcLoc+ deriving (Eq, Ord, Show, Data, Typeable)++data ObjCIfaceDecl = ObjCIfaceProp [ObjCPropAttr] FieldGroup !SrcLoc+ | ObjCIfaceReq ObjCMethodReq !SrcLoc+ | ObjCIfaceMeth ObjCMethodProto !SrcLoc+ | ObjCIfaceDecl InitGroup !SrcLoc+ -- -=chak FIXME: needs ANTI forms+ deriving (Eq, Ord, Show, Data, Typeable)++data ObjCPropAttr = ObjCGetter Id !SrcLoc+ | ObjCSetter Id !SrcLoc+ | ObjCReadonly !SrcLoc+ | ObjCReadwrite !SrcLoc+ | ObjCAssign !SrcLoc+ | ObjCRetain !SrcLoc+ | ObjCCopy !SrcLoc+ | ObjCNonatomic !SrcLoc+ | ObjCAtomic !SrcLoc+ | ObjCStrong !SrcLoc+ | ObjCWeak !SrcLoc+ | ObjCUnsafeRetained !SrcLoc+ -- -=chak FIXME: needs ANTI forms+ deriving (Eq, Ord, Show, Data, Typeable)++data ObjCMethodReq = ObjCRequired !SrcLoc+ | ObjCOptional !SrcLoc+ deriving (Eq, Ord, Show, Data, Typeable)++data ObjCParm = ObjCParm (Maybe Id) (Maybe Type) [Attr] (Maybe Id) !SrcLoc+ -- -=chak FIXME: provide an ANTI form (singular and plural)+ deriving (Eq, Ord, Show, Data, Typeable)++data ObjCMethodProto = ObjCMethodProto Bool (Maybe Type) [Attr] [ObjCParm] Bool [Attr] !SrcLoc+ -- ^Invariant: First parameter must at least either have a selector or+ -- an identifier; all other parameters must have an identifier.+ deriving (Eq, Ord, Show, Data, Typeable)+ data Stm = Label Id Stm !SrcLoc | Case Exp Stm !SrcLoc | Default Stm !SrcLoc@@ -191,27 +258,35 @@ | Asm Bool [Attr] [String] [(String, Exp)] [(String, Exp)] [String] !SrcLoc+ | ObjCTry [BlockItem] [ObjCCatch] (Maybe [BlockItem]) !SrcLoc+ -- ^Invariant: There is either at least one 'ObjCCatch' or the finally block is present.+ | ObjCThrow (Maybe Exp) !SrcLoc+ | ObjCSynchronized Exp [BlockItem] !SrcLoc+ | ObjCAutoreleasepool [BlockItem] !SrcLoc | AntiPragma String !SrcLoc | AntiStm String !SrcLoc | AntiStms String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data BlockItem = BlockDecl InitGroup | BlockStm Stm | AntiBlockItem String !SrcLoc | AntiBlockItems String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) +data ObjCCatch = ObjCCatch (Maybe Param) [BlockItem] !SrcLoc+ deriving (Eq, Ord, Show, Data, Typeable)+ funcProto :: Func -> InitGroup-funcProto f@(Func decl_spec id decl params _ _) =+funcProto f@(Func decl_spec ident decl params _ _) = InitGroup decl_spec []- [Init id (Proto decl params l) Nothing Nothing [] l] l+ [Init ident (Proto decl params l) Nothing Nothing [] l] l where l = srclocOf f -funcProto f@(OldFunc decl_spec id decl params _ _ _) =+funcProto f@(OldFunc decl_spec ident decl params _ _ _) = InitGroup decl_spec []- [Init id (OldProto decl params l) Nothing Nothing [] l] l+ [Init ident (OldProto decl params l) Nothing Nothing [] l] l where l = srclocOf f @@ -220,6 +295,7 @@ where go (DeclRoot _) = False go (Ptr _ _ _) = True+ go (BlockPtr _ _ _) = True go (Array _ _ _ _) = True go (Proto _ _ _) = False go (OldProto _ _ _) = False@@ -228,7 +304,7 @@ data Signed = Signed | Unsigned- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Const = IntConst String Signed Integer !SrcLoc | LongIntConst String Signed Integer !SrcLoc@@ -249,7 +325,7 @@ | AntiLongDouble String !SrcLoc | AntiChar String !SrcLoc | AntiString String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data ExeConfig = ExeConfig { exeGridDim :: Exp@@ -258,7 +334,7 @@ , exeStream :: Maybe Exp , exeLoc :: !SrcLoc }- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data Exp = Var Id !SrcLoc | Const Const !SrcLoc@@ -282,9 +358,22 @@ | CompoundLit Type [(Maybe Designation, Initializer)] !SrcLoc | StmExpr [BlockItem] !SrcLoc | BuiltinVaArg Exp Type !SrcLoc+ | BlockLit BlockType [Attr] [BlockItem] !SrcLoc -- Extension: clang blocks extension+ | ObjCMsg ObjCRecv [ObjCArg] [Exp] !SrcLoc+ -- ^Invariant: First argument must at least have either a selector or an expression;+ -- all other arguments must have an expression.+ | ObjCLitConst (Maybe UnOp) Const !SrcLoc -- anything, but 'StringConst'+ | ObjCLitString [Const] !SrcLoc -- they are all 'StringConst'+ | ObjCLitBool Bool !SrcLoc+ | ObjCLitArray [Exp] !SrcLoc+ | ObjCLitDict [(Exp, Exp)] !SrcLoc+ | ObjCLitBoxed Exp !SrcLoc+ | ObjCEncode Type !SrcLoc+ | ObjCProtocol Id !SrcLoc+ | ObjCSelector String !SrcLoc | AntiExp String !SrcLoc | AntiArgs String !SrcLoc- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data BinOp = Add | Sub@@ -304,7 +393,7 @@ | Xor | Lsh | Rsh- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data AssignOp = JustAssign | AddAssign@@ -317,7 +406,7 @@ | AndAssign | XorAssign | OrAssign- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) data UnOp = AddrOf | Deref@@ -325,19 +414,40 @@ | Negate | Not | Lnot- deriving (Eq, Ord, Data, Typeable)+ deriving (Eq, Ord, Show, Data, Typeable) +data BlockType = BlockVoid !SrcLoc+ | BlockParam [Param] !SrcLoc+ | BlockType Type !SrcLoc+ -- NB: Type may be something other than 'Proto', in which case clang defaults to+ -- regard the type as the return type and assume the arguments to be 'void'.+ deriving (Eq, Ord, Show, Data, Typeable)++data ObjCRecv = ObjCRecvSuper !SrcLoc+ | ObjCRecvExp Exp !SrcLoc+ | ObjCRecvClassName Id !SrcLoc+ | ObjCRecvTypeName Id !SrcLoc+ deriving (Eq, Ord, Show, Data, Typeable)++data ObjCArg = ObjCArg (Maybe Id) (Maybe Exp) !SrcLoc+ -- -=chak FIXME: provide an ANTI form (singular and plural)+ deriving (Eq, Ord, Show, Data, Typeable)+ instance Located Id where locOf (Id _ loc) = locOf loc locOf (AntiId _ loc) = locOf loc instance Located Storage where- locOf (Tauto loc) = locOf loc- locOf (Tregister loc) = locOf loc- locOf (Tstatic loc) = locOf loc- locOf (Textern loc) = locOf loc- locOf (TexternL _ loc) = locOf loc- locOf (Ttypedef loc) = locOf loc+ locOf (Tauto loc) = locOf loc+ locOf (Tregister loc) = locOf loc+ locOf (Tstatic loc) = locOf loc+ locOf (Textern loc) = locOf loc+ locOf (TexternL _ loc) = locOf loc+ locOf (Ttypedef loc) = locOf loc+ locOf (T__block loc) = locOf loc+ locOf (TObjC__weak loc) = locOf loc+ locOf (TObjC__strong loc) = locOf loc+ locOf (TObjC__unsafe_retained loc) = locOf loc instance Located TypeQual where locOf (Tconst loc) = locOf loc@@ -379,7 +489,7 @@ locOf (Tstruct _ _ _ loc) = locOf loc locOf (Tunion _ _ _ loc) = locOf loc locOf (Tenum _ _ _ loc) = locOf loc- locOf (Tnamed _ loc) = locOf loc+ locOf (Tnamed _ _ loc) = locOf loc locOf (TtypeofExp _ loc) = locOf loc locOf (TtypeofType _ loc) = locOf loc locOf (Tva_list loc) = locOf loc@@ -397,6 +507,7 @@ instance Located Decl where locOf (DeclRoot loc) = locOf loc locOf (Ptr _ _ loc) = locOf loc+ locOf (BlockPtr _ _ loc) = locOf loc locOf (Array _ _ _ loc) = locOf loc locOf (Proto _ _ loc) = locOf loc locOf (OldProto _ _ loc) = locOf loc@@ -416,6 +527,8 @@ instance Located Initializer where locOf (ExpInitializer _ loc) = locOf loc locOf (CompoundInitializer _ loc) = locOf loc+ locOf (AntiInit _ loc) = locOf loc+ locOf (AntiInits _ loc) = locOf loc instance Located Init where locOf (Init _ _ _ _ _ loc) = locOf loc@@ -458,34 +571,89 @@ locOf (OldFunc _ _ _ _ _ _ loc) = locOf loc instance Located Definition where- locOf (FuncDef _ loc) = locOf loc- locOf (DecDef _ loc) = locOf loc- locOf (EscDef _ loc) = locOf loc- locOf (AntiFunc _ loc) = locOf loc- locOf (AntiEsc _ loc) = locOf loc- locOf (AntiEdecl _ loc) = locOf loc- locOf (AntiEdecls _ loc) = locOf loc+ locOf (FuncDef _ loc) = locOf loc+ locOf (DecDef _ loc) = locOf loc+ locOf (EscDef _ loc) = locOf loc+ locOf (ObjCClassDec _ loc) = locOf loc+ locOf (ObjCClassIface _ _ _ _ _ _ loc) = locOf loc+ locOf (ObjCCatIface _ _ _ _ _ loc) = locOf loc+ locOf (ObjCProtDec _ loc) = locOf loc+ locOf (ObjCProtDef _ _ _ loc) = locOf loc+ locOf (ObjCClassImpl _ _ _ _ loc) = locOf loc+ locOf (ObjCCatImpl _ _ _ loc) = locOf loc+ locOf (ObjCSynDef _ loc) = locOf loc+ locOf (ObjCDynDef _ loc) = locOf loc+ locOf (ObjCMethDef _ _ loc) = locOf loc+ locOf (ObjCCompAlias _ _ loc) = locOf loc+ locOf (AntiFunc _ loc) = locOf loc+ locOf (AntiEsc _ loc) = locOf loc+ locOf (AntiEdecl _ loc) = locOf loc+ locOf (AntiEdecls _ loc) = locOf loc +instance Located ObjCIvarDecl where+ locOf (ObjCIvarVisi _ loc) = locOf loc+ locOf (ObjCIvarDecl _ loc) = locOf loc++instance Located ObjCVisibilitySpec where+ locOf (ObjCPrivate loc) = locOf loc+ locOf (ObjCPublic loc) = locOf loc+ locOf (ObjCProtected loc) = locOf loc+ locOf (ObjCPackage loc) = locOf loc++instance Located ObjCIfaceDecl where+ locOf (ObjCIfaceProp _ _ loc) = locOf loc+ locOf (ObjCIfaceReq _ loc) = locOf loc+ locOf (ObjCIfaceMeth _ loc) = locOf loc+ locOf (ObjCIfaceDecl _ loc) = locOf loc++instance Located ObjCPropAttr where+ locOf (ObjCGetter _ loc) = locOf loc+ locOf (ObjCSetter _ loc) = locOf loc+ locOf (ObjCReadonly loc) = locOf loc+ locOf (ObjCReadwrite loc) = locOf loc+ locOf (ObjCAssign loc) = locOf loc+ locOf (ObjCRetain loc) = locOf loc+ locOf (ObjCCopy loc) = locOf loc+ locOf (ObjCNonatomic loc) = locOf loc+ locOf (ObjCAtomic loc) = locOf loc+ locOf (ObjCStrong loc) = locOf loc+ locOf (ObjCWeak loc) = locOf loc+ locOf (ObjCUnsafeRetained loc) = locOf loc++instance Located ObjCMethodReq where+ locOf (ObjCRequired loc) = locOf loc+ locOf (ObjCOptional loc) = locOf loc++instance Located ObjCParm where+ locOf (ObjCParm _ _ _ _ loc) = locOf loc++instance Located ObjCMethodProto where+ locOf (ObjCMethodProto _ _ _ _ _ _ loc) = locOf loc+ instance Located Stm where- locOf (Label _ _ loc) = locOf loc- locOf (Case _ _ loc) = locOf loc- locOf (Default _ loc) = locOf loc- locOf (Exp _ loc) = locOf loc- locOf (Block _ loc) = locOf loc- locOf (If _ _ _ loc) = locOf loc- locOf (Switch _ _ loc) = locOf loc- locOf (While _ _ loc) = locOf loc- locOf (DoWhile _ _ loc) = locOf loc- locOf (For _ _ _ _ loc) = locOf loc- locOf (Goto _ loc) = locOf loc- locOf (Continue loc) = locOf loc- locOf (Break loc) = locOf loc- locOf (Return _ loc) = locOf loc- locOf (Pragma _ loc) = locOf loc- locOf (Asm _ _ _ _ _ _ loc) = locOf loc- locOf (AntiPragma _ loc) = locOf loc- locOf (AntiStm _ loc) = locOf loc- locOf (AntiStms _ loc) = locOf loc+ locOf (Label _ _ loc) = locOf loc+ locOf (Case _ _ loc) = locOf loc+ locOf (Default _ loc) = locOf loc+ locOf (Exp _ loc) = locOf loc+ locOf (Block _ loc) = locOf loc+ locOf (If _ _ _ loc) = locOf loc+ locOf (Switch _ _ loc) = locOf loc+ locOf (While _ _ loc) = locOf loc+ locOf (DoWhile _ _ loc) = locOf loc+ locOf (For _ _ _ _ loc) = locOf loc+ locOf (Goto _ loc) = locOf loc+ locOf (Continue loc) = locOf loc+ locOf (Break loc) = locOf loc+ locOf (Return _ loc) = locOf loc+ locOf (Pragma _ loc) = locOf loc+ locOf (Asm _ _ _ _ _ _ loc) = locOf loc+ locOf (ObjCTry _ _ _ loc) = locOf loc+ locOf (ObjCThrow _ loc) = locOf loc+ locOf (ObjCSynchronized _ _ loc) = locOf loc+ locOf (ObjCAutoreleasepool _ loc) = locOf loc+ locOf (AntiPragma _ loc) = locOf loc+ locOf (AntiStm _ loc) = locOf loc+ locOf (AntiStms _ loc) = locOf loc instance Located BlockItem where locOf (BlockDecl decl) = locOf decl@@ -493,6 +661,9 @@ locOf (AntiBlockItem _ loc) = locOf loc locOf (AntiBlockItems _ loc) = locOf loc +instance Located ObjCCatch where+ locOf (ObjCCatch _ _ loc) = locOf loc+ instance Located Const where locOf (IntConst _ _ _ loc) = locOf loc locOf (LongIntConst _ _ _ loc) = locOf loc@@ -540,12 +711,37 @@ locOf (CompoundLit _ _ loc) = locOf loc locOf (StmExpr _ loc) = locOf loc locOf (BuiltinVaArg _ _ loc) = locOf loc+ locOf (BlockLit _ _ _ loc) = locOf loc+ locOf (ObjCMsg _ _ _ loc) = locOf loc+ locOf (ObjCLitConst _ _ loc) = locOf loc+ locOf (ObjCLitString _ loc) = locOf loc+ locOf (ObjCLitBool _ loc) = locOf loc+ locOf (ObjCLitArray _ loc) = locOf loc+ locOf (ObjCLitDict _ loc) = locOf loc+ locOf (ObjCLitBoxed _ loc) = locOf loc+ locOf (ObjCEncode _ loc) = locOf loc+ locOf (ObjCProtocol _ loc) = locOf loc+ locOf (ObjCSelector _ loc) = locOf loc locOf (AntiExp _ loc) = locOf loc locOf (AntiArgs _ loc) = locOf loc +instance Located BlockType where+ locOf (BlockVoid loc) = locOf loc+ locOf (BlockParam _ loc) = locOf loc+ locOf (BlockType _ loc) = locOf loc++instance Located ObjCRecv where+ locOf (ObjCRecvSuper loc) = locOf loc+ locOf (ObjCRecvExp _ loc) = locOf loc+ locOf (ObjCRecvClassName _ loc) = locOf loc+ locOf (ObjCRecvTypeName _ loc) = locOf loc++instance Located ObjCArg where+ locOf (ObjCArg _ _ loc) = locOf loc+ ctypedef :: Id -> Decl -> [Attr] -> Typedef-ctypedef id decl attrs =- Typedef id decl attrs (id `srcspan` decl `srcspan` attrs)+ctypedef ident decl attrs =+ Typedef ident decl attrs (ident `srcspan` decl `srcspan` attrs) cdeclSpec :: [Storage] -> [TypeQual] -> TypeSpec -> DeclSpec cdeclSpec storage quals spec =
+ dist/build/Language/C/Parser/Lexer.hs view
@@ -0,0 +1,710 @@+{-# LANGUAGE CPP,MagicHash #-}+{-# LINE 3 "Language/C/Parser/Lexer.x" #-}++{-# OPTIONS -w #-}+{-# LANGUAGE CPP #-}++-- |+-- Module : Language.C.Parser.Lexer+-- Copyright : (c) Harvard University 2006-2011+-- (c) Geoffrey Mainland 2011-2013+-- License : BSD-style+-- Maintainer : mainland@eecs.harvard.edu++module Language.C.Parser.Lexer (+ lexToken+ ) where++import Control.Applicative+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\x52\x00\x00\x00\xa1\xff\xff\xff\xa2\xff\xff\xff\xa3\xff\xff\xff\xa5\xff\xff\xff\x96\xff\xff\xff\x9e\xff\xff\xff\xa9\xff\xff\xff\xa0\xff\xff\xff\xa4\xff\xff\xff\x95\xff\xff\xff\xac\xff\xff\xff\xa6\xff\xff\xff\xaf\xff\xff\xff\xd2\x00\x00\x00\x52\x01\x00\x00\xd2\x01\x00\x00\x52\x02\x00\x00\xb1\xff\xff\xff\xd2\x02\x00\x00\x52\x03\x00\x00\xd2\x03\x00\x00\x52\x04\x00\x00\xb3\xff\xff\xff\xb4\xff\xff\xff\xb0\xff\xff\xff\xf1\xff\xff\xff\xf5\xff\xff\xff\x08\x00\x00\x00\x1b\x00\x00\x00\x1a\x00\x00\x00\x1d\x00\x00\x00\x1f\x00\x00\x00\x16\x00\x00\x00\xd2\x04\x00\x00\x52\x05\x00\x00\x7b\x00\x00\x00\xd2\x05\x00\x00\x52\x06\x00\x00\xd2\x06\x00\x00\x86\x00\x00\x00\x52\x07\x00\x00\x1c\x00\x00\x00\xd2\x07\x00\x00\x52\x08\x00\x00\xd2\x08\x00\x00\x52\x09\x00\x00\x21\x00\x00\x00\x30\x00\x00\x00\x2c\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x27\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x35\x00\x00\x00\x38\x00\x00\x00\x3a\x00\x00\x00\x39\x00\x00\x00\xd2\x09\x00\x00\x52\x0a\x00\x00\x3b\x00\x00\x00\xd2\x0a\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x54\x00\x00\x00\x40\x00\x00\x00\x42\x00\x00\x00\x52\x0b\x00\x00\x36\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\xc3\x0b\x00\x00\x00\x00\x00\x00\x04\x0c\x00\x00\xfb\x0c\x00\x00\x00\x00\x00\x00\xdd\x0c\x00\x00\x05\x0d\x00\x00\x00\x00\x00\x00\x4e\x0d\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x5b\x00\x00\x00\x48\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\xbf\x0d\x00\x00\x00\x00\x00\x00\x30\x0e\x00\x00\x00\x00\x00\x00\xa1\x0e\x00\x00\xa1\x0f\x00\x00\x61\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x0f\x00\x00\x00\x00\x00\x00\x43\x10\x00\x00\x00\x00\x00\x00\x84\x10\x00\x00\x00\x00\x00\x00\xf5\x10\x00\x00\x00\x00\x00\x00\x66\x11\x00\x00\x00\x00\x00\x00\xa7\x11\x00\x00\x00\x00\x00\x00\x18\x12\x00\x00\xa5\x0c\x00\x00\x57\x00\x00\x00\xa9\x0c\x00\x00\x59\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x59\x12\x00\x00\x00\x00\x00\x00\x9a\x12\x00\x00\x00\x00\x00\x00\xdb\x12\x00\x00\xb1\x13\x00\x00\x00\x00\x00\x00\x1d\x13\x00\x00\x00\x00\x00\x00\xf2\x13\x00\x00\xf2\x14\x00\x00\x36\x0d\x00\x00\xb2\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x14\x00\x00\x00\x00\x00\x00\x34\x15\x00\x00\x34\x16\x00\x00\x3b\x0d\x00\x00\xf4\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x16\x00\x00\x56\x00\x00\x00\x64\x00\x00\x00\x9e\x0c\x00\x00\x9f\x0c\x00\x00\x9c\x0c\x00\x00\xa1\x0c\x00\x00\xa0\x0c\x00\x00\xa2\x0c\x00\x00\xa4\x0c\x00\x00\xa6\x0c\x00\x00\xaa\x0c\x00\x00\xab\x0c\x00\x00\xb4\x0c\x00\x00\xe5\x0c\x00\x00\x9d\x00\x00\x00\x05\x17\x00\x00\x2f\x0d\x00\x00\xed\x13\x00\x00\x1e\x17\x00\x00\x84\x17\x00\x00\x44\x17\x00\x00\x00\x00\x00\x00\x44\x18\x00\x00\x04\x18\x00\x00\x00\x00\x00\x00\x04\x19\x00\x00\xc4\x18\x00\x00\x00\x00\x00\x00\xc4\x19\x00\x00\x84\x19\x00\x00\x00\x00\x00\x00\x84\x1a\x00\x00\x44\x1a\x00\x00\x00\x00\x00\x00\x44\x1b\x00\x00\xba\x1b\x00\x00\x1d\x1b\x00\x00\x00\x00\x00\x00\xba\x1c\x00\x00\x7a\x1c\x00\x00\x00\x00\x00\x00\x7a\x1d\x00\x00\xf0\x1d\x00\x00\x53\x1d\x00\x00\x00\x00\x00\x00\xe6\x0c\x00\x00\x06\x17\x00\x00\xe8\x0c\x00\x00\xe9\x0c\x00\x00\x07\x17\x00\x00\xea\x0c\x00\x00\xec\x0c\x00\x00\xed\x0c\x00\x00\x08\x17\x00\x00\xef\x0c\x00\x00\x09\x17\x00\x00\xf0\x0c\x00\x00\x0a\x17\x00\x00\x10\x0d\x00\x00\x11\x0d\x00\x00\x0b\x17\x00\x00\x12\x0d\x00\x00\xb6\x1e\x00\x00\x13\x0d\x00\x00\xb7\x1e\x00\x00\x14\x0d\x00\x00\x15\x0d\x00\x00\x16\x0d\x00\x00\x17\x0d\x00\x00\x18\x0d\x00\x00\x1a\x0d\x00\x00\x1b\x0d\x00\x00\x1d\x0d\x00\x00\x24\x0d\x00\x00\x30\x0d\x00\x00\xee\x13\x00\x00\xef\x13\x00\x00\xf0\x13\x00\x00\xf1\x13\x00\x00\xf3\x13\x00\x00\xcc\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x1b\x00\x00\xe8\x1e\x00\x00\xde\x1f\x00\x00\xd4\x20\x00\x00\xca\x21\x00\x00\x4f\x17\x00\x00\xc1\x22\x00\x00\xb7\x23\x00\x00\x00\x00\x00\x00\xad\x24\x00\x00\xa4\x25\x00\x00\x9b\x26\x00\x00\x91\x27\x00\x00\x87\x28\x00\x00\x7e\x29\x00\x00\x75\x2a\x00\x00\x6b\x2b\x00\x00\x61\x2c\x00\x00\x57\x2d\x00\x00\x4d\x2e\x00\x00\x43\x2f\x00\x00\x39\x30\x00\x00\x30\x31\x00\x00\x27\x32\x00\x00\x1e\x33\x00\x00\x15\x34\x00\x00\x0c\x35\x00\x00\x02\x36\x00\x00\xf8\x36\x00\x00\x54\x17\x00\x00\xb9\x1f\x00\x00\xaf\x20\x00\x00\xa5\x21\x00\x00\xa1\x22\x00\x00\x92\x23\x00\x00\x88\x24\x00\x00\x6c\x27\x00\x00\x62\x28\x00\x00\x5e\x29\x00\x00\x55\x2a\x00\x00\x46\x2b\x00\x00\x3c\x2c\x00\x00\x32\x2d\x00\x00\x28\x2e\x00\x00\x1e\x2f\x00\x00\x14\x30\x00\x00\x00\x33\x00\x00\xf7\x33\x00\x00\xec\x34\x00\x00\xe4\x35\x00\x00\xda\x36\x00\x00\x00\x00\x00\x00\x82\x25\x00\x00\x79\x26\x00\x00\xf8\x16\x00\x00\x00\x00\x00\x00\xe8\x1f\x00\x00\x16\x17\x00\x00\xbb\x1e\x00\x00\x25\x31\x00\x00\xb3\x1e\x00\x00\x00\x00\x00\x00\xde\x20\x00\x00\xc0\x1e\x00\x00\xfb\x1e\x00\x00\x1c\x32\x00\x00\xca\x37\x00\x00\x9f\x1f\x00\x00\x00\x00\x00\x00\xd4\x21\x00\x00\xa9\x1f\x00\x00\xaa\x1f\x00\x00\xa5\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x17\x00\x00\x43\x17\x00\x00\x2c\x0d\x00\x00\x42\x17\x00\x00\xea\x13\x00\x00\x00\x00\x00\x00\xf8\x1b\x00\x00\xcd\x1e\x00\x00\x02\x17\x00\x00\x36\x17\x00\x00\x8e\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x1b\x00\x00\x94\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++alex_table :: AlexAddr+alex_table = AlexA# "\x00\x00\x24\x01\x24\x01\x24\x01\x24\x01\x24\x01\xda\x00\xd9\x00\xd5\x00\xd4\x00\xd7\x00\xcf\x00\xcd\x00\xca\x00\xc6\x00\xc5\x00\xc2\x00\xc8\x00\x01\x00\xc4\x00\x99\x00\x98\x00\x37\x00\x07\x00\x24\x01\x6c\x01\x51\x01\x16\x01\x07\x01\x63\x01\x65\x01\x50\x01\x52\x01\x53\x01\x61\x01\x5f\x01\x58\x01\x60\x01\x5c\x01\x62\x01\x49\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x5a\x01\x59\x01\x71\x01\x75\x01\x72\x01\x5b\x01\x82\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x54\x01\x96\x00\x55\x01\x67\x01\x32\x01\x95\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x2f\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x56\x01\x66\x01\x57\x01\x64\x01\x0c\x01\x0c\x01\x0c\x01\x0c\x01\x0c\x01\x02\x00\x08\x00\x94\x00\x0a\x00\x0e\x00\x0f\x01\x0d\x00\x0f\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x14\x00\x79\x00\x76\x00\x75\x00\x33\x00\x0c\x01\x86\x00\x86\x00\x86\x00\x86\x00\x86\x00\x47\x00\x77\x00\x19\x00\x72\x00\x35\x00\x78\x00\x1c\x00\x8e\x00\x34\x00\x1d\x00\x36\x00\x1f\x00\x23\x00\x3c\x00\x2c\x00\x3f\x00\x41\x00\x42\x00\x86\x00\x70\x00\x57\x00\x56\x00\x73\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x53\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x45\x00\x22\x00\x1b\x00\x1a\x00\x74\x00\x06\x00\x44\x00\x05\x00\x04\x00\x03\x00\xc1\x00\x5e\x01\x9a\x00\x9b\x00\x9c\x00\x9d\x00\xcc\x00\x9e\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\x5e\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x5f\x00\x40\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4c\x00\x46\x00\x49\x00\x49\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbc\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xb9\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\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\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb2\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xaf\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xac\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xa9\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\x10\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x8d\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x11\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x12\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x85\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x13\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x15\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x16\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x17\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x25\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x29\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x5e\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x40\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4c\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\x5f\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\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x3a\x00\xd1\x00\xd3\x00\xd6\x00\x3b\x00\x50\x00\x50\x00\x50\x00\x50\x00\x50\x00\xd8\x00\xdb\x00\x21\x00\xdc\x00\x1e\x00\xdd\x00\x0b\x00\xde\x00\x4d\x00\x09\x00\x93\x00\xdf\x00\xe0\x00\x06\x01\x97\x00\x04\x01\x03\x01\x01\x01\x50\x00\x00\x01\xff\x00\xe1\x00\xfd\x00\xfb\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x2a\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x86\x00\x86\x00\x86\x00\x86\x00\x86\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\x8e\x00\xe2\x00\xf9\x00\xf8\x00\xf6\x00\xf4\x00\xf2\x00\xf1\x00\xf0\x00\xef\x00\xee\x00\x9f\x00\xed\x00\xec\x00\x86\x00\xeb\x00\xb6\x00\x20\x00\xa4\x00\x8e\x00\xa4\x00\xbd\x00\xea\x00\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x78\x01\xe9\x00\x48\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\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\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\x7d\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\x7f\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\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\x84\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\x87\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\x8a\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\x8c\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\x8f\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\x92\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\xa7\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\xaa\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\xad\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\x02\x00\xb0\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\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x7a\x01\xe8\x00\xe7\x00\xe6\x00\xe5\x00\x00\x00\xe4\x00\x00\x00\x00\x00\x00\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\x5e\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x60\x00\x5f\x00\x40\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\x4c\x00\x46\x00\x49\x00\x49\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb7\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\xba\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbe\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\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x7d\x01\x05\x01\x02\x01\xfe\x00\xfc\x00\xfa\x00\xf7\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x3b\x01\x3e\x01\xa5\x00\xa5\x00\xa5\x00\xa5\x00\xa5\x00\xa5\x00\xa5\x00\xa5\x00\xa5\x00\xa5\x00\x0c\x01\x0c\x01\x0c\x01\x0c\x01\x0c\x01\x24\x01\x24\x01\x24\x01\x24\x01\x24\x01\x41\x01\xa3\x00\x6a\x01\x70\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x80\x00\x3e\x01\x6f\x01\x0c\x01\x6b\x01\x0e\x01\x80\x01\x7e\x01\x24\x01\x00\x00\x76\x01\x16\x01\x00\x00\xc0\x00\xc3\x00\xc7\x00\xc9\x00\xcb\x00\xce\x00\x79\x01\x77\x01\x5d\x01\x41\x01\xa3\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x54\x00\x00\x00\x55\x00\x39\x00\x71\x00\x38\x00\x7f\x01\x81\x01\xa0\x00\x68\x01\x73\x01\x32\x00\x74\x01\x69\x01\x00\x00\x43\x00\x00\x00\x00\x00\x6f\x00\x0c\x00\x31\x00\x00\x00\x00\x00\x0a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\x6d\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\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\x7b\x01\x00\x00\x00\x00\x00\x00\x00\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\x85\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x88\x00\x87\x00\x29\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x65\x00\x66\x00\x3e\x00\x4e\x00\x4e\x00\x4e\x00\x4f\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x8d\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x90\x00\x8f\x00\x25\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6c\x00\x3d\x00\x51\x00\x51\x00\x51\x00\x52\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\x00\xf3\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x3e\x01\x44\x01\x00\x00\x7c\x01\x00\x00\x47\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x3e\x01\x44\x01\xd0\x00\xd2\x00\x33\x01\x47\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x44\x01\x00\x00\x6e\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbc\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbf\x00\xbe\x00\x10\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x91\x00\x92\x00\x24\x00\x6d\x00\x6d\x00\x6d\x00\x6e\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x4b\x01\x4e\x01\x4b\x01\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x4b\x01\x4e\x01\x4b\x01\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x3d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xbb\x00\xba\x00\x11\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8b\x00\x8c\x00\x27\x00\x69\x00\x69\x00\x69\x00\x6a\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\xe3\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x43\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb5\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb8\x00\xb7\x00\x12\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x89\x00\x8a\x00\x28\x00\x67\x00\x67\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x4a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb2\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb4\x00\xb3\x00\x13\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x83\x00\x84\x00\x2b\x00\x63\x00\x63\x00\x63\x00\x64\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x01\x0c\x01\x0d\x01\x0d\x01\x0d\x01\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x26\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x27\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xaf\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb1\x00\xb0\x00\x15\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x81\x00\x82\x00\x2d\x00\x61\x00\x61\x00\x61\x00\x62\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x28\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x01\x8e\x00\x20\x01\x20\x01\x20\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x00\x00\xa3\x00\x3a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x3a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x01\x86\x00\x1f\x01\x1f\x01\x1f\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x01\x00\x00\x00\x00\x00\x00\x3a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x3a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x39\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\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\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x38\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x13\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x01\x50\x00\x1e\x01\x1e\x01\x1e\x01\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x2b\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x01\x4d\x00\x1d\x01\x1d\x01\x1d\x01\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x2d\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x19\x01\x00\x00\x00\x00\x00\x00\x1c\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x37\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x36\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x15\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x34\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x1b\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x31\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\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\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\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\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x35\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x01\x4d\x00\x1d\x01\x1d\x01\x1d\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\x00\x00\x00\x00\x1d\x01\x00\x00\x00\x00\x3b\x01\x00\x00\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x00\x00\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\x12\x01\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\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\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x01\x50\x00\x1e\x01\x1e\x01\x1e\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\x00\x00\x00\x00\x1e\x01\x00\x00\x00\x00\x3b\x01\x00\x00\x48\x01\x48\x01\x48\x01\x48\x01\x48\x01\x48\x01\x48\x01\x48\x01\xa5\x00\xa5\x00\x00\x00\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\x11\x01\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\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\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x01\x86\x00\x1f\x01\x1f\x01\x1f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x01\x00\x00\x22\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x30\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x01\x8e\x00\x20\x01\x20\x01\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x23\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x2e\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x01\x0c\x01\x0d\x01\x0d\x01\x0d\x01\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x2c\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa6\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa8\x00\xa7\x00\x18\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x30\x00\x58\x00\x58\x00\x58\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x2a\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xa9\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xab\x00\xaa\x00\x17\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7c\x00\x7d\x00\x2f\x00\x5a\x00\x5a\x00\x5a\x00\x5b\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x01\x00\x00\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x29\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xac\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xae\x00\xad\x00\x16\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7e\x00\x7f\x00\x2e\x00\x5c\x00\x5c\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x01\x00\x00\x48\x01\x48\x01\x48\x01\x48\x01\x48\x01\x48\x01\x48\x01\x48\x01\xa5\x00\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x01\x00\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x01\x00\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x65\x00\x65\x00\x63\x00\x73\x00\x67\x00\x6d\x00\x63\x00\x6d\x00\x79\x00\x63\x00\x61\x00\x6d\x00\x61\x00\x6d\x00\x61\x00\x61\x00\x72\x00\x67\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\x40\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\x63\x00\x5d\x00\x5e\x00\x5f\x00\x63\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\x2a\x00\x75\x00\x63\x00\x65\x00\x61\x00\x2f\x00\x65\x00\x6d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x6d\x00\x69\x00\x69\x00\x69\x00\x6c\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x64\x00\x69\x00\x6f\x00\x69\x00\x6c\x00\x69\x00\x65\x00\x20\x00\x6c\x00\x65\x00\x6c\x00\x65\x00\x67\x00\x61\x00\x67\x00\x61\x00\x6f\x00\x6f\x00\x20\x00\x75\x00\x75\x00\x75\x00\x62\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x61\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x72\x00\x72\x00\x72\x00\x68\x00\x62\x00\x6e\x00\x72\x00\x6e\x00\x6c\x00\x6c\x00\x74\x00\x2e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6c\x00\x6e\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x64\x00\x6c\x00\x6c\x00\x70\x00\x64\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x72\x00\x74\x00\x70\x00\x74\x00\x6e\x00\x74\x00\x74\x00\x74\x00\x20\x00\x73\x00\x69\x00\x74\x00\x74\x00\x3a\x00\x78\x00\x3a\x00\x3a\x00\x3a\x00\x20\x00\x3a\x00\x3a\x00\x74\x00\x3a\x00\x3a\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\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x64\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x6e\x00\x3a\x00\x3a\x00\x20\x00\x3a\x00\x22\x00\x74\x00\x2b\x00\x20\x00\x2d\x00\x22\x00\x3a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3d\x00\x3a\x00\x70\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\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\x40\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\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\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2a\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3d\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\xff\xff\x3a\x00\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\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\x40\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\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\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\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\x40\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\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\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3d\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x2e\x00\x55\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\x4c\x00\x45\x00\x2b\x00\x3d\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x2a\x00\x75\x00\x3d\x00\x20\x00\x2d\x00\x2f\x00\x3c\x00\x3d\x00\x20\x00\xff\xff\x3d\x00\x23\x00\xff\xff\x73\x00\x73\x00\x73\x00\x73\x00\x73\x00\x73\x00\x3d\x00\x3d\x00\x3e\x00\x6c\x00\x65\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\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\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\x40\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\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\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\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\x40\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\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\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\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\x40\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\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\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\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\x40\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\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\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\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\x40\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\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\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\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\x40\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\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\x7f\x00\x0a\x00\x61\x00\xff\xff\x63\x00\x64\x00\x65\x00\x66\x00\x3d\x00\x3e\x00\x69\x00\x3c\x00\x3d\x00\x6c\x00\x3d\x00\x3e\x00\xff\xff\x70\x00\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x22\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2e\x00\x26\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\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\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\x40\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\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\x7f\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\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\x40\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\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\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\x7f\x00\x0a\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\x22\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x3a\x00\x3a\x00\x0a\x00\xff\xff\xff\xff\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\xff\xff\x4c\x00\x55\x00\xff\xff\x3d\x00\xff\xff\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\x6c\x00\x75\x00\x73\x00\x73\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\x4c\x00\xff\xff\x7c\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\x6c\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x55\x00\x4c\x00\x4c\x00\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\x75\x00\x6c\x00\x6c\x00\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x20\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\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\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\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\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x66\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6c\x00\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6d\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x20\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x20\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\x70\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6e\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\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\x20\x00\xff\xff\xff\xff\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\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\xff\xff\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\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\xff\xff\xff\xff\xff\xff\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x70\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\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\x20\x00\xff\xff\xff\xff\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\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x45\x00\xff\xff\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\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\xff\xff\xff\xff\xff\xff\xff\xff\x75\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\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x20\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\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\x58\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\x65\x00\xff\xff\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\xff\xff\xff\xff\x78\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"#++alex_deflt :: AlexAddr+alex_deflt = AlexA# "\xff\xff\xff\xff\x80\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\x4b\x00\x4b\x00\x60\x00\x60\x00\xff\xff\x65\x00\x65\x00\xff\xff\x6b\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7a\x00\x7c\x00\x7c\x00\x7e\x00\x7e\x00\x80\x00\x80\x00\x80\x00\x81\x00\x81\x00\x83\x00\x83\x00\x88\x00\x88\x00\x89\x00\x89\x00\x8b\x00\x8b\x00\x90\x00\x90\x00\x91\x00\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa8\x00\xa8\x00\xab\x00\xab\x00\xae\x00\xae\x00\x80\x00\xb1\x00\xb1\x00\xb4\x00\xb4\x00\xb6\x00\xff\xff\xb6\x00\xb6\x00\xb8\x00\xb8\x00\xbb\x00\xbb\x00\xbd\x00\xff\xff\xbd\x00\xbd\x00\xbf\x00\xbf\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\x1a\x01\x1a\x01\x1a\x01\x22\x01\x22\x01\x22\x01\x23\x01\x23\x01\x23\x01\x0e\x01\x0e\x01\x0e\x01\x0b\x01\x0b\x01\x0b\x01\x0a\x01\xb6\x00\x0a\x01\x0a\x01\x09\x01\x09\x01\x09\x01\x08\x01\xbd\x00\x08\x01\x08\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x08\x01\x09\x01\x0a\x01\x0b\x01\xff\xff\x1a\x01\x0e\x01\xff\xff\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x1a\x01\x22\x01\x23\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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,386) [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[(AlexAccPred (alex_action_0) ( allowAnti )),(AlexAcc (alex_action_45))],[(AlexAccPred (alex_action_1) ( 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_31) ( allowAnti ))],[(AlexAccPred (alex_action_32) ( allowAnti ))],[(AlexAccPred (alex_action_33) ( allowAnti ))],[(AlexAccPred (alex_action_34) ( allowAnti ))],[(AlexAccPred (alex_action_35) ( allowAnti ))],[(AlexAccPred (alex_action_36) ( allowAnti ))],[(AlexAccPred (alex_action_37) (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccPred (alex_action_37) (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False))),(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccPred (alex_action_38) (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccPred (alex_action_38) (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False))),(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccPred (alex_action_39) (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccPred (alex_action_39) (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False))),(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkipPred (alexPrevCharMatches(\c -> c >= '\n' && c <= '\n' || False)))],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_46))],[(AlexAcc (alex_action_46))],[(AlexAcc (alex_action_46))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_49))],[(AlexAcc (alex_action_49))],[(AlexAcc (alex_action_49))],[(AlexAcc (alex_action_49))],[(AlexAcc (alex_action_49))],[(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_56))],[(AlexAcc (alex_action_57))],[(AlexAcc (alex_action_58))],[(AlexAcc (alex_action_59))],[(AlexAcc (alex_action_60))],[(AlexAcc (alex_action_61))],[(AlexAcc (alex_action_62))],[(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_69))],[(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_76))],[(AlexAcc (alex_action_77))],[(AlexAcc (alex_action_78))],[(AlexAcc (alex_action_79))],[(AlexAcc (alex_action_80))],[(AlexAcc (alex_action_81))],[(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))],[(AlexAcc (alex_action_92))],[(AlexAcc (alex_action_93))],[(AlexAcc (alex_action_94))],[(AlexAcc (alex_action_95))],[(AlexAcc (alex_action_96))],[(AlexAcc (alex_action_97))],[(AlexAccPred (alex_action_98) ( ifExtension cudaExts ))],[(AlexAccPred (alex_action_99) ( ifExtension cudaExts ))],[(AlexAccPred (alex_action_100) ( ifExtension objcExts ))]]+{-# LINE 202 "Language/C/Parser/Lexer.x" #-}++type Action = AlexInput -> AlexInput -> P (L Token)++inputString :: AlexInput -> AlexInput -> String+inputString beg end =+ (B.unpack . B.take (alexOff end - alexOff beg)) (alexInput 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 beg end = do+ inp <- getInput+ setInput inp { alexPos = pos' }+ lexToken+ where+ (_ : l : ws) = words (inputString beg end)+ line = read l - 1+ filename = (takeWhile (/= '\"') . drop 1 . concat . intersperse " ") ws++ pos' :: Pos+ pos' = Pos filename line 1 (posCoff (alexPos beg))++identifier :: Action+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+ ident :: String+ ident = inputString beg end++ -- NB: Due to the format of the keyword table, the lexer can't currently produce different+ -- keyword tokens for the same lexeme in dependence on the active language extension.+ -- We need to distinguish between the 'private' keyword of OpenCL and Objective-C, though,+ -- to avoid a large number of shift-reduce conflicts. Hence, the ugly special case below.+ keyword :: Token -> P (L Token)+ keyword TCLprivate =+ do isObjC <- useExts objcExts+ if isObjC+ then+ return $ locateTok beg end TObjCprivate+ else+ return $ locateTok beg end TCLprivate+ keyword tok =+ return $ locateTok beg end tok++ nonKeyword :: P (L Token)+ nonKeyword = do+ typeTest <- isTypedef ident+ classTest <- isClassdef ident+ return $+ if typeTest+ then locateTok beg end (Tnamed ident)+ else if classTest+ then locateTok beg end (TObjCnamed ident)+ else locateTok beg end (Tidentifier ident)++lexAnti ::(String -> Token) -> Action+lexAnti antiTok beg end = do+ c <- nextChar+ s <- case c of+ '(' -> lexExpression 0 ""+ _ | isIdStartChar c -> lexIdChars [c]+ | otherwise -> lexerError beg (text "illegal anitquotation")+ return $ locateTok beg end (antiTok s)+ where+ lexIdChars :: String -> P String+ lexIdChars s = do+ maybe_c <- maybePeekChar+ case maybe_c of+ Just c | isIdChar c -> skipChar >> lexIdChars (c : s)+ _ -> return (reverse s)++ lexExpression :: Int -> String -> P String+ lexExpression depth s = do+ maybe_c <- maybePeekChar+ case maybe_c of+ 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+ isIdStartChar c = isLower c++ isIdChar :: Char -> Bool+ isIdChar '_' = True+ isIdChar '\'' = True+ isIdChar c = isAlphaNum c++lexPragmaTok :: Action+lexPragmaTok beg _ = do+ s <- lexPragma ""+ end <- getInput+ return $ locateTok beg end (Tpragma (inputString beg end))+ where+ lexPragma :: String -> P String+ lexPragma s = do+ c <- nextChar+ case c of+ '\n' -> return (reverse s)+ _ -> lexPragma (c : s)++lexCharTok :: Action+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 beg _ = do+ s <- lexString ""+ end <- getInput+ return $ locateTok beg end (TstringConst (inputString beg end, s))+ where+ lexString :: String -> P String+ lexString s = do+ c <- nextChar+ case c of+ '"' -> return (reverse s)+ '\\' -> do c' <- lexCharEscape+ lexString (c' : s)+ _ -> lexString (c : s)++lexCharEscape :: P Char+lexCharEscape = do+ cur <- getInput+ c <- nextChar+ case c of+ '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 beg end =+ case i of+ [n] -> return $ locateTok beg end (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 = inputString beg end++ 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 beg end =+ case i of+ [n] -> return $ locateTok beg end (toToken n)+ _ -> fail "bad parse for integer"+ where+ s :: String+ s = inputString beg end++ 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)++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+ cur <- getInput+ c <- peekChar+ when (not $ isDigit c) $+ illegalNumericalLiteral cur+ readNum isDigit base conv++readNum :: (Char -> Bool) -> Int -> (Char -> Int) -> P Int+readNum isDigit base conv =+ read 0+ where+ 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+ 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 (alexInput end)+ AlexSkip end _ -> setInput end >> lexToken+ AlexToken end len t -> setInput end >> t beg end++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_llint +alex_action_7 = lexAnti Tanti_ullint +alex_action_8 = lexAnti Tanti_float +alex_action_9 = lexAnti Tanti_double +alex_action_10 = lexAnti Tanti_long_double +alex_action_11 = lexAnti Tanti_char +alex_action_12 = lexAnti Tanti_string +alex_action_13 = lexAnti Tanti_exp +alex_action_14 = lexAnti Tanti_func +alex_action_15 = lexAnti Tanti_args +alex_action_16 = lexAnti Tanti_decl +alex_action_17 = lexAnti Tanti_decls +alex_action_18 = lexAnti Tanti_sdecl +alex_action_19 = lexAnti Tanti_sdecls +alex_action_20 = lexAnti Tanti_enum +alex_action_21 = lexAnti Tanti_enums +alex_action_22 = lexAnti Tanti_esc +alex_action_23 = lexAnti Tanti_edecl +alex_action_24 = lexAnti Tanti_edecls +alex_action_25 = lexAnti Tanti_item +alex_action_26 = lexAnti Tanti_items +alex_action_27 = lexAnti Tanti_stm +alex_action_28 = lexAnti Tanti_stms +alex_action_29 = lexAnti Tanti_type +alex_action_30 = lexAnti Tanti_spec +alex_action_31 = lexAnti Tanti_param +alex_action_32 = lexAnti Tanti_params +alex_action_33 = lexAnti Tanti_pragma +alex_action_34 = lexAnti Tanti_init +alex_action_35 = lexAnti Tanti_inits +alex_action_36 = lexAnti Tanti_exp +alex_action_37 = setLineFromPragma +alex_action_38 = setLineFromPragma +alex_action_39 = lexPragmaTok +alex_action_45 = identifier +alex_action_46 = lexFloat +alex_action_47 = lexInteger 0 decimal +alex_action_48 = lexInteger 1 octal +alex_action_49 = lexInteger 2 hexadecimal +alex_action_50 = lexCharTok +alex_action_51 = lexStringTok +alex_action_52 = token Tlparen +alex_action_53 = token Trparen +alex_action_54 = token Tlbrack +alex_action_55 = token Trbrack +alex_action_56 = token Tlbrace +alex_action_57 = token Trbrace +alex_action_58 = token Tcomma +alex_action_59 = token Tsemi +alex_action_60 = token Tcolon +alex_action_61 = token Tquestion +alex_action_62 = token Tdot +alex_action_63 = token Tarrow +alex_action_64 = token Tellipses +alex_action_65 = token Tplus +alex_action_66 = token Tminus +alex_action_67 = token Tstar +alex_action_68 = token Tdiv +alex_action_69 = token Tmod +alex_action_70 = token Tnot +alex_action_71 = token Tand +alex_action_72 = token Tor +alex_action_73 = token Txor +alex_action_74 = token Tlsh +alex_action_75 = token Trsh +alex_action_76 = token Tinc +alex_action_77 = token Tdec +alex_action_78 = token Tlnot +alex_action_79 = token Tland +alex_action_80 = token Tlor +alex_action_81 = token Teq +alex_action_82 = token Tne +alex_action_83 = token Tlt +alex_action_84 = token Tgt +alex_action_85 = token Tle +alex_action_86 = token Tge +alex_action_87 = token Tassign +alex_action_88 = token Tadd_assign +alex_action_89 = token Tsub_assign +alex_action_90 = token Tmul_assign +alex_action_91 = token Tdiv_assign +alex_action_92 = token Tmod_assign +alex_action_93 = token Tand_assign +alex_action_94 = token Tor_assign +alex_action_95 = token Txor_assign +alex_action_96 = token Tlsh_assign +alex_action_97 = token Trsh_assign +alex_action_98 = token TCUDA3lt +alex_action_99 = token TCUDA3gt +alex_action_100 = token TObjCat +{-# 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 alexGetByte 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 alexGetByte input of+ Nothing -> (new_acc, input)+ Just (c, new_input) -> ++++ let+ (base) = alexIndexInt32OffAddr alex_base s+ ((I# (ord_c))) = fromIntegral 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 (if c < 0x80 || c >= 0xC0 then (len +# 1#) else len)+ -- note that the length is increased ONLY if this is the 1st byte in a char encoding)+ 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++instance Functor AlexLastAcc where+ fmap f AlexNone = AlexNone+ fmap f (AlexLastAcc x y z) = AlexLastAcc (f x) y z+ fmap f (AlexLastSkip x y) = AlexLastSkip x y++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++alexPrevCharMatches f _ input _ _ = f (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 view
@@ -0,0 +1,9339 @@+{-# OPTIONS_GHC -w #-}+{-# OPTIONS -fglasgow-exts -cpp #-}+{-# OPTIONS -w #-}++-- |+-- Module : Language.C.Parser.Parser+-- Copyright : (c) Harvard University 2006-2011+-- (c) Geoffrey Mainland 2011-2012+-- (c) Manuel M T Chakravarty 2013+-- License : BSD-style+-- Maintainer : mainland@eecs.harvard.edu++module Language.C.Parser.Parser where++import Control.Monad (forM_,+ when,+ unless,+ liftM)+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.10++newtype HappyAbsSyn = HappyAbsSyn HappyAny+#if __GLASGOW_HASKELL__ >= 607+type HappyAny = Happy_GHC_Exts.Any+#else+type HappyAny = forall a . a+#endif+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 :: (Id) -> (HappyAbsSyn )+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn16 #-}+happyOut16 :: (HappyAbsSyn ) -> (Id)+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut16 #-}+happyIn17 :: (Const) -> (HappyAbsSyn )+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn17 #-}+happyOut17 :: (HappyAbsSyn ) -> (Const)+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut17 #-}+happyIn18 :: (Exp) -> (HappyAbsSyn )+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn18 #-}+happyOut18 :: (HappyAbsSyn ) -> (Exp)+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut18 #-}+happyIn19 :: (RevList (L (String, String))) -> (HappyAbsSyn )+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn19 #-}+happyOut19 :: (HappyAbsSyn ) -> (RevList (L (String, String)))+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut19 #-}+happyIn20 :: (Exp) -> (HappyAbsSyn )+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn20 #-}+happyOut20 :: (HappyAbsSyn ) -> (Exp)+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut20 #-}+happyIn21 :: (Exp) -> (HappyAbsSyn )+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn21 #-}+happyOut21 :: (HappyAbsSyn ) -> (Exp)+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut21 #-}+happyIn22 :: (ObjCRecv) -> (HappyAbsSyn )+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn22 #-}+happyOut22 :: (HappyAbsSyn ) -> (ObjCRecv)+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut22 #-}+happyIn23 :: (([ObjCArg], [Exp])) -> (HappyAbsSyn )+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn23 #-}+happyOut23 :: (HappyAbsSyn ) -> (([ObjCArg], [Exp]))+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut23 #-}+happyIn24 :: (RevList ObjCArg) -> (HappyAbsSyn )+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn24 #-}+happyOut24 :: (HappyAbsSyn ) -> (RevList ObjCArg)+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut24 #-}+happyIn25 :: (ObjCArg) -> (HappyAbsSyn )+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn25 #-}+happyOut25 :: (HappyAbsSyn ) -> (ObjCArg)+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut25 #-}+happyIn26 :: (Id) -> (HappyAbsSyn )+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn26 #-}+happyOut26 :: (HappyAbsSyn ) -> (Id)+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut26 #-}+happyIn27 :: (RevList Exp) -> (HappyAbsSyn )+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn27 #-}+happyOut27 :: (HappyAbsSyn ) -> (RevList 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 :: (RevList Exp) -> (HappyAbsSyn )+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn29 #-}+happyOut29 :: (HappyAbsSyn ) -> (RevList Exp)+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut29 #-}+happyIn30 :: (RevList (Exp, Exp)) -> (HappyAbsSyn )+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn30 #-}+happyOut30 :: (HappyAbsSyn ) -> (RevList (Exp, Exp))+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut30 #-}+happyIn31 :: (RevList Const) -> (HappyAbsSyn )+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn31 #-}+happyOut31 :: (HappyAbsSyn ) -> (RevList Const)+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut31 #-}+happyIn32 :: (RevList Id) -> (HappyAbsSyn )+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn32 #-}+happyOut32 :: (HappyAbsSyn ) -> (RevList Id)+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 :: (ExeConfig) -> (HappyAbsSyn )+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn34 #-}+happyOut34 :: (HappyAbsSyn ) -> (ExeConfig)+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut34 #-}+happyIn35 :: (RevList Exp) -> (HappyAbsSyn )+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn35 #-}+happyOut35 :: (HappyAbsSyn ) -> (RevList 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 :: (Exp) -> (HappyAbsSyn )+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn37 #-}+happyOut37 :: (HappyAbsSyn ) -> (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 :: (Exp) -> (HappyAbsSyn )+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn39 #-}+happyOut39 :: (HappyAbsSyn ) -> (Exp)+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut39 #-}+happyIn40 :: (Exp) -> (HappyAbsSyn )+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn40 #-}+happyOut40 :: (HappyAbsSyn ) -> (Exp)+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut40 #-}+happyIn41 :: (Exp) -> (HappyAbsSyn )+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn41 #-}+happyOut41 :: (HappyAbsSyn ) -> (Exp)+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut41 #-}+happyIn42 :: (Exp) -> (HappyAbsSyn )+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn42 #-}+happyOut42 :: (HappyAbsSyn ) -> (Exp)+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut42 #-}+happyIn43 :: (Exp) -> (HappyAbsSyn )+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn43 #-}+happyOut43 :: (HappyAbsSyn ) -> (Exp)+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut43 #-}+happyIn44 :: (Exp) -> (HappyAbsSyn )+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn44 #-}+happyOut44 :: (HappyAbsSyn ) -> (Exp)+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut44 #-}+happyIn45 :: (Exp) -> (HappyAbsSyn )+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn45 #-}+happyOut45 :: (HappyAbsSyn ) -> (Exp)+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut45 #-}+happyIn46 :: (Exp) -> (HappyAbsSyn )+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn46 #-}+happyOut46 :: (HappyAbsSyn ) -> (Exp)+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut46 #-}+happyIn47 :: (Exp) -> (HappyAbsSyn )+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn47 #-}+happyOut47 :: (HappyAbsSyn ) -> (Exp)+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut47 #-}+happyIn48 :: (Exp) -> (HappyAbsSyn )+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn48 #-}+happyOut48 :: (HappyAbsSyn ) -> (Exp)+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut48 #-}+happyIn49 :: (Exp) -> (HappyAbsSyn )+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn49 #-}+happyOut49 :: (HappyAbsSyn ) -> (Exp)+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut49 #-}+happyIn50 :: (Exp) -> (HappyAbsSyn )+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn50 #-}+happyOut50 :: (HappyAbsSyn ) -> (Exp)+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut50 #-}+happyIn51 :: (Maybe Exp) -> (HappyAbsSyn )+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn51 #-}+happyOut51 :: (HappyAbsSyn ) -> (Maybe Exp)+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut51 #-}+happyIn52 :: (Exp) -> (HappyAbsSyn )+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn52 #-}+happyOut52 :: (HappyAbsSyn ) -> (Exp)+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut52 #-}+happyIn53 :: (InitGroup) -> (HappyAbsSyn )+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn53 #-}+happyOut53 :: (HappyAbsSyn ) -> (InitGroup)+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut53 #-}+happyIn54 :: (InitGroup) -> (HappyAbsSyn )+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn54 #-}+happyOut54 :: (HappyAbsSyn ) -> (InitGroup)+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut54 #-}+happyIn55 :: ((DeclSpec, Decl)) -> (HappyAbsSyn )+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn55 #-}+happyOut55 :: (HappyAbsSyn ) -> ((DeclSpec, Decl))+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut55 #-}+happyIn56 :: ((DeclSpec, Decl)) -> (HappyAbsSyn )+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn56 #-}+happyOut56 :: (HappyAbsSyn ) -> ((DeclSpec, Decl))+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut56 #-}+happyIn57 :: ((DeclSpec, Decl)) -> (HappyAbsSyn )+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn57 #-}+happyOut57 :: (HappyAbsSyn ) -> ((DeclSpec, Decl))+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut57 #-}+happyIn58 :: ([TySpec]) -> (HappyAbsSyn )+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn58 #-}+happyOut58 :: (HappyAbsSyn ) -> ([TySpec])+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 Init) -> (HappyAbsSyn )+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn60 #-}+happyOut60 :: (HappyAbsSyn ) -> (RevList Init)+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut60 #-}+happyIn61 :: (Maybe AsmLabel) -> (HappyAbsSyn )+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn61 #-}+happyOut61 :: (HappyAbsSyn ) -> (Maybe AsmLabel)+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut61 #-}+happyIn62 :: (Init) -> (HappyAbsSyn )+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn62 #-}+happyOut62 :: (HappyAbsSyn ) -> (Init)+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut62 #-}+happyIn63 :: (TySpec) -> (HappyAbsSyn )+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn63 #-}+happyOut63 :: (HappyAbsSyn ) -> (TySpec)+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut63 #-}+happyIn64 :: (TySpec) -> (HappyAbsSyn )+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn64 #-}+happyOut64 :: (HappyAbsSyn ) -> (TySpec)+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut64 #-}+happyIn65 :: (TySpec) -> (HappyAbsSyn )+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn65 #-}+happyOut65 :: (HappyAbsSyn ) -> (TySpec)+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut65 #-}+happyIn66 :: (L (Maybe Id -> Maybe [FieldGroup] -> [Attr] -> SrcLoc -> TySpec)) -> (HappyAbsSyn )+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn66 #-}+happyOut66 :: (HappyAbsSyn ) -> (L (Maybe Id -> Maybe [FieldGroup] -> [Attr] -> SrcLoc -> TySpec))+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut66 #-}+happyIn67 :: (RevList FieldGroup) -> (HappyAbsSyn )+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn67 #-}+happyOut67 :: (HappyAbsSyn ) -> (RevList FieldGroup)+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut67 #-}+happyIn68 :: (FieldGroup) -> (HappyAbsSyn )+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn68 #-}+happyOut68 :: (HappyAbsSyn ) -> (FieldGroup)+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut68 #-}+happyIn69 :: ([TySpec]) -> (HappyAbsSyn )+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn69 #-}+happyOut69 :: (HappyAbsSyn ) -> ([TySpec])+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut69 #-}+happyIn70 :: ([TySpec]) -> (HappyAbsSyn )+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn70 #-}+happyOut70 :: (HappyAbsSyn ) -> ([TySpec])+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut70 #-}+happyIn71 :: (RevList Field) -> (HappyAbsSyn )+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn71 #-}+happyOut71 :: (HappyAbsSyn ) -> (RevList Field)+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut71 #-}+happyIn72 :: (Field) -> (HappyAbsSyn )+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn72 #-}+happyOut72 :: (HappyAbsSyn ) -> (Field)+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut72 #-}+happyIn73 :: (TySpec) -> (HappyAbsSyn )+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn73 #-}+happyOut73 :: (HappyAbsSyn ) -> (TySpec)+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut73 #-}+happyIn74 :: (RevList CEnum) -> (HappyAbsSyn )+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn74 #-}+happyOut74 :: (HappyAbsSyn ) -> (RevList CEnum)+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut74 #-}+happyIn75 :: (CEnum) -> (HappyAbsSyn )+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn75 #-}+happyOut75 :: (HappyAbsSyn ) -> (CEnum)+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut75 #-}+happyIn76 :: (TySpec) -> (HappyAbsSyn )+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn76 #-}+happyOut76 :: (HappyAbsSyn ) -> (TySpec)+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut76 #-}+happyIn77 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn )+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn77 #-}+happyOut77 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl))+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut77 #-}+happyIn78 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn )+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn78 #-}+happyOut78 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl))+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut78 #-}+happyIn79 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn )+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn79 #-}+happyOut79 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl))+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut79 #-}+happyIn80 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn )+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn80 #-}+happyOut80 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl))+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut80 #-}+happyIn81 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn )+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn81 #-}+happyOut81 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl))+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut81 #-}+happyIn82 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn )+happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn82 #-}+happyOut82 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl))+happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut82 #-}+happyIn83 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn )+happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn83 #-}+happyOut83 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl))+happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut83 #-}+happyIn84 :: ((Id, Decl -> Decl)) -> (HappyAbsSyn )+happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn84 #-}+happyOut84 :: (HappyAbsSyn ) -> ((Id, Decl -> Decl))+happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut84 #-}+happyIn85 :: (Decl -> Decl) -> (HappyAbsSyn )+happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn85 #-}+happyOut85 :: (HappyAbsSyn ) -> (Decl -> Decl)+happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut85 #-}+happyIn86 :: (Decl -> Decl) -> (HappyAbsSyn )+happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn86 #-}+happyOut86 :: (HappyAbsSyn ) -> (Decl -> Decl)+happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut86 #-}+happyIn87 :: (RevList TySpec) -> (HappyAbsSyn )+happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn87 #-}+happyOut87 :: (HappyAbsSyn ) -> (RevList TySpec)+happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut87 #-}+happyIn88 :: (Params) -> (HappyAbsSyn )+happyIn88 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn88 #-}+happyOut88 :: (HappyAbsSyn ) -> (Params)+happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut88 #-}+happyIn89 :: (RevList Param) -> (HappyAbsSyn )+happyIn89 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn89 #-}+happyOut89 :: (HappyAbsSyn ) -> (RevList Param)+happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut89 #-}+happyIn90 :: (Param) -> (HappyAbsSyn )+happyIn90 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn90 #-}+happyOut90 :: (HappyAbsSyn ) -> (Param)+happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut90 #-}+happyIn91 :: (Type) -> (HappyAbsSyn )+happyIn91 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn91 #-}+happyOut91 :: (HappyAbsSyn ) -> (Type)+happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut91 #-}+happyIn92 :: (RevList Id) -> (HappyAbsSyn )+happyIn92 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn92 #-}+happyOut92 :: (HappyAbsSyn ) -> (RevList Id)+happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut92 #-}+happyIn93 :: (Type) -> (HappyAbsSyn )+happyIn93 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn93 #-}+happyOut93 :: (HappyAbsSyn ) -> (Type)+happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut93 #-}+happyIn94 :: (Decl -> Decl) -> (HappyAbsSyn )+happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn94 #-}+happyOut94 :: (HappyAbsSyn ) -> (Decl -> Decl)+happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut94 #-}+happyIn95 :: (Decl -> Decl) -> (HappyAbsSyn )+happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn95 #-}+happyOut95 :: (HappyAbsSyn ) -> (Decl -> Decl)+happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut95 #-}+happyIn96 :: (TySpec) -> (HappyAbsSyn )+happyIn96 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn96 #-}+happyOut96 :: (HappyAbsSyn ) -> (TySpec)+happyOut96 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut96 #-}+happyIn97 :: (Initializer) -> (HappyAbsSyn )+happyIn97 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn97 #-}+happyOut97 :: (HappyAbsSyn ) -> (Initializer)+happyOut97 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut97 #-}+happyIn98 :: (RevList (Maybe Designation, Initializer)) -> (HappyAbsSyn )+happyIn98 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn98 #-}+happyOut98 :: (HappyAbsSyn ) -> (RevList (Maybe Designation, Initializer))+happyOut98 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut98 #-}+happyIn99 :: (Designation) -> (HappyAbsSyn )+happyIn99 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn99 #-}+happyOut99 :: (HappyAbsSyn ) -> (Designation)+happyOut99 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut99 #-}+happyIn100 :: (RevList Designator) -> (HappyAbsSyn )+happyIn100 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn100 #-}+happyOut100 :: (HappyAbsSyn ) -> (RevList Designator)+happyOut100 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut100 #-}+happyIn101 :: (Designator) -> (HappyAbsSyn )+happyIn101 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn101 #-}+happyOut101 :: (HappyAbsSyn ) -> (Designator)+happyOut101 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut101 #-}+happyIn102 :: (Stm) -> (HappyAbsSyn )+happyIn102 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn102 #-}+happyOut102 :: (HappyAbsSyn ) -> (Stm)+happyOut102 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut102 #-}+happyIn103 :: (Stm) -> (HappyAbsSyn )+happyIn103 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn103 #-}+happyOut103 :: (HappyAbsSyn ) -> (Stm)+happyOut103 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut103 #-}+happyIn104 :: (Stm) -> (HappyAbsSyn )+happyIn104 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn104 #-}+happyOut104 :: (HappyAbsSyn ) -> (Stm)+happyOut104 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut104 #-}+happyIn105 :: (RevList BlockItem) -> (HappyAbsSyn )+happyIn105 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn105 #-}+happyOut105 :: (HappyAbsSyn ) -> (RevList BlockItem)+happyOut105 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut105 #-}+happyIn106 :: (BlockItem) -> (HappyAbsSyn )+happyIn106 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn106 #-}+happyOut106 :: (HappyAbsSyn ) -> (BlockItem)+happyOut106 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut106 #-}+happyIn107 :: (()) -> (HappyAbsSyn )+happyIn107 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn107 #-}+happyOut107 :: (HappyAbsSyn ) -> (())+happyOut107 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut107 #-}+happyIn108 :: (()) -> (HappyAbsSyn )+happyIn108 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn108 #-}+happyOut108 :: (HappyAbsSyn ) -> (())+happyOut108 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut108 #-}+happyIn109 :: (RevList InitGroup) -> (HappyAbsSyn )+happyIn109 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn109 #-}+happyOut109 :: (HappyAbsSyn ) -> (RevList InitGroup)+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 :: (Stm) -> (HappyAbsSyn )+happyIn111 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn111 #-}+happyOut111 :: (HappyAbsSyn ) -> (Stm)+happyOut111 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut111 #-}+happyIn112 :: (Stm) -> (HappyAbsSyn )+happyIn112 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn112 #-}+happyOut112 :: (HappyAbsSyn ) -> (Stm)+happyOut112 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut112 #-}+happyIn113 :: (Stm) -> (HappyAbsSyn )+happyIn113 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn113 #-}+happyOut113 :: (HappyAbsSyn ) -> (Stm)+happyOut113 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut113 #-}+happyIn114 :: (Stm) -> (HappyAbsSyn )+happyIn114 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn114 #-}+happyOut114 :: (HappyAbsSyn ) -> (Stm)+happyOut114 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut114 #-}+happyIn115 :: (RevList ObjCCatch) -> (HappyAbsSyn )+happyIn115 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn115 #-}+happyOut115 :: (HappyAbsSyn ) -> (RevList ObjCCatch)+happyOut115 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut115 #-}+happyIn116 :: ([Definition]) -> (HappyAbsSyn )+happyIn116 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn116 #-}+happyOut116 :: (HappyAbsSyn ) -> ([Definition])+happyOut116 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut116 #-}+happyIn117 :: (RevList Definition) -> (HappyAbsSyn )+happyIn117 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn117 #-}+happyOut117 :: (HappyAbsSyn ) -> (RevList Definition)+happyOut117 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut117 #-}+happyIn118 :: (Definition) -> (HappyAbsSyn )+happyIn118 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn118 #-}+happyOut118 :: (HappyAbsSyn ) -> (Definition)+happyOut118 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut118 #-}+happyIn119 :: (Func) -> (HappyAbsSyn )+happyIn119 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn119 #-}+happyOut119 :: (HappyAbsSyn ) -> (Func)+happyOut119 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut119 #-}+happyIn120 :: (Definition) -> (HappyAbsSyn )+happyIn120 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn120 #-}+happyOut120 :: (HappyAbsSyn ) -> (Definition)+happyOut120 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut120 #-}+happyIn121 :: (Definition) -> (HappyAbsSyn )+happyIn121 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn121 #-}+happyOut121 :: (HappyAbsSyn ) -> (Definition)+happyOut121 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut121 #-}+happyIn122 :: (([Id], [ObjCIvarDecl], [ObjCIfaceDecl], Loc)) -> (HappyAbsSyn )+happyIn122 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn122 #-}+happyOut122 :: (HappyAbsSyn ) -> (([Id], [ObjCIvarDecl], [ObjCIfaceDecl], Loc))+happyOut122 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut122 #-}+happyIn123 :: (RevList Id) -> (HappyAbsSyn )+happyIn123 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn123 #-}+happyOut123 :: (HappyAbsSyn ) -> (RevList Id)+happyOut123 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut123 #-}+happyIn124 :: (RevList ObjCIvarDecl) -> (HappyAbsSyn )+happyIn124 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn124 #-}+happyOut124 :: (HappyAbsSyn ) -> (RevList ObjCIvarDecl)+happyOut124 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut124 #-}+happyIn125 :: (RevList ObjCIvarDecl) -> (HappyAbsSyn )+happyIn125 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn125 #-}+happyOut125 :: (HappyAbsSyn ) -> (RevList ObjCIvarDecl)+happyOut125 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut125 #-}+happyIn126 :: (ObjCVisibilitySpec) -> (HappyAbsSyn )+happyIn126 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn126 #-}+happyOut126 :: (HappyAbsSyn ) -> (ObjCVisibilitySpec)+happyOut126 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut126 #-}+happyIn127 :: (RevList ObjCIfaceDecl) -> (HappyAbsSyn )+happyIn127 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn127 #-}+happyOut127 :: (HappyAbsSyn ) -> (RevList ObjCIfaceDecl)+happyOut127 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut127 #-}+happyIn128 :: (ObjCIfaceDecl) -> (HappyAbsSyn )+happyIn128 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn128 #-}+happyOut128 :: (HappyAbsSyn ) -> (ObjCIfaceDecl)+happyOut128 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut128 #-}+happyIn129 :: (RevList ObjCPropAttr) -> (HappyAbsSyn )+happyIn129 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn129 #-}+happyOut129 :: (HappyAbsSyn ) -> (RevList ObjCPropAttr)+happyOut129 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut129 #-}+happyIn130 :: (ObjCPropAttr) -> (HappyAbsSyn )+happyIn130 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn130 #-}+happyOut130 :: (HappyAbsSyn ) -> (ObjCPropAttr)+happyOut130 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut130 #-}+happyIn131 :: (ObjCMethodReq) -> (HappyAbsSyn )+happyIn131 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn131 #-}+happyOut131 :: (HappyAbsSyn ) -> (ObjCMethodReq)+happyOut131 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut131 #-}+happyIn132 :: (ObjCMethodProto) -> (HappyAbsSyn )+happyIn132 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn132 #-}+happyOut132 :: (HappyAbsSyn ) -> (ObjCMethodProto)+happyOut132 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut132 #-}+happyIn133 :: ((Maybe Type, [Attr], [ObjCParm], Bool)) -> (HappyAbsSyn )+happyIn133 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn133 #-}+happyOut133 :: (HappyAbsSyn ) -> ((Maybe Type, [Attr], [ObjCParm], Bool))+happyOut133 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut133 #-}+happyIn134 :: ([ObjCParm]) -> (HappyAbsSyn )+happyIn134 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn134 #-}+happyOut134 :: (HappyAbsSyn ) -> ([ObjCParm])+happyOut134 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut134 #-}+happyIn135 :: (RevList ObjCParm) -> (HappyAbsSyn )+happyIn135 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn135 #-}+happyOut135 :: (HappyAbsSyn ) -> (RevList ObjCParm)+happyOut135 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut135 #-}+happyIn136 :: (ObjCParm) -> (HappyAbsSyn )+happyIn136 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn136 #-}+happyOut136 :: (HappyAbsSyn ) -> (ObjCParm)+happyOut136 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut136 #-}+happyIn137 :: (Definition) -> (HappyAbsSyn )+happyIn137 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn137 #-}+happyOut137 :: (HappyAbsSyn ) -> (Definition)+happyOut137 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut137 #-}+happyIn138 :: ((Id, Loc)) -> (HappyAbsSyn )+happyIn138 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn138 #-}+happyOut138 :: (HappyAbsSyn ) -> ((Id, Loc))+happyOut138 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut138 #-}+happyIn139 :: (Definition) -> (HappyAbsSyn )+happyIn139 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn139 #-}+happyOut139 :: (HappyAbsSyn ) -> (Definition)+happyOut139 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut139 #-}+happyIn140 :: (([ObjCIvarDecl], [Definition], Loc)) -> (HappyAbsSyn )+happyIn140 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn140 #-}+happyOut140 :: (HappyAbsSyn ) -> (([ObjCIvarDecl], [Definition], Loc))+happyOut140 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut140 #-}+happyIn141 :: (([Definition], Loc)) -> (HappyAbsSyn )+happyIn141 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn141 #-}+happyOut141 :: (HappyAbsSyn ) -> (([Definition], Loc))+happyOut141 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut141 #-}+happyIn142 :: (RevList Definition) -> (HappyAbsSyn )+happyIn142 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn142 #-}+happyOut142 :: (HappyAbsSyn ) -> (RevList Definition)+happyOut142 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut142 #-}+happyIn143 :: (Definition) -> (HappyAbsSyn )+happyIn143 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn143 #-}+happyOut143 :: (HappyAbsSyn ) -> (Definition)+happyOut143 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut143 #-}+happyIn144 :: (RevList (Id, Maybe Id)) -> (HappyAbsSyn )+happyIn144 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn144 #-}+happyOut144 :: (HappyAbsSyn ) -> (RevList (Id, Maybe Id))+happyOut144 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut144 #-}+happyIn145 :: (Definition) -> (HappyAbsSyn )+happyIn145 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn145 #-}+happyOut145 :: (HappyAbsSyn ) -> (Definition)+happyOut145 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut145 #-}+happyIn146 :: (Definition) -> (HappyAbsSyn )+happyIn146 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn146 #-}+happyOut146 :: (HappyAbsSyn ) -> (Definition)+happyOut146 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut146 #-}+happyIn147 :: (Definition) -> (HappyAbsSyn )+happyIn147 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn147 #-}+happyOut147 :: (HappyAbsSyn ) -> (Definition)+happyOut147 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut147 #-}+happyIn148 :: ([Attr]) -> (HappyAbsSyn )+happyIn148 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn148 #-}+happyOut148 :: (HappyAbsSyn ) -> ([Attr])+happyOut148 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut148 #-}+happyIn149 :: ([Attr]) -> (HappyAbsSyn )+happyIn149 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn149 #-}+happyOut149 :: (HappyAbsSyn ) -> ([Attr])+happyOut149 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut149 #-}+happyIn150 :: ([Attr]) -> (HappyAbsSyn )+happyIn150 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn150 #-}+happyOut150 :: (HappyAbsSyn ) -> ([Attr])+happyOut150 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut150 #-}+happyIn151 :: (RevList Attr) -> (HappyAbsSyn )+happyIn151 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn151 #-}+happyOut151 :: (HappyAbsSyn ) -> (RevList Attr)+happyOut151 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut151 #-}+happyIn152 :: (Attr) -> (HappyAbsSyn )+happyIn152 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn152 #-}+happyOut152 :: (HappyAbsSyn ) -> (Attr)+happyOut152 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut152 #-}+happyIn153 :: (Id) -> (HappyAbsSyn )+happyIn153 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn153 #-}+happyOut153 :: (HappyAbsSyn ) -> (Id)+happyOut153 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut153 #-}+happyIn154 :: (Bool) -> (HappyAbsSyn )+happyIn154 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn154 #-}+happyOut154 :: (HappyAbsSyn ) -> (Bool)+happyOut154 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut154 #-}+happyIn155 :: (Stm) -> (HappyAbsSyn )+happyIn155 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn155 #-}+happyOut155 :: (HappyAbsSyn ) -> (Stm)+happyOut155 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut155 #-}+happyIn156 :: (RevList String) -> (HappyAbsSyn )+happyIn156 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn156 #-}+happyOut156 :: (HappyAbsSyn ) -> (RevList String)+happyOut156 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut156 #-}+happyIn157 :: ([(String, Exp)]) -> (HappyAbsSyn )+happyIn157 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn157 #-}+happyOut157 :: (HappyAbsSyn ) -> ([(String, Exp)])+happyOut157 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut157 #-}+happyIn158 :: (RevList (String, Exp)) -> (HappyAbsSyn )+happyIn158 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn158 #-}+happyOut158 :: (HappyAbsSyn ) -> (RevList (String, Exp))+happyOut158 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut158 #-}+happyIn159 :: ((String, Exp)) -> (HappyAbsSyn )+happyIn159 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn159 #-}+happyOut159 :: (HappyAbsSyn ) -> ((String, Exp))+happyOut159 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut159 #-}+happyIn160 :: ([String]) -> (HappyAbsSyn )+happyIn160 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn160 #-}+happyOut160 :: (HappyAbsSyn ) -> ([String])+happyOut160 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut160 #-}+happyIn161 :: (RevList String) -> (HappyAbsSyn )+happyIn161 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn161 #-}+happyOut161 :: (HappyAbsSyn ) -> (RevList String)+happyOut161 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut161 #-}+happyIn162 :: (String) -> (HappyAbsSyn )+happyIn162 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn162 #-}+happyOut162 :: (HappyAbsSyn ) -> (String)+happyOut162 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut162 #-}+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# "\x3a\x23\x4e\x11\xac\x13\x7b\x16\x00\x1d\x25\x14\x5f\x0f\xf5\x03\x59\x05\x9d\x04\x57\x10\x25\x14\x16\x08\x00\x00\x1e\x27\x00\x00\x00\x00\x10\x17\x6c\x2f\x23\x2f\x00\x00\x0a\x28\x00\x00\x6c\x2f\x6c\x2f\x65\x07\xf4\x07\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x27\x17\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x07\x00\x00\x00\x00\x00\x00\xfc\x23\x00\x00\x00\x00\x00\x00\x00\x08\x80\x0e\x51\x07\xd9\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x01\x00\x00\x00\x00\xd8\xff\x00\x00\x01\x08\xf4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x07\x00\x00\x00\x00\x03\x08\x00\x00\x00\x00\x00\x00\x86\x07\x06\x02\x95\x0a\x00\x00\x0a\x06\x5e\x06\x53\x06\x74\x03\x4a\x06\xec\x07\xde\x07\xdd\x07\xda\x07\xfe\x00\x00\x00\x00\x00\x46\x02\x00\x00\x80\x0e\x00\x00\x00\x00\x00\x00\x38\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\x00\x00\x00\x00\xbb\x08\x59\x1d\x00\x00\x00\x00\x3a\x23\x3a\x23\x3a\x23\x3a\x23\x3a\x23\xb6\x29\xf3\x22\xf3\x22\x4b\x22\xef\x01\x4b\x22\xc4\x01\x45\x00\x59\x05\xeb\x07\x64\x23\x6b\x03\x1a\x1b\x04\x22\xe8\x07\xe7\x07\x00\x00\x9c\x07\xe6\x07\x32\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x07\x00\x00\x00\x00\x2d\x07\x48\x00\x9c\x23\x00\x00\xeb\x26\x2d\x07\x00\x00\xeb\x26\x2d\x07\xc1\x07\x2b\x07\x00\x00\x60\x32\x2b\x07\xcd\x26\x00\x00\xfd\x29\xb4\x31\x00\x00\xcd\x26\x99\x28\x2b\x07\x2b\x07\xfa\xff\x5c\x21\x00\x00\xd6\x07\x00\x00\x00\x00\x00\x00\x5f\x06\x00\x00\x00\x00\x75\x05\x00\x00\x5c\x05\xa8\x00\x5a\x28\x00\x00\x1e\x27\x5c\x21\xae\x2f\xae\x2f\x00\x00\xb4\x31\x60\x32\x00\x00\xb4\x31\x4b\x06\xfd\x29\x00\x00\xfd\x29\x5c\x21\x00\x00\x00\x00\x58\x05\x00\x00\x00\x00\x7b\x27\x00\x00\xc8\x04\x00\x00\x03\x0a\x81\x19\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x07\x5c\x21\x15\x21\x6d\x20\x20\x02\x20\x02\xd9\x07\x00\x00\xd8\x07\xd5\x07\x00\x00\x00\x00\xbb\x02\xf5\x03\x2c\x00\x00\x00\x59\x1d\x5d\x27\x00\x00\xcb\x07\xcd\x07\x71\x1a\xc7\x07\x5c\x21\xc8\x07\x00\x00\x5c\x21\x5c\x21\x00\x00\xbb\x08\xc3\x01\x00\x00\x00\x00\x00\x00\x5c\x21\x9a\x01\x00\x00\x16\x06\x75\x07\x00\x00\x06\x03\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x08\x00\x00\xd8\x01\xb8\x07\x69\x07\x60\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x00\x76\x25\xb4\x07\x00\x00\x00\x00\x14\x04\xd8\x01\x6d\x02\xb3\x07\xd8\x01\xd8\x01\xab\x07\x00\x00\xb8\x01\x8f\x26\x00\x00\x00\x00\x00\x00\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x5c\x21\x76\x17\x61\x1b\x99\x28\x99\x28\x00\x00\x00\x00\xd6\x18\x99\x07\x00\x00\x5a\x02\x5d\x27\x5d\x27\x99\x28\x99\x28\x5d\x27\x9b\x07\x00\x00\x16\x07\x00\x00\x5d\x27\x00\x00\x5d\x27\x00\x00\x00\x00\xc2\x06\x00\x00\x7b\x07\x00\x00\x5d\x27\x63\x09\x00\x00\x91\x07\x28\x28\xd2\x19\x5d\x27\x00\x00\x00\x00\x90\x07\x3c\x27\x28\x16\x00\x00\x23\x2f\x23\x2f\x23\x2f\x00\x00\x23\x2f\x6c\x2f\x00\x00\x33\x13\x00\x00\x00\x00\xba\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x8d\x07\x28\x16\x28\x16\x00\x00\xfc\x00\x40\x06\x00\x00\x00\x00\x00\x00\xd2\x19\x8e\x07\xfa\x01\xfb\x00\x5d\x27\x67\x07\xee\x05\x00\x00\x89\x07\xee\x00\x3a\x06\x41\x12\x5d\x27\x3e\x26\x00\x00\xbc\x04\x35\x00\x87\x07\x14\x07\x37\x06\x00\x00\x00\x00\x8c\x07\x0d\x00\x77\x07\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x01\x00\x00\xb8\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\x0a\x06\x0a\x06\x24\x06\x24\x06\x23\x06\x23\x06\x23\x06\x23\x06\x74\x03\x74\x03\x0f\x06\x6e\x07\x66\x07\x63\x07\x5a\x07\x76\x02\x73\x07\x1e\x27\xa6\x04\x00\x00\x52\x0c\x00\x00\x00\x00\x00\x00\x26\x20\x00\x00\x00\x00\x00\x00\x00\x00\x71\x07\x76\x25\x00\x00\x6b\x07\x5c\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x04\x00\x00\x68\x07\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x17\x07\x6a\x07\x00\x00\xae\x01\x00\x00\x00\x00\x4e\x07\x64\x07\x60\x07\x5c\x21\x00\x00\x00\x00\x00\x00\x71\x03\x00\x00\x00\x00\xf1\x01\x66\x03\x50\x03\x6f\x07\x54\x07\x00\x00\x10\x01\x00\x00\x00\x00\x5c\x21\x00\x00\x00\x00\x61\x07\x5d\x07\x00\x00\x5c\x21\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x12\x25\x5d\x27\xce\x16\x00\x00\x00\x00\x21\x06\x57\x07\x00\x00\xaf\x00\x00\x00\x00\x00\x17\x04\x56\x07\x09\x1c\x00\x00\x00\x00\x7e\x1f\xb1\x1c\xc1\x01\x43\x24\x4b\x07\x52\x07\x18\x01\x03\x0a\x00\x00\x00\x00\x5a\x0d\x9e\x04\x32\x03\xe8\x02\x00\x00\xbf\x0b\x00\x00\x00\x00\x00\x00\x72\x0c\x00\x00\xb4\x31\x00\x00\x00\x00\xae\x2f\x00\x00\xae\x2f\x00\x00\x36\x00\x63\x02\x01\x07\x5c\x21\x00\x00\x2b\x0b\x00\x00\x97\x0a\x00\x00\x00\x00\x00\x00\x4a\x07\xe4\x03\x00\x00\x48\x07\xc3\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x07\x4d\x03\x00\x00\x46\x07\x00\x00\xb8\x28\x00\x00\x00\x00\xd7\x0c\x00\x00\x05\x06\x00\x00\x00\x00\x43\x07\xb1\x1c\x00\x00\x41\x07\x00\x00\x37\x1f\x5c\x21\x00\x00\x00\x00\x00\x00\x8f\x1e\x5c\x21\x00\x00\x48\x1e\x3c\x07\x3a\x07\xa4\x02\x1a\x24\x00\x00\x00\x00\xf5\x03\x00\x00\x00\x00\x00\x00\x2b\x03\x00\x00\x00\x00\xaa\x06\x25\x14\x25\x03\x00\x00\x00\x00\x59\x05\x00\x00\x59\x05\x00\x00\x18\x07\x00\x00\x59\x05\x0d\x07\x5c\x21\x5c\x21\x00\x00\x00\x00\x0f\x07\x0e\x07\xbc\x06\xdd\x0d\x00\x00\x00\x00\x06\x07\x00\x00\x5c\x21\x00\x00\xfd\x06\x02\x07\x00\x00\x00\x00\x48\x00\x00\x00\x5c\x21\x00\x00\x00\x00\x7e\x18\x00\x00\x00\x00\xfe\x06\x5d\x27\x00\x00\xf8\x06\x28\x29\x00\x00\xf9\x06\x78\x28\x00\x00\x00\x00\x5d\x27\x10\x15\x78\x28\x00\x00\x08\x03\x00\x00\xf7\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\x54\x00\x00\x00\x00\x00\x00\x00\xf2\x06\x00\x00\x15\x00\x15\x00\x1e\x05\x00\x00\x00\x00\xff\x06\xcf\x06\xf5\x03\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x06\x00\x00\x56\x03\x00\x00\xbe\x07\x82\x15\x28\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x03\xf0\x06\x00\x00\x00\x00\xd5\x15\x00\x00\x97\x06\xae\x24\xce\x16\x97\x06\x00\x00\x00\x00\x78\x28\x26\x18\xed\x06\x3e\x26\xeb\x06\xe6\x06\x9e\x14\x00\x00\x00\x00\x00\x00\x65\x03\xea\x06\x00\x00\xd5\x10\xcb\x06\x00\x00\xe8\x06\xc9\x06\x00\x00\x00\x00\xce\x17\x00\x00\x00\x00\x00\x00\x19\x06\x5c\x21\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x06\x00\x00\x47\x03\xe0\x06\xa0\x1d\xad\x06\x00\x00\x00\x00\x00\x00\xdc\x06\xe5\x06\xdf\x06\x31\x00\xdb\x06\x00\x00\xda\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x06\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x06\x00\x00\x00\x00\xd7\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\x5c\x21\x00\x00\x00\x00\x00\x00\xd9\x06\xd4\x06\x00\x00\x7c\x02\xcd\x06\x00\x00\xd2\x06\x00\x00\x59\x05\xa5\x02\x59\x05\x2a\x1a\x00\x00\xc8\x06\x00\x00\x00\x00\x00\x00\xae\x03\xa9\x02\x00\x00\x00\x00\xb2\x06\xc8\x11\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x01\xa6\x06\x00\x00\xc1\x06\xb8\x06\xb9\x06\xae\x24\x00\x00\x11\x00\x00\x00\x00\x00\x5d\x27\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x06\x07\x29\x00\x00\x5d\x27\xce\x16\xb6\x06\x00\x00\xb0\x06\x04\x00\x66\x06\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x27\x00\x00\x5d\x27\x00\x00\xb5\x06\xf6\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x02\x00\x00\x59\x05\x00\x00\x59\x05\x00\x00\x5c\x21\xc3\x06\xb1\x06\x68\x06\x00\x00\xe5\x0e\x00\x00\xb4\x06\xb3\x06\x5c\x02\x00\x00\x00\x00\xb0\x00\x00\x00\x00\x00\x00\x00\x59\x05\x00\x00\x00\x00\x36\x06\x47\x29\xfc\x05\xae\x24\x5d\x27\xce\x16\x00\x00\x4c\x06\x00\x00\x00\x00\x7b\x16\xda\x25\x43\x06\x00\x00\xf4\x05\x29\x06\x00\x00\x35\x06\x00\x00\xff\x05\x00\x00\x5d\x27\x00\x00\x00\x00\x2f\x06\x20\x06\x18\x06\x18\x06\x00\x00\x00\x00\xf9\x05\xe3\x05\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x27\xbf\x05\x67\x05\x5d\x27\x00\x00\x00\x00\x5d\x27\x00\x00\x00\x00\xc3\x05\xaa\x05\x00\x00\x00\x00\x00\x00\x00\x00"#++happyGotoOffsets :: HappyAddr+happyGotoOffsets = HappyA# "\x1f\x36\x13\x30\x85\x0a\x78\x19\x3f\x00\xa5\x11\x37\x11\xa3\x31\xf8\x2e\x52\x2b\x04\x30\x36\x07\x00\x00\x00\x00\x1b\x04\x00\x00\x00\x00\x71\x01\x12\x03\x6b\x05\x00\x00\x29\x00\x00\x00\xeb\x02\x6f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x05\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x05\x00\x00\xb5\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x1b\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x31\x27\x34\x3e\x05\x00\x00\x71\x25\x0d\x25\x04\x24\x19\x23\xae\x22\x2f\x0d\xa7\x14\x67\x12\x2a\x22\x00\x00\xb9\x33\x00\x00\x00\x00\x94\x2e\x00\x00\x95\x05\x00\x00\xfb\x35\x85\x0f\x00\x00\x00\x00\x00\x00\x06\x05\x00\x00\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x0d\x57\x00\x00\x00\x47\x02\x00\x00\x00\x00\x9b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x91\x05\x00\x00\xf4\x02\x00\x00\xaa\x01\xdd\x02\x00\x00\x90\x02\x13\x06\x00\x00\x00\x00\x00\x00\xf4\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x05\x00\x00\x40\x05\x49\x05\x1d\x00\x00\x00\x66\x02\x95\x33\xd5\x02\x8d\x02\x00\x00\x0d\x05\x97\x04\x00\x00\x54\x02\x00\x00\x37\x0c\x00\x00\x9f\x07\x71\x33\x00\x00\x00\x00\x24\x05\x00\x00\x00\x00\xc5\x01\x00\x00\xb2\x04\x00\x00\x32\x29\x78\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x35\xf2\x36\xcf\x36\xdd\x04\xd0\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x31\x76\x04\x00\x00\x05\x33\xb9\x04\x00\x00\x66\x04\x00\x00\xb3\x35\x63\x04\xd1\x39\x00\x00\x00\x00\x8f\x35\x6b\x35\x00\x00\xe0\x30\x00\x00\x00\x00\x00\x00\x00\x00\x47\x35\x00\x00\x00\x00\xc6\x31\x00\x00\x00\x00\x6d\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x30\x00\x00\x00\x05\x5b\x04\x29\x04\x33\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x2a\x5f\x04\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x04\x00\x00\x00\x00\xdb\x03\x07\x01\x00\x00\x00\x00\xe9\xff\x7f\x05\x00\x00\x00\x00\x00\x00\x23\x35\x40\x1b\xda\x1c\x5d\x1f\x4c\x20\xd0\x12\xd4\x1a\x49\x13\xe1\x1f\xf2\x1e\x03\x1e\xc4\x1b\x3b\x21\xd0\x20\x51\x16\xfe\x15\xbf\x21\xf7\x16\xa4\x16\xae\x39\x8b\x39\x68\x39\x45\x39\x22\x39\xff\x38\xdc\x38\xb9\x38\x96\x38\x73\x38\x50\x38\xac\x36\xff\x34\xcc\x05\xc9\x05\x00\x00\x00\x00\x43\x36\x8c\x04\x00\x00\x09\x2e\xba\x00\x72\x04\xb9\x05\x74\x05\x61\x04\x00\x00\x00\x00\x00\x00\xe8\x03\x78\x00\x00\x00\x77\x00\x00\x00\x00\x00\x1b\x07\x00\x00\x00\x00\x00\x00\x76\x00\x04\x32\x00\x00\x00\x00\x2d\x00\xe3\x00\x72\x00\x00\x00\x00\x00\x00\x00\x2b\x00\xc4\x10\x00\x00\x93\x04\x33\x04\xec\x03\x00\x00\x18\x03\xd7\x01\x00\x00\xbc\x08\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x14\x00\x00\x00\x00\x00\x00\xa9\x0d\x9f\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\xe7\xff\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x06\x27\x04\x12\x00\x00\x00\xa5\x01\x04\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x03\x0b\x03\x00\x00\x10\x0b\x00\x00\x00\x00\x00\x00\xe1\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x05\x00\x00\x00\x00\x2d\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x05\x00\x00\x00\x00\xe2\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x03\x00\x00\xb2\x03\x00\x00\x00\x00\x00\x00\xdb\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x33\x00\x00\x00\x00\x00\x00\x00\x00\x23\x28\x92\x02\x07\x04\x1c\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x32\x00\x00\x00\x00\x6e\x08\x44\x32\x00\x00\xba\x01\x00\x00\x00\x00\x00\x00\x6b\x15\x00\x00\x00\x00\xa4\x0b\xbb\x03\xa8\x03\x8a\x03\x00\x00\x1b\x1c\x00\x00\x00\x00\x00\x00\xca\x03\x00\x00\x90\x03\x00\x00\x00\x00\xf2\x02\x00\x00\x7b\x00\x00\x00\x00\x00\x7f\x03\x33\x03\x29\x33\x00\x00\x93\x19\x00\x00\xfd\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x01\x00\x00\x00\x00\x32\x10\x00\x00\x79\x03\x00\x00\x00\x00\x00\x00\x28\x2f\x00\x00\x00\x00\x00\x00\x6e\x08\x0a\x38\x00\x00\x00\x00\x00\x00\xe7\x37\xc4\x37\x00\x00\xa1\x37\x00\x00\x00\x00\x00\x00\xad\x04\x00\x00\x00\x00\x2d\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x0f\x00\x00\x00\x00\x00\x00\x7e\x2d\x00\x00\x57\x2d\x00\x00\x00\x00\x00\x00\xf3\x2c\x00\x00\xdd\x33\xb7\x34\x00\x00\x00\x00\x00\x00\xfd\x02\x82\x05\x3b\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x37\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x08\x00\x00\x6e\x1e\x00\x00\x00\x00\x5b\x37\x00\x00\x00\x00\x00\x00\x83\x03\x00\x00\x00\x00\x6a\x03\x00\x00\xc3\x02\x57\x05\x7f\x04\x00\x00\xd6\x02\x0d\x06\xb2\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\x03\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x01\x98\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x88\x13\x88\x13\xb6\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x0a\x00\x00\x00\x00\x00\x00\x82\x13\x00\x00\x7d\x05\x28\x01\x09\x13\x6c\x05\x00\x00\x00\x00\x19\x02\x89\x36\x00\x00\x22\x00\xc7\xff\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x07\x14\x03\x82\x02\x00\x00\xf7\x02\x00\x00\x00\x00\x66\x36\x00\x00\x00\x00\x00\x00\x00\x00\x38\x37\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x02\x00\x00\x00\x00\x00\x00\x93\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x05\x00\x00\x00\x00\x74\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\x15\x37\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x2c\x00\x00\x68\x2c\x6f\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x28\x00\x00\x00\x00\x00\x00\xb6\x02\xaf\x06\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\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\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x2f\x05\x00\x00\x00\x00\x4c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x00\x00\x00\x2b\x02\x90\x12\x00\x00\x00\x00\x00\x00\x2b\x05\xe7\x04\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x32\x00\x00\x00\xac\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x2c\x00\x00\xdd\x2b\x00\x00\x4b\x34\x67\x01\x00\x00\xbe\x04\x00\x00\x51\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x2b\x00\x00\x00\x00\x00\x00\xf3\x01\x00\x00\x69\x00\xcf\x01\x17\x12\x00\x00\x00\x00\x00\x00\x00\x00\xab\x10\x73\x03\x00\x00\x00\x00\x08\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x01\x00\x00\x00\x00\x00\x00\xb6\x03\x45\x01\xdc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x01\x00\x00\x7e\x02\x1c\x01\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x81\xff\x00\x00\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\x00\x00\xcc\xfd\x00\x00\x00\x00\xf3\xff\x00\x00\x07\xff\x06\xff\x04\xff\xf5\xfe\x03\xff\xd5\xfe\x00\x00\xd4\xfe\xf3\xfe\xff\xfe\x00\x00\x35\xfe\xe8\xfe\xdd\xfe\xa2\xfe\xd8\xfe\x00\x00\xe5\xfe\xd9\xfe\xa1\xfe\xdb\xfe\xda\xfe\xe7\xfe\xa0\xfe\xdc\xfe\xd7\xfe\xe6\xfe\xc9\xfe\xdf\xfe\xc8\xfe\xd6\xfe\xde\xfe\x9f\xfe\xd3\xfe\x00\x00\x9e\xfe\x9d\xfe\x9c\xfe\x9b\xfe\x9a\xfe\x99\xfe\x98\xfe\x97\xfe\x96\xfe\x95\xfe\x94\xfe\x93\xfe\x92\xfe\x91\xfe\x90\xfe\x8f\xfe\x8e\xfe\x8d\xfe\x8c\xfe\x8b\xfe\x8a\xfe\xe3\xfe\x33\xfe\xe2\xfe\xe1\xfe\xe0\xfe\x00\x00\x05\xff\x09\xff\xc5\xfd\x00\x00\x00\x00\x00\x00\xcb\xfd\xca\xfd\xc6\xfd\xc4\xfd\xc3\xfd\xc2\xfd\xb2\xfd\xc1\xfd\xc0\xfd\x00\x00\x6a\xfd\x00\x00\x00\x00\xbf\xfd\x0a\xff\xbe\xfd\xbd\xfd\xc9\xfd\xc3\xff\xc2\xff\x65\xff\xc1\xff\xbd\xff\xbc\xff\xbb\xff\x7d\xff\x4e\xff\x42\xff\x3f\xff\x3b\xff\x38\xff\x35\xff\x30\xff\x2d\xff\x2b\xff\x29\xff\x27\xff\x25\xff\x23\xff\x21\xff\x15\xff\x00\x00\x03\xfe\x00\x00\x02\xfe\x1b\xfe\x1a\xfe\x00\x00\x19\xfe\x18\xfe\x17\xfe\x16\xfe\x13\xfe\x15\xfe\xcf\xff\xb9\xff\xd5\xff\xd4\xff\xd3\xff\xd2\xff\xd1\xff\xd0\xff\x00\x00\x00\x00\xfd\xfd\xf7\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\xfe\x50\xfd\x00\x00\x00\x00\xf2\xff\xf1\xff\xf0\xff\xef\xff\xee\xff\xed\xff\xec\xff\xeb\xff\xe9\xff\xea\xff\xe8\xff\xe7\xff\xe6\xff\xe5\xff\xe4\xff\xe3\xff\xe2\xff\xe1\xff\xe0\xff\xdf\xff\xde\xff\xdd\xff\xdc\xff\xdb\xff\xda\xff\xd9\xff\xce\xff\xcd\xff\xcc\xff\xcb\xff\xca\xff\xc9\xff\xc8\xff\xc7\xff\xc6\xff\xc5\xff\xc4\xff\xba\xff\x01\xfe\xff\xfd\xfe\xfd\x11\xfe\x00\xfe\x12\xfe\x00\x00\xc3\xff\x2b\xfe\x00\x00\x00\x00\x00\x00\x26\xfe\x4f\xfe\x00\x00\x4c\xfe\x4b\xfe\x00\x00\xa5\xfe\x00\x00\xa3\xfe\xb9\xfe\x00\x00\x00\x00\x57\xfe\x00\x00\xbd\xfe\xc0\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\xff\x00\x00\xd7\xff\xd6\xff\x87\xfe\x00\x00\xb4\xfe\x76\xfe\x89\xfe\x75\xfe\x80\xfe\xb2\xfe\x00\x00\x7e\xfe\x00\x00\x00\x00\x5f\xfe\x5b\xfe\x7d\xfe\xbc\xfe\xb9\xfe\x56\xfe\xbb\xfe\x00\x00\xb8\xfe\xbf\xfe\xb6\xfe\x00\x00\x6b\xfe\x6a\xfe\x74\xfe\x4a\xfe\x3b\xfe\x40\xfe\x49\xfe\x3f\xfe\x72\xfe\x00\x00\x00\x00\x71\xfe\x4e\xfe\x4d\xfe\x80\xff\x6b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\xff\x00\x00\x00\x00\x7b\xff\x25\xfe\x00\x00\x00\x00\x00\x00\x1f\xfe\x00\x00\x00\x00\x24\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfd\x00\x00\x00\x00\x45\xff\x00\x00\x00\x00\xdb\xfd\xdc\xfd\xf2\xfd\x00\x00\x00\x00\xe2\xfd\x00\x00\x00\x00\x0b\xfe\x00\x00\xdf\xfd\xe0\xfd\x42\xff\x11\xff\x00\x00\xdd\xfd\xde\xfd\x46\xff\x4c\xff\x00\x00\x4d\xff\x00\x00\x00\x00\x6b\xfd\x00\x00\x4b\xff\x47\xff\x4a\xff\x48\xff\x49\xff\x00\x00\x00\x00\xb1\xff\xb3\xff\xb2\xff\x00\x00\x45\xfe\x00\x00\x00\x00\x46\xfe\x42\xfe\x0d\xff\xf1\xfe\x00\x00\x0e\xff\x0b\xff\xf5\xfd\xf6\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xff\x57\xff\x00\x00\x00\x00\xb8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfd\x00\x00\xa3\xfd\x00\x00\x85\xfd\x00\x00\xc8\xfd\xc7\xfd\x00\x00\x10\xff\x31\xfe\x2f\xfe\x00\x00\x00\x00\xe4\xfe\xae\xfe\x00\x00\x00\x00\x00\x00\xfe\xfe\xf2\xfe\xd2\xfe\x00\x00\x00\x00\x02\xff\xfb\xfe\xf9\xfe\xf7\xfe\xf4\xfe\x01\xff\xfd\xfe\x08\xff\x00\x00\xfb\xfd\xbc\xfd\x00\x00\xfa\xfd\xfc\xfe\x00\xff\xf6\xfe\xf8\xfe\xfa\xfe\x00\x00\xc7\xfe\xc6\xfe\xd1\xfe\x00\x00\x00\x00\x48\xfe\x00\x00\x00\x00\xaa\xfe\xa9\xfe\xad\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xfe\xef\xfe\xe9\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\xfd\xb0\xfd\xb2\xfd\x00\x00\x00\x00\x00\x00\x0f\xfe\x10\xfe\x6a\xff\x00\x00\x53\xff\x52\xff\x51\xff\x59\xff\x5a\xff\x00\x00\x64\xff\x00\x00\x62\xff\x61\xff\x17\xff\x16\xff\x18\xff\x19\xff\x1a\xff\x1d\xff\x1e\xff\x1f\xff\x1b\xff\x1c\xff\x20\xff\x3c\xff\x3d\xff\x3e\xff\x39\xff\x3a\xff\x36\xff\x37\xff\x31\xff\x32\xff\x33\xff\x34\xff\x2e\xff\x2f\xff\x2c\xff\x2a\xff\x28\xff\x26\xff\x24\xff\x00\x00\x0c\xff\x00\x00\x40\xfe\x41\xfe\x00\x00\x44\xfe\xbe\xff\x40\xff\x00\x00\x43\xfe\xbf\xff\xc0\xff\xaa\xff\x00\x00\x82\xff\xae\xff\xb0\xff\x00\x00\xa9\xff\xa8\xff\xa7\xff\xa6\xff\xa5\xff\xa4\xff\xa3\xff\xa2\xff\xa1\xff\xa0\xff\x9f\xff\x9e\xff\x9d\xff\x9c\xff\x9b\xff\x9a\xff\x99\xff\x98\xff\x97\xff\x96\xff\x95\xff\x94\xff\x93\xff\x92\xff\x91\xff\x90\xff\x8f\xff\x8e\xff\x8d\xff\x8b\xff\x8a\xff\x89\xff\x88\xff\x87\xff\x86\xff\x85\xff\x84\xff\x83\xff\x8c\xff\xfc\xfd\x05\xfe\x00\x00\x07\xfe\x00\x00\x53\xfe\x52\xfe\xb7\xff\x6c\xfd\x00\x00\x0e\xfe\x00\x00\x09\xfe\x0a\xfe\x00\x00\x12\xff\x00\x00\x13\xff\xea\xfd\xe1\xfd\xe3\xfd\x00\x00\xd9\xfd\xda\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xfd\x00\x00\xd2\xfd\xd3\xfd\x00\x00\xd0\xfd\x1c\xfe\x21\xff\x00\x00\x1e\xfe\x00\x00\x20\xfe\x23\xfe\x29\xfe\x2a\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xff\x7f\xff\x00\x00\x00\x00\x77\xff\x00\x00\x6f\xff\x7a\xff\x00\x00\x00\x00\x00\x00\x68\xfe\x69\xfe\x00\x00\x00\x00\x00\x00\x40\xfe\x00\x00\x55\xfe\x00\x00\x00\x00\x39\xfe\x3a\xfe\x00\x00\x88\xfe\x73\xfe\x3e\xfe\x6f\xfe\x00\x00\xa4\xfe\xb5\xfe\xb7\xfe\x00\x00\xc2\xfe\xba\xfe\xbe\xfe\x59\xfe\x5a\xfe\x5d\xfe\x5e\xfe\xb0\xfe\x00\x00\x7f\xfe\xb1\xfe\x00\x00\x7a\xfe\x00\x00\x84\xfe\x00\x00\xc3\xfe\xc1\xfe\x14\xff\x00\x00\x00\x00\x83\xfe\x00\x00\x00\x00\x79\xfe\xaf\xfe\x7b\xfe\x7c\xfe\x5c\xfe\x58\xfe\xb3\xfe\x00\x00\x00\x00\x6e\xfe\x00\x00\x37\xfe\x40\xfe\x3c\xfe\x3d\xfe\x00\x00\x38\xfe\x00\x00\x85\xfe\x86\xfe\x00\x00\x00\x00\x61\xfe\x00\x00\x67\xfe\x00\x00\x00\x00\x66\xfe\x74\xff\x79\xff\x00\x00\x00\x00\x76\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xff\x22\xfe\x00\x00\x27\xfe\x28\xfe\x1d\xfe\x00\x00\xd4\xfd\xd5\xfd\xd7\xfd\x00\x00\x00\x00\x4a\xfd\xed\xfd\x00\x00\xef\xfd\x00\x00\x43\xff\x44\xff\xf1\xfd\x00\x00\x00\x00\x13\xff\x00\x00\x0c\xfe\x0d\xfe\x00\x00\x00\x00\x6c\xfd\x00\x00\x08\xfe\x04\xfe\x00\x00\xac\xff\x00\x00\xad\xff\x00\x00\xaf\xff\xb4\xff\x41\xff\x00\x00\xf0\xfe\x00\x00\x60\xff\x5f\xff\x00\x00\x63\xff\x5e\xff\x00\x00\x00\x00\xba\xfd\x00\x00\x00\x00\xb9\xfd\xb0\xfd\x00\x00\x7d\xfd\x81\xfd\x00\x00\x00\x00\x00\x00\x63\xfd\x00\x00\x67\xfd\x65\xfd\x5c\xfd\x54\xfd\x5b\xfd\x52\xfd\x61\xfd\x53\xfd\x5d\xfd\x55\xfd\x58\xfd\x60\xfd\x57\xfd\x56\xfd\x62\xfd\x5e\xfd\x59\xfd\x51\xfd\x5a\xfd\x5f\xfd\xb2\xfd\x9e\xfd\xa1\xfd\xa0\xfd\x00\x00\xa2\xfd\x6c\xfd\x6c\xfd\x00\x00\x84\xfd\xb1\xfd\x00\x00\xec\xfe\x00\x00\x00\x00\x32\xfe\x2c\xfe\x2d\xfe\x2e\xfe\x00\x00\xac\xfe\xa8\xfe\x34\xfe\x00\x00\x00\x00\x00\x00\xc5\xfe\xcf\xfe\xd0\xfe\xc4\xfe\xf9\xfd\xbb\xfd\xf8\xfd\x00\x00\xcb\xfe\xcd\xfe\xce\xfe\xa7\xfe\xa6\xfe\xab\xfe\x30\xfe\xeb\xfe\x00\x00\x00\x00\x86\xfd\x95\xfd\x00\x00\x96\xfd\x6c\xfd\x00\x00\x00\x00\x6c\xfd\x9f\xfd\xb8\xfd\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xfd\x00\x00\x00\x00\xad\xfd\xaf\xfd\xac\xfd\x00\x00\x00\x00\x7f\xfd\x00\x00\xb2\xfd\xa3\xfd\x00\x00\xb2\xfd\x6d\xfd\x47\xfe\x00\x00\x50\xff\x4f\xff\x22\xff\x00\x00\x00\x00\xab\xff\x06\xfe\x51\xfe\x50\xfe\x00\x00\xb5\xff\x00\x00\x00\x00\x00\x00\xf4\xfd\xf0\xfd\xee\xfd\x49\xfd\x00\x00\x48\xfd\x00\x00\x00\x00\x00\x00\x21\xfe\x00\x00\x70\xff\x67\xff\x71\xff\x68\xff\x72\xff\x73\xff\x00\x00\x75\xff\x6d\xff\x6e\xff\x78\xff\x00\x00\x60\xfe\x65\xfe\x00\x00\x64\xfe\x70\xfe\x54\xfe\x36\xfe\x6c\xfe\x6d\xfe\x77\xfe\x78\xfe\x81\xfe\x82\xfe\x63\xfe\x62\xfe\x00\x00\x66\xff\xd1\xfd\xd6\xfd\x00\x00\x00\x00\x54\xff\x00\x00\x47\xfd\x46\xfd\x00\x00\x4e\xfd\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xfd\x00\x00\xb6\xff\x81\xff\x56\xff\x00\x00\x00\x00\x5d\xff\xb5\xfd\xb2\xfd\x00\x00\xb7\xfd\x7b\xfd\x7c\xfd\x00\x00\x7a\xfd\x79\xfd\x78\xfd\x00\x00\x77\xfd\x76\xfd\x7d\xfd\xa7\xfd\xa6\xfd\xa5\xfd\xa4\xfd\x00\x00\xaa\xfd\xae\xfd\xa9\xfd\xab\xfd\x82\xfd\x66\xfd\x68\xfd\x00\x00\xb2\xfd\x93\xfd\x00\x00\x8e\xfd\x92\xfd\x8d\xfd\x8c\xfd\x6c\xfd\x94\xfd\x9d\xfd\x00\x00\xee\xfe\xea\xfe\xca\xfe\xcc\xfe\x97\xfd\x00\x00\x9b\xfd\x00\x00\x00\x00\x00\x00\x8b\xfd\x00\x00\x6c\xfd\x6c\xfd\xb6\xfd\x64\xfd\xa8\xfd\x80\xfd\x00\x00\x7e\xfd\x00\x00\x6e\xfd\x00\x00\x00\x00\xb4\xfd\x5c\xff\x5b\xff\x55\xff\xec\xfd\x00\x00\xe7\xfd\x00\x00\xe9\xfd\x00\x00\xf3\xfd\x00\x00\x00\x00\x00\x00\x48\xfd\xd8\xfd\x00\x00\x6c\xff\x00\x00\x00\x00\x00\x00\x4d\xfd\x45\xfd\x00\x00\xe6\xfd\xe8\xfd\xe4\xfd\x00\x00\xb3\xfd\x6f\xfd\x74\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xfd\x00\x00\x87\xfd\x9a\xfd\x00\x00\x00\x00\x99\xfd\x9c\xfd\x6c\xfd\x00\x00\x88\xfd\x91\xfd\x70\xfd\x72\xfd\x75\xfd\x00\x00\xe5\xfd\x44\xfd\x00\x00\x43\xfd\x00\x00\x00\x00\xce\xfd\xcd\xfd\x00\x00\x42\xfd\x41\xfd\x3f\xfd\x4c\xfd\x73\xfd\x00\x00\x00\x00\x6c\xfd\x00\x00\x98\xfd\x89\xfd\x00\x00\x8f\xfd\x71\xfd\x00\x00\x00\x00\x4b\xfd\x40\xfd\x8a\xfd"#++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\x11\x00\x0b\x00\x00\x00\x0d\x00\x0b\x00\x0f\x00\x10\x00\x00\x00\x01\x00\x93\x00\x2e\x00\x15\x00\x2e\x00\x00\x00\x18\x00\x19\x00\x1a\x00\x0b\x00\x00\x00\x1d\x00\x1e\x00\x0b\x00\x20\x00\x00\x00\x01\x00\x23\x00\x24\x00\x25\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x59\x00\x00\x00\x0f\x00\x60\x00\x0d\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0b\x00\x15\x00\x0c\x00\x00\x00\x7d\x00\x00\x00\x13\x00\x0b\x00\x13\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x51\x00\x0b\x00\x3c\x00\x0d\x00\x7e\x00\x0f\x00\x13\x00\x02\x00\x2e\x00\x04\x00\x3f\x00\x15\x00\x41\x00\x2a\x00\x18\x00\x19\x00\x1a\x00\x62\x00\x60\x00\x1d\x00\x1e\x00\x13\x00\x20\x00\x00\x00\x01\x00\x23\x00\x24\x00\x25\x00\x87\x00\x86\x00\x87\x00\x60\x00\x00\x00\x66\x00\x0b\x00\x60\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3c\x00\x4d\x00\x4d\x00\x2a\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x51\x00\x88\x00\x89\x00\x8a\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x62\x00\x89\x00\x8a\x00\x86\x00\x87\x00\x86\x00\x87\x00\x80\x00\x87\x00\x81\x00\x87\x00\x79\x00\x73\x00\x86\x00\x3d\x00\xbf\x00\x00\x00\x13\x00\x0c\x00\x0e\x00\xbd\x00\x4d\x00\x11\x00\x11\x00\x47\x00\x4d\x00\x4d\x00\x4d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x77\x00\x78\x00\x79\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\x11\x00\x0d\x00\x11\x00\x0f\x00\x10\x00\x83\x00\x12\x00\x85\x00\xbd\x00\xbe\x00\x4d\x00\x60\x00\x18\x00\x19\x00\x1a\x00\x11\x00\x11\x00\x1d\x00\x1e\x00\x00\x00\x20\x00\x14\x00\x94\x00\x23\x00\x24\x00\x25\x00\x2b\x00\x00\x00\x2b\x00\x0e\x00\x0c\x00\x00\x00\x11\x00\x3b\x00\x3c\x00\x11\x00\x11\x00\x12\x00\x00\x00\x0c\x00\x27\x00\x2b\x00\x2b\x00\x00\x00\x01\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x0b\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\x00\x00\x46\x00\x47\x00\x5e\x00\x5f\x00\x6b\x00\x6c\x00\x62\x00\x63\x00\x64\x00\x4f\x00\x50\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\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x00\x00\x00\x00\xab\x00\xac\x00\x59\x00\x77\x00\x78\x00\x79\x00\x31\x00\x32\x00\x33\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\x3a\x00\x12\x00\xbc\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x0b\x00\x00\x00\x0d\x00\x00\x00\x0f\x00\x72\x00\x73\x00\x12\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x18\x00\x19\x00\x1a\x00\x11\x00\x12\x00\x1d\x00\x1e\x00\x0c\x00\x20\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x11\x00\x12\x00\x12\x00\x11\x00\x12\x00\x3e\x00\x3f\x00\x31\x00\x32\x00\x33\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x0b\x00\x3a\x00\x0d\x00\x2e\x00\x3d\x00\x3a\x00\x3b\x00\x4f\x00\x50\x00\x3e\x00\x3f\x00\x40\x00\x00\x00\x2a\x00\x00\x00\x1a\x00\x00\x00\x46\x00\x47\x00\x48\x00\x90\x00\x20\x00\x3f\x00\x00\x00\x51\x00\x4e\x00\x0c\x00\x44\x00\x51\x00\x46\x00\x12\x00\x54\x00\x2c\x00\x3f\x00\x59\x00\x0c\x00\x30\x00\x5a\x00\x44\x00\x50\x00\x46\x00\x5e\x00\x5f\x00\x76\x00\x3f\x00\x62\x00\x0b\x00\x6d\x00\x0d\x00\x3d\x00\x50\x00\x46\x00\x5f\x00\x60\x00\x00\x00\x01\x00\x15\x00\x16\x00\x85\x00\x86\x00\x87\x00\x50\x00\x01\x00\x7d\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x23\x00\x24\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x00\x00\x00\x00\x7e\x00\x7f\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x11\x00\x12\x00\x59\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xb6\x00\x0b\x00\x00\x00\x0d\x00\x0c\x00\x0f\x00\xbc\x00\x65\x00\x12\x00\x00\x00\x0b\x00\x13\x00\x0d\x00\x76\x00\x18\x00\x19\x00\x1a\x00\x81\x00\x82\x00\x1d\x00\x1e\x00\x0c\x00\x20\x00\x87\x00\x88\x00\x23\x00\x24\x00\x25\x00\x85\x00\x86\x00\x87\x00\x59\x00\x90\x00\x3e\x00\x3f\x00\x11\x00\x0c\x00\x13\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x13\x00\x00\x00\x3d\x00\x00\x00\x01\x00\x3a\x00\x3b\x00\x4f\x00\x50\x00\x3e\x00\x3f\x00\x40\x00\x2c\x00\x48\x00\x0b\x00\x00\x00\x30\x00\x46\x00\x47\x00\x48\x00\x11\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x4e\x00\x00\x00\x0c\x00\x51\x00\x3d\x00\x47\x00\x54\x00\x11\x00\x0c\x00\x0c\x00\x00\x00\x01\x00\x5a\x00\x0c\x00\x11\x00\x13\x00\x5e\x00\x5f\x00\x11\x00\x00\x00\x62\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\x38\x00\x39\x00\x3d\x00\x10\x00\x11\x00\x59\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x59\x00\x47\x00\x48\x00\x00\x00\x47\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x70\x00\x0b\x00\x00\x00\x0d\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x85\x00\x86\x00\x87\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xb6\x00\x0b\x00\x3d\x00\x0d\x00\x0c\x00\x0f\x00\xbc\x00\x2c\x00\x12\x00\x11\x00\x3d\x00\x30\x00\x47\x00\x48\x00\x18\x00\x19\x00\x1a\x00\x6b\x00\x6c\x00\x1d\x00\x1e\x00\x48\x00\x20\x00\x02\x00\x3d\x00\x23\x00\x24\x00\x25\x00\x38\x00\x39\x00\x00\x00\x3d\x00\x6d\x00\x0c\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x0c\x00\x13\x00\x47\x00\x00\x00\x47\x00\x11\x00\x0b\x00\x2c\x00\x0d\x00\x3a\x00\x3b\x00\x30\x00\x2b\x00\x3e\x00\x3f\x00\x40\x00\x00\x00\x30\x00\x31\x00\x32\x00\x33\x00\x46\x00\x47\x00\x48\x00\x3d\x00\x00\x00\x46\x00\x3a\x00\x0c\x00\x4e\x00\x3d\x00\x59\x00\x51\x00\x11\x00\x0c\x00\x54\x00\x50\x00\x0c\x00\x2f\x00\x11\x00\x09\x00\x5a\x00\x11\x00\x6b\x00\x6c\x00\x5e\x00\x5f\x00\x00\x00\x2d\x00\x62\x00\x2f\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x47\x00\x0b\x00\x11\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x0c\x00\x0b\x00\x6b\x00\x6c\x00\x47\x00\x11\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x00\x00\x0b\x00\x87\x00\x0d\x00\xb6\x00\x0f\x00\x10\x00\x46\x00\x86\x00\x87\x00\xbc\x00\x15\x00\x0c\x00\x46\x00\x18\x00\x19\x00\x1a\x00\x11\x00\x00\x00\x1d\x00\x1e\x00\x3d\x00\x20\x00\x0c\x00\x46\x00\x23\x00\x24\x00\x25\x00\x11\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x46\x00\x8a\x00\x0c\x00\x8c\x00\x9c\x00\x8e\x00\x8f\x00\x11\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x51\x00\x0b\x00\x46\x00\x0d\x00\x39\x00\x0f\x00\xaf\x00\xb0\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x18\x00\x19\x00\x1a\x00\x62\x00\x47\x00\x1d\x00\x1e\x00\x00\x00\x20\x00\x64\x00\x2b\x00\x23\x00\x24\x00\x25\x00\x00\x00\x30\x00\x31\x00\x32\x00\x33\x00\x0c\x00\x46\x00\x47\x00\x0c\x00\x8d\x00\x11\x00\x3a\x00\x00\x00\x11\x00\x3d\x00\x4f\x00\x50\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x51\x00\x91\x00\x92\x00\x93\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x62\x00\x70\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x47\x00\x30\x00\x31\x00\x32\x00\x33\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\xbd\x00\x0c\x00\x3a\x00\x6b\x00\x6c\x00\x3d\x00\x11\x00\x00\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x85\x00\x86\x00\x87\x00\x04\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\x0d\x00\x0d\x00\x0f\x00\x00\x00\x01\x00\x12\x00\x87\x00\x0b\x00\xbd\x00\x0d\x00\x59\x00\x18\x00\x19\x00\x1a\x00\x0b\x00\x00\x00\x1d\x00\x1e\x00\x59\x00\x20\x00\x2b\x00\x59\x00\x23\x00\x24\x00\x25\x00\x30\x00\x31\x00\x32\x00\x33\x00\x0b\x00\x31\x00\x32\x00\x33\x00\x0f\x00\x56\x00\x3a\x00\x37\x00\x13\x00\x3d\x00\x3a\x00\x02\x00\x0b\x00\x3d\x00\x0d\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x02\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\x46\x00\x46\x00\x47\x00\x5e\x00\x5f\x00\x7e\x00\x7f\x00\x62\x00\x63\x00\x64\x00\x4f\x00\x50\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\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x46\x00\x47\x00\xab\x00\xac\x00\x3d\x00\x00\x00\x8e\x00\x8f\x00\x90\x00\x4f\x00\x50\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\x00\x00\x01\x00\xbc\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0b\x00\x0b\x00\x0d\x00\x0d\x00\x0b\x00\x0f\x00\x0d\x00\x46\x00\x12\x00\x85\x00\x86\x00\x87\x00\x6b\x00\x6c\x00\x18\x00\x19\x00\x1a\x00\x00\x00\x01\x00\x1d\x00\x1e\x00\x2d\x00\x20\x00\x2f\x00\x85\x00\x23\x00\x24\x00\x25\x00\x00\x00\x0b\x00\x8b\x00\x0d\x00\x8d\x00\x00\x00\x01\x00\x46\x00\x91\x00\x46\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x0a\x00\x0b\x00\x0c\x00\x8b\x00\x47\x00\x3a\x00\x3b\x00\x00\x00\x2b\x00\x3e\x00\x3f\x00\x40\x00\x5c\x00\x30\x00\x31\x00\x32\x00\x33\x00\x46\x00\x47\x00\x48\x00\x87\x00\x85\x00\x6c\x00\x3a\x00\x00\x00\x4e\x00\x3d\x00\x8b\x00\x51\x00\x8d\x00\x2d\x00\x54\x00\x2f\x00\x91\x00\x85\x00\x86\x00\x87\x00\x5a\x00\x85\x00\x86\x00\x87\x00\x5e\x00\x5f\x00\x00\x00\x01\x00\x62\x00\x12\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x31\x00\x32\x00\x33\x00\x02\x00\x47\x00\x60\x00\x37\x00\x00\x00\x01\x00\x3a\x00\x00\x00\x01\x00\x3d\x00\x86\x00\x87\x00\x86\x00\x87\x00\x8e\x00\x8f\x00\x90\x00\x17\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x85\x00\x86\x00\x87\x00\x11\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x85\x00\x86\x00\x87\x00\x0c\x00\x87\x00\x85\x00\x86\x00\x87\x00\x85\x00\x86\x00\x87\x00\x11\x00\x12\x00\xb6\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x01\x00\xbc\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\x02\x00\x0d\x00\x1a\x00\x1b\x00\x1c\x00\x0f\x00\x12\x00\x10\x00\x11\x00\x10\x00\x11\x00\x2e\x00\x18\x00\x19\x00\x1a\x00\x10\x00\x11\x00\x1d\x00\x1e\x00\x0c\x00\x20\x00\x28\x00\x29\x00\x23\x00\x24\x00\x25\x00\x18\x00\x19\x00\x31\x00\x32\x00\x33\x00\x12\x00\x35\x00\x36\x00\x21\x00\x22\x00\x11\x00\x3a\x00\x11\x00\x12\x00\x3d\x00\x11\x00\x12\x00\x5f\x00\x60\x00\x39\x00\x10\x00\x11\x00\x3c\x00\x3d\x00\x60\x00\x48\x00\x13\x00\x41\x00\x0c\x00\x43\x00\x44\x00\x45\x00\x11\x00\x12\x00\x51\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x2e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x02\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x11\x00\x12\x00\x28\x00\x29\x00\x21\x00\x22\x00\x18\x00\x19\x00\x62\x00\x63\x00\x64\x00\x6e\x00\x6f\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\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x0c\x00\x0c\x00\xab\x00\x00\x00\x12\x00\x0f\x00\x02\x00\x60\x00\x17\x00\x2e\x00\x13\x00\x11\x00\x13\x00\x0a\x00\x0c\x00\xb8\x00\xb9\x00\x2a\x00\x0f\x00\x12\x00\x11\x00\x12\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x12\x00\x2c\x00\x2a\x00\x0b\x00\x11\x00\x30\x00\x31\x00\x32\x00\x33\x00\x0f\x00\x0b\x00\x0e\x00\x0e\x00\x02\x00\x13\x00\x3a\x00\x0f\x00\x0c\x00\x3d\x00\x13\x00\x12\x00\x42\x00\x2e\x00\x0f\x00\x12\x00\x2a\x00\x0c\x00\x2a\x00\x0c\x00\x60\x00\x12\x00\x0c\x00\x0f\x00\x39\x00\x0c\x00\x2e\x00\x3c\x00\x3d\x00\x51\x00\x02\x00\x0b\x00\x41\x00\x12\x00\x43\x00\x44\x00\x45\x00\x0f\x00\x0b\x00\x12\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x13\x00\x4f\x00\x50\x00\x11\x00\x52\x00\x53\x00\x10\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x60\x00\x0f\x00\x0f\x00\x12\x00\x71\x00\x5f\x00\x60\x00\x74\x00\x75\x00\x63\x00\x64\x00\x0f\x00\x7e\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\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x0c\x00\x2c\x00\x0c\x00\x2e\x00\x0a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x0e\x00\x10\x00\x0e\x00\x0c\x00\x0c\x00\x0c\x00\x3a\x00\x0c\x00\x0c\x00\x3d\x00\x0b\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x28\x00\x29\x00\x2a\x00\x60\x00\x2c\x00\x11\x00\x0e\x00\x11\x00\x30\x00\x31\x00\x32\x00\x33\x00\x13\x00\x0e\x00\x51\x00\xab\x00\xac\x00\x0e\x00\x3a\x00\x02\x00\x12\x00\x3d\x00\x59\x00\x11\x00\x0c\x00\x60\x00\x10\x00\x5e\x00\xb8\x00\xb9\x00\x3c\x00\x3d\x00\x13\x00\x0e\x00\x26\x00\x41\x00\x1f\x00\x43\x00\x11\x00\x45\x00\x20\x00\x51\x00\x11\x00\x49\x00\x4a\x00\x4b\x00\x1e\x00\x4d\x00\x02\x00\x4f\x00\x50\x00\x7d\x00\x0b\x00\x53\x00\x0b\x00\x2e\x00\x56\x00\x57\x00\x58\x00\x59\x00\x0c\x00\x02\x00\x0f\x00\x87\x00\x68\x00\x0f\x00\x0f\x00\x86\x00\x87\x00\x63\x00\x64\x00\x2a\x00\x0b\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\x11\x00\x7d\x00\x00\x00\x0c\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x11\x00\x2c\x00\x0f\x00\x0a\x00\x60\x00\x30\x00\x31\x00\x32\x00\x33\x00\x10\x00\x5a\x00\x31\x00\x32\x00\x33\x00\x0b\x00\x3a\x00\x36\x00\x0f\x00\x3d\x00\x0b\x00\x3a\x00\x0f\x00\x9b\x00\x3d\x00\x31\x00\x32\x00\x33\x00\x0b\x00\x35\x00\x36\x00\x0b\x00\x0b\x00\x02\x00\x3a\x00\x48\x00\x12\x00\x3d\x00\xbf\x00\x51\x00\xbf\x00\xad\x00\xae\x00\x2e\x00\x51\x00\x0b\x00\x0b\x00\x0b\x00\x48\x00\x59\x00\x0b\x00\xbf\x00\xb8\x00\xb9\x00\x3c\x00\x3d\x00\x1f\x00\x51\x00\x20\x00\x41\x00\x26\x00\x43\x00\x68\x00\x45\x00\x7e\x00\x02\x00\x13\x00\x49\x00\x4a\x00\x4b\x00\x1e\x00\x4d\x00\x0b\x00\x4f\x00\x50\x00\x75\x00\xbf\x00\x53\x00\x12\x00\x2a\x00\x56\x00\x57\x00\x58\x00\x59\x00\x0b\x00\x02\x00\x80\x00\x6f\x00\x82\x00\x83\x00\x2a\x00\x09\x00\xff\xff\x63\x00\x64\x00\xff\xff\xbf\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\xff\xff\x7d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x0a\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\x9b\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xb8\x00\xb9\x00\x3c\x00\x3d\x00\xff\xff\x0d\x00\xff\xff\x41\x00\x10\x00\x43\x00\x12\x00\x45\x00\xff\xff\x15\x00\x16\x00\x49\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\x7d\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x0d\x00\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\x9b\x00\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xad\x00\xae\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xb8\x00\xb9\x00\x3a\x00\x3c\x00\x3d\x00\x3d\x00\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\xff\xff\x4f\x00\x50\x00\x51\x00\x51\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\xff\xff\xff\xff\x62\x00\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x0d\x00\xff\xff\xff\xff\xb8\x00\xb9\x00\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\x3c\x00\x3d\x00\x3d\x00\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\xff\xff\x4f\x00\x50\x00\x51\x00\x51\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x62\x00\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xb8\x00\xb9\x00\x1a\x00\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\x20\x00\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x52\x00\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x09\x00\x0a\x00\xff\xff\x0c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xb8\x00\xb9\x00\xba\x00\xbb\x00\x3a\x00\xff\xff\xff\xff\x3d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\x51\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x09\x00\x0a\x00\xff\xff\x0c\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xb8\x00\xb9\x00\xba\x00\xbb\x00\xff\xff\xff\xff\xff\xff\x46\x00\x47\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\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\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x09\x00\x0a\x00\xff\xff\x0c\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xb8\x00\xb9\x00\xba\x00\xbb\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x49\x00\x4a\x00\x4b\x00\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\x51\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\x48\x00\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x51\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\x1a\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x20\x00\xff\xff\x3d\x00\xff\xff\xff\xff\xb8\x00\xb9\x00\xba\x00\xbb\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\x51\x00\xff\xff\xff\xff\x39\x00\x1a\x00\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\x20\x00\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\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\x98\x00\x99\x00\x9a\x00\x9b\x00\x17\x00\x7d\x00\x51\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\x9c\x00\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\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\x0a\x00\x36\x00\x0c\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\x98\x00\x99\x00\x9a\x00\x9b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\x51\x00\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\x4b\x00\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x51\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\x85\x00\x86\x00\x87\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x0a\x00\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x48\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x51\x00\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb8\x00\xb9\x00\xba\x00\xbb\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\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x63\x00\x64\x00\xff\xff\xff\xff\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\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x98\x00\x99\x00\x9a\x00\x9b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4a\x00\x4b\x00\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\xff\xff\xff\xff\xb8\x00\xb9\x00\xba\x00\xbb\x00\x39\x00\x1a\x00\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\x20\x00\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\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x60\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0a\x00\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x17\x00\x7d\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\x9c\x00\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\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\x0a\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x98\x00\x99\x00\x9a\x00\x9b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x4b\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\x39\x00\xff\xff\x15\x00\x3c\x00\x3d\x00\xb8\x00\xb9\x00\xba\x00\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\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\x0a\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x98\x00\x99\x00\x9a\x00\x9b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\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\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xb8\x00\xb9\x00\xba\x00\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\x60\x00\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\x0a\x00\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\x98\x00\x99\x00\x9a\x00\x9b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\x51\x00\xab\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb1\x00\xb2\x00\xb3\x00\xff\xff\xff\xff\xff\xff\x39\x00\xb8\x00\xb9\x00\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\x60\x00\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x0a\x00\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x48\x00\xff\xff\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\xff\xff\x51\x00\xff\xff\x3a\x00\xff\xff\xa9\x00\x3d\x00\xab\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb1\x00\xb2\x00\xb3\x00\xff\xff\x48\x00\xff\xff\x39\x00\xb8\x00\xb9\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\x51\x00\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\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\x98\x00\x99\x00\x9a\x00\x9b\x00\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xab\x00\xff\xff\x4b\x00\xff\xff\xff\xff\xff\xff\xb1\x00\x39\x00\x51\x00\xff\xff\x3c\x00\x3d\x00\xff\xff\xb8\x00\xb9\x00\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\x60\x00\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\x0a\x00\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\x18\x00\x19\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x98\x00\x99\x00\x9a\x00\x9b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\xa9\x00\xff\xff\xab\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb1\x00\xb2\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xb8\x00\xb9\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\x31\x00\x32\x00\x33\x00\x0a\x00\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\x12\x00\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\xff\xff\x4e\x00\xff\xff\x00\x00\x51\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xab\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\x39\x00\xff\xff\x15\x00\x3c\x00\x3d\x00\xff\xff\xb8\x00\xb9\x00\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\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\x31\x00\x32\x00\x33\x00\x0a\x00\xff\xff\x36\x00\xff\xff\xff\xff\x0f\x00\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x48\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x0d\x00\x4e\x00\xff\xff\x10\x00\x51\x00\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\xab\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xb8\x00\xb9\x00\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\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x0a\x00\xff\xff\x36\x00\xff\xff\xff\xff\x0f\x00\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x48\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x0d\x00\x4e\x00\xff\xff\x10\x00\x51\x00\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\xff\xff\xab\x00\xac\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xb8\x00\xb9\x00\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\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x0a\x00\x35\x00\x36\x00\x31\x00\x32\x00\x33\x00\x3a\x00\x35\x00\x36\x00\x3d\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\xff\xff\x48\x00\xff\xff\xff\xff\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xab\x00\xac\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xb8\x00\xb9\x00\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\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\xff\xff\x0d\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x98\x00\x99\x00\x9a\x00\x9b\x00\xff\xff\xff\xff\x18\x00\x19\x00\x31\x00\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xab\x00\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\x48\x00\xb8\x00\xb9\x00\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\x51\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x0a\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x10\x00\xff\xff\x12\x00\x7f\x00\xff\xff\xff\xff\x0d\x00\xff\xff\x84\x00\x10\x00\xff\xff\x12\x00\xff\xff\x89\x00\x15\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\xff\xff\x90\x00\xff\xff\x92\x00\x93\x00\xff\xff\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\x3c\x00\x3d\x00\xff\xff\xb8\x00\xb9\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\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\x00\x00\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\x0a\x00\x7d\x00\x7e\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\x9b\x00\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\xad\x00\x3c\x00\x3d\x00\x51\x00\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xb8\x00\xb9\x00\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\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\x0a\x00\x7d\x00\x7e\x00\xff\xff\xff\xff\xff\xff\x10\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x9b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x46\x00\x47\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xad\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xb8\x00\xb9\x00\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\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\x0a\x00\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\x00\x00\x7d\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\x3c\x00\x3d\x00\x15\x00\x16\x00\x17\x00\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x9b\x00\x49\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\xad\x00\xae\x00\xff\xff\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xb8\x00\xb9\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\x00\x00\x7d\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\x3c\x00\x3d\x00\x15\x00\x16\x00\x17\x00\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x9b\x00\x49\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\xad\x00\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xb8\x00\xb9\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\x00\x00\x7d\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\x3c\x00\x3d\x00\x15\x00\x16\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x9b\x00\x49\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\xad\x00\xae\x00\xff\xff\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xb8\x00\xb9\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\x00\x00\x7d\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\x3c\x00\x3d\x00\x15\x00\x16\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x9b\x00\x49\x00\x4a\x00\x4b\x00\x0a\x00\x4d\x00\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\xad\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\x00\xb8\x00\xb9\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\xff\xff\x7d\x00\x3c\x00\x31\x00\x32\x00\x33\x00\xff\xff\x41\x00\x36\x00\x43\x00\xff\xff\x45\x00\x3a\x00\xff\xff\xff\xff\x3d\x00\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\x53\x00\x48\x00\xff\xff\x56\x00\x57\x00\x58\x00\x9b\x00\x4e\x00\xff\xff\xff\xff\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x63\x00\x64\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\x0d\x00\xff\xff\xff\xff\xb8\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7d\x00\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x9b\x00\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x62\x00\x0b\x00\x0c\x00\x0d\x00\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\x20\x00\x52\x00\xff\xff\x23\x00\x24\x00\x25\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x51\x00\xaa\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x62\x00\x0b\x00\xff\xff\x0d\x00\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x51\x00\xaa\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x62\x00\x0b\x00\xff\xff\x0d\x00\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x51\x00\xaa\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x62\x00\x0b\x00\xff\xff\x0d\x00\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x51\x00\xaa\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\x62\x00\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x52\x00\xaa\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\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\x2a\x00\x3d\x00\x2c\x00\x48\x00\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\x51\x00\x49\x00\xff\xff\xff\xff\x3a\x00\x4d\x00\xff\xff\x3d\x00\xff\xff\x51\x00\x52\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x59\x00\x09\x00\x49\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\xff\xff\xff\xff\x62\x00\x51\x00\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\x0d\x00\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x51\x00\x0b\x00\xff\xff\x0d\x00\xff\xff\xff\xff\xaf\x00\xb0\x00\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\x62\x00\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x51\x00\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x62\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\xff\xff\xff\xff\xff\xff\x12\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x51\x00\x0b\x00\xff\xff\x0d\x00\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\x62\x00\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x51\x00\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x62\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\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\x20\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\x2a\x00\x3d\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\x49\x00\xff\xff\xff\xff\x3a\x00\x4d\x00\xff\xff\x3d\x00\xff\xff\x51\x00\x52\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x59\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\xff\xff\x4d\x00\xff\xff\xff\xff\x62\x00\x51\x00\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\x3d\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xff\xff\x49\x00\xff\xff\xff\xff\xff\xff\x4d\x00\xff\xff\xff\xff\xff\xff\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\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\xff\xff\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\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x0d\x00\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x51\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\x62\x00\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x51\x00\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x62\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\xff\xff\x10\x00\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x51\x00\x0b\x00\xff\xff\x0d\x00\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\x62\x00\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x51\x00\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x62\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x51\x00\x0b\x00\xff\xff\x0d\x00\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\x62\x00\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x51\x00\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x62\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x51\x00\x0b\x00\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\x62\x00\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x51\x00\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x62\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x51\x00\x0b\x00\xff\xff\x0d\x00\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\x62\x00\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x51\x00\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x62\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x51\x00\x0b\x00\xff\xff\x0d\x00\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\x62\x00\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x51\x00\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x62\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\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\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\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x51\x00\x0b\x00\xff\xff\x0d\x00\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\x62\x00\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x51\x00\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x62\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\x0b\x00\xff\xff\x0d\x00\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x19\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x00\x00\xff\xff\xff\xff\xff\xff\x9c\x00\xff\xff\xff\xff\xff\xff\x00\x00\x09\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x00\xff\xff\xff\xff\x09\x00\x0a\x00\x89\x00\x0c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x90\x00\x13\x00\x92\x00\xff\xff\xff\xff\xff\xff\xff\xff\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\xff\xff\x0d\x00\xff\xff\xff\xff\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\x7c\x00\x7d\x00\x9c\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x09\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7d\x00\x13\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\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\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x09\x00\x0a\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x7d\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\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\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x09\x00\x0a\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x7d\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\x0a\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\x7c\x00\x7d\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\x0a\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\x7c\x00\x7d\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\xff\xff\x44\x00\x45\x00\xff\xff\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\x09\x00\x0a\x00\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\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x7d\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x9c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\xff\xff\x0d\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\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x7d\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x9c\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\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\x0a\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x0f\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\x09\x00\xff\xff\x7d\x00\x9c\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x9c\x00\x0d\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\x7d\x00\x60\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x9c\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x9c\x00\xff\xff\x0f\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x9c\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x9c\x00\xff\xff\x0f\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\x06\x00\xff\xff\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x09\x00\x0a\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\xff\xff\xff\xff\x7d\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x9c\x00\xff\xff\xff\xff\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\xff\xff\x54\x00\x55\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7d\x00\x60\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x09\x00\x0a\x00\xff\xff\x7d\x00\x9c\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\x09\x00\xff\xff\x0b\x00\x9c\x00\x0d\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\x7d\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x9c\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x09\x00\xff\xff\xff\xff\x0c\x00\x9c\x00\xff\xff\x7d\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x09\x00\x00\x00\xff\xff\x0c\x00\x9c\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x09\x00\xff\xff\xff\xff\xff\xff\x9c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x46\x00\x47\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x0a\x00\x0b\x00\xff\xff\xff\xff\x9c\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\xff\xff\xff\xff\xff\xff\xff\xff\x9c\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\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\xff\xff\x4f\x00\x50\x00\x0a\x00\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\x60\x00\xff\xff\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\x7d\x00\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\x53\x00\x9b\x00\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\xff\xff\x63\x00\x64\x00\xff\xff\xff\xff\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\xff\xff\x7d\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\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\x9b\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\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\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\x8c\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\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\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x59\x00\xff\xff\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\x8c\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\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\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x59\x00\xff\xff\x5b\x00\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\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\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\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\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\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\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\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\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\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\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\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\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\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\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\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\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\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\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\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\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\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\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\x57\x00\x58\x00\x59\x00\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x00\x00\x8c\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x51\x00\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x8c\x00\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\x06\x00\x7a\x00\x7b\x00\x7c\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\x84\x00\x12\x00\x86\x00\x87\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\x3d\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8c\x00\xff\xff\x63\x00\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\xff\xff\xff\xff\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\xff\xff\x98\x00\x99\x00\x9a\x00\x52\x00\xff\xff\xff\xff\x55\x00\xff\xff\xff\xff\xff\xff\x59\x00\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x49\x00\xff\xff\xff\xff\xff\xff\x4d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x98\x00\x99\x00\x9a\x00\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\xff\xff\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\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x3a\x00\x2c\x00\xff\xff\x3d\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\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\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x68\x00\x69\x00\x6a\x00\x7a\x00\x7b\x00\x7c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x00\xff\xff\x86\x00\x87\x00\xff\xff\x7a\x00\x7b\x00\x7c\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x84\x00\xff\xff\x86\x00\x87\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\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\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x00\x00\x51\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\x59\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\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\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x00\x00\x51\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\x59\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\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\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x00\x00\x51\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\x59\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\xff\xff\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x3d\x00\x2c\x00\xff\xff\xff\xff\x52\x00\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\x49\x00\xff\xff\xff\xff\x3a\x00\x4d\x00\xff\xff\x3d\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\x59\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\x51\x00\xff\xff\x15\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x4e\x00\xff\xff\x10\x00\x51\x00\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\x48\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\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\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\x53\x00\xff\xff\x3d\x00\x56\x00\x57\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\x63\x00\xff\xff\xff\xff\xff\xff\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\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\x3d\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\x25\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xff\xff\xff\xff\x00\x00\x25\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xff\xff\xff\xff\x00\x00\x25\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xff\xff\xff\xff\x00\x00\x25\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xff\xff\xff\xff\x00\x00\x25\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xff\xff\xff\xff\x00\x00\x25\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x00\x00\xff\xff\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\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\xff\xff\xff\xff\xff\xff\xff\xff"#++happyTable :: HappyAddr+happyTable = HappyA# "\x00\x00\xe0\x02\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xf6\x00\x92\x00\x0c\x03\x32\x01\x28\x04\xdf\x00\xe1\x02\xf6\x00\x19\x03\x52\x04\x3b\x03\x33\x01\xd9\x01\xe6\x00\x96\x00\x97\x00\x98\x00\xf5\x03\xfa\x00\x99\x00\x9a\x00\x62\x03\x9b\x00\xf6\x00\x19\x03\x9c\x00\x9d\x00\x9e\x00\xf6\x00\xad\x01\xf6\x00\xb3\x01\xf6\x00\xcb\x01\xf6\x00\xd3\x01\xce\x01\xce\x01\xb2\x03\x22\x04\x58\x02\x14\x03\x3e\x04\xb9\x02\x94\x00\x5f\x00\x75\x02\x03\x04\x53\x04\xf6\x00\x20\x02\xe6\x00\xe6\x00\xd8\xff\x33\x01\xba\x02\xf0\x03\xdd\x03\x49\x01\x59\x02\xf5\x03\x14\x03\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xa8\x00\x92\x00\x54\x03\x32\x01\xa0\x01\xdf\x00\x4a\x01\x20\x01\x76\x02\x21\x01\x95\x02\x33\x01\xa7\x02\xa4\x01\x96\x00\x97\x00\x98\x00\xad\x00\x5f\x00\x99\x00\x9a\x00\x66\x03\x9b\x00\xf6\x00\x20\x02\x9c\x00\x9d\x00\x9e\x00\x9e\x01\xda\x01\x5d\x00\x5f\x00\xce\x01\x0d\x03\xe4\x03\x5f\x00\xce\x01\xce\x01\xce\x01\x42\x03\xd1\x01\xe7\x00\x24\x04\x3d\x03\xa4\x01\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xa8\x00\x1a\x03\x1b\x03\x1c\x03\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xad\x00\xde\x03\x1c\x03\xae\x01\x5d\x00\xb4\x01\x5d\x00\xb3\x03\x9e\x01\x23\x04\x9e\x01\xf6\x03\x2b\x04\xb4\x03\x0b\x01\xff\xff\xce\x01\xaa\x02\x3a\x04\xd4\x02\xe1\x00\xcf\x01\xd5\x02\xf6\x00\xba\x02\xd7\x01\xdd\x01\xde\x01\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x33\x04\xe6\x03\xe7\x03\xe6\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x51\x02\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x1b\x00\x92\x00\x0e\x03\x93\x00\x0e\x03\x94\x00\xfc\xfd\xff\x03\x95\x00\x00\x04\xe1\x00\x34\x01\xe7\x01\x5f\x00\x96\x00\x97\x00\x98\x00\x0e\x03\x0e\x03\x99\x00\x9a\x00\xe4\x02\x9b\x00\x71\x01\x01\x04\x9c\x00\x9d\x00\x9e\x00\x58\x03\xc4\x02\x3a\x03\x0b\x03\xfc\x03\x4b\x04\xf6\x00\xd0\x01\xd1\x01\x0a\x03\xf6\x00\xe5\x02\x4e\x04\xc5\x02\x72\x01\x3f\x03\x46\x03\xf6\x00\x20\x02\x1c\x00\x9f\x00\xa0\x00\x1d\x00\x1e\x00\xa1\x00\xa2\x00\xa3\x00\x1f\x00\xe4\x03\x20\x00\x21\x00\x22\x00\xa4\x00\xa5\x00\xa6\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa7\x00\x28\x00\x29\x00\xa8\x00\x2a\x00\x2b\x00\xa9\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xaa\x00\xf0\x03\x16\x01\x16\x02\xab\x00\xac\x00\xfa\x03\x12\x03\xad\x00\x31\x00\x32\x00\x17\x02\x19\x01\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x61\x02\xfa\x00\x62\x00\xd5\x00\x3f\x04\xe5\x03\xe6\x03\xe7\x03\xbb\x01\x14\x00\x15\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\x4e\x00\x4f\x00\x16\x00\x62\x02\xda\x00\xf6\x02\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xdc\x01\x92\x00\xfa\x00\x93\x00\x45\x04\x94\x00\xf1\x03\xf2\x03\x95\x00\xc9\x02\xbc\x01\x64\x02\x4b\x01\xfa\x00\x96\x00\x97\x00\x98\x00\xef\xfe\xef\xfe\x99\x00\x9a\x00\xca\x02\x9b\x00\x32\x04\xfa\x00\x9c\x00\x9d\x00\x9e\x00\xf6\x00\x65\x02\x4c\x01\xa2\x01\xa3\x01\x12\x01\xfe\x00\x0a\x01\x14\x00\x15\x00\x13\x01\x14\x01\x15\x01\x16\x01\x17\x01\x19\x02\x16\x00\x1d\x01\xef\xfe\x0b\x01\x9f\x00\xa0\x00\x18\x01\x19\x01\xa1\x00\xa2\x00\xa3\x00\x50\x01\xa4\x01\xee\x02\x07\x01\x35\x04\xa4\x00\xa5\x00\xa6\x00\x1a\x04\x08\x01\x95\x02\x40\x03\x0c\x01\xa7\x00\xef\x02\xc7\x02\xa8\x00\x16\x01\x51\x01\xa9\x00\xc3\x01\x95\x02\x21\x04\x41\x03\x12\x00\xaa\x00\x96\x02\x97\x02\x16\x01\xab\x00\xac\x00\x5f\x03\x95\x02\xad\x00\x8f\x01\x14\x03\x90\x01\x17\x00\x97\x02\x16\x01\xdd\x01\x5f\x00\xf6\x00\xe1\x03\x91\x01\x92\x01\x60\x03\x57\x01\x5d\x00\x97\x02\x8a\x00\x15\x03\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x93\x01\x94\x01\x2a\x04\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x6f\x01\xfa\x00\xfd\x03\x72\x03\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xf6\x00\x70\x01\x01\x04\xea\x01\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xd8\x00\x92\x00\xfa\x00\x93\x00\x3b\x04\x94\x00\xda\x00\x95\x01\x95\x00\x1c\x02\xac\x02\x3c\x04\x1d\x01\x62\x03\x96\x00\x97\x00\x98\x00\x99\x01\x9a\x01\x99\x00\x9a\x00\x1d\x02\x9b\x00\x9b\x01\x9c\x01\x9c\x00\x9d\x00\x9e\x00\x60\x03\x57\x01\x5d\x00\x13\x04\x9d\x01\x12\x01\xfe\x00\xf6\x00\x12\x04\x07\x03\x13\x01\x14\x01\x1e\x01\x16\x01\x17\x01\x13\x04\xfa\x00\xec\x00\xf6\x00\x20\x02\x9f\x00\xa0\x00\x1f\x01\x19\x01\xa1\x00\xa2\x00\xa3\x00\xb1\x01\x9f\x02\xda\x02\x1f\x04\x12\x00\xa4\x00\xa5\x00\xa6\x00\xdb\x02\x8c\x02\xfe\x00\xa6\x02\x00\x01\xa7\x00\x06\x04\x20\x04\xa8\x00\x17\x00\x02\x01\xa9\x00\xf6\x00\x96\x03\x0e\x04\xf6\x00\x69\x03\xaa\x00\x07\x04\xf6\x00\x97\x03\xab\x00\xac\x00\x0a\x03\x78\x02\xad\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xfb\x00\xfc\x00\xec\x00\x79\x02\x7a\x02\xb0\x03\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\xc0\x03\xa1\x02\xa2\x02\x70\x03\x02\x01\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x03\x95\x02\xfa\x00\x1d\x01\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x4c\x04\x57\x01\x5d\x00\x5b\x02\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xd8\x00\x92\x00\xec\x00\x93\x00\x68\x03\x94\x00\xda\x00\xb2\x01\x95\x00\x69\x03\xec\x00\x12\x00\xa3\x02\xa4\x02\x96\x00\x97\x00\x98\x00\x04\x04\x12\x03\x99\x00\x9a\x00\x09\x01\x9b\x00\x8c\x03\x17\x00\x9c\x00\x9d\x00\x9e\x00\x0d\x01\xfc\x00\xfa\x00\x0b\x01\x74\x03\x8d\x03\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x91\x03\x8e\x03\xbb\x02\xfa\x00\x02\x01\xf6\x00\x9a\x02\xba\x01\x1d\x01\x9f\x00\xa0\x00\x12\x00\xc4\x01\xa1\x00\xa2\x00\xa3\x00\xbf\x03\xb7\x01\xb8\x01\x14\x00\x15\x00\xa4\x00\xa5\x00\xa6\x00\x17\x00\xea\x02\x16\x01\x16\x00\xc0\x03\xa7\x00\xb9\x01\x84\x03\xa8\x00\xf6\x00\xa7\x03\xa9\x00\x97\x02\xeb\x02\x05\x03\x0e\x03\x0e\x00\xaa\x00\xf6\x00\xc6\x03\x12\x03\xab\x00\xac\x00\xec\x02\x69\x01\xad\x00\x6a\x01\x75\x03\x43\x01\xfd\x00\xfe\x00\xff\x00\x00\x01\x6b\x01\xf0\x02\xed\x02\xf6\x00\x20\x02\x02\x01\x44\x01\xf6\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x6b\x01\xf1\x02\x2e\x04\xc9\x03\x12\x03\x02\x01\xf6\x00\x78\x03\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x79\x01\x7a\x01\x7b\x01\x7c\x01\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x08\x03\x92\x00\x9e\x01\x32\x01\xd8\x00\xdf\x00\x08\x04\x98\x02\x6c\x01\x5d\x00\xda\x00\x33\x01\x09\x03\xaa\x02\x96\x00\x97\x00\x98\x00\x0a\x03\xfa\x00\x99\x00\x9a\x00\x0b\x01\x9b\x00\xa9\x03\x93\x02\x9c\x00\x9d\x00\x9e\x00\x0e\x03\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x98\x02\xd5\x03\xab\x03\xd6\x03\xc8\x00\xd7\x03\xd8\x03\x0e\x03\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xa8\x00\x92\x00\xac\x02\x93\x00\xbc\x02\xdf\x00\xe9\x00\x56\x03\xd9\x02\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x96\x00\x97\x00\x98\x00\xad\x00\x02\x01\x99\x00\x9a\x00\x1f\x02\x9b\x00\xe5\x02\xc5\x01\x9c\x00\x9d\x00\x9e\x00\xfa\x00\xb7\x01\xb8\x01\x14\x00\x15\x00\x20\x02\x16\x01\x16\x02\xd3\x02\xe7\x02\xf6\x00\x16\x00\x2f\x03\xf6\x00\xb9\x01\x19\x02\x19\x01\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xa8\x00\x40\x04\x41\x04\x42\x04\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xad\x00\xdf\x01\xfd\x00\xfe\x00\xff\x00\x00\x01\xbe\x01\xc6\x01\xf6\x00\x20\x02\xe2\x01\x02\x01\xb7\x01\xb8\x01\x14\x00\x15\x00\x21\x02\x22\x02\x23\x02\x24\x02\xe1\x00\xf9\x02\x16\x00\x64\x03\x12\x03\xb9\x01\xfa\x02\xe6\x01\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x49\x04\x57\x01\x5d\x00\xea\x01\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x1b\x00\x92\x00\xae\x02\x93\x00\x1d\x01\x94\x00\xf6\x00\x20\x02\x95\x00\x9e\x01\x19\x02\xe1\x00\x1d\x01\x54\x02\x96\x00\x97\x00\x98\x00\x92\x03\x70\x02\x99\x00\x9a\x00\x6a\x02\x9b\x00\xc7\x01\x6f\x02\x9c\x00\x9d\x00\x9e\x00\xb7\x01\xb8\x01\x14\x00\x15\x00\x17\x03\x0e\x01\x14\x00\x15\x00\x18\x03\x73\x02\x16\x00\xa0\x02\x19\x03\xb9\x01\x16\x00\x7d\x02\x95\x02\x10\x01\x1d\x01\x1c\x00\x9f\x00\xa0\x00\x1d\x00\x1e\x00\xa1\x00\xa2\x00\xa3\x00\x1f\x00\x7e\x02\x20\x00\x21\x00\x22\x00\xa4\x00\xa5\x00\xa6\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa7\x00\x28\x00\x29\x00\xa8\x00\x2a\x00\x2b\x00\xa9\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xaa\x00\x93\x02\x16\x01\x16\x02\xab\x00\xac\x00\x71\x03\x72\x03\xad\x00\x31\x00\x32\x00\x1d\x02\x19\x01\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x16\x01\x16\x02\x62\x00\xd5\x00\x0b\x01\xfa\x00\x18\x04\xb6\x03\xb7\x03\x55\x02\x19\x01\xd6\x00\xd7\x00\xd8\x00\xd9\x00\x4e\x00\x4f\x00\xf6\x00\x73\x03\xda\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x9a\x02\x92\x00\x1d\x01\x93\x00\xac\x02\x94\x00\x1d\x01\x98\x02\x95\x00\x25\x04\x57\x01\x5d\x00\x11\x03\x12\x03\x96\x00\x97\x00\x98\x00\xf6\x00\xe3\x01\x99\x00\x9a\x00\x69\x01\x9b\x00\x6a\x01\x21\x04\x9c\x00\x9d\x00\x9e\x00\xfa\x00\xae\x02\x5d\x03\x1d\x01\x5e\x03\xf6\x00\x20\x02\xaa\x02\x5f\x03\xac\x02\xfd\x00\xfe\x00\xff\x00\x00\x01\xa6\x01\xff\x02\x00\x03\x01\x03\x39\x01\x02\x01\x9f\x00\xa0\x00\x44\x01\xb6\x01\xa1\x00\xa2\x00\xa3\x00\x5e\x01\xb7\x01\xb8\x01\x14\x00\x15\x00\xa4\x00\xa5\x00\xa6\x00\x9e\x01\x5c\x03\xa0\x01\x16\x00\xa8\x01\xa7\x00\xb9\x01\x5d\x03\xa8\x00\x5e\x03\x14\x02\xa9\x00\x6a\x01\x5f\x03\x26\x04\x57\x01\x5d\x00\xaa\x00\xf3\x03\x57\x01\x5d\x00\xab\x00\xac\x00\xe4\x01\xe5\x01\xad\x00\x52\x04\xfd\x00\xfe\x00\xff\x00\x00\x01\x6b\x01\x0e\x01\x14\x00\x15\x00\x44\x04\x02\x01\x5f\x00\x0f\x01\xf6\x00\xef\x01\x16\x00\xf6\x00\xf0\x01\x10\x01\xa8\x02\x5d\x00\x6c\x01\x5d\x00\xb5\x03\xb6\x03\xb7\x03\x4e\x04\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xe2\x03\x57\x01\x5d\x00\x50\x04\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xe9\x03\x57\x01\x5d\x00\x51\x04\x9e\x01\x83\x03\x57\x01\x5d\x00\xf7\x02\x57\x01\x5d\x00\x0e\x03\x35\x04\xd8\x00\x9a\x02\xa4\x03\x1d\x01\xf6\x00\xf7\x00\xda\x00\x60\x02\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x1b\x00\x92\x00\x44\x04\x93\x00\x81\x01\x82\x01\x83\x01\x94\x00\x13\xff\xc3\x03\xc4\x03\x57\x03\x45\x03\x47\x04\x96\x00\x97\x00\x98\x00\xd7\x02\xd8\x02\x99\x00\x9a\x00\x49\x04\x9b\x00\x77\x01\x78\x01\x9c\x00\x9d\x00\x9e\x00\x7f\x01\x80\x01\xe9\x00\x14\x00\x15\x00\x45\x04\x6a\x03\xeb\x00\x7d\x01\x7e\x01\x48\x04\x16\x00\x0e\x03\x0f\x03\xec\x00\x0e\x03\x39\x03\xdd\x01\x5f\x00\x1c\x00\x44\x03\x45\x03\x1d\x00\x1e\x00\x5f\x00\xed\x00\x4b\x04\x1f\x00\x31\x04\x20\x00\x21\x00\x22\x00\x9e\x02\x9f\x02\xee\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x38\x04\x28\x00\x29\x00\xa8\x00\x2a\x00\x2b\x00\xb9\x03\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x9e\x02\xaf\x02\x77\x01\x78\x01\x7d\x01\x7e\x01\x7f\x01\x80\x01\xad\x00\x31\x00\x32\x00\x6b\x03\x6c\x03\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x3d\x04\x3e\x04\x62\x00\xdc\x01\x1a\x04\x94\x00\xb9\x03\x5f\x00\x29\x04\x2e\x04\xf9\x03\xf8\x03\xf9\x03\x1b\x00\xfa\x03\x4e\x00\x4f\x00\xa4\x01\x94\x00\xfd\x03\xef\xfe\xef\xfe\x30\x03\x50\x00\x7e\x00\x0f\x00\x10\x00\x09\x04\x11\x00\xa4\x01\x10\x04\x11\x04\x12\x00\x13\x00\x14\x00\x15\x00\x94\x00\x15\x04\xad\x03\xae\x03\xb9\x03\xaf\x03\x16\x00\x94\x00\xb5\x03\x17\x00\xb0\x03\xba\x03\xbb\x03\xef\xfe\x94\x00\xbe\x03\xa4\x01\xc8\x03\xa4\x01\xd4\x03\x5f\x00\xdd\x03\xe0\x03\x18\x03\x1c\x00\xed\x03\x5a\x03\x1d\x00\x1e\x00\x18\x00\x5b\x03\x67\x03\x1f\x00\x64\x03\x20\x00\x21\x00\x22\x00\x18\x03\x7a\x03\x78\x03\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\x02\x28\x00\x29\x00\x7f\x03\x2a\x00\x2b\x00\x81\x03\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x5f\x00\x94\x00\x05\x03\x88\x03\x31\x03\xdd\x01\x5f\x00\x32\x03\x33\x03\x31\x00\x32\x00\x05\x03\x90\x03\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\xef\x03\xbf\x01\x50\x00\x7e\x00\x0f\x00\x10\x00\x98\x03\x11\x00\x99\x03\xd9\x01\x1b\x00\x12\x00\x13\x00\x14\x00\x15\x00\xa1\x03\xf0\x03\xa3\x03\xa6\x03\xa8\x03\xaa\x03\x16\x00\xac\x03\xc7\x02\x17\x00\xf4\x02\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x0e\x00\x0f\x00\x10\x00\x5f\x00\x11\x00\xc6\x02\xd2\x02\xe7\x02\x12\x00\x13\x00\x14\x00\x15\x00\xd6\x02\xe2\x02\x18\x00\x62\x00\xc3\x01\x11\xff\x16\x00\xe9\x02\xf3\x02\x17\x00\xc0\x01\xf6\x00\xf7\x02\x5f\x00\xfb\x02\xc1\x01\x4e\x00\x4f\x00\x1d\x00\x1e\x00\xff\x02\x03\x03\x73\x01\x1f\x00\x74\x01\x20\x00\x16\x02\x22\x00\x75\x01\x18\x00\x0a\x03\x23\x00\x24\x00\x25\x00\x76\x01\x27\x00\x97\x01\x28\x00\x29\x00\x10\x03\x11\x03\x2b\x00\x3b\x03\x3d\x03\x2d\x00\x2e\x00\x2f\x00\x30\x00\x42\x03\x8b\x00\x49\x03\xe1\x01\x19\x00\xce\x01\xd5\x01\xda\x01\x5d\x00\x31\x00\x32\x00\xd9\x01\xe2\x01\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x16\x02\x49\x00\x53\x03\x1b\x02\xca\x03\x50\x00\x51\x00\x0f\x00\x10\x00\xf6\x00\x11\x00\x94\x00\x1b\x00\x5f\x00\x12\x00\x13\x00\x14\x00\x15\x00\x54\x03\x5c\x02\xe9\x00\x14\x00\x15\x00\x69\x02\x16\x00\x9b\x02\x94\x00\x17\x00\x6f\x02\x16\x00\x94\x00\x4d\x00\xec\x00\xe9\x00\x14\x00\x15\x00\x7b\x02\xd8\x03\xeb\x00\x7c\x02\x7d\x02\x97\x01\x16\x00\xed\x00\xb0\x02\xec\x00\xff\xff\x18\x00\xff\xff\xf0\x00\x4d\x03\x12\x01\xee\x00\x39\x01\x3c\x01\x3d\x01\xed\x00\x3b\x01\x47\x01\xff\xff\xf1\x00\xf2\x00\x1d\x00\x1e\x00\x74\x01\xee\x00\x75\x01\x1f\x00\x73\x01\x20\x00\xcb\x03\x22\x00\x96\x01\x97\x01\x98\x01\x23\x00\x24\x00\x25\x00\x76\x01\x27\x00\x9e\x01\x28\x00\x29\x00\xcc\x03\xff\xff\x2b\x00\xa8\x01\xab\x01\x2d\x00\x2e\x00\x2f\x00\x30\x00\xac\x01\xad\x01\xcd\x03\xd9\x03\xce\x03\xcf\x03\xb1\x01\x0e\x00\x00\x00\x31\x00\x32\x00\x00\x00\xff\xff\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x49\x00\x4b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x1b\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x4c\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x4d\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\xdc\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x4d\x03\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\xf1\x00\xf2\x00\x1d\x00\x1e\x00\x00\x00\x6b\x00\x00\x00\x1f\x00\x6c\x00\x20\x00\x6d\x00\x22\x00\x00\x00\x4c\x01\x5b\x01\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x2c\x01\x7d\x03\x2e\x01\x2f\x01\x30\x01\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x49\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x1b\x00\x92\x00\x00\x00\x93\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x4d\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\xbf\x01\x50\x00\x7e\x00\x0f\x00\x10\x00\x00\x00\x11\x00\xf0\x00\x4d\x03\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x00\xf2\x00\x16\x00\x1d\x00\x1e\x00\x17\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\xa8\x00\x18\x00\x2b\x00\x00\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00\xc1\x01\x00\x00\x00\x00\xad\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x49\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x4d\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x1b\x00\x54\x01\x00\x00\x93\x00\x00\x00\x00\x00\x68\x01\x69\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x4d\x03\x50\x00\x7e\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x1d\x00\x1e\x00\x17\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\xa8\x00\x18\x00\x2b\x00\x00\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x4e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x49\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x4d\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x0e\x00\x1b\x00\x92\x02\x93\x02\x1d\x01\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x68\x01\x69\x01\x07\x01\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x08\x01\x6d\x00\x00\x00\x00\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\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x03\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xc8\x00\x0e\x00\x1b\x00\x00\x00\xb4\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x00\x50\x00\x7e\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\xe4\x00\x54\x02\x16\x00\x00\x00\x00\x00\x17\x00\x84\x01\x85\x01\x86\x01\x87\x01\x88\x01\x89\x01\x8a\x01\x8b\x01\x8c\x01\x8d\x01\x8e\x01\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x18\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xc8\x00\x0e\x00\x1b\x00\x00\x00\xb7\x02\xe1\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4e\x00\x4f\x00\xe4\x00\x54\x02\x00\x00\x00\x00\x00\x00\x16\x01\x16\x02\x00\x00\x8e\x02\x8f\x02\x52\x02\x00\x00\x00\x00\x00\x00\x90\x02\x19\x01\x18\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xc8\x00\x0e\x00\x1b\x00\x00\x00\xc0\x02\xe1\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4e\x00\x4f\x00\xe4\x00\x54\x02\xe9\x00\x14\x00\x15\x00\x50\x03\xc9\x01\xeb\x00\xc0\x02\x8f\x02\x52\x02\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x18\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\xed\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\xee\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xc8\x00\x1b\x00\x19\x02\x93\x02\x1d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x00\x14\x00\x15\x00\x00\x00\x07\x01\x9c\x02\x00\x00\x00\x00\x00\x00\x16\x00\x08\x01\x00\x00\xec\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\xe4\x00\x54\x02\x0e\x00\x04\x01\x05\x01\x00\x00\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x01\x00\x00\x00\x00\xee\x00\x00\x00\x00\x00\x1c\x00\x07\x01\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x08\x01\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\xe9\x00\x14\x00\x15\x00\x46\x03\xc9\x01\xeb\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xa5\x03\x09\x01\xee\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4e\x00\x4f\x00\xe4\x00\x54\x02\xc8\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x00\x14\x00\x15\x00\x00\x00\x1b\x00\x55\x01\xc2\x02\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\x00\x00\xe1\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\xee\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x4e\x00\x4f\x00\xe4\x00\x83\x03\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x16\x04\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x18\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x56\x01\x57\x01\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x00\x00\x00\x00\xe9\x00\x14\x00\x15\x00\x47\x03\xc9\x01\xeb\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\xec\x00\x1b\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\xed\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\xee\x00\x6d\x00\x00\x00\x00\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\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4f\x00\xe4\x00\x54\x02\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x01\x2d\x01\x2e\x01\x2f\x01\x30\x01\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\xe1\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x02\x52\x02\x00\x00\x6e\x01\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x04\x01\x05\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xff\x00\x00\x00\x00\x4e\x00\x4f\x00\xe4\x00\x83\x03\x1c\x00\x07\x01\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x08\x01\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x00\x00\x00\x00\x5f\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x1b\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x03\x03\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x18\x04\x09\x01\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4e\x00\x4f\x00\xe4\x00\x54\x02\xc8\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\xe1\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x1b\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x81\x03\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x1c\x00\x00\x00\x3d\x01\x1d\x00\x1e\x00\x4e\x00\x4f\x00\xe4\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\xe4\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x1b\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x4e\x00\x4f\x00\xe4\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x60\x00\x00\x00\x00\x00\xe1\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x1b\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x00\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x03\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x18\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x64\x00\xa6\x01\x00\x00\x00\x00\x00\x00\x1c\x00\x4e\x00\x4f\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x00\x14\x00\x15\x00\x1b\x00\x2f\x04\xeb\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x03\x37\x03\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xed\x00\x00\x00\xe9\x00\x14\x00\x15\x00\xc8\x01\xc9\x01\xeb\x00\x00\x00\xee\x00\x00\x00\x16\x00\x00\x00\x61\x00\xec\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x64\x00\x65\x00\x00\x00\xed\x00\x00\x00\x1c\x00\x4e\x00\x4f\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\xee\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\xd1\x03\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x16\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x03\x00\x00\x62\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x00\x00\xd3\x03\x1c\x00\x18\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x4e\x00\x4f\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x60\x00\xe4\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x1b\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x35\x03\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x36\x03\x37\x03\x17\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x61\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x64\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x4e\x00\x4f\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x04\x04\x00\x00\xe9\x00\x14\x00\x15\x00\x1b\x00\x00\x00\x64\x01\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x35\x03\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x03\x37\x03\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x31\x04\x00\x00\xdb\x00\xee\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x1c\x00\x00\x00\x52\x01\x1d\x00\x1e\x00\x00\x00\x4e\x00\x4f\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x38\x03\x00\x00\xe9\x00\x14\x00\x15\x00\x1b\x00\x00\x00\x64\x01\x00\x00\x00\x00\x94\x00\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\xed\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x6b\x00\x29\x04\x00\x00\x6c\x00\xee\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x0e\x02\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x4e\x00\x4f\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x00\x00\x00\x00\xe9\x00\x14\x00\x15\x00\x1b\x00\x00\x00\x64\x01\x00\x00\x00\x00\x94\x00\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\xed\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x6b\x00\xe3\x03\x00\x00\x6c\x00\xee\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x0c\x02\x00\x00\x62\x00\x50\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x4e\x00\x4f\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x00\x00\x00\x00\xe9\x00\x14\x00\x15\x00\x1b\x00\xea\x03\xeb\x00\xe9\x00\x14\x00\x15\x00\x16\x00\x49\x03\xeb\x00\xec\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\xed\x00\x00\x00\x00\x00\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\xc3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x4e\x00\x4f\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x00\x00\x00\x00\x23\x01\x00\x00\x24\x01\x00\x00\x25\x01\x00\x00\x00\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x26\x01\x27\x01\xe9\x00\x14\x00\x15\x00\x00\x00\x49\x03\xeb\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x62\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\xed\x00\x4e\x00\x4f\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\xee\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x1b\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\xdb\x03\x00\x00\xdc\x03\x35\x01\x00\x00\x00\x00\x6b\x00\x00\x00\x28\x01\x6c\x00\x00\x00\x6d\x00\x00\x00\x29\x01\x54\x01\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x2a\x01\x00\x00\x2b\x01\x36\x01\x00\x00\x37\x01\x38\x01\x2c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\x1d\x00\x1e\x00\x00\x00\x4e\x00\x4f\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x01\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x1b\x00\x49\x00\x70\x03\x00\x00\x00\x00\x00\x00\x6e\x03\x00\x00\x6f\x03\x00\x00\x00\x00\xe1\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x4d\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x02\x8f\x02\x52\x02\x00\x00\xb2\x02\xf0\x00\x1d\x00\x1e\x00\x18\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\xf1\x00\xf2\x00\x00\x00\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x1b\x00\x49\x00\x70\x03\x00\x00\x00\x00\x00\x00\x52\x03\xe1\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x8c\x02\xfe\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\xc2\x02\x00\x00\x8e\x02\x8f\x02\x52\x02\x00\x00\x00\x00\x00\x00\x90\x02\x19\x01\x18\x00\xf0\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\xf1\x00\xf2\x00\x00\x00\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x1b\x00\xec\x03\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xdb\x00\x49\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x1d\x00\x1e\x00\x4c\x01\x6f\x00\x04\x02\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\x00\x00\x00\x00\x4d\x00\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xf0\x00\x4d\x03\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\xf1\x00\xf2\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xdb\x00\x49\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x1d\x00\x1e\x00\x4c\x01\x6f\x00\x05\x02\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\x00\x00\x00\x00\x4d\x00\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xf0\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\xf1\x00\xf2\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xdb\x00\x49\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x1d\x00\x1e\x00\x4c\x01\x01\x02\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\x00\x00\x00\x00\x4d\x00\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xf0\x00\xcb\x01\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\xf1\x00\xf2\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xdb\x00\x49\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x1d\x00\x1e\x00\x4c\x01\x02\x02\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\x00\x00\x00\x00\x4d\x00\x23\x00\x24\x00\x25\x00\x1b\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\xf1\x00\xf2\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x49\x00\x1d\x00\xe9\x00\x14\x00\x15\x00\x00\x00\x1f\x00\x64\x01\x20\x00\x00\x00\x22\x00\x16\x00\x00\x00\x00\x00\xec\x00\x24\x00\x25\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2b\x00\xed\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x4d\x00\xd8\x02\x00\x00\x00\x00\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\xf5\x01\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x92\x00\xf6\x01\x93\x00\x00\x00\x00\x00\x68\x01\x69\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x4d\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\xbe\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xad\x00\x92\x00\xc6\x03\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x58\x03\x00\x00\x9c\x00\x9d\x00\x9e\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xa8\x00\xef\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xad\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xa8\x00\xef\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xad\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xa8\x00\xef\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xad\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xa8\x00\x7c\x03\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x91\x03\xef\x01\x89\x02\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x92\x00\x00\x00\x93\x00\x8a\x02\x00\x00\x00\x00\x00\x00\xce\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x8b\x02\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\xe9\x00\x14\x00\x15\x00\x00\x00\xea\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00\x0f\x00\x10\x00\x1e\x00\x11\x00\xed\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\xee\x00\x23\x00\x00\x00\x00\x00\x16\x00\x27\x00\x00\x00\x17\x00\x00\x00\xa8\x00\x8c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x0e\x00\xb4\x02\x8f\x02\x52\x02\x00\x00\xb5\x02\x00\x00\x00\x00\xad\x00\x18\x00\x00\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x0b\x04\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x92\x00\x0c\x04\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x6d\x02\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xa8\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\xe9\x00\xd3\x01\x6e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\xad\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xad\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x0d\x02\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x41\x01\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x12\x02\x00\x00\xf3\x01\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xa8\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\xad\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xad\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x08\x02\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x92\x00\x00\x00\x93\x00\xcf\x02\x00\x00\x00\x00\x00\x00\xce\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\xd0\x02\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00\x0f\x00\x10\x00\x1e\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x16\x00\x27\x00\x00\x00\x17\x00\x00\x00\xa8\x00\xd1\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\xbd\x02\x8f\x02\x52\x02\x00\x00\xbe\x02\x00\x00\x00\x00\xad\x00\x18\x00\x00\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x1e\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x11\x02\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x62\x01\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xa8\x00\x92\x00\xbd\x03\x93\x00\x00\x00\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\xad\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x01\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xad\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x09\x02\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x9b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7c\x03\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xa8\x00\x92\x00\x00\x00\x93\x00\x9e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\xad\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xad\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x0a\x02\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x92\x00\x00\x00\x93\x00\xa0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x10\x02\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xa8\x00\x92\x00\x00\x00\x93\x00\xcd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\xad\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xad\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x0b\x02\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x05\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x0f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xa8\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x82\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\xad\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xad\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x06\x02\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x92\x00\x00\x00\x93\x00\x85\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x07\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xa8\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\xad\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xad\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x03\x02\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x3f\x01\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x51\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xa8\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\xad\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xad\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x59\x01\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\x00\x00\x54\x01\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\x00\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x5a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x0e\x00\xa8\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x97\x00\x98\x00\xad\x00\x00\x00\x99\x00\x9a\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x9c\x00\x9d\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xa8\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xad\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x00\x00\x00\x00\x23\x01\x00\x00\x24\x01\x00\x00\x25\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x01\x27\x01\x00\x00\x00\x00\xe0\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xaa\x01\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x0e\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x5b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x01\x00\x00\x00\x00\x0e\x00\xf9\x00\x29\x01\x94\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x95\x03\x2b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x1b\x01\x1c\x01\x00\x00\x1d\x01\x00\x00\x00\x00\x27\x02\x28\x02\x29\x02\x2a\x02\x2b\x02\x2c\x02\x2d\x02\x2e\x02\x2f\x02\x30\x02\x31\x02\x32\x02\x33\x02\x34\x02\x35\x02\x36\x02\x37\x02\x38\x02\x39\x02\x3a\x02\x3b\x02\x3c\x02\x3d\x02\x3e\x02\x3f\x02\x40\x02\x41\x02\x42\x02\x43\x02\x44\x02\x45\x02\x46\x02\x47\x02\x48\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x49\x02\xfa\x00\xc8\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x02\x4b\x02\x4c\x02\x4d\x02\xc8\x00\x0e\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x01\xe9\x03\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x02\x28\x02\x29\x02\x2a\x02\x2b\x02\x2c\x02\x2d\x02\x2e\x02\x2f\x02\x30\x02\x31\x02\x32\x02\x33\x02\x34\x02\x35\x02\x36\x02\x37\x02\x38\x02\x39\x02\x3a\x02\x3b\x02\x3c\x02\x3d\x02\x3e\x02\x3f\x02\x40\x02\x41\x02\x42\x02\x43\x02\x44\x02\x45\x02\x46\x02\x47\x02\x48\x02\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x0e\x00\xf9\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x5c\x01\x00\x00\xdd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x49\x02\xfa\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x02\x4b\x02\x4c\x02\x4d\x02\xc8\x00\x27\x02\x28\x02\x29\x02\x2a\x02\x2b\x02\x2c\x02\x2d\x02\x2e\x02\x2f\x02\x30\x02\x31\x02\x32\x02\x33\x02\x34\x02\x35\x02\x36\x02\x37\x02\x38\x02\x39\x02\x3a\x02\x3b\x02\x3c\x02\x3d\x02\x3e\x02\x3f\x02\x40\x02\x41\x02\x42\x02\x43\x02\x44\x02\x45\x02\x46\x02\x47\x02\x48\x02\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x0e\x00\xf9\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x5d\x01\x00\x00\x26\x02\x00\x00\x00\x00\x00\x00\x00\x00\x49\x02\xfa\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x02\x4b\x02\x4c\x02\x4d\x02\xc8\x00\x27\x02\x28\x02\x29\x02\x2a\x02\x2b\x02\x2c\x02\x2d\x02\x2e\x02\x2f\x02\x30\x02\x31\x02\x32\x02\x33\x02\x34\x02\x35\x02\x36\x02\x37\x02\x38\x02\x39\x02\x3a\x02\x3b\x02\x3c\x02\x3d\x02\x3e\x02\x3f\x02\x40\x02\x41\x02\x42\x02\x43\x02\x44\x02\x45\x02\x46\x02\x47\x02\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\x0e\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x02\xfa\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x02\x4b\x02\x4c\x02\x4d\x02\xc8\x00\x27\x02\x28\x02\x29\x02\x2a\x02\x2b\x02\x2c\x02\x2d\x02\x2e\x02\x2f\x02\x30\x02\x31\x02\x32\x02\x33\x02\x34\x02\x35\x02\x36\x02\x37\x02\x38\x02\x39\x02\x3a\x02\x3b\x02\x3c\x02\x3d\x02\x3e\x02\x3f\x02\x40\x02\x41\x02\x42\x02\x43\x02\x44\x02\x45\x02\x46\x02\x47\x02\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\x0e\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x02\xfa\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x4a\x02\x4b\x02\x4c\x02\x4d\x02\xc8\x00\x1e\x03\x00\x00\x00\x00\x1f\x03\x20\x03\x00\x00\x00\x00\x00\x00\x21\x03\x00\x00\x00\x00\x22\x03\x23\x03\x00\x00\x00\x00\x00\x00\x24\x03\x25\x03\x26\x03\x27\x03\x00\x00\x00\x00\x28\x03\x29\x03\x00\x00\x2a\x03\x00\x00\x00\x00\x2b\x03\x00\x00\x2c\x03\x2d\x03\x2e\x03\x0e\x00\x04\x01\x05\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\x07\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x03\xfa\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x0e\x00\x04\x01\x05\x01\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x1b\x01\x1c\x01\x00\x00\x1d\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\x07\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x01\x09\x01\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x0e\x00\x04\x01\x05\x01\x00\x00\xc8\x00\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\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x09\x01\xcd\x01\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x0e\x00\x00\x00\x1e\x01\xc8\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x0e\x00\x1b\x01\x1c\x01\xc8\x00\x1d\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\x00\x00\x00\x00\x09\x01\x5f\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\xfa\x00\xc8\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x0e\x00\xf9\x00\x00\x00\x00\x00\xc8\x00\x00\x00\xb0\x01\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x1e\x01\xc8\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x0e\x00\xf9\x00\x00\x00\x00\x00\xc8\x00\x00\x00\xb6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x0e\x00\xf9\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xdc\x00\x00\x00\x00\x00\xfa\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x0e\x00\x04\x01\x05\x01\x00\x00\xc8\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x02\x00\x00\xde\x02\x2f\x01\x30\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x00\x5f\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x0e\x00\xf9\x00\x00\x00\xfa\x00\xc8\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x0e\x00\x00\x00\x92\x02\xc8\x00\x1d\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\x00\x00\x09\x01\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\xfa\x00\xc8\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x0e\x00\x00\x00\x00\x00\x2d\x04\xc8\x00\x00\x00\xfa\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x0e\x00\xfa\x00\x00\x00\x77\x03\xc8\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x0e\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x04\xe1\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x8c\x02\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x8d\x02\x00\x00\x8e\x02\x8f\x02\x52\x02\x00\x00\x00\x00\x00\x00\x90\x02\x19\x01\x18\x00\x00\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x1b\x00\x59\x01\x00\x00\x00\x00\xc8\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\x1b\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2b\x00\x4d\x00\x00\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x4d\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\x00\x00\x00\x00\x7d\x00\x50\x00\x7e\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x80\x00\x81\x00\x4d\x02\x4e\x02\x00\x00\x4f\x02\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x88\x00\x7d\x00\x50\x00\x7e\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x80\x00\x81\x00\x00\x00\xfb\x02\x00\x00\xfc\x02\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x88\x00\x7d\x00\x50\x00\x7e\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x80\x00\x81\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x65\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x04\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x04\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x04\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x04\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x04\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x03\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\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\x03\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x03\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x02\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x01\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x02\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x50\x00\x51\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x47\x01\x80\x00\x81\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x65\x00\x88\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x18\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xa4\x01\x55\x00\x56\x00\x57\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x5b\x00\x6d\x00\x5c\x00\x5d\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\xa1\x03\x00\x00\x00\x00\x00\x00\x00\x00\xda\x00\x80\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x0b\x01\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x2a\x00\x2b\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x26\x00\x27\x00\x00\x00\x4a\x00\x4b\x00\x4c\x00\x2a\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x07\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x4c\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x4f\x00\x50\x00\x51\x00\x0f\x00\x10\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x4f\x00\x50\x00\x51\x00\x0f\x00\x10\x00\x16\x00\x11\x00\x00\x00\x17\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x00\x00\x58\x00\x59\x00\x5a\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x63\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\xe9\x00\x14\x00\x15\x00\x00\x00\x00\x00\x64\x01\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x02\x00\x00\xdb\x00\xee\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x66\x01\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x63\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\xe9\x00\x14\x00\x15\x00\x00\x00\x00\x00\x64\x01\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x02\x00\x00\xdb\x00\xee\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x66\x01\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x63\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\xe9\x00\x14\x00\x15\x00\x00\x00\x00\x00\x64\x01\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x01\x00\x00\xdb\x00\xee\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x66\x01\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xdc\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xdc\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x02\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x5c\x02\x5d\x02\x00\x00\x5e\x02\x50\x00\x7e\x00\x0f\x00\x10\x00\x1e\x00\x11\x00\x00\x00\x00\x00\xdd\x00\x12\x00\x13\x00\x14\x00\x15\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x16\x00\x27\x00\x00\x00\x17\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x18\x00\x00\x00\xd5\x01\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x00\x14\x00\x15\x00\x00\x00\x00\x00\x64\x01\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\xd6\x01\x00\x00\x6c\x00\xee\x00\x6d\x00\x00\x00\x00\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\xca\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\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\xcb\x02\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\x86\x02\x00\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x00\x00\x27\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2b\x00\x00\x00\xec\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x02\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\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\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xcd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x0b\x01\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x71\x02\x7b\x00\x60\x01\xdb\x00\x72\x02\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x4d\x01\x00\x00\x00\x00\xdb\x00\xb7\x02\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x4d\x01\x00\x00\x00\x00\xdb\x00\x72\x02\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x4d\x01\x00\x00\x00\x00\xdb\x00\x9a\x02\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x4d\x01\x00\x00\x00\x00\xdb\x00\xa5\x02\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x4c\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x4d\x01\x00\x00\x00\x00\xdb\x00\x4e\x01\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x5c\x02\x86\x03\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x5c\x02\xf1\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x60\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x1b\x04\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x09\x04\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xbb\x03\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x85\x03\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xe2\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xf1\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x13\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x62\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x66\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x67\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x6b\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x85\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x3f\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xf4\x00\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\xeb\x01\xec\x01\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\xed\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\xc4\x03\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\xed\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\xe0\x03\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\xed\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\xf3\x01\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\xed\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x7f\x02\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x80\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x82\x02\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x83\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x15\x04\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xc1\x03\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x7a\x03\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x7f\x03\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x99\x03\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x9b\x03\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x9c\x03\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x9e\x03\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xfd\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xf6\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xf7\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xf8\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xf9\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xfa\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xfb\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xfc\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xfd\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xfe\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xff\x01\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x00\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\x69\x02\xdb\x00\x00\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\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\xb0\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (12, 704) [+ (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),+ (452 , happyReduce_452),+ (453 , happyReduce_453),+ (454 , happyReduce_454),+ (455 , happyReduce_455),+ (456 , happyReduce_456),+ (457 , happyReduce_457),+ (458 , happyReduce_458),+ (459 , happyReduce_459),+ (460 , happyReduce_460),+ (461 , happyReduce_461),+ (462 , happyReduce_462),+ (463 , happyReduce_463),+ (464 , happyReduce_464),+ (465 , happyReduce_465),+ (466 , happyReduce_466),+ (467 , happyReduce_467),+ (468 , happyReduce_468),+ (469 , happyReduce_469),+ (470 , happyReduce_470),+ (471 , happyReduce_471),+ (472 , happyReduce_472),+ (473 , happyReduce_473),+ (474 , happyReduce_474),+ (475 , happyReduce_475),+ (476 , happyReduce_476),+ (477 , happyReduce_477),+ (478 , happyReduce_478),+ (479 , happyReduce_479),+ (480 , happyReduce_480),+ (481 , happyReduce_481),+ (482 , happyReduce_482),+ (483 , happyReduce_483),+ (484 , happyReduce_484),+ (485 , happyReduce_485),+ (486 , happyReduce_486),+ (487 , happyReduce_487),+ (488 , happyReduce_488),+ (489 , happyReduce_489),+ (490 , happyReduce_490),+ (491 , happyReduce_491),+ (492 , happyReduce_492),+ (493 , happyReduce_493),+ (494 , happyReduce_494),+ (495 , happyReduce_495),+ (496 , happyReduce_496),+ (497 , happyReduce_497),+ (498 , happyReduce_498),+ (499 , happyReduce_499),+ (500 , happyReduce_500),+ (501 , happyReduce_501),+ (502 , happyReduce_502),+ (503 , happyReduce_503),+ (504 , happyReduce_504),+ (505 , happyReduce_505),+ (506 , happyReduce_506),+ (507 , happyReduce_507),+ (508 , happyReduce_508),+ (509 , happyReduce_509),+ (510 , happyReduce_510),+ (511 , happyReduce_511),+ (512 , happyReduce_512),+ (513 , happyReduce_513),+ (514 , happyReduce_514),+ (515 , happyReduce_515),+ (516 , happyReduce_516),+ (517 , happyReduce_517),+ (518 , happyReduce_518),+ (519 , happyReduce_519),+ (520 , happyReduce_520),+ (521 , happyReduce_521),+ (522 , happyReduce_522),+ (523 , happyReduce_523),+ (524 , happyReduce_524),+ (525 , happyReduce_525),+ (526 , happyReduce_526),+ (527 , happyReduce_527),+ (528 , happyReduce_528),+ (529 , happyReduce_529),+ (530 , happyReduce_530),+ (531 , happyReduce_531),+ (532 , happyReduce_532),+ (533 , happyReduce_533),+ (534 , happyReduce_534),+ (535 , happyReduce_535),+ (536 , happyReduce_536),+ (537 , happyReduce_537),+ (538 , happyReduce_538),+ (539 , happyReduce_539),+ (540 , happyReduce_540),+ (541 , happyReduce_541),+ (542 , happyReduce_542),+ (543 , happyReduce_543),+ (544 , happyReduce_544),+ (545 , happyReduce_545),+ (546 , happyReduce_546),+ (547 , happyReduce_547),+ (548 , happyReduce_548),+ (549 , happyReduce_549),+ (550 , happyReduce_550),+ (551 , happyReduce_551),+ (552 , happyReduce_552),+ (553 , happyReduce_553),+ (554 , happyReduce_554),+ (555 , happyReduce_555),+ (556 , happyReduce_556),+ (557 , happyReduce_557),+ (558 , happyReduce_558),+ (559 , happyReduce_559),+ (560 , happyReduce_560),+ (561 , happyReduce_561),+ (562 , happyReduce_562),+ (563 , happyReduce_563),+ (564 , happyReduce_564),+ (565 , happyReduce_565),+ (566 , happyReduce_566),+ (567 , happyReduce_567),+ (568 , happyReduce_568),+ (569 , happyReduce_569),+ (570 , happyReduce_570),+ (571 , happyReduce_571),+ (572 , happyReduce_572),+ (573 , happyReduce_573),+ (574 , happyReduce_574),+ (575 , happyReduce_575),+ (576 , happyReduce_576),+ (577 , happyReduce_577),+ (578 , happyReduce_578),+ (579 , happyReduce_579),+ (580 , happyReduce_580),+ (581 , happyReduce_581),+ (582 , happyReduce_582),+ (583 , happyReduce_583),+ (584 , happyReduce_584),+ (585 , happyReduce_585),+ (586 , happyReduce_586),+ (587 , happyReduce_587),+ (588 , happyReduce_588),+ (589 , happyReduce_589),+ (590 , happyReduce_590),+ (591 , happyReduce_591),+ (592 , happyReduce_592),+ (593 , happyReduce_593),+ (594 , happyReduce_594),+ (595 , happyReduce_595),+ (596 , happyReduce_596),+ (597 , happyReduce_597),+ (598 , happyReduce_598),+ (599 , happyReduce_599),+ (600 , happyReduce_600),+ (601 , happyReduce_601),+ (602 , happyReduce_602),+ (603 , happyReduce_603),+ (604 , happyReduce_604),+ (605 , happyReduce_605),+ (606 , happyReduce_606),+ (607 , happyReduce_607),+ (608 , happyReduce_608),+ (609 , happyReduce_609),+ (610 , happyReduce_610),+ (611 , happyReduce_611),+ (612 , happyReduce_612),+ (613 , happyReduce_613),+ (614 , happyReduce_614),+ (615 , happyReduce_615),+ (616 , happyReduce_616),+ (617 , happyReduce_617),+ (618 , happyReduce_618),+ (619 , happyReduce_619),+ (620 , happyReduce_620),+ (621 , happyReduce_621),+ (622 , happyReduce_622),+ (623 , happyReduce_623),+ (624 , happyReduce_624),+ (625 , happyReduce_625),+ (626 , happyReduce_626),+ (627 , happyReduce_627),+ (628 , happyReduce_628),+ (629 , happyReduce_629),+ (630 , happyReduce_630),+ (631 , happyReduce_631),+ (632 , happyReduce_632),+ (633 , happyReduce_633),+ (634 , happyReduce_634),+ (635 , happyReduce_635),+ (636 , happyReduce_636),+ (637 , happyReduce_637),+ (638 , happyReduce_638),+ (639 , happyReduce_639),+ (640 , happyReduce_640),+ (641 , happyReduce_641),+ (642 , happyReduce_642),+ (643 , happyReduce_643),+ (644 , happyReduce_644),+ (645 , happyReduce_645),+ (646 , happyReduce_646),+ (647 , happyReduce_647),+ (648 , happyReduce_648),+ (649 , happyReduce_649),+ (650 , happyReduce_650),+ (651 , happyReduce_651),+ (652 , happyReduce_652),+ (653 , happyReduce_653),+ (654 , happyReduce_654),+ (655 , happyReduce_655),+ (656 , happyReduce_656),+ (657 , happyReduce_657),+ (658 , happyReduce_658),+ (659 , happyReduce_659),+ (660 , happyReduce_660),+ (661 , happyReduce_661),+ (662 , happyReduce_662),+ (663 , happyReduce_663),+ (664 , happyReduce_664),+ (665 , happyReduce_665),+ (666 , happyReduce_666),+ (667 , happyReduce_667),+ (668 , happyReduce_668),+ (669 , happyReduce_669),+ (670 , happyReduce_670),+ (671 , happyReduce_671),+ (672 , happyReduce_672),+ (673 , happyReduce_673),+ (674 , happyReduce_674),+ (675 , happyReduce_675),+ (676 , happyReduce_676),+ (677 , happyReduce_677),+ (678 , happyReduce_678),+ (679 , happyReduce_679),+ (680 , happyReduce_680),+ (681 , happyReduce_681),+ (682 , happyReduce_682),+ (683 , happyReduce_683),+ (684 , happyReduce_684),+ (685 , happyReduce_685),+ (686 , happyReduce_686),+ (687 , happyReduce_687),+ (688 , happyReduce_688),+ (689 , happyReduce_689),+ (690 , happyReduce_690),+ (691 , happyReduce_691),+ (692 , happyReduce_692),+ (693 , happyReduce_693),+ (694 , happyReduce_694),+ (695 , happyReduce_695),+ (696 , happyReduce_696),+ (697 , happyReduce_697),+ (698 , happyReduce_698),+ (699 , happyReduce_699),+ (700 , happyReduce_700),+ (701 , happyReduce_701),+ (702 , happyReduce_702),+ (703 , happyReduce_703),+ (704 , happyReduce_704)+ ]++happy_n_terms = 192 :: Int+happy_n_nonterms = 148 :: Int++happyReduce_12 = happySpecReduce_1 0# happyReduction_12+happyReduction_12 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id (getID happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_13 = happySpecReduce_1 0# happyReduction_13+happyReduction_13 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "autoreleasepool" (srclocOf happy_var_1)+ )}++happyReduce_14 = happySpecReduce_1 0# happyReduction_14+happyReduction_14 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "catch" (srclocOf happy_var_1)+ )}++happyReduce_15 = happySpecReduce_1 0# happyReduction_15+happyReduction_15 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "class" (srclocOf happy_var_1)+ )}++happyReduce_16 = happySpecReduce_1 0# happyReduction_16+happyReduction_16 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "compatibility_alias" (srclocOf happy_var_1)+ )}++happyReduce_17 = happySpecReduce_1 0# happyReduction_17+happyReduction_17 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "dynamic" (srclocOf happy_var_1)+ )}++happyReduce_18 = happySpecReduce_1 0# happyReduction_18+happyReduction_18 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "encode" (srclocOf happy_var_1)+ )}++happyReduce_19 = happySpecReduce_1 0# happyReduction_19+happyReduction_19 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "end" (srclocOf happy_var_1)+ )}++happyReduce_20 = happySpecReduce_1 0# happyReduction_20+happyReduction_20 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "finally" (srclocOf happy_var_1)+ )}++happyReduce_21 = happySpecReduce_1 0# happyReduction_21+happyReduction_21 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "implementation" (srclocOf happy_var_1)+ )}++happyReduce_22 = happySpecReduce_1 0# happyReduction_22+happyReduction_22 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "interface" (srclocOf happy_var_1)+ )}++happyReduce_23 = happySpecReduce_1 0# happyReduction_23+happyReduction_23 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "NO" (srclocOf happy_var_1)+ )}++happyReduce_24 = happySpecReduce_1 0# happyReduction_24+happyReduction_24 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "private" (srclocOf happy_var_1)+ )}++happyReduce_25 = happySpecReduce_1 0# happyReduction_25+happyReduction_25 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "optional" (srclocOf happy_var_1)+ )}++happyReduce_26 = happySpecReduce_1 0# happyReduction_26+happyReduction_26 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "public" (srclocOf happy_var_1)+ )}++happyReduce_27 = happySpecReduce_1 0# happyReduction_27+happyReduction_27 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "property" (srclocOf happy_var_1)+ )}++happyReduce_28 = happySpecReduce_1 0# happyReduction_28+happyReduction_28 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "protected" (srclocOf happy_var_1)+ )}++happyReduce_29 = happySpecReduce_1 0# happyReduction_29+happyReduction_29 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "package" (srclocOf happy_var_1)+ )}++happyReduce_30 = happySpecReduce_1 0# happyReduction_30+happyReduction_30 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "protocol" (srclocOf happy_var_1)+ )}++happyReduce_31 = happySpecReduce_1 0# happyReduction_31+happyReduction_31 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "required" (srclocOf happy_var_1)+ )}++happyReduce_32 = happySpecReduce_1 0# happyReduction_32+happyReduction_32 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "selector" (srclocOf happy_var_1)+ )}++happyReduce_33 = happySpecReduce_1 0# happyReduction_33+happyReduction_33 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "synchronized" (srclocOf happy_var_1)+ )}++happyReduce_34 = happySpecReduce_1 0# happyReduction_34+happyReduction_34 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "synthesize" (srclocOf happy_var_1)+ )}++happyReduce_35 = happySpecReduce_1 0# happyReduction_35+happyReduction_35 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "throw" (srclocOf happy_var_1)+ )}++happyReduce_36 = happySpecReduce_1 0# happyReduction_36+happyReduction_36 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "try" (srclocOf happy_var_1)+ )}++happyReduce_37 = happySpecReduce_1 0# happyReduction_37+happyReduction_37 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (Id "YES" (srclocOf happy_var_1)+ )}++happyReduce_38 = happySpecReduce_1 0# happyReduction_38+happyReduction_38 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn15+ (AntiId (getANTI_ID happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_39 = happySpecReduce_1 1# happyReduction_39+happyReduction_39 happy_x_1+ = case happyOut15 happy_x_1 of { happy_var_1 -> + happyIn16+ (happy_var_1+ )}++happyReduce_40 = happySpecReduce_1 1# happyReduction_40+happyReduction_40 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn16+ (Id (getNAMED happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_41 = happySpecReduce_1 1# happyReduction_41+happyReduction_41 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn16+ (Id (getOBJCNAMED happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_42 = happySpecReduce_1 2# happyReduction_42+happyReduction_42 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (let (s, sign, n) = getINT happy_var_1+ in+ IntConst s sign n (srclocOf happy_var_1)+ )}++happyReduce_43 = happySpecReduce_1 2# happyReduction_43+happyReduction_43 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (let (s, sign, n) = getLONG happy_var_1+ in+ LongIntConst s sign n (srclocOf happy_var_1)+ )}++happyReduce_44 = happySpecReduce_1 2# happyReduction_44+happyReduction_44 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (let (s, sign, n) = getLONG_LONG happy_var_1+ in+ LongLongIntConst s sign n (srclocOf happy_var_1)+ )}++happyReduce_45 = happySpecReduce_1 2# happyReduction_45+happyReduction_45 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (let (s, n) = getFLOAT happy_var_1+ in+ FloatConst s n (srclocOf happy_var_1)+ )}++happyReduce_46 = happySpecReduce_1 2# happyReduction_46+happyReduction_46 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (let (s, n) = getDOUBLE happy_var_1+ in+ DoubleConst s n (srclocOf happy_var_1)+ )}++happyReduce_47 = happySpecReduce_1 2# happyReduction_47+happyReduction_47 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (let (s, n) = getLONG_DOUBLE happy_var_1+ in+ LongDoubleConst s n (srclocOf happy_var_1)+ )}++happyReduce_48 = happySpecReduce_1 2# happyReduction_48+happyReduction_48 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (let (s, c) = getCHAR happy_var_1+ in+ CharConst s c (srclocOf happy_var_1)+ )}++happyReduce_49 = happySpecReduce_1 2# happyReduction_49+happyReduction_49 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (AntiInt (getANTI_INT happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_50 = happySpecReduce_1 2# happyReduction_50+happyReduction_50 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (AntiUInt (getANTI_UINT happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_51 = happySpecReduce_1 2# happyReduction_51+happyReduction_51 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (AntiLInt (getANTI_LINT happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_52 = happySpecReduce_1 2# happyReduction_52+happyReduction_52 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (AntiULInt (getANTI_ULINT happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_53 = happySpecReduce_1 2# happyReduction_53+happyReduction_53 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (AntiLLInt (getANTI_LLINT happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_54 = happySpecReduce_1 2# happyReduction_54+happyReduction_54 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (AntiULLInt (getANTI_ULLINT happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_55 = happySpecReduce_1 2# happyReduction_55+happyReduction_55 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (AntiFloat (getANTI_FLOAT happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_56 = happySpecReduce_1 2# happyReduction_56+happyReduction_56 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (AntiDouble (getANTI_DOUBLE happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_57 = happySpecReduce_1 2# happyReduction_57+happyReduction_57 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (AntiLongDouble (getANTI_LONG_DOUBLE happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_58 = happySpecReduce_1 2# happyReduction_58+happyReduction_58 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (AntiChar (getANTI_CHAR happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_59 = happySpecReduce_1 2# happyReduction_59+happyReduction_59 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn17+ (AntiString (getANTI_STRING happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_60 = happySpecReduce_1 3# happyReduction_60+happyReduction_60 happy_x_1+ = case happyOut15 happy_x_1 of { happy_var_1 -> + happyIn18+ (Var happy_var_1 (srclocOf happy_var_1)+ )}++happyReduce_61 = happySpecReduce_1 3# happyReduction_61+happyReduction_61 happy_x_1+ = case happyOut17 happy_x_1 of { happy_var_1 -> + happyIn18+ (Const happy_var_1 (srclocOf happy_var_1)+ )}++happyReduce_62 = happySpecReduce_1 3# happyReduction_62+happyReduction_62 happy_x_1+ = case happyOut19 happy_x_1 of { happy_var_1 -> + happyIn18+ (let str@(StringConst _raw _s l) = mkStringConst happy_var_1+ in+ Const str l+ )}++happyReduce_63 = happySpecReduce_3 3# happyReduction_63+happyReduction_63 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut50 happy_x_2 of { happy_var_2 -> + happyIn18+ (happy_var_2+ )}++happyReduce_64 = happyMonadReduce 3# 3# happyReduction_64+happyReduction_64 (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 happyOut50 happy_x_2 of { happy_var_2 -> + ( unclosed (happy_var_1 <--> happy_var_2) "(")}}+ ) (\r -> happyReturn (happyIn18 r))++happyReduce_65 = happySpecReduce_3 3# happyReduction_65+happyReduction_65 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 happyOutTok happy_x_3 of { happy_var_3 -> + happyIn18+ (let Block items _ = happy_var_2+ in+ StmExpr items (happy_var_1 `srcspan` happy_var_3)+ )}}}++happyReduce_66 = happySpecReduce_1 3# happyReduction_66+happyReduction_66 happy_x_1+ = case happyOut20 happy_x_1 of { happy_var_1 -> + happyIn18+ (happy_var_1+ )}++happyReduce_67 = happySpecReduce_1 3# happyReduction_67+happyReduction_67 happy_x_1+ = case happyOut21 happy_x_1 of { happy_var_1 -> + happyIn18+ (happy_var_1+ )}++happyReduce_68 = happySpecReduce_1 3# happyReduction_68+happyReduction_68 happy_x_1+ = case happyOut28 happy_x_1 of { happy_var_1 -> + happyIn18+ (happy_var_1+ )}++happyReduce_69 = happySpecReduce_1 3# happyReduction_69+happyReduction_69 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn18+ (AntiExp (getANTI_EXP happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_70 = happySpecReduce_1 4# happyReduction_70+happyReduction_70 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn19+ (rsingleton (L (locOf happy_var_1) (getSTRING happy_var_1))+ )}++happyReduce_71 = happySpecReduce_2 4# happyReduction_71+happyReduction_71 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+ (rcons (L (locOf happy_var_2) (getSTRING happy_var_2)) happy_var_1+ )}}++happyReduce_72 = happyMonadReduce 3# 5# happyReduction_72+happyReduction_72 (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 happyOut148 happy_x_2 of { happy_var_2 -> + case happyOut104 happy_x_3 of { happy_var_3 -> + ( do { assertObjCEnabled (happy_var_1 <--> happy_var_3) "To use blocks, enable Objective-C support"+ ; let Block items _ = happy_var_3+ ; return $ BlockLit (BlockVoid (srclocOf happy_var_1)) happy_var_2 items (happy_var_1 `srcspan` happy_var_3)+ })}}}+ ) (\r -> happyReturn (happyIn20 r))++happyReduce_73 = happyMonadReduce 6# 5# happyReduction_73+happyReduction_73 (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_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + case happyOut89 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + case happyOut148 happy_x_5 of { happy_var_5 -> + case happyOut104 happy_x_6 of { happy_var_6 -> + ( do { assertObjCEnabled (happy_var_1 <--> happy_var_6) "To use blocks, enable Objective-C support"+ ; let Block items _ = happy_var_6+ ; return $ BlockLit (BlockParam (rev happy_var_3) (happy_var_2 `srcspan` happy_var_4)) happy_var_5 items (happy_var_1 `srcspan` happy_var_6)+ })}}}}}}+ ) (\r -> happyReturn (happyIn20 r))++happyReduce_74 = happyMonadReduce 5# 5# happyReduction_74+happyReduction_74 (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_1 of { happy_var_1 -> + case happyOut69 happy_x_2 of { happy_var_2 -> + case happyOut94 happy_x_3 of { happy_var_3 -> + case happyOut148 happy_x_4 of { happy_var_4 -> + case happyOut104 happy_x_5 of { happy_var_5 -> + ( do { assertObjCEnabled (happy_var_1 <--> happy_var_5) "To use blocks, enable Objective-C support"+ ; let { decl = happy_var_3 (declRoot happy_var_2)+ ; Block items _ = happy_var_5+ }+ ; dspec <- mkDeclSpec happy_var_2+ ; let typeLoc = dspec `srcspan` decl+ ; return $ BlockLit (BlockType (Type dspec decl typeLoc) typeLoc) happy_var_4 items (happy_var_1 `srcspan` happy_var_5)+ })}}}}}+ ) (\r -> happyReturn (happyIn20 r))++happyReduce_75 = happyMonadReduce 4# 6# happyReduction_75+happyReduction_75 (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 happyOut22 happy_x_2 of { happy_var_2 -> + case happyOut23 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + ( do { assertObjCEnabled (happy_var_1 <--> happy_var_4) "To use a message expression, enable Objective-C support"+ ; let (args, vargs) = happy_var_3+ ; return $ ObjCMsg happy_var_2 args vargs (happy_var_1 `srcspan` happy_var_4) + })}}}}+ ) (\r -> happyReturn (happyIn21 r))++happyReduce_76 = happySpecReduce_1 7# happyReduction_76+happyReduction_76 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn22+ (ObjCRecvTypeName (Id (getNAMED happy_var_1) (srclocOf happy_var_1)) (srclocOf happy_var_1)+ )}++happyReduce_77 = happySpecReduce_1 7# happyReduction_77+happyReduction_77 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn22+ (ObjCRecvClassName (Id (getOBJCNAMED happy_var_1) (srclocOf happy_var_1)) (srclocOf happy_var_1)+ )}++happyReduce_78 = happySpecReduce_1 7# happyReduction_78+happyReduction_78 happy_x_1+ = case happyOut50 happy_x_1 of { happy_var_1 -> + happyIn22+ (case happy_var_1 of + Var (Id "super" _) loc -> ObjCRecvSuper loc+ _ -> ObjCRecvExp happy_var_1 (srclocOf happy_var_1)+ )}++happyReduce_79 = happySpecReduce_1 8# happyReduction_79+happyReduction_79 happy_x_1+ = case happyOut26 happy_x_1 of { happy_var_1 -> + happyIn23+ (([ObjCArg (Just happy_var_1) Nothing (srclocOf happy_var_1)], [])+ )}++happyReduce_80 = happySpecReduce_2 8# happyReduction_80+happyReduction_80 happy_x_2+ happy_x_1+ = case happyOut24 happy_x_1 of { happy_var_1 -> + case happyOut27 happy_x_2 of { happy_var_2 -> + happyIn23+ ((rev happy_var_1, rev happy_var_2)+ )}}++happyReduce_81 = happySpecReduce_1 9# happyReduction_81+happyReduction_81 happy_x_1+ = case happyOut25 happy_x_1 of { happy_var_1 -> + happyIn24+ (rsingleton happy_var_1+ )}++happyReduce_82 = happySpecReduce_2 9# happyReduction_82+happyReduction_82 happy_x_2+ happy_x_1+ = case happyOut24 happy_x_1 of { happy_var_1 -> + case happyOut25 happy_x_2 of { happy_var_2 -> + happyIn24+ (happy_var_2 `rcons` happy_var_1+ )}}++happyReduce_83 = happySpecReduce_2 10# happyReduction_83+happyReduction_83 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_2 of { happy_var_2 -> + happyIn25+ (ObjCArg Nothing (Just happy_var_2) (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_84 = happySpecReduce_3 10# happyReduction_84+happyReduction_84 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut26 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn25+ (ObjCArg (Just happy_var_1) (Just happy_var_3) (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_85 = happySpecReduce_1 11# happyReduction_85+happyReduction_85 happy_x_1+ = case happyOut16 happy_x_1 of { happy_var_1 -> + happyIn26+ (happy_var_1+ )}++happyReduce_86 = happySpecReduce_1 11# happyReduction_86+happyReduction_86 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "auto" (srclocOf happy_var_1)+ )}++happyReduce_87 = happySpecReduce_1 11# happyReduction_87+happyReduction_87 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "break" (srclocOf happy_var_1)+ )}++happyReduce_88 = happySpecReduce_1 11# happyReduction_88+happyReduction_88 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "case" (srclocOf happy_var_1)+ )}++happyReduce_89 = happySpecReduce_1 11# happyReduction_89+happyReduction_89 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "char" (srclocOf happy_var_1)+ )}++happyReduce_90 = happySpecReduce_1 11# happyReduction_90+happyReduction_90 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "const" (srclocOf happy_var_1)+ )}++happyReduce_91 = happySpecReduce_1 11# happyReduction_91+happyReduction_91 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "continue" (srclocOf happy_var_1)+ )}++happyReduce_92 = happySpecReduce_1 11# happyReduction_92+happyReduction_92 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "default" (srclocOf happy_var_1)+ )}++happyReduce_93 = happySpecReduce_1 11# happyReduction_93+happyReduction_93 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "do" (srclocOf happy_var_1)+ )}++happyReduce_94 = happySpecReduce_1 11# happyReduction_94+happyReduction_94 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "double" (srclocOf happy_var_1)+ )}++happyReduce_95 = happySpecReduce_1 11# happyReduction_95+happyReduction_95 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "else" (srclocOf happy_var_1)+ )}++happyReduce_96 = happySpecReduce_1 11# happyReduction_96+happyReduction_96 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "enum" (srclocOf happy_var_1)+ )}++happyReduce_97 = happySpecReduce_1 11# happyReduction_97+happyReduction_97 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "extern" (srclocOf happy_var_1)+ )}++happyReduce_98 = happySpecReduce_1 11# happyReduction_98+happyReduction_98 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "float" (srclocOf happy_var_1)+ )}++happyReduce_99 = happySpecReduce_1 11# happyReduction_99+happyReduction_99 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "for" (srclocOf happy_var_1)+ )}++happyReduce_100 = happySpecReduce_1 11# happyReduction_100+happyReduction_100 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "goto" (srclocOf happy_var_1)+ )}++happyReduce_101 = happySpecReduce_1 11# happyReduction_101+happyReduction_101 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "if" (srclocOf happy_var_1)+ )}++happyReduce_102 = happySpecReduce_1 11# happyReduction_102+happyReduction_102 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "inline" (srclocOf happy_var_1)+ )}++happyReduce_103 = happySpecReduce_1 11# happyReduction_103+happyReduction_103 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "int" (srclocOf happy_var_1)+ )}++happyReduce_104 = happySpecReduce_1 11# happyReduction_104+happyReduction_104 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "long" (srclocOf happy_var_1)+ )}++happyReduce_105 = happySpecReduce_1 11# happyReduction_105+happyReduction_105 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "register" (srclocOf happy_var_1)+ )}++happyReduce_106 = happySpecReduce_1 11# happyReduction_106+happyReduction_106 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "restrict" (srclocOf happy_var_1)+ )}++happyReduce_107 = happySpecReduce_1 11# happyReduction_107+happyReduction_107 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "return" (srclocOf happy_var_1)+ )}++happyReduce_108 = happySpecReduce_1 11# happyReduction_108+happyReduction_108 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "short" (srclocOf happy_var_1)+ )}++happyReduce_109 = happySpecReduce_1 11# happyReduction_109+happyReduction_109 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "signed" (srclocOf happy_var_1)+ )}++happyReduce_110 = happySpecReduce_1 11# happyReduction_110+happyReduction_110 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "sizeof" (srclocOf happy_var_1)+ )}++happyReduce_111 = happySpecReduce_1 11# happyReduction_111+happyReduction_111 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "static" (srclocOf happy_var_1)+ )}++happyReduce_112 = happySpecReduce_1 11# happyReduction_112+happyReduction_112 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "struct" (srclocOf happy_var_1)+ )}++happyReduce_113 = happySpecReduce_1 11# happyReduction_113+happyReduction_113 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "switch" (srclocOf happy_var_1)+ )}++happyReduce_114 = happySpecReduce_1 11# happyReduction_114+happyReduction_114 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "typedef" (srclocOf happy_var_1)+ )}++happyReduce_115 = happySpecReduce_1 11# happyReduction_115+happyReduction_115 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "typename" (srclocOf happy_var_1)+ )}++happyReduce_116 = happySpecReduce_1 11# happyReduction_116+happyReduction_116 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "union" (srclocOf happy_var_1)+ )}++happyReduce_117 = happySpecReduce_1 11# happyReduction_117+happyReduction_117 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "unsigned" (srclocOf happy_var_1)+ )}++happyReduce_118 = happySpecReduce_1 11# happyReduction_118+happyReduction_118 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "void" (srclocOf happy_var_1)+ )}++happyReduce_119 = happySpecReduce_1 11# happyReduction_119+happyReduction_119 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "volatile" (srclocOf happy_var_1)+ )}++happyReduce_120 = happySpecReduce_1 11# happyReduction_120+happyReduction_120 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "while" (srclocOf happy_var_1)+ )}++happyReduce_121 = happySpecReduce_1 11# happyReduction_121+happyReduction_121 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "__block" (srclocOf happy_var_1)+ )}++happyReduce_122 = happySpecReduce_1 11# happyReduction_122+happyReduction_122 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "__weak" (srclocOf happy_var_1)+ )}++happyReduce_123 = happySpecReduce_1 11# happyReduction_123+happyReduction_123 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "__strong" (srclocOf happy_var_1)+ )}++happyReduce_124 = happySpecReduce_1 11# happyReduction_124+happyReduction_124 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn26+ (Id "__unsafe_retained" (srclocOf happy_var_1)+ )}++happyReduce_125 = happySpecReduce_0 12# happyReduction_125+happyReduction_125 = happyIn27+ (rnil+ )++happyReduce_126 = happySpecReduce_3 12# happyReduction_126+happyReduction_126 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut27 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn27+ (happy_var_3 `rcons` happy_var_1+ )}}++happyReduce_127 = happySpecReduce_2 13# happyReduction_127+happyReduction_127 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut17 happy_x_2 of { happy_var_2 -> + happyIn28+ (ObjCLitConst Nothing happy_var_2 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_128 = happySpecReduce_3 13# happyReduction_128+happyReduction_128 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut17 happy_x_3 of { happy_var_3 -> + happyIn28+ (ObjCLitConst (Just Positive) happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_129 = happySpecReduce_3 13# happyReduction_129+happyReduction_129 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut17 happy_x_3 of { happy_var_3 -> + happyIn28+ (ObjCLitConst (Just Negate) happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_130 = happySpecReduce_1 13# happyReduction_130+happyReduction_130 happy_x_1+ = case happyOut31 happy_x_1 of { happy_var_1 -> + happyIn28+ (let lits = rev happy_var_1 in ObjCLitString lits (head lits `srcspan` last lits)+ )}++happyReduce_131 = happySpecReduce_2 13# happyReduction_131+happyReduction_131 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn28+ (ObjCLitBool False (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_132 = happySpecReduce_2 13# happyReduction_132+happyReduction_132 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn28+ (ObjCLitBool True (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_133 = happySpecReduce_3 13# happyReduction_133+happyReduction_133 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 -> + happyIn28+ (ObjCLitArray [] (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_134 = happyReduce 4# 13# happyReduction_134+happyReduction_134 (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 happyOut29 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn28+ (ObjCLitArray (rev happy_var_3) (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_135 = happyReduce 5# 13# happyReduction_135+happyReduction_135 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut29 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn28+ (ObjCLitArray (rev happy_var_3) (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_136 = happySpecReduce_3 13# happyReduction_136+happyReduction_136 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 -> + happyIn28+ (ObjCLitDict [] (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_137 = happyReduce 4# 13# happyReduction_137+happyReduction_137 (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 happyOut30 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn28+ (ObjCLitDict (rev happy_var_3) (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_138 = happyReduce 5# 13# happyReduction_138+happyReduction_138 (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 happyOut30 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn28+ (ObjCLitDict (rev happy_var_3) (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_139 = happyReduce 4# 13# happyReduction_139+happyReduction_139 (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 happyOut50 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn28+ (ObjCLitBoxed happy_var_3 (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_140 = happyReduce 5# 13# happyReduction_140+happyReduction_140 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut93 happy_x_4 of { happy_var_4 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn28+ (ObjCEncode happy_var_4 (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_141 = happyReduce 5# 13# happyReduction_141+happyReduction_141 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut15 happy_x_4 of { happy_var_4 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn28+ (ObjCProtocol happy_var_4 (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_142 = happyReduce 5# 13# happyReduction_142+happyReduction_142 (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 happyOut26 happy_x_4 of { happy_var_4 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn28+ (let Id str _ = happy_var_4+ in+ ObjCSelector str (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_143 = happyReduce 5# 13# happyReduction_143+happyReduction_143 (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 happyOut32 happy_x_4 of { happy_var_4 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn28+ (let str = concat [s ++ ":" | Id s _ <- rev happy_var_4]+ in+ ObjCSelector str (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_144 = happySpecReduce_1 14# happyReduction_144+happyReduction_144 happy_x_1+ = case happyOut49 happy_x_1 of { happy_var_1 -> + happyIn29+ (rsingleton happy_var_1+ )}++happyReduce_145 = happySpecReduce_3 14# happyReduction_145+happyReduction_145 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut29 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn29+ (rcons happy_var_3 happy_var_1+ )}}++happyReduce_146 = happySpecReduce_3 15# happyReduction_146+happyReduction_146 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut49 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn30+ (rsingleton (happy_var_1, happy_var_3)+ )}}++happyReduce_147 = happyReduce 5# 15# happyReduction_147+happyReduction_147 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut30 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + case happyOut49 happy_x_5 of { happy_var_5 -> + happyIn30+ (rcons (happy_var_3, happy_var_5) happy_var_1+ ) `HappyStk` happyRest}}}++happyReduce_148 = happySpecReduce_2 16# happyReduction_148+happyReduction_148 happy_x_2+ happy_x_1+ = case happyOut19 happy_x_2 of { happy_var_2 -> + happyIn31+ (rsingleton (mkStringConst happy_var_2)+ )}++happyReduce_149 = happySpecReduce_3 16# happyReduction_149+happyReduction_149 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut31 happy_x_1 of { happy_var_1 -> + case happyOut19 happy_x_3 of { happy_var_3 -> + happyIn31+ (rcons (mkStringConst happy_var_3) happy_var_1+ )}}++happyReduce_150 = happySpecReduce_1 17# happyReduction_150+happyReduction_150 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn32+ (rsingleton (Id "" (srclocOf happy_var_1))+ )}++happyReduce_151 = happySpecReduce_2 17# happyReduction_151+happyReduction_151 happy_x_2+ happy_x_1+ = case happyOut26 happy_x_1 of { happy_var_1 -> + happyIn32+ (rsingleton happy_var_1+ )}++happyReduce_152 = happySpecReduce_2 17# happyReduction_152+happyReduction_152 happy_x_2+ happy_x_1+ = case happyOut32 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn32+ (rcons (Id "" (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_153 = happySpecReduce_3 17# happyReduction_153+happyReduction_153 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut32 happy_x_1 of { happy_var_1 -> + case happyOut26 happy_x_2 of { happy_var_2 -> + happyIn32+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_154 = happySpecReduce_1 18# happyReduction_154+happyReduction_154 happy_x_1+ = case happyOut18 happy_x_1 of { happy_var_1 -> + happyIn33+ (happy_var_1+ )}++happyReduce_155 = happyMonadReduce 3# 18# happyReduction_155+happyReduction_155 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut33 happy_x_1 of { happy_var_1 -> + ( unclosed (locOf happy_var_1) "[")}+ ) (\r -> happyReturn (happyIn33 r))++happyReduce_156 = happyReduce 4# 18# happyReduction_156+happyReduction_156 (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 happyOut50 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn33+ (Index happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_157 = happyMonadReduce 3# 18# happyReduction_157+happyReduction_157 (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 (happyIn33 r))++happyReduce_158 = happySpecReduce_3 18# happyReduction_158+happyReduction_158 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_3 of { happy_var_3 -> + happyIn33+ (FnCall happy_var_1 [] (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_159 = happyMonadReduce 4# 18# happyReduction_159+happyReduction_159 (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 happyOut35 happy_x_3 of { happy_var_3 -> + ( unclosed (happy_var_2 <--> rev happy_var_3) "(")}}+ ) (\r -> happyReturn (happyIn33 r))++happyReduce_160 = happyReduce 4# 18# happyReduction_160+happyReduction_160 (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 happyOut35 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn33+ (FnCall happy_var_1 (rev happy_var_3) (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_161 = happyMonadReduce 4# 18# happyReduction_161+happyReduction_161 (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 happyOut34 happy_x_3 of { happy_var_3 -> + ( unclosed (happy_var_2 <--> happy_var_3) "<<<")}}+ ) (\r -> happyReturn (happyIn33 r))++happyReduce_162 = happyReduce 6# 18# happyReduction_162+happyReduction_162 (happy_x_6 `HappyStk`+ happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOut34 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_6 of { happy_var_6 -> + happyIn33+ (CudaCall happy_var_1 happy_var_3 [] (happy_var_1 `srcspan` happy_var_6)+ ) `HappyStk` happyRest}}}++happyReduce_163 = happyMonadReduce 7# 18# happyReduction_163+happyReduction_163 (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 happyOut35 happy_x_6 of { happy_var_6 -> + ( unclosed (happy_var_5 <--> rev happy_var_6) "(")}}+ ) (\r -> happyReturn (happyIn33 r))++happyReduce_164 = happyReduce 7# 18# happyReduction_164+happyReduction_164 (happy_x_7 `HappyStk`+ happy_x_6 `HappyStk`+ happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOut34 happy_x_3 of { happy_var_3 -> + case happyOut35 happy_x_6 of { happy_var_6 -> + case happyOutTok happy_x_7 of { happy_var_7 -> + happyIn33+ (CudaCall happy_var_1 happy_var_3 (rev happy_var_6) (happy_var_1 `srcspan` happy_var_7)+ ) `HappyStk` happyRest}}}}++happyReduce_165 = happySpecReduce_3 18# happyReduction_165+happyReduction_165 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOut16 happy_x_3 of { happy_var_3 -> + happyIn33+ (Member happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_166 = happySpecReduce_3 18# happyReduction_166+happyReduction_166 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOut16 happy_x_3 of { happy_var_3 -> + happyIn33+ (PtrMember happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_167 = happySpecReduce_2 18# happyReduction_167+happyReduction_167 happy_x_2+ happy_x_1+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn33+ (PostInc happy_var_1 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_168 = happySpecReduce_2 18# happyReduction_168+happyReduction_168 happy_x_2+ happy_x_1+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn33+ (PostDec happy_var_1 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_169 = happyReduce 6# 18# happyReduction_169+happyReduction_169 (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 happyOut93 happy_x_2 of { happy_var_2 -> + case happyOut98 happy_x_5 of { happy_var_5 -> + case happyOutTok happy_x_6 of { happy_var_6 -> + happyIn33+ (CompoundLit (happy_var_2 :: Type) (rev happy_var_5) (happy_var_1 `srcspan` happy_var_6)+ ) `HappyStk` happyRest}}}}++happyReduce_170 = happyReduce 7# 18# happyReduction_170+happyReduction_170 (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 happyOut93 happy_x_2 of { happy_var_2 -> + case happyOut98 happy_x_5 of { happy_var_5 -> + case happyOutTok happy_x_7 of { happy_var_7 -> + happyIn33+ (CompoundLit happy_var_2 (rev happy_var_5) (happy_var_1 `srcspan` happy_var_7)+ ) `HappyStk` happyRest}}}}++happyReduce_171 = happyReduce 6# 18# happyReduction_171+happyReduction_171 (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 happyOut49 happy_x_3 of { happy_var_3 -> + case happyOut91 happy_x_5 of { happy_var_5 -> + case happyOutTok happy_x_6 of { happy_var_6 -> + happyIn33+ (BuiltinVaArg happy_var_3 happy_var_5 (happy_var_1 `srcspan` happy_var_6)+ ) `HappyStk` happyRest}}}}++happyReduce_172 = happyMonadReduce 1# 19# happyReduction_172+happyReduction_172 (happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut35 happy_x_1 of { happy_var_1 -> + (do { let args = rev happy_var_1+ ; when (length args < 2 || length args > 4) $ do+ parserError (locOf (rev happy_var_1)) $+ text "execution context should have 2-4 arguments, but saw" <+>+ ppr (length args)+ ; return $+ case args of+ [gridDim, blockDim] ->+ ExeConfig gridDim blockDim+ Nothing Nothing+ (srclocOf args)+ [gridDim, blockDim, sharedSize] ->+ ExeConfig gridDim blockDim+ (Just sharedSize) Nothing+ (srclocOf args)+ [gridDim, blockDim, sharedSize, exeStream] ->+ ExeConfig gridDim blockDim+ (Just sharedSize) (Just exeStream)+ (srclocOf args)+ })}+ ) (\r -> happyReturn (happyIn34 r))++happyReduce_173 = happySpecReduce_1 20# happyReduction_173+happyReduction_173 happy_x_1+ = case happyOut49 happy_x_1 of { happy_var_1 -> + happyIn35+ (rsingleton happy_var_1+ )}++happyReduce_174 = happySpecReduce_1 20# happyReduction_174+happyReduction_174 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn35+ (rsingleton (AntiArgs (getANTI_ARGS happy_var_1) (srclocOf happy_var_1))+ )}++happyReduce_175 = happySpecReduce_3 20# happyReduction_175+happyReduction_175 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut35 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn35+ (rcons happy_var_3 happy_var_1+ )}}++happyReduce_176 = happySpecReduce_3 20# happyReduction_176+happyReduction_176 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut35 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_3 of { happy_var_3 -> + happyIn35+ (rcons (AntiArgs (getANTI_ARGS happy_var_3) (srclocOf happy_var_3)) happy_var_1+ )}}++happyReduce_177 = happySpecReduce_1 21# happyReduction_177+happyReduction_177 happy_x_1+ = case happyOut33 happy_x_1 of { happy_var_1 -> + happyIn36+ (happy_var_1+ )}++happyReduce_178 = happySpecReduce_2 21# happyReduction_178+happyReduction_178 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut36 happy_x_2 of { happy_var_2 -> + happyIn36+ (PreInc happy_var_2 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_179 = happySpecReduce_2 21# happyReduction_179+happyReduction_179 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut36 happy_x_2 of { happy_var_2 -> + happyIn36+ (PreDec happy_var_2 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_180 = happySpecReduce_2 21# happyReduction_180+happyReduction_180 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut37 happy_x_2 of { happy_var_2 -> + happyIn36+ (UnOp AddrOf happy_var_2 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_181 = happySpecReduce_2 21# happyReduction_181+happyReduction_181 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut37 happy_x_2 of { happy_var_2 -> + happyIn36+ (UnOp Deref happy_var_2 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_182 = happySpecReduce_2 21# happyReduction_182+happyReduction_182 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut37 happy_x_2 of { happy_var_2 -> + happyIn36+ (UnOp Positive happy_var_2 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_183 = happySpecReduce_2 21# happyReduction_183+happyReduction_183 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut37 happy_x_2 of { happy_var_2 -> + happyIn36+ (UnOp Negate happy_var_2 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_184 = happySpecReduce_2 21# happyReduction_184+happyReduction_184 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut37 happy_x_2 of { happy_var_2 -> + happyIn36+ (UnOp Not happy_var_2 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_185 = happySpecReduce_2 21# happyReduction_185+happyReduction_185 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut37 happy_x_2 of { happy_var_2 -> + happyIn36+ (UnOp Lnot happy_var_2 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_186 = happySpecReduce_2 21# happyReduction_186+happyReduction_186 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut36 happy_x_2 of { happy_var_2 -> + happyIn36+ (SizeofExp happy_var_2 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_187 = happyReduce 4# 21# happyReduction_187+happyReduction_187 (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 happyOut93 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn36+ (SizeofType happy_var_3 (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_188 = happyMonadReduce 4# 21# happyReduction_188+happyReduction_188 (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 happyOut93 happy_x_3 of { happy_var_3 -> + ( unclosed (happy_var_2 <--> happy_var_3) "(")}}+ ) (\r -> happyReturn (happyIn36 r))++happyReduce_189 = happySpecReduce_1 22# happyReduction_189+happyReduction_189 happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + happyIn37+ (happy_var_1+ )}++happyReduce_190 = happyReduce 4# 22# happyReduction_190+happyReduction_190 (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 happyOut93 happy_x_2 of { happy_var_2 -> + case happyOut37 happy_x_4 of { happy_var_4 -> + happyIn37+ (Cast happy_var_2 happy_var_4 (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_191 = happyMonadReduce 3# 22# happyReduction_191+happyReduction_191 (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 happyOut93 happy_x_2 of { happy_var_2 -> + ( unclosed (happy_var_1 <--> happy_var_2) "(")}}+ ) (\r -> happyReturn (happyIn37 r))++happyReduce_192 = happySpecReduce_1 23# happyReduction_192+happyReduction_192 happy_x_1+ = case happyOut37 happy_x_1 of { happy_var_1 -> + happyIn38+ (happy_var_1+ )}++happyReduce_193 = happySpecReduce_3 23# happyReduction_193+happyReduction_193 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut38 happy_x_1 of { happy_var_1 -> + case happyOut37 happy_x_3 of { happy_var_3 -> + happyIn38+ (BinOp Mul happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_194 = happySpecReduce_3 23# happyReduction_194+happyReduction_194 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut38 happy_x_1 of { happy_var_1 -> + case happyOut37 happy_x_3 of { happy_var_3 -> + happyIn38+ (BinOp Div happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_195 = happySpecReduce_3 23# happyReduction_195+happyReduction_195 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut38 happy_x_1 of { happy_var_1 -> + case happyOut37 happy_x_3 of { happy_var_3 -> + happyIn38+ (BinOp Mod happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_196 = happySpecReduce_1 24# happyReduction_196+happyReduction_196 happy_x_1+ = case happyOut38 happy_x_1 of { happy_var_1 -> + happyIn39+ (happy_var_1+ )}++happyReduce_197 = happySpecReduce_3 24# happyReduction_197+happyReduction_197 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut39 happy_x_1 of { happy_var_1 -> + case happyOut38 happy_x_3 of { happy_var_3 -> + happyIn39+ (BinOp Add happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_198 = happySpecReduce_3 24# happyReduction_198+happyReduction_198 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut39 happy_x_1 of { happy_var_1 -> + case happyOut38 happy_x_3 of { happy_var_3 -> + happyIn39+ (BinOp Sub happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_199 = happySpecReduce_1 25# happyReduction_199+happyReduction_199 happy_x_1+ = case happyOut39 happy_x_1 of { happy_var_1 -> + happyIn40+ (happy_var_1+ )}++happyReduce_200 = happySpecReduce_3 25# happyReduction_200+happyReduction_200 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut40 happy_x_1 of { happy_var_1 -> + case happyOut39 happy_x_3 of { happy_var_3 -> + happyIn40+ (BinOp Lsh happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_201 = happySpecReduce_3 25# happyReduction_201+happyReduction_201 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut40 happy_x_1 of { happy_var_1 -> + case happyOut39 happy_x_3 of { happy_var_3 -> + happyIn40+ (BinOp Rsh happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_202 = happySpecReduce_1 26# happyReduction_202+happyReduction_202 happy_x_1+ = case happyOut40 happy_x_1 of { happy_var_1 -> + happyIn41+ (happy_var_1+ )}++happyReduce_203 = happySpecReduce_3 26# happyReduction_203+happyReduction_203 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut41 happy_x_1 of { happy_var_1 -> + case happyOut40 happy_x_3 of { happy_var_3 -> + happyIn41+ (BinOp Lt happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_204 = happySpecReduce_3 26# happyReduction_204+happyReduction_204 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut41 happy_x_1 of { happy_var_1 -> + case happyOut40 happy_x_3 of { happy_var_3 -> + happyIn41+ (BinOp Gt happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_205 = happySpecReduce_3 26# happyReduction_205+happyReduction_205 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut41 happy_x_1 of { happy_var_1 -> + case happyOut40 happy_x_3 of { happy_var_3 -> + happyIn41+ (BinOp Le happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_206 = happySpecReduce_3 26# happyReduction_206+happyReduction_206 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut41 happy_x_1 of { happy_var_1 -> + case happyOut40 happy_x_3 of { happy_var_3 -> + happyIn41+ (BinOp Ge happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_207 = happySpecReduce_1 27# happyReduction_207+happyReduction_207 happy_x_1+ = case happyOut41 happy_x_1 of { happy_var_1 -> + happyIn42+ (happy_var_1+ )}++happyReduce_208 = happySpecReduce_3 27# happyReduction_208+happyReduction_208 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut42 happy_x_1 of { happy_var_1 -> + case happyOut41 happy_x_3 of { happy_var_3 -> + happyIn42+ (BinOp Eq happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_209 = happySpecReduce_3 27# happyReduction_209+happyReduction_209 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut42 happy_x_1 of { happy_var_1 -> + case happyOut41 happy_x_3 of { happy_var_3 -> + happyIn42+ (BinOp Ne happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_210 = happySpecReduce_1 28# happyReduction_210+happyReduction_210 happy_x_1+ = case happyOut42 happy_x_1 of { happy_var_1 -> + happyIn43+ (happy_var_1+ )}++happyReduce_211 = happySpecReduce_3 28# happyReduction_211+happyReduction_211 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut43 happy_x_1 of { happy_var_1 -> + case happyOut42 happy_x_3 of { happy_var_3 -> + happyIn43+ (BinOp And happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_212 = happySpecReduce_1 29# happyReduction_212+happyReduction_212 happy_x_1+ = case happyOut43 happy_x_1 of { happy_var_1 -> + happyIn44+ (happy_var_1+ )}++happyReduce_213 = happySpecReduce_3 29# happyReduction_213+happyReduction_213 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut44 happy_x_1 of { happy_var_1 -> + case happyOut43 happy_x_3 of { happy_var_3 -> + happyIn44+ (BinOp Xor happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_214 = happySpecReduce_1 30# happyReduction_214+happyReduction_214 happy_x_1+ = case happyOut44 happy_x_1 of { happy_var_1 -> + happyIn45+ (happy_var_1+ )}++happyReduce_215 = happySpecReduce_3 30# happyReduction_215+happyReduction_215 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut45 happy_x_1 of { happy_var_1 -> + case happyOut44 happy_x_3 of { happy_var_3 -> + happyIn45+ (BinOp Or happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_216 = happySpecReduce_1 31# happyReduction_216+happyReduction_216 happy_x_1+ = case happyOut45 happy_x_1 of { happy_var_1 -> + happyIn46+ (happy_var_1+ )}++happyReduce_217 = happySpecReduce_3 31# happyReduction_217+happyReduction_217 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut46 happy_x_1 of { happy_var_1 -> + case happyOut45 happy_x_3 of { happy_var_3 -> + happyIn46+ (BinOp Land happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_218 = happySpecReduce_1 32# happyReduction_218+happyReduction_218 happy_x_1+ = case happyOut46 happy_x_1 of { happy_var_1 -> + happyIn47+ (happy_var_1+ )}++happyReduce_219 = happySpecReduce_3 32# happyReduction_219+happyReduction_219 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut47 happy_x_1 of { happy_var_1 -> + case happyOut46 happy_x_3 of { happy_var_3 -> + happyIn47+ (BinOp Lor happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_220 = happySpecReduce_1 33# happyReduction_220+happyReduction_220 happy_x_1+ = case happyOut47 happy_x_1 of { happy_var_1 -> + happyIn48+ (happy_var_1+ )}++happyReduce_221 = happyReduce 5# 33# 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 happyOut47 happy_x_1 of { happy_var_1 -> + case happyOut50 happy_x_3 of { happy_var_3 -> + case happyOut48 happy_x_5 of { happy_var_5 -> + happyIn48+ (Cond happy_var_1 happy_var_3 happy_var_5 (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_222 = happySpecReduce_1 34# happyReduction_222+happyReduction_222 happy_x_1+ = case happyOut48 happy_x_1 of { happy_var_1 -> + happyIn49+ (happy_var_1+ )}++happyReduce_223 = happySpecReduce_3 34# happyReduction_223+happyReduction_223 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn49+ (Assign happy_var_1 JustAssign happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_224 = happySpecReduce_3 34# happyReduction_224+happyReduction_224 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn49+ (Assign happy_var_1 MulAssign happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_225 = happySpecReduce_3 34# happyReduction_225+happyReduction_225 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn49+ (Assign happy_var_1 DivAssign happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_226 = happySpecReduce_3 34# happyReduction_226+happyReduction_226 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn49+ (Assign happy_var_1 ModAssign happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_227 = happySpecReduce_3 34# happyReduction_227+happyReduction_227 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn49+ (Assign happy_var_1 AddAssign happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_228 = happySpecReduce_3 34# happyReduction_228+happyReduction_228 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn49+ (Assign happy_var_1 SubAssign happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_229 = happySpecReduce_3 34# happyReduction_229+happyReduction_229 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn49+ (Assign happy_var_1 LshAssign happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_230 = happySpecReduce_3 34# happyReduction_230+happyReduction_230 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn49+ (Assign happy_var_1 RshAssign happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_231 = happySpecReduce_3 34# happyReduction_231+happyReduction_231 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn49+ (Assign happy_var_1 AndAssign happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_232 = happySpecReduce_3 34# happyReduction_232+happyReduction_232 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn49+ (Assign happy_var_1 XorAssign happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_233 = happySpecReduce_3 34# happyReduction_233+happyReduction_233 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn49+ (Assign happy_var_1 OrAssign happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_234 = happySpecReduce_1 35# happyReduction_234+happyReduction_234 happy_x_1+ = case happyOut49 happy_x_1 of { happy_var_1 -> + happyIn50+ (happy_var_1+ )}++happyReduce_235 = happySpecReduce_3 35# happyReduction_235+happyReduction_235 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut50 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn50+ (Seq happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_236 = happySpecReduce_0 36# happyReduction_236+happyReduction_236 = happyIn51+ (Nothing+ )++happyReduce_237 = happySpecReduce_1 36# happyReduction_237+happyReduction_237 happy_x_1+ = case happyOut50 happy_x_1 of { happy_var_1 -> + happyIn51+ (Just happy_var_1+ )}++happyReduce_238 = happySpecReduce_1 37# happyReduction_238+happyReduction_238 happy_x_1+ = case happyOut48 happy_x_1 of { happy_var_1 -> + happyIn52+ (happy_var_1+ )}++happyReduce_239 = happySpecReduce_2 38# happyReduction_239+happyReduction_239 happy_x_2+ happy_x_1+ = case happyOut54 happy_x_1 of { happy_var_1 -> + happyIn53+ (happy_var_1+ )}++happyReduce_240 = happyMonadReduce 1# 39# happyReduction_240+happyReduction_240 (happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut55 happy_x_1 of { happy_var_1 -> + ( do{ let (dspec, decl) = happy_var_1+ ; checkInitGroup dspec decl [] []+ })}+ ) (\r -> happyReturn (happyIn54 r))++happyReduce_241 = happyMonadReduce 2# 39# happyReduction_241+happyReduction_241 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut55 happy_x_1 of { happy_var_1 -> + case happyOut149 happy_x_2 of { happy_var_2 -> + ( do{ let (dspec, decl) = happy_var_1+ ; checkInitGroup dspec decl happy_var_2 []+ })}}+ ) (\r -> happyReturn (happyIn54 r))++happyReduce_242 = happyMonadReduce 2# 39# happyReduction_242+happyReduction_242 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut55 happy_x_1 of { happy_var_1 -> + case happyOut60 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 (happyIn54 r))++happyReduce_243 = happyMonadReduce 3# 39# happyReduction_243+happyReduction_243 (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 happyOut149 happy_x_2 of { happy_var_2 -> + case happyOut60 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 (happyIn54 r))++happyReduce_244 = happyMonadReduce 2# 39# happyReduction_244+happyReduction_244 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut55 happy_x_1 of { happy_var_1 -> + ( do{ let (_, decl) = happy_var_1+ ; expected ["';'"] (Just "declaration")+ })}+ ) (\r -> happyReturn (happyIn54 r))++happyReduce_245 = happySpecReduce_1 39# happyReduction_245+happyReduction_245 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn54+ (AntiDecl (getANTI_DECL happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_246 = happySpecReduce_1 40# happyReduction_246+happyReduction_246 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn55+ (let { v = getANTI_TYPE happy_var_1+ ; l = srclocOf happy_var_1+ }+ in+ (AntiTypeDeclSpec [] [] v l, AntiTypeDecl v l)+ )}++happyReduce_247 = happySpecReduce_2 40# happyReduction_247+happyReduction_247 happy_x_2+ happy_x_1+ = case happyOut59 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn55+ (let { storage = mkStorage happy_var_1+ ; typeQuals = mkTypeQuals happy_var_1+ ; v = getANTI_TYPE happy_var_2+ ; l = happy_var_1 `srcspan` happy_var_2+ }+ in+ (AntiTypeDeclSpec storage typeQuals v l, AntiTypeDecl v l)+ )}}++happyReduce_248 = happySpecReduce_1 40# happyReduction_248+happyReduction_248 happy_x_1+ = case happyOut56 happy_x_1 of { happy_var_1 -> + happyIn55+ (happy_var_1+ )}++happyReduce_249 = happySpecReduce_1 40# happyReduction_249+happyReduction_249 happy_x_1+ = case happyOut57 happy_x_1 of { happy_var_1 -> + happyIn55+ (happy_var_1+ )}++happyReduce_250 = happySpecReduce_1 41# happyReduction_250+happyReduction_250 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn56+ (let dspec = AntiDeclSpec (getANTI_SPEC happy_var_1) (srclocOf happy_var_1)+ in+ (dspec, DeclRoot (srclocOf happy_var_1))+ )}++happyReduce_251 = happyMonadReduce 1# 41# happyReduction_251+happyReduction_251 (happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut59 happy_x_1 of { happy_var_1 -> + ( do{ dspec <- mkDeclSpec happy_var_1+ ; return (dspec, DeclRoot (srclocOf happy_var_1))+ })}+ ) (\r -> happyReturn (happyIn56 r))++happyReduce_252 = happyMonadReduce 1# 41# happyReduction_252+happyReduction_252 (happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut64 happy_x_1 of { happy_var_1 -> + ( do{ dspec <- mkDeclSpec [happy_var_1]+ ; return (dspec, DeclRoot (srclocOf happy_var_1) )+ })}+ ) (\r -> happyReturn (happyIn56 r))++happyReduce_253 = happyMonadReduce 2# 41# happyReduction_253+happyReduction_253 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut64 happy_x_1 of { happy_var_1 -> + case happyOut58 happy_x_2 of { happy_var_2 -> + ( do{ dspec <- mkDeclSpec (happy_var_1 : happy_var_2)+ ; return (dspec, DeclRoot (happy_var_1 `srcspan` happy_var_2))+ })}}+ ) (\r -> happyReturn (happyIn56 r))++happyReduce_254 = happyMonadReduce 2# 41# happyReduction_254+happyReduction_254 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut59 happy_x_1 of { happy_var_1 -> + case happyOut64 happy_x_2 of { happy_var_2 -> + ( do{ dspec <- mkDeclSpec (happy_var_1 ++ [happy_var_2])+ ; return $(dspec, DeclRoot (happy_var_1 `srcspan` happy_var_2))+ })}}+ ) (\r -> happyReturn (happyIn56 r))++happyReduce_255 = happyMonadReduce 3# 41# happyReduction_255+happyReduction_255 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut59 happy_x_1 of { happy_var_1 -> + case happyOut64 happy_x_2 of { happy_var_2 -> + case happyOut58 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 `srcspan` happy_var_3))+ })}}}+ ) (\r -> happyReturn (happyIn56 r))++happyReduce_256 = happyMonadReduce 1# 42# happyReduction_256+happyReduction_256 (happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut96 happy_x_1 of { happy_var_1 -> + ( do{ dspec <- mkDeclSpec [happy_var_1]+ ; return (dspec, DeclRoot (srclocOf happy_var_1))+ })}+ ) (\r -> happyReturn (happyIn57 r))++happyReduce_257 = happyMonadReduce 2# 42# happyReduction_257+happyReduction_257 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut96 happy_x_1 of { happy_var_1 -> + case happyOut59 happy_x_2 of { happy_var_2 -> + ( do{ dspec <- mkDeclSpec (happy_var_1 : happy_var_2)+ ; return (dspec, DeclRoot (happy_var_1 `srcspan` happy_var_2))+ })}}+ ) (\r -> happyReturn (happyIn57 r))++happyReduce_258 = happyMonadReduce 2# 42# happyReduction_258+happyReduction_258 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut59 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + ( do{ dspec <- mkDeclSpec (happy_var_1 ++ [happy_var_2])+ ; return (dspec, DeclRoot (happy_var_1 `srcspan` happy_var_2))+ })}}+ ) (\r -> happyReturn (happyIn57 r))++happyReduce_259 = happyMonadReduce 3# 42# happyReduction_259+happyReduction_259 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut59 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut59 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 `srcspan` happy_var_3))+ })}}}+ ) (\r -> happyReturn (happyIn57 r))++happyReduce_260 = happySpecReduce_1 43# happyReduction_260+happyReduction_260 happy_x_1+ = case happyOut63 happy_x_1 of { happy_var_1 -> + happyIn58+ ([happy_var_1]+ )}++happyReduce_261 = happySpecReduce_2 43# happyReduction_261+happyReduction_261 happy_x_2+ happy_x_1+ = case happyOut63 happy_x_1 of { happy_var_1 -> + case happyOut58 happy_x_2 of { happy_var_2 -> + happyIn58+ (happy_var_1 : happy_var_2+ )}}++happyReduce_262 = happySpecReduce_1 43# happyReduction_262+happyReduction_262 happy_x_1+ = case happyOut64 happy_x_1 of { happy_var_1 -> + happyIn58+ ([happy_var_1]+ )}++happyReduce_263 = happySpecReduce_2 43# happyReduction_263+happyReduction_263 happy_x_2+ happy_x_1+ = case happyOut64 happy_x_1 of { happy_var_1 -> + case happyOut58 happy_x_2 of { happy_var_2 -> + happyIn58+ (happy_var_1 : happy_var_2+ )}}++happyReduce_264 = happySpecReduce_1 43# happyReduction_264+happyReduction_264 happy_x_1+ = case happyOut76 happy_x_1 of { happy_var_1 -> + happyIn58+ ([happy_var_1]+ )}++happyReduce_265 = happySpecReduce_2 43# happyReduction_265+happyReduction_265 happy_x_2+ happy_x_1+ = case happyOut76 happy_x_1 of { happy_var_1 -> + case happyOut58 happy_x_2 of { happy_var_2 -> + happyIn58+ (happy_var_1 : happy_var_2+ )}}++happyReduce_266 = happySpecReduce_1 44# happyReduction_266+happyReduction_266 happy_x_1+ = case happyOut63 happy_x_1 of { happy_var_1 -> + happyIn59+ ([happy_var_1]+ )}++happyReduce_267 = happySpecReduce_2 44# happyReduction_267+happyReduction_267 happy_x_2+ happy_x_1+ = case happyOut63 happy_x_1 of { happy_var_1 -> + case happyOut59 happy_x_2 of { happy_var_2 -> + happyIn59+ (happy_var_1 : happy_var_2+ )}}++happyReduce_268 = happySpecReduce_1 44# happyReduction_268+happyReduction_268 happy_x_1+ = case happyOut76 happy_x_1 of { happy_var_1 -> + happyIn59+ ([happy_var_1]+ )}++happyReduce_269 = happySpecReduce_2 44# happyReduction_269+happyReduction_269 happy_x_2+ happy_x_1+ = case happyOut76 happy_x_1 of { happy_var_1 -> + case happyOut59 happy_x_2 of { happy_var_2 -> + happyIn59+ (happy_var_1 : happy_var_2+ )}}++happyReduce_270 = happySpecReduce_1 45# happyReduction_270+happyReduction_270 happy_x_1+ = case happyOut62 happy_x_1 of { happy_var_1 -> + happyIn60+ (rsingleton happy_var_1+ )}++happyReduce_271 = happySpecReduce_3 45# happyReduction_271+happyReduction_271 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut60 happy_x_1 of { happy_var_1 -> + case happyOut62 happy_x_3 of { happy_var_3 -> + happyIn60+ (rcons happy_var_3 happy_var_1+ )}}++happyReduce_272 = happySpecReduce_0 46# happyReduction_272+happyReduction_272 = happyIn61+ (Nothing+ )++happyReduce_273 = happyReduce 4# 46# happyReduction_273+happyReduction_273 (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 -> + happyIn61+ (Just ((fst . getSTRING) happy_var_3)+ ) `HappyStk` happyRest}++happyReduce_274 = happySpecReduce_2 47# happyReduction_274+happyReduction_274 happy_x_2+ happy_x_1+ = case happyOut81 happy_x_1 of { happy_var_1 -> + case happyOut61 happy_x_2 of { happy_var_2 -> + happyIn62+ (let { (ident, declToDecl) = happy_var_1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Init ident decl happy_var_2 Nothing [] (ident `srcspan` decl)+ )}}++happyReduce_275 = happySpecReduce_3 47# happyReduction_275+happyReduction_275 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut81 happy_x_1 of { happy_var_1 -> + case happyOut149 happy_x_2 of { happy_var_2 -> + case happyOut61 happy_x_3 of { happy_var_3 -> + happyIn62+ (let { (ident, declToDecl) = happy_var_1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Init ident decl happy_var_3 Nothing happy_var_2 (ident `srcspan` decl)+ )}}}++happyReduce_276 = happyReduce 4# 47# happyReduction_276+happyReduction_276 (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 happyOut61 happy_x_2 of { happy_var_2 -> + case happyOut97 happy_x_4 of { happy_var_4 -> + happyIn62+ (let { (ident, declToDecl) = happy_var_1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Init ident decl happy_var_2 (Just happy_var_4) [] (ident `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_277 = happyReduce 5# 47# 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 happyOut81 happy_x_1 of { happy_var_1 -> + case happyOut149 happy_x_2 of { happy_var_2 -> + case happyOut61 happy_x_3 of { happy_var_3 -> + case happyOut97 happy_x_5 of { happy_var_5 -> + happyIn62+ (let { (ident, declToDecl) = happy_var_1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Init ident decl happy_var_3 (Just happy_var_5) happy_var_2 (ident `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}}++happyReduce_278 = happyMonadReduce 2# 47# happyReduction_278+happyReduction_278 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut81 happy_x_1 of { happy_var_1 -> + ( do{ let (ident, declToDecl) = happy_var_1+ ; let decl = declToDecl (declRoot ident)+ ; expected ["'='"] Nothing+ })}+ ) (\r -> happyReturn (happyIn62 r))++happyReduce_279 = happySpecReduce_1 48# happyReduction_279+happyReduction_279 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn63+ (TSauto (srclocOf happy_var_1)+ )}++happyReduce_280 = happySpecReduce_1 48# happyReduction_280+happyReduction_280 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn63+ (TSregister (srclocOf happy_var_1)+ )}++happyReduce_281 = happySpecReduce_1 48# happyReduction_281+happyReduction_281 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn63+ (TSstatic (srclocOf happy_var_1)+ )}++happyReduce_282 = happySpecReduce_1 48# happyReduction_282+happyReduction_282 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn63+ (TSextern (srclocOf happy_var_1)+ )}++happyReduce_283 = happySpecReduce_2 48# happyReduction_283+happyReduction_283 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn63+ (TSexternL ((snd . getSTRING) happy_var_2) (srclocOf happy_var_1)+ )}}++happyReduce_284 = happySpecReduce_1 48# happyReduction_284+happyReduction_284 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn63+ (TS__block (srclocOf happy_var_1)+ )}++happyReduce_285 = happySpecReduce_1 48# happyReduction_285+happyReduction_285 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn63+ (TSObjC__weak (srclocOf happy_var_1)+ )}++happyReduce_286 = happySpecReduce_1 48# happyReduction_286+happyReduction_286 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn63+ (TSObjC__strong (srclocOf happy_var_1)+ )}++happyReduce_287 = happySpecReduce_1 48# happyReduction_287+happyReduction_287 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn63+ (TSObjC__unsafe_retained (srclocOf happy_var_1)+ )}++happyReduce_288 = happySpecReduce_1 48# happyReduction_288+happyReduction_288 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn63+ (TStypedef (srclocOf happy_var_1)+ )}++happyReduce_289 = happySpecReduce_1 49# happyReduction_289+happyReduction_289 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn64+ (TSvoid (srclocOf happy_var_1)+ )}++happyReduce_290 = happySpecReduce_1 49# happyReduction_290+happyReduction_290 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn64+ (TSchar (srclocOf happy_var_1)+ )}++happyReduce_291 = happySpecReduce_1 49# happyReduction_291+happyReduction_291 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn64+ (TSshort (srclocOf happy_var_1)+ )}++happyReduce_292 = happySpecReduce_1 49# happyReduction_292+happyReduction_292 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn64+ (TSint (srclocOf happy_var_1)+ )}++happyReduce_293 = happySpecReduce_1 49# happyReduction_293+happyReduction_293 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn64+ (TSlong (srclocOf happy_var_1)+ )}++happyReduce_294 = happySpecReduce_1 49# happyReduction_294+happyReduction_294 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn64+ (TSfloat (srclocOf happy_var_1)+ )}++happyReduce_295 = happySpecReduce_1 49# happyReduction_295+happyReduction_295 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn64+ (TSdouble (srclocOf happy_var_1)+ )}++happyReduce_296 = happySpecReduce_1 49# happyReduction_296+happyReduction_296 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn64+ (TSsigned (srclocOf happy_var_1)+ )}++happyReduce_297 = happySpecReduce_1 49# happyReduction_297+happyReduction_297 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn64+ (TSunsigned (srclocOf happy_var_1)+ )}++happyReduce_298 = happySpecReduce_1 49# happyReduction_298+happyReduction_298 happy_x_1+ = case happyOut65 happy_x_1 of { happy_var_1 -> + happyIn64+ (happy_var_1+ )}++happyReduce_299 = happySpecReduce_1 49# happyReduction_299+happyReduction_299 happy_x_1+ = case happyOut73 happy_x_1 of { happy_var_1 -> + happyIn64+ (happy_var_1+ )}++happyReduce_300 = happySpecReduce_1 49# happyReduction_300+happyReduction_300 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn64+ (TSva_list (srclocOf happy_var_1)+ )}++happyReduce_301 = happySpecReduce_2 50# happyReduction_301+happyReduction_301 happy_x_2+ happy_x_1+ = case happyOut66 happy_x_1 of { happy_var_1 -> + case happyOut16 happy_x_2 of { happy_var_2 -> + happyIn65+ ((unLoc happy_var_1) (Just happy_var_2) Nothing [] (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_302 = happySpecReduce_3 50# happyReduction_302+happyReduction_302 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut66 happy_x_1 of { happy_var_1 -> + case happyOut149 happy_x_2 of { happy_var_2 -> + case happyOut16 happy_x_3 of { happy_var_3 -> + happyIn65+ ((unLoc happy_var_1) (Just happy_var_3) Nothing happy_var_2 (happy_var_1 `srcspan` happy_var_3)+ )}}}++happyReduce_303 = happyReduce 4# 50# happyReduction_303+happyReduction_303 (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 happyOut67 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn65+ ((unLoc happy_var_1) Nothing (Just (rev happy_var_3)) [] (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_304 = happyMonadReduce 4# 50# happyReduction_304+happyReduction_304 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut66 happy_x_1 of { happy_var_1 -> + case happyOut67 happy_x_3 of { happy_var_3 -> + ( unclosed (happy_var_1 <--> rev happy_var_3) "{")}}+ ) (\r -> happyReturn (happyIn65 r))++happyReduce_305 = happyReduce 5# 50# happyReduction_305+happyReduction_305 (happy_x_5 `HappyStk`+ 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 happyOut16 happy_x_2 of { happy_var_2 -> + case happyOut67 happy_x_4 of { happy_var_4 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn65+ ((unLoc happy_var_1) (Just happy_var_2) (Just (rev happy_var_4)) [] (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}}++happyReduce_306 = happyMonadReduce 5# 50# happyReduction_306+happyReduction_306 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut66 happy_x_1 of { happy_var_1 -> + case happyOut67 happy_x_4 of { happy_var_4 -> + ( unclosed (happy_var_1 <--> rev happy_var_4) "{")}}+ ) (\r -> happyReturn (happyIn65 r))++happyReduce_307 = happyReduce 6# 50# happyReduction_307+happyReduction_307 (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 happyOut66 happy_x_1 of { happy_var_1 -> + case happyOut149 happy_x_2 of { happy_var_2 -> + case happyOut16 happy_x_3 of { happy_var_3 -> + case happyOut67 happy_x_5 of { happy_var_5 -> + case happyOutTok happy_x_6 of { happy_var_6 -> + happyIn65+ ((unLoc happy_var_1) (Just happy_var_3) (Just (rev happy_var_5)) happy_var_2 (happy_var_1 `srcspan` happy_var_6)+ ) `HappyStk` happyRest}}}}}++happyReduce_308 = happyReduce 5# 50# happyReduction_308+happyReduction_308 (happy_x_5 `HappyStk`+ 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 happyOut149 happy_x_2 of { happy_var_2 -> + case happyOut67 happy_x_4 of { happy_var_4 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn65+ ((unLoc happy_var_1) Nothing (Just (rev happy_var_4)) happy_var_2 (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}}++happyReduce_309 = happyMonadReduce 6# 50# happyReduction_309+happyReduction_309 (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 happyOut66 happy_x_1 of { happy_var_1 -> + case happyOut67 happy_x_5 of { happy_var_5 -> + ( unclosed (happy_var_1 <--> rev happy_var_5) "{")}}+ ) (\r -> happyReturn (happyIn65 r))++happyReduce_310 = happySpecReduce_1 51# happyReduction_310+happyReduction_310 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn66+ (L (locOf happy_var_1) TSstruct+ )}++happyReduce_311 = happySpecReduce_1 51# happyReduction_311+happyReduction_311 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn66+ (L (locOf happy_var_1) TSunion+ )}++happyReduce_312 = happySpecReduce_1 52# happyReduction_312+happyReduction_312 happy_x_1+ = case happyOut68 happy_x_1 of { happy_var_1 -> + happyIn67+ (rsingleton happy_var_1+ )}++happyReduce_313 = happySpecReduce_1 52# happyReduction_313+happyReduction_313 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn67+ (rsingleton (AntiSdecls (getANTI_SDECLS happy_var_1) (srclocOf happy_var_1))+ )}++happyReduce_314 = happySpecReduce_2 52# happyReduction_314+happyReduction_314 happy_x_2+ happy_x_1+ = case happyOut67 happy_x_1 of { happy_var_1 -> + case happyOut68 happy_x_2 of { happy_var_2 -> + happyIn67+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_315 = happySpecReduce_2 52# happyReduction_315+happyReduction_315 happy_x_2+ happy_x_1+ = case happyOut67 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn67+ (rcons (AntiSdecls (getANTI_SDECLS happy_var_2) (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_316 = happySpecReduce_3 53# happyReduction_316+happyReduction_316 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut71 happy_x_2 of { happy_var_2 -> + case happyOutTok happy_x_3 of { happy_var_3 -> + happyIn68+ (let dspec = AntiDeclSpec (getANTI_SPEC happy_var_1) (srclocOf happy_var_1)+ in+ FieldGroup dspec (rev happy_var_2) (happy_var_1 `srcspan` happy_var_3)+ )}}}++happyReduce_317 = happyMonadReduce 3# 53# happyReduction_317+happyReduction_317 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut69 happy_x_1 of { happy_var_1 -> + case happyOut71 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 `srcspan` happy_var_3)+ })}}}+ ) (\r -> happyReturn (happyIn68 r))++happyReduce_318 = happyMonadReduce 3# 53# happyReduction_318+happyReduction_318 (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 happyOut16 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 (srclocOf happy_var_1)+ ; let decl = AntiTypeDecl v (srclocOf happy_var_1)+ ; let field = Field (Just happy_var_2) (Just decl) Nothing (happy_var_1 `srcspan` happy_var_2)+ ; return $ FieldGroup dspec [field] (happy_var_1 `srcspan` happy_var_3)+ })}}}+ ) (\r -> happyReturn (happyIn68 r))++happyReduce_319 = happySpecReduce_1 53# happyReduction_319+happyReduction_319 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn68+ (AntiSdecl (getANTI_SDECL happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_320 = happySpecReduce_2 54# happyReduction_320+happyReduction_320 happy_x_2+ happy_x_1+ = case happyOut64 happy_x_1 of { happy_var_1 -> + case happyOut70 happy_x_2 of { happy_var_2 -> + happyIn69+ (happy_var_1 : happy_var_2+ )}}++happyReduce_321 = happySpecReduce_3 54# happyReduction_321+happyReduction_321 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut87 happy_x_1 of { happy_var_1 -> + case happyOut64 happy_x_2 of { happy_var_2 -> + case happyOut70 happy_x_3 of { happy_var_3 -> + happyIn69+ (rev happy_var_1 ++ [happy_var_2] ++ happy_var_3+ )}}}++happyReduce_322 = happySpecReduce_1 54# happyReduction_322+happyReduction_322 happy_x_1+ = case happyOut96 happy_x_1 of { happy_var_1 -> + happyIn69+ ([happy_var_1]+ )}++happyReduce_323 = happySpecReduce_2 54# happyReduction_323+happyReduction_323 happy_x_2+ happy_x_1+ = case happyOut96 happy_x_1 of { happy_var_1 -> + case happyOut87 happy_x_2 of { happy_var_2 -> + happyIn69+ (happy_var_1 : rev happy_var_2+ )}}++happyReduce_324 = happySpecReduce_2 54# happyReduction_324+happyReduction_324 happy_x_2+ happy_x_1+ = case happyOut87 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + happyIn69+ (rev happy_var_1 ++ [happy_var_2]+ )}}++happyReduce_325 = happySpecReduce_3 54# happyReduction_325+happyReduction_325 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut87 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut87 happy_x_3 of { happy_var_3 -> + happyIn69+ (rev happy_var_1 ++ [happy_var_2] ++ rev happy_var_3+ )}}}++happyReduce_326 = happySpecReduce_0 55# happyReduction_326+happyReduction_326 = happyIn70+ ([]+ )++happyReduce_327 = happySpecReduce_1 55# happyReduction_327+happyReduction_327 happy_x_1+ = case happyOut64 happy_x_1 of { happy_var_1 -> + happyIn70+ ([happy_var_1]+ )}++happyReduce_328 = happySpecReduce_2 55# happyReduction_328+happyReduction_328 happy_x_2+ happy_x_1+ = case happyOut64 happy_x_1 of { happy_var_1 -> + case happyOut69 happy_x_2 of { happy_var_2 -> + happyIn70+ (happy_var_1 : happy_var_2+ )}}++happyReduce_329 = happySpecReduce_1 55# happyReduction_329+happyReduction_329 happy_x_1+ = case happyOut76 happy_x_1 of { happy_var_1 -> + happyIn70+ ([happy_var_1]+ )}++happyReduce_330 = happySpecReduce_2 55# happyReduction_330+happyReduction_330 happy_x_2+ happy_x_1+ = case happyOut76 happy_x_1 of { happy_var_1 -> + case happyOut69 happy_x_2 of { happy_var_2 -> + happyIn70+ (happy_var_1 : happy_var_2+ )}}++happyReduce_331 = happySpecReduce_1 56# happyReduction_331+happyReduction_331 happy_x_1+ = case happyOut72 happy_x_1 of { happy_var_1 -> + happyIn71+ (rsingleton happy_var_1+ )}++happyReduce_332 = happySpecReduce_3 56# happyReduction_332+happyReduction_332 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut71 happy_x_1 of { happy_var_1 -> + case happyOut72 happy_x_3 of { happy_var_3 -> + happyIn71+ (rcons happy_var_3 happy_var_1+ )}}++happyReduce_333 = happySpecReduce_1 57# happyReduction_333+happyReduction_333 happy_x_1+ = case happyOut81 happy_x_1 of { happy_var_1 -> + happyIn72+ (let { (ident, declToDecl) = happy_var_1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Field (Just ident) (Just decl) Nothing (srclocOf decl)+ )}++happyReduce_334 = happySpecReduce_2 57# happyReduction_334+happyReduction_334 happy_x_2+ happy_x_1+ = case happyOut81 happy_x_1 of { happy_var_1 -> + happyIn72+ (let { (ident, declToDecl) = happy_var_1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Field (Just ident) (Just decl) Nothing (srclocOf decl)+ )}++happyReduce_335 = happySpecReduce_2 57# happyReduction_335+happyReduction_335 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut52 happy_x_2 of { happy_var_2 -> + happyIn72+ (Field Nothing Nothing (Just happy_var_2) (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_336 = happySpecReduce_3 57# happyReduction_336+happyReduction_336 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut81 happy_x_1 of { happy_var_1 -> + case happyOut52 happy_x_3 of { happy_var_3 -> + happyIn72+ (let { (ident, declToDecl) = happy_var_1+ ; decl = declToDecl (declRoot ident)+ }+ in+ Field (Just ident) (Just decl) (Just happy_var_3) (srclocOf decl)+ )}}++happyReduce_337 = happySpecReduce_2 58# happyReduction_337+happyReduction_337 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut16 happy_x_2 of { happy_var_2 -> + happyIn73+ (TSenum (Just happy_var_2) [] [] (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_338 = happySpecReduce_3 58# happyReduction_338+happyReduction_338 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut149 happy_x_2 of { happy_var_2 -> + case happyOut16 happy_x_3 of { happy_var_3 -> + happyIn73+ (TSenum (Just happy_var_3) [] happy_var_2 (happy_var_1 `srcspan` happy_var_3)+ )}}}++happyReduce_339 = happyReduce 4# 58# happyReduction_339+happyReduction_339 (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 happyOut74 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn73+ (TSenum Nothing (rev happy_var_3) [] (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_340 = happyReduce 5# 58# happyReduction_340+happyReduction_340 (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 happyOut16 happy_x_2 of { happy_var_2 -> + case happyOut74 happy_x_4 of { happy_var_4 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn73+ (TSenum (Just happy_var_2) (rev happy_var_4) [] (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}}++happyReduce_341 = happySpecReduce_1 59# happyReduction_341+happyReduction_341 happy_x_1+ = case happyOut75 happy_x_1 of { happy_var_1 -> + happyIn74+ (rsingleton happy_var_1+ )}++happyReduce_342 = happySpecReduce_1 59# happyReduction_342+happyReduction_342 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn74+ (rsingleton (AntiEnums (getANTI_ENUMS happy_var_1) (srclocOf happy_var_1))+ )}++happyReduce_343 = happySpecReduce_2 59# happyReduction_343+happyReduction_343 happy_x_2+ happy_x_1+ = case happyOut74 happy_x_1 of { happy_var_1 -> + happyIn74+ (happy_var_1+ )}++happyReduce_344 = happySpecReduce_3 59# happyReduction_344+happyReduction_344 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut74 happy_x_1 of { happy_var_1 -> + case happyOut75 happy_x_3 of { happy_var_3 -> + happyIn74+ (rcons happy_var_3 happy_var_1+ )}}++happyReduce_345 = happySpecReduce_3 59# happyReduction_345+happyReduction_345 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut74 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_3 of { happy_var_3 -> + happyIn74+ (rcons (AntiEnums (getANTI_ENUMS happy_var_3) (srclocOf happy_var_3)) happy_var_1+ )}}++happyReduce_346 = happySpecReduce_1 60# happyReduction_346+happyReduction_346 happy_x_1+ = case happyOut15 happy_x_1 of { happy_var_1 -> + happyIn75+ (CEnum happy_var_1 Nothing (srclocOf happy_var_1)+ )}++happyReduce_347 = happySpecReduce_3 60# happyReduction_347+happyReduction_347 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut15 happy_x_1 of { happy_var_1 -> + case happyOut52 happy_x_3 of { happy_var_3 -> + happyIn75+ (CEnum happy_var_1 (Just happy_var_3) (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_348 = happySpecReduce_1 60# happyReduction_348+happyReduction_348 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn75+ (AntiEnum (getANTI_ENUM happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_349 = happySpecReduce_1 61# happyReduction_349+happyReduction_349 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSconst (srclocOf happy_var_1)+ )}++happyReduce_350 = happySpecReduce_1 61# happyReduction_350+happyReduction_350 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSinline (srclocOf happy_var_1)+ )}++happyReduce_351 = happySpecReduce_1 61# happyReduction_351+happyReduction_351 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSrestrict (srclocOf happy_var_1)+ )}++happyReduce_352 = happySpecReduce_1 61# happyReduction_352+happyReduction_352 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSvolatile (srclocOf happy_var_1)+ )}++happyReduce_353 = happySpecReduce_1 61# happyReduction_353+happyReduction_353 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCUDAdevice (srclocOf happy_var_1)+ )}++happyReduce_354 = happySpecReduce_1 61# happyReduction_354+happyReduction_354 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCUDAglobal (srclocOf happy_var_1)+ )}++happyReduce_355 = happySpecReduce_1 61# happyReduction_355+happyReduction_355 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCUDAhost (srclocOf happy_var_1)+ )}++happyReduce_356 = happySpecReduce_1 61# happyReduction_356+happyReduction_356 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCUDAconstant (srclocOf happy_var_1)+ )}++happyReduce_357 = happySpecReduce_1 61# happyReduction_357+happyReduction_357 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCUDAshared (srclocOf happy_var_1)+ )}++happyReduce_358 = happySpecReduce_1 61# happyReduction_358+happyReduction_358 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCUDArestrict (srclocOf happy_var_1)+ )}++happyReduce_359 = happySpecReduce_1 61# happyReduction_359+happyReduction_359 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCUDAnoinline (srclocOf happy_var_1)+ )}++happyReduce_360 = happySpecReduce_1 61# happyReduction_360+happyReduction_360 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLprivate (srclocOf happy_var_1)+ )}++happyReduce_361 = happySpecReduce_1 61# happyReduction_361+happyReduction_361 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLprivate (srclocOf happy_var_1)+ )}++happyReduce_362 = happySpecReduce_1 61# happyReduction_362+happyReduction_362 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLlocal (srclocOf happy_var_1)+ )}++happyReduce_363 = happySpecReduce_1 61# happyReduction_363+happyReduction_363 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLlocal (srclocOf happy_var_1)+ )}++happyReduce_364 = happySpecReduce_1 61# happyReduction_364+happyReduction_364 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLglobal (srclocOf happy_var_1)+ )}++happyReduce_365 = happySpecReduce_1 61# happyReduction_365+happyReduction_365 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLglobal (srclocOf happy_var_1)+ )}++happyReduce_366 = happySpecReduce_1 61# happyReduction_366+happyReduction_366 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLconstant (srclocOf happy_var_1)+ )}++happyReduce_367 = happySpecReduce_1 61# happyReduction_367+happyReduction_367 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLconstant (srclocOf happy_var_1)+ )}++happyReduce_368 = happySpecReduce_1 61# happyReduction_368+happyReduction_368 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLreadonly (srclocOf happy_var_1)+ )}++happyReduce_369 = happySpecReduce_1 61# happyReduction_369+happyReduction_369 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLreadonly (srclocOf happy_var_1)+ )}++happyReduce_370 = happySpecReduce_1 61# happyReduction_370+happyReduction_370 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLwriteonly (srclocOf happy_var_1)+ )}++happyReduce_371 = happySpecReduce_1 61# happyReduction_371+happyReduction_371 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLwriteonly (srclocOf happy_var_1)+ )}++happyReduce_372 = happySpecReduce_1 61# happyReduction_372+happyReduction_372 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLkernel (srclocOf happy_var_1)+ )}++happyReduce_373 = happySpecReduce_1 61# happyReduction_373+happyReduction_373 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn76+ (TSCLkernel (srclocOf happy_var_1)+ )}++happyReduce_374 = happySpecReduce_1 62# happyReduction_374+happyReduction_374 happy_x_1+ = case happyOut78 happy_x_1 of { happy_var_1 -> + happyIn77+ (happy_var_1+ )}++happyReduce_375 = happySpecReduce_2 62# happyReduction_375+happyReduction_375 happy_x_2+ happy_x_1+ = case happyOut86 happy_x_1 of { happy_var_1 -> + case happyOut78 happy_x_2 of { happy_var_2 -> + happyIn77+ (let (ident, dirDecl) = happy_var_2+ in+ (ident, dirDecl . happy_var_1)+ )}}++happyReduce_376 = happySpecReduce_1 63# happyReduction_376+happyReduction_376 happy_x_1+ = case happyOut15 happy_x_1 of { happy_var_1 -> + happyIn78+ ((happy_var_1, id)+ )}++happyReduce_377 = happySpecReduce_3 63# happyReduction_377+happyReduction_377 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut77 happy_x_2 of { happy_var_2 -> + happyIn78+ (happy_var_2+ )}++happyReduce_378 = happyMonadReduce 3# 63# happyReduction_378+happyReduction_378 (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 happyOut77 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 (happyIn78 r))++happyReduce_379 = happySpecReduce_2 63# happyReduction_379+happyReduction_379 happy_x_2+ happy_x_1+ = case happyOut78 happy_x_1 of { happy_var_1 -> + case happyOut85 happy_x_2 of { happy_var_2 -> + happyIn78+ (let (ident, declToDecl) = happy_var_1+ in+ (ident, declToDecl . happy_var_2)+ )}}++happyReduce_380 = happySpecReduce_3 63# happyReduction_380+happyReduction_380 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut78 happy_x_1 of { happy_var_1 -> + happyIn78+ (let { (ident, declToDecl) = happy_var_1+ ; proto = mkOldProto []+ }+ in+ (ident, declToDecl . proto)+ )}++happyReduce_381 = happyReduce 4# 63# happyReduction_381+happyReduction_381 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut78 happy_x_1 of { happy_var_1 -> + case happyOut88 happy_x_3 of { happy_var_3 -> + happyIn78+ (let { (ident, declToDecl) = happy_var_1+ ; proto = mkProto happy_var_3+ }+ in+ (ident, declToDecl . proto)+ ) `HappyStk` happyRest}}++happyReduce_382 = happyReduce 4# 63# happyReduction_382+happyReduction_382 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut78 happy_x_1 of { happy_var_1 -> + case happyOut92 happy_x_3 of { happy_var_3 -> + happyIn78+ (let { (ident, declToDecl) = happy_var_1+ ; proto = mkOldProto (rev happy_var_3)+ }+ in+ (ident, declToDecl . proto)+ ) `HappyStk` happyRest}}++happyReduce_383 = happySpecReduce_1 64# happyReduction_383+happyReduction_383 happy_x_1+ = case happyOut80 happy_x_1 of { happy_var_1 -> + happyIn79+ (happy_var_1+ )}++happyReduce_384 = happySpecReduce_2 64# happyReduction_384+happyReduction_384 happy_x_2+ happy_x_1+ = case happyOut86 happy_x_1 of { happy_var_1 -> + case happyOut80 happy_x_2 of { happy_var_2 -> + happyIn79+ (let (ident, dirDecl) = happy_var_2+ in+ (ident, dirDecl . happy_var_1)+ )}}++happyReduce_385 = happySpecReduce_1 65# happyReduction_385+happyReduction_385 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn80+ ((Id (getNAMED happy_var_1) (srclocOf happy_var_1), id)+ )}++happyReduce_386 = happySpecReduce_1 65# happyReduction_386+happyReduction_386 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn80+ ((Id (getOBJCNAMED happy_var_1) (srclocOf happy_var_1), id)+ )}++happyReduce_387 = happySpecReduce_3 65# happyReduction_387+happyReduction_387 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut79 happy_x_2 of { happy_var_2 -> + happyIn80+ (happy_var_2+ )}++happyReduce_388 = happyMonadReduce 3# 65# happyReduction_388+happyReduction_388 (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 -> + (do { let (ident, declToDecl) = happy_var_2+ ; let decl = declToDecl (declRoot ident)+ ; unclosed (happy_var_1 <--> decl) "("+ })}}+ ) (\r -> happyReturn (happyIn80 r))++happyReduce_389 = happySpecReduce_2 65# happyReduction_389+happyReduction_389 happy_x_2+ happy_x_1+ = case happyOut80 happy_x_1 of { happy_var_1 -> + case happyOut85 happy_x_2 of { happy_var_2 -> + happyIn80+ (let (ident, declToDecl) = happy_var_1+ in+ (ident, declToDecl . happy_var_2)+ )}}++happyReduce_390 = happySpecReduce_3 65# happyReduction_390+happyReduction_390 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut80 happy_x_1 of { happy_var_1 -> + happyIn80+ (let { (ident, declToDecl) = happy_var_1+ ; proto = mkOldProto []+ }+ in+ (ident, declToDecl . proto)+ )}++happyReduce_391 = happyReduce 4# 65# happyReduction_391+happyReduction_391 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut80 happy_x_1 of { happy_var_1 -> + case happyOut88 happy_x_3 of { happy_var_3 -> + happyIn80+ (let { (ident, declToDecl) = happy_var_1+ ; proto = mkProto happy_var_3+ }+ in+ (ident, declToDecl . proto)+ ) `HappyStk` happyRest}}++happyReduce_392 = happyReduce 4# 65# happyReduction_392+happyReduction_392 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut80 happy_x_1 of { happy_var_1 -> + case happyOut92 happy_x_3 of { happy_var_3 -> + happyIn80+ (let { (ident, declToDecl) = happy_var_1+ ; proto = mkOldProto (rev happy_var_3)+ }+ in+ (ident, declToDecl . proto)+ ) `HappyStk` happyRest}}++happyReduce_393 = happySpecReduce_1 66# happyReduction_393+happyReduction_393 happy_x_1+ = case happyOut77 happy_x_1 of { happy_var_1 -> + happyIn81+ (happy_var_1+ )}++happyReduce_394 = happySpecReduce_1 66# happyReduction_394+happyReduction_394 happy_x_1+ = case happyOut79 happy_x_1 of { happy_var_1 -> + happyIn81+ (happy_var_1+ )}++happyReduce_395 = happySpecReduce_1 67# happyReduction_395+happyReduction_395 happy_x_1+ = case happyOut83 happy_x_1 of { happy_var_1 -> + happyIn82+ (happy_var_1+ )}++happyReduce_396 = happySpecReduce_2 67# happyReduction_396+happyReduction_396 happy_x_2+ happy_x_1+ = case happyOut86 happy_x_1 of { happy_var_1 -> + case happyOut83 happy_x_2 of { happy_var_2 -> + happyIn82+ (let (ident, dirDecl) = happy_var_2+ in+ (ident, dirDecl . happy_var_1)+ )}}++happyReduce_397 = happySpecReduce_1 68# happyReduction_397+happyReduction_397 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn83+ ((Id (getNAMED happy_var_1) (srclocOf happy_var_1), id)+ )}++happyReduce_398 = happySpecReduce_1 68# happyReduction_398+happyReduction_398 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn83+ ((Id (getOBJCNAMED happy_var_1) (srclocOf happy_var_1), id)+ )}++happyReduce_399 = happyReduce 4# 68# happyReduction_399+happyReduction_399 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut86 happy_x_2 of { happy_var_2 -> + case happyOut83 happy_x_3 of { happy_var_3 -> + happyIn83+ (let (ident, dirDecl) = happy_var_3+ in+ (ident, dirDecl . happy_var_2)+ ) `HappyStk` happyRest}}++happyReduce_400 = happySpecReduce_2 68# happyReduction_400+happyReduction_400 happy_x_2+ happy_x_1+ = case happyOut83 happy_x_1 of { happy_var_1 -> + case happyOut85 happy_x_2 of { happy_var_2 -> + happyIn83+ (let (ident, declToDecl) = happy_var_1+ in+ (ident, declToDecl . happy_var_2)+ )}}++happyReduce_401 = happySpecReduce_3 68# happyReduction_401+happyReduction_401 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut83 happy_x_1 of { happy_var_1 -> + happyIn83+ (let { (ident, declToDecl) = happy_var_1+ ; proto = mkOldProto []+ }+ in+ (ident, declToDecl . proto)+ )}++happyReduce_402 = happyReduce 4# 68# happyReduction_402+happyReduction_402 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut83 happy_x_1 of { happy_var_1 -> + case happyOut88 happy_x_3 of { happy_var_3 -> + happyIn83+ (let { (ident, declToDecl) = happy_var_1+ ; proto = mkProto happy_var_3+ }+ in+ (ident, declToDecl . proto)+ ) `HappyStk` happyRest}}++happyReduce_403 = happyReduce 4# 68# happyReduction_403+happyReduction_403 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut83 happy_x_1 of { happy_var_1 -> + case happyOut92 happy_x_3 of { happy_var_3 -> + happyIn83+ (let { (ident, declToDecl) = happy_var_1+ ; proto = mkOldProto (rev happy_var_3)+ }+ in+ (ident, declToDecl . proto)+ ) `HappyStk` happyRest}}++happyReduce_404 = happySpecReduce_1 69# happyReduction_404+happyReduction_404 happy_x_1+ = case happyOut77 happy_x_1 of { happy_var_1 -> + happyIn84+ (happy_var_1+ )}++happyReduce_405 = happySpecReduce_1 69# happyReduction_405+happyReduction_405 happy_x_1+ = case happyOut82 happy_x_1 of { happy_var_1 -> + happyIn84+ (happy_var_1+ )}++happyReduce_406 = happySpecReduce_2 70# happyReduction_406+happyReduction_406 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn85+ (mkArray [] (NoArraySize (happy_var_1 `srcspan` happy_var_2))+ )}}++happyReduce_407 = happyMonadReduce 2# 70# happyReduction_407+happyReduction_407 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> + ( unclosed (locOf happy_var_1) "[")}+ ) (\r -> happyReturn (happyIn85 r))++happyReduce_408 = happySpecReduce_3 70# happyReduction_408+happyReduction_408 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut87 happy_x_2 of { happy_var_2 -> + case happyOutTok happy_x_3 of { happy_var_3 -> + happyIn85+ (mkArray (rev happy_var_2) (NoArraySize (happy_var_1 `srcspan` happy_var_3))+ )}}}++happyReduce_409 = happySpecReduce_3 70# happyReduction_409+happyReduction_409 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut49 happy_x_2 of { happy_var_2 -> + happyIn85+ (mkArray [] (ArraySize False happy_var_2 (srclocOf happy_var_2))+ )}++happyReduce_410 = happyReduce 4# 70# happyReduction_410+happyReduction_410 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut87 happy_x_2 of { happy_var_2 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn85+ (mkArray (rev happy_var_2) (ArraySize False happy_var_3 (srclocOf happy_var_3))+ ) `HappyStk` happyRest}}++happyReduce_411 = happyReduce 4# 70# happyReduction_411+happyReduction_411 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn85+ (mkArray [] (ArraySize True happy_var_3 (srclocOf happy_var_3))+ ) `HappyStk` happyRest}++happyReduce_412 = happyReduce 5# 70# happyReduction_412+happyReduction_412 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut87 happy_x_3 of { happy_var_3 -> + case happyOut49 happy_x_4 of { happy_var_4 -> + happyIn85+ (mkArray (rev happy_var_3) (ArraySize True happy_var_4 (srclocOf happy_var_4))+ ) `HappyStk` happyRest}}++happyReduce_413 = happyReduce 5# 70# happyReduction_413+happyReduction_413 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut87 happy_x_2 of { happy_var_2 -> + case happyOut49 happy_x_4 of { happy_var_4 -> + happyIn85+ (mkArray (rev happy_var_2) (ArraySize True happy_var_4 (srclocOf happy_var_4))+ ) `HappyStk` happyRest}}++happyReduce_414 = happySpecReduce_3 70# happyReduction_414+happyReduction_414 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 -> + happyIn85+ (mkArray [] (VariableArraySize (happy_var_1 `srcspan` happy_var_3))+ )}}++happyReduce_415 = happyReduce 4# 70# happyReduction_415+happyReduction_415 (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 happyOut87 happy_x_2 of { happy_var_2 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn85+ (mkArray (rev happy_var_2) (VariableArraySize (happy_var_1 `srcspan` happy_var_4))+ ) `HappyStk` happyRest}}}++happyReduce_416 = happySpecReduce_1 71# happyReduction_416+happyReduction_416 happy_x_1+ = happyIn86+ (mkPtr []+ )++happyReduce_417 = happySpecReduce_2 71# happyReduction_417+happyReduction_417 happy_x_2+ happy_x_1+ = case happyOut87 happy_x_2 of { happy_var_2 -> + happyIn86+ (mkPtr (rev happy_var_2)+ )}++happyReduce_418 = happySpecReduce_2 71# happyReduction_418+happyReduction_418 happy_x_2+ happy_x_1+ = case happyOut86 happy_x_2 of { happy_var_2 -> + happyIn86+ (happy_var_2 . mkPtr []+ )}++happyReduce_419 = happySpecReduce_3 71# happyReduction_419+happyReduction_419 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut87 happy_x_2 of { happy_var_2 -> + case happyOut86 happy_x_3 of { happy_var_3 -> + happyIn86+ (happy_var_3 . mkPtr (rev happy_var_2)+ )}}++happyReduce_420 = happyMonadReduce 1# 71# happyReduction_420+happyReduction_420 (happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> + ( mkBlockPtr (locOf happy_var_1) [])}+ ) (\r -> happyReturn (happyIn86 r))++happyReduce_421 = happyMonadReduce 2# 71# happyReduction_421+happyReduction_421 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut87 happy_x_2 of { happy_var_2 -> + ( mkBlockPtr (locOf happy_var_1) (rev happy_var_2))}}+ ) (\r -> happyReturn (happyIn86 r))++happyReduce_422 = happyMonadReduce 2# 71# happyReduction_422+happyReduction_422 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut86 happy_x_2 of { happy_var_2 -> + ( (happy_var_2 .) `liftM` mkBlockPtr (locOf happy_var_1) [])}}+ ) (\r -> happyReturn (happyIn86 r))++happyReduce_423 = happyMonadReduce 3# 71# happyReduction_423+happyReduction_423 (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 happyOut87 happy_x_2 of { happy_var_2 -> + case happyOut86 happy_x_3 of { happy_var_3 -> + ( (happy_var_3 .) `liftM` mkBlockPtr (locOf happy_var_1) (rev happy_var_2))}}}+ ) (\r -> happyReturn (happyIn86 r))++happyReduce_424 = happySpecReduce_1 72# happyReduction_424+happyReduction_424 happy_x_1+ = case happyOut76 happy_x_1 of { happy_var_1 -> + happyIn87+ (rsingleton happy_var_1+ )}++happyReduce_425 = happySpecReduce_2 72# happyReduction_425+happyReduction_425 happy_x_2+ happy_x_1+ = case happyOut87 happy_x_1 of { happy_var_1 -> + case happyOut76 happy_x_2 of { happy_var_2 -> + happyIn87+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_426 = happySpecReduce_1 73# happyReduction_426+happyReduction_426 happy_x_1+ = case happyOut89 happy_x_1 of { happy_var_1 -> + happyIn88+ (let params = rev happy_var_1+ in+ Params params False (srclocOf params)+ )}++happyReduce_427 = happySpecReduce_3 73# happyReduction_427+happyReduction_427 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut89 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_3 of { happy_var_3 -> + happyIn88+ (let params = rev happy_var_1+ in+ Params params True (params `srcspan` happy_var_3)+ )}}++happyReduce_428 = happySpecReduce_1 74# happyReduction_428+happyReduction_428 happy_x_1+ = case happyOut90 happy_x_1 of { happy_var_1 -> + happyIn89+ (rsingleton happy_var_1+ )}++happyReduce_429 = happySpecReduce_1 74# happyReduction_429+happyReduction_429 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn89+ (rsingleton (AntiParams (getANTI_PARAMS happy_var_1) (srclocOf happy_var_1))+ )}++happyReduce_430 = happySpecReduce_3 74# happyReduction_430+happyReduction_430 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut89 happy_x_1 of { happy_var_1 -> + case happyOut90 happy_x_3 of { happy_var_3 -> + happyIn89+ (rcons happy_var_3 happy_var_1+ )}}++happyReduce_431 = happySpecReduce_3 74# happyReduction_431+happyReduction_431 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut89 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_3 of { happy_var_3 -> + happyIn89+ (rcons (AntiParams (getANTI_PARAMS happy_var_3) (srclocOf happy_var_3)) happy_var_1+ )}}++happyReduce_432 = happySpecReduce_1 75# happyReduction_432+happyReduction_432 happy_x_1+ = case happyOut55 happy_x_1 of { happy_var_1 -> + happyIn90+ (let (dspec, decl) = happy_var_1+ in+ Param Nothing dspec decl (dspec `srcspan` decl)+ )}++happyReduce_433 = happySpecReduce_2 75# happyReduction_433+happyReduction_433 happy_x_2+ happy_x_1+ = case happyOut55 happy_x_1 of { happy_var_1 -> + case happyOut84 happy_x_2 of { happy_var_2 -> + happyIn90+ (let { (dspec, declRoot) = happy_var_1+ ; (ident, declToDecl) = happy_var_2+ ; decl = declToDecl declRoot+ }+ in+ Param (Just ident) dspec decl (ident `srcspan` decl)+ )}}++happyReduce_434 = happySpecReduce_2 75# happyReduction_434+happyReduction_434 happy_x_2+ happy_x_1+ = case happyOut55 happy_x_1 of { happy_var_1 -> + case happyOut94 happy_x_2 of { happy_var_2 -> + happyIn90+ (let { (dspec, declRoot) = happy_var_1+ ; decl = happy_var_2 declRoot+ }+ in+ Param Nothing dspec decl (dspec `srcspan` decl)+ )}}++happyReduce_435 = happySpecReduce_1 75# happyReduction_435+happyReduction_435 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn90+ (AntiParam (getANTI_PARAM happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_436 = happySpecReduce_1 76# happyReduction_436+happyReduction_436 happy_x_1+ = case happyOut55 happy_x_1 of { happy_var_1 -> + happyIn91+ (let (dspec, decl) = happy_var_1+ in+ Type dspec decl (dspec `srcspan` decl)+ )}++happyReduce_437 = happySpecReduce_2 76# happyReduction_437+happyReduction_437 happy_x_2+ happy_x_1+ = case happyOut55 happy_x_1 of { happy_var_1 -> + case happyOut84 happy_x_2 of { happy_var_2 -> + happyIn91+ (let { (dspec, declRoot) = happy_var_1+ ; (ident, declToDecl) = happy_var_2+ ; decl = declToDecl declRoot+ }+ in+ Type dspec decl (dspec `srcspan` decl)+ )}}++happyReduce_438 = happySpecReduce_2 76# happyReduction_438+happyReduction_438 happy_x_2+ happy_x_1+ = case happyOut55 happy_x_1 of { happy_var_1 -> + case happyOut94 happy_x_2 of { happy_var_2 -> + happyIn91+ (let { (dspec, declRoot) = happy_var_1+ ; decl = happy_var_2 declRoot+ }+ in+ Type dspec decl (dspec `srcspan` decl)+ )}}++happyReduce_439 = happySpecReduce_1 77# happyReduction_439+happyReduction_439 happy_x_1+ = case happyOut15 happy_x_1 of { happy_var_1 -> + happyIn92+ (rsingleton happy_var_1+ )}++happyReduce_440 = happySpecReduce_3 77# happyReduction_440+happyReduction_440 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut92 happy_x_1 of { happy_var_1 -> + case happyOut15 happy_x_3 of { happy_var_3 -> + happyIn92+ (rcons happy_var_3 happy_var_1+ )}}++happyReduce_441 = happySpecReduce_1 78# happyReduction_441+happyReduction_441 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn93+ (let dspec = AntiDeclSpec (getANTI_SPEC happy_var_1) (srclocOf happy_var_1)+ in+ Type dspec (declRoot happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_442 = happyMonadReduce 1# 78# happyReduction_442+happyReduction_442 (happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut69 happy_x_1 of { happy_var_1 -> + ( do{ dspec <- mkDeclSpec happy_var_1+ ; return $ Type dspec (declRoot happy_var_1) (srclocOf happy_var_1)+ })}+ ) (\r -> happyReturn (happyIn93 r))++happyReduce_443 = happySpecReduce_2 78# happyReduction_443+happyReduction_443 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut94 happy_x_2 of { happy_var_2 -> + happyIn93+ (let { dspec = AntiDeclSpec (getANTI_SPEC happy_var_1) (srclocOf happy_var_1)+ ; decl = happy_var_2 (declRoot happy_var_1)+ }+ in+ Type dspec decl (dspec `srcspan` decl)+ )}}++happyReduce_444 = happyMonadReduce 2# 78# happyReduction_444+happyReduction_444 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut69 happy_x_1 of { happy_var_1 -> + case happyOut94 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 `srcspan` decl)+ })}}+ ) (\r -> happyReturn (happyIn93 r))++happyReduce_445 = happySpecReduce_1 78# happyReduction_445+happyReduction_445 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn93+ (AntiType (getANTI_TYPE happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_446 = happySpecReduce_2 78# happyReduction_446+happyReduction_446 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut94 happy_x_2 of { happy_var_2 -> + happyIn93+ (let { v = getANTI_TYPE happy_var_1+ ; decl = happy_var_2 (AntiTypeDecl v (srclocOf happy_var_1))+ }+ in+ Type (AntiTypeDeclSpec [] [] v (srclocOf happy_var_1)) decl (happy_var_1 `srcspan` decl)+ )}}++happyReduce_447 = happySpecReduce_1 79# happyReduction_447+happyReduction_447 happy_x_1+ = case happyOut86 happy_x_1 of { happy_var_1 -> + happyIn94+ (happy_var_1+ )}++happyReduce_448 = happySpecReduce_1 79# happyReduction_448+happyReduction_448 happy_x_1+ = case happyOut95 happy_x_1 of { happy_var_1 -> + happyIn94+ (happy_var_1+ )}++happyReduce_449 = happySpecReduce_2 79# happyReduction_449+happyReduction_449 happy_x_2+ happy_x_1+ = case happyOut86 happy_x_1 of { happy_var_1 -> + case happyOut95 happy_x_2 of { happy_var_2 -> + happyIn94+ (happy_var_2 . happy_var_1+ )}}++happyReduce_450 = happySpecReduce_3 80# happyReduction_450+happyReduction_450 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut94 happy_x_2 of { happy_var_2 -> + happyIn95+ (happy_var_2+ )}++happyReduce_451 = happyMonadReduce 3# 80# happyReduction_451+happyReduction_451 (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 happyOut94 happy_x_2 of { happy_var_2 -> + ( do{ let decl = happy_var_2 (declRoot happy_var_1)+ ; unclosed (happy_var_1 <--> decl) "("+ })}}+ ) (\r -> happyReturn (happyIn95 r))++happyReduce_452 = happySpecReduce_1 80# happyReduction_452+happyReduction_452 happy_x_1+ = case happyOut85 happy_x_1 of { happy_var_1 -> + happyIn95+ (happy_var_1+ )}++happyReduce_453 = happySpecReduce_2 80# happyReduction_453+happyReduction_453 happy_x_2+ happy_x_1+ = case happyOut95 happy_x_1 of { happy_var_1 -> + case happyOut85 happy_x_2 of { happy_var_2 -> + happyIn95+ (happy_var_1 . happy_var_2+ )}}++happyReduce_454 = happySpecReduce_2 80# happyReduction_454+happyReduction_454 happy_x_2+ happy_x_1+ = happyIn95+ (mkOldProto []+ )++happyReduce_455 = happySpecReduce_3 80# happyReduction_455+happyReduction_455 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut88 happy_x_2 of { happy_var_2 -> + happyIn95+ (mkProto happy_var_2+ )}++happyReduce_456 = happySpecReduce_3 80# happyReduction_456+happyReduction_456 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut95 happy_x_1 of { happy_var_1 -> + happyIn95+ (happy_var_1 . mkOldProto []+ )}++happyReduce_457 = happyReduce 4# 80# happyReduction_457+happyReduction_457 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut95 happy_x_1 of { happy_var_1 -> + case happyOut88 happy_x_3 of { happy_var_3 -> + happyIn95+ (happy_var_1 . mkProto happy_var_3+ ) `HappyStk` happyRest}}++happyReduce_458 = happySpecReduce_1 81# happyReduction_458+happyReduction_458 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn96+ (TSnamed (Id (getNAMED happy_var_1) (srclocOf happy_var_1)) [] (srclocOf happy_var_1)+ )}++happyReduce_459 = happyMonadReduce 4# 81# happyReduction_459+happyReduction_459 (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 happyOut92 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + ( do { assertObjCEnabled (happy_var_1 <--> happy_var_4) "To use protocol qualifiers, enable support for Objective-C"+ ; return $ TSnamed (Id (getNAMED happy_var_1) (srclocOf happy_var_1)) (rev happy_var_3) (happy_var_1 `srcspan` happy_var_4) + })}}}+ ) (\r -> happyReturn (happyIn96 r))++happyReduce_460 = happySpecReduce_1 81# happyReduction_460+happyReduction_460 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn96+ (TSnamed (Id (getOBJCNAMED happy_var_1) (srclocOf happy_var_1)) [] (srclocOf happy_var_1)+ )}++happyReduce_461 = happyMonadReduce 4# 81# happyReduction_461+happyReduction_461 (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 happyOut92 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + ( do { assertObjCEnabled (happy_var_1 <--> happy_var_4) "To use protocol qualifiers, enable support for Objective-C"+ ; return $ TSnamed (Id (getOBJCNAMED happy_var_1) (srclocOf happy_var_1)) (rev happy_var_3) (happy_var_1 `srcspan` happy_var_4) + })}}}+ ) (\r -> happyReturn (happyIn96 r))++happyReduce_462 = happySpecReduce_2 81# happyReduction_462+happyReduction_462 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut15 happy_x_2 of { happy_var_2 -> + happyIn96+ (TSnamed happy_var_2 [] (srclocOf happy_var_1)+ )}}++happyReduce_463 = happyMonadReduce 5# 81# happyReduction_463+happyReduction_463 (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_1 of { happy_var_1 -> + case happyOut15 happy_x_2 of { happy_var_2 -> + case happyOut92 happy_x_4 of { happy_var_4 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + ( do { assertObjCEnabled (happy_var_1 <--> happy_var_5) "To use protocol qualifiers, enable support for Objective-C"+ ; return $ TSnamed happy_var_2 (rev happy_var_4) (happy_var_1 `srcspan` happy_var_5) + })}}}}+ ) (\r -> happyReturn (happyIn96 r))++happyReduce_464 = happyMonadReduce 2# 81# happyReduction_464+happyReduction_464 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["identifier"] (Just "'typename'"))+ ) (\r -> happyReturn (happyIn96 r))++happyReduce_465 = happyReduce 4# 81# happyReduction_465+happyReduction_465 (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 happyOutTok happy_x_4 of { happy_var_4 -> + happyIn96+ (TStypeofExp happy_var_3 (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_466 = happyReduce 4# 81# happyReduction_466+happyReduction_466 (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 happyOut93 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn96+ (TStypeofType happy_var_3 (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_467 = happyMonadReduce 4# 81# happyReduction_467+happyReduction_467 (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 happyOut93 happy_x_3 of { happy_var_3 -> + ( unclosed (happy_var_2 <--> happy_var_3) "(")}}+ ) (\r -> happyReturn (happyIn96 r))++happyReduce_468 = happySpecReduce_1 82# happyReduction_468+happyReduction_468 happy_x_1+ = case happyOut49 happy_x_1 of { happy_var_1 -> + happyIn97+ (ExpInitializer happy_var_1 (srclocOf happy_var_1)+ )}++happyReduce_469 = happySpecReduce_3 82# happyReduction_469+happyReduction_469 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut98 happy_x_2 of { happy_var_2 -> + case happyOutTok happy_x_3 of { happy_var_3 -> + happyIn97+ (CompoundInitializer (rev happy_var_2) (happy_var_1 `srcspan` happy_var_3)+ )}}}++happyReduce_470 = happyMonadReduce 3# 82# happyReduction_470+happyReduction_470 (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 happyOut98 happy_x_2 of { happy_var_2 -> + ( do{ let (_, inits) = unzip (rev happy_var_2)+ ; unclosed (happy_var_1 <--> inits) "{"+ })}}+ ) (\r -> happyReturn (happyIn97 r))++happyReduce_471 = happyReduce 4# 82# happyReduction_471+happyReduction_471 (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 happyOut98 happy_x_2 of { happy_var_2 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn97+ (CompoundInitializer (rev happy_var_2) (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_472 = happyMonadReduce 4# 82# happyReduction_472+happyReduction_472 (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 (happyIn97 r))++happyReduce_473 = happySpecReduce_1 82# happyReduction_473+happyReduction_473 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn97+ (AntiInit (getANTI_INIT happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_474 = happySpecReduce_1 83# happyReduction_474+happyReduction_474 happy_x_1+ = case happyOut97 happy_x_1 of { happy_var_1 -> + happyIn98+ (rsingleton (Nothing, happy_var_1)+ )}++happyReduce_475 = happySpecReduce_1 83# happyReduction_475+happyReduction_475 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn98+ (rsingleton (Nothing, AntiInits (getANTI_INITS happy_var_1) (srclocOf happy_var_1))+ )}++happyReduce_476 = happySpecReduce_2 83# happyReduction_476+happyReduction_476 happy_x_2+ happy_x_1+ = case happyOut99 happy_x_1 of { happy_var_1 -> + case happyOut97 happy_x_2 of { happy_var_2 -> + happyIn98+ (rsingleton (Just happy_var_1, happy_var_2)+ )}}++happyReduce_477 = happySpecReduce_3 83# happyReduction_477+happyReduction_477 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut98 happy_x_1 of { happy_var_1 -> + case happyOut97 happy_x_3 of { happy_var_3 -> + happyIn98+ (rcons (Nothing, happy_var_3) happy_var_1+ )}}++happyReduce_478 = happyReduce 4# 83# happyReduction_478+happyReduction_478 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut98 happy_x_1 of { happy_var_1 -> + case happyOut99 happy_x_3 of { happy_var_3 -> + case happyOut97 happy_x_4 of { happy_var_4 -> + happyIn98+ (rcons (Just happy_var_3, happy_var_4) happy_var_1+ ) `HappyStk` happyRest}}}++happyReduce_479 = happySpecReduce_2 84# happyReduction_479+happyReduction_479 happy_x_2+ happy_x_1+ = case happyOut100 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn99+ (let designators = rev happy_var_1+ in+ Designation designators (designators `srcspan` happy_var_2)+ )}}++happyReduce_480 = happySpecReduce_1 85# happyReduction_480+happyReduction_480 happy_x_1+ = case happyOut101 happy_x_1 of { happy_var_1 -> + happyIn100+ (rsingleton happy_var_1+ )}++happyReduce_481 = happySpecReduce_2 85# happyReduction_481+happyReduction_481 happy_x_2+ happy_x_1+ = case happyOut100 happy_x_1 of { happy_var_1 -> + case happyOut101 happy_x_2 of { happy_var_2 -> + happyIn100+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_482 = happySpecReduce_3 86# happyReduction_482+happyReduction_482 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut52 happy_x_2 of { happy_var_2 -> + case happyOutTok happy_x_3 of { happy_var_3 -> + happyIn101+ (IndexDesignator happy_var_2 (happy_var_1 `srcspan` happy_var_3)+ )}}}++happyReduce_483 = happySpecReduce_2 86# happyReduction_483+happyReduction_483 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut15 happy_x_2 of { happy_var_2 -> + happyIn101+ (MemberDesignator happy_var_2 (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_484 = happySpecReduce_1 87# happyReduction_484+happyReduction_484 happy_x_1+ = case happyOut103 happy_x_1 of { happy_var_1 -> + happyIn102+ (happy_var_1+ )}++happyReduce_485 = happySpecReduce_1 87# happyReduction_485+happyReduction_485 happy_x_1+ = case happyOut104 happy_x_1 of { happy_var_1 -> + happyIn102+ (happy_var_1+ )}++happyReduce_486 = happySpecReduce_1 87# happyReduction_486+happyReduction_486 happy_x_1+ = case happyOut110 happy_x_1 of { happy_var_1 -> + happyIn102+ (happy_var_1+ )}++happyReduce_487 = happySpecReduce_1 87# happyReduction_487+happyReduction_487 happy_x_1+ = case happyOut111 happy_x_1 of { happy_var_1 -> + happyIn102+ (happy_var_1+ )}++happyReduce_488 = happySpecReduce_1 87# happyReduction_488+happyReduction_488 happy_x_1+ = case happyOut112 happy_x_1 of { happy_var_1 -> + happyIn102+ (happy_var_1+ )}++happyReduce_489 = happySpecReduce_1 87# happyReduction_489+happyReduction_489 happy_x_1+ = case happyOut113 happy_x_1 of { happy_var_1 -> + happyIn102+ (happy_var_1+ )}++happyReduce_490 = happySpecReduce_1 87# happyReduction_490+happyReduction_490 happy_x_1+ = case happyOut155 happy_x_1 of { happy_var_1 -> + happyIn102+ (happy_var_1+ )}++happyReduce_491 = happySpecReduce_1 87# happyReduction_491+happyReduction_491 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn102+ (Pragma (getPRAGMA happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_492 = happySpecReduce_1 87# happyReduction_492+happyReduction_492 happy_x_1+ = case happyOut114 happy_x_1 of { happy_var_1 -> + happyIn102+ (happy_var_1+ )}++happyReduce_493 = happySpecReduce_1 87# happyReduction_493+happyReduction_493 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn102+ (AntiPragma (getANTI_PRAGMA happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_494 = happySpecReduce_1 87# happyReduction_494+happyReduction_494 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn102+ (AntiStm (getANTI_STM happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_495 = happyMonadReduce 3# 88# happyReduction_495+happyReduction_495 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["statement"] (Just "label"))+ ) (\r -> happyReturn (happyIn103 r))++happyReduce_496 = happySpecReduce_3 88# happyReduction_496+happyReduction_496 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut15 happy_x_1 of { happy_var_1 -> + case happyOut102 happy_x_3 of { happy_var_3 -> + happyIn103+ (Label happy_var_1 happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_497 = happyMonadReduce 3# 88# happyReduction_497+happyReduction_497 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["`:'"] Nothing)+ ) (\r -> happyReturn (happyIn103 r))++happyReduce_498 = happyMonadReduce 4# 88# happyReduction_498+happyReduction_498 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["statement"] Nothing)+ ) (\r -> happyReturn (happyIn103 r))++happyReduce_499 = happyReduce 4# 88# happyReduction_499+happyReduction_499 (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 happyOut52 happy_x_2 of { happy_var_2 -> + case happyOut102 happy_x_4 of { happy_var_4 -> + happyIn103+ (Case happy_var_2 happy_var_4 (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_500 = happyMonadReduce 2# 88# happyReduction_500+happyReduction_500 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["`:'"] (Just "`default'"))+ ) (\r -> happyReturn (happyIn103 r))++happyReduce_501 = happyMonadReduce 3# 88# happyReduction_501+happyReduction_501 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["statement"] Nothing)+ ) (\r -> happyReturn (happyIn103 r))++happyReduce_502 = happySpecReduce_3 88# happyReduction_502+happyReduction_502 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut102 happy_x_3 of { happy_var_3 -> + happyIn103+ (Default happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_503 = happyReduce 4# 89# happyReduction_503+happyReduction_503 (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 -> + happyIn104+ (Block [] (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}++happyReduce_504 = happyMonadReduce 3# 89# happyReduction_504+happyReduction_504 (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 (happyIn104 r))++happyReduce_505 = happyReduce 5# 89# happyReduction_505+happyReduction_505 (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 happyOut105 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn104+ (Block (rev happy_var_3) (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_506 = happySpecReduce_1 90# happyReduction_506+happyReduction_506 happy_x_1+ = case happyOut106 happy_x_1 of { happy_var_1 -> + happyIn105+ (rsingleton happy_var_1+ )}++happyReduce_507 = happySpecReduce_2 90# happyReduction_507+happyReduction_507 happy_x_2+ happy_x_1+ = case happyOut105 happy_x_1 of { happy_var_1 -> + case happyOut106 happy_x_2 of { happy_var_2 -> + happyIn105+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_508 = happySpecReduce_1 91# happyReduction_508+happyReduction_508 happy_x_1+ = case happyOut53 happy_x_1 of { happy_var_1 -> + happyIn106+ (BlockDecl happy_var_1+ )}++happyReduce_509 = happySpecReduce_1 91# happyReduction_509+happyReduction_509 happy_x_1+ = case happyOut102 happy_x_1 of { happy_var_1 -> + happyIn106+ (BlockStm happy_var_1+ )}++happyReduce_510 = happySpecReduce_1 91# happyReduction_510+happyReduction_510 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn106+ (BlockDecl (AntiDecls (getANTI_DECLS happy_var_1) (srclocOf happy_var_1))+ )}++happyReduce_511 = happySpecReduce_1 91# happyReduction_511+happyReduction_511 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn106+ (BlockStm (AntiStms (getANTI_STMS happy_var_1) (srclocOf happy_var_1))+ )}++happyReduce_512 = happySpecReduce_1 91# happyReduction_512+happyReduction_512 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn106+ (AntiBlockItem (getANTI_ITEM happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_513 = happySpecReduce_1 91# happyReduction_513+happyReduction_513 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn106+ (AntiBlockItems (getANTI_ITEMS happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_514 = happyMonadReduce 0# 92# happyReduction_514+happyReduction_514 (happyRest) tk+ = happyThen (( pushScope)+ ) (\r -> happyReturn (happyIn107 r))++happyReduce_515 = happyMonadReduce 0# 93# happyReduction_515+happyReduction_515 (happyRest) tk+ = happyThen (( popScope)+ ) (\r -> happyReturn (happyIn108 r))++happyReduce_516 = happySpecReduce_1 94# happyReduction_516+happyReduction_516 happy_x_1+ = case happyOut53 happy_x_1 of { happy_var_1 -> + happyIn109+ (rsingleton happy_var_1+ )}++happyReduce_517 = happySpecReduce_1 94# happyReduction_517+happyReduction_517 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn109+ (rsingleton (AntiDecls (getANTI_DECLS happy_var_1) (srclocOf happy_var_1))+ )}++happyReduce_518 = happySpecReduce_2 94# happyReduction_518+happyReduction_518 happy_x_2+ happy_x_1+ = case happyOut109 happy_x_1 of { happy_var_1 -> + case happyOut53 happy_x_2 of { happy_var_2 -> + happyIn109+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_519 = happySpecReduce_2 94# happyReduction_519+happyReduction_519 happy_x_2+ happy_x_1+ = case happyOut109 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn109+ (rcons (AntiDecls (getANTI_DECLS happy_var_2) (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_520 = happySpecReduce_1 95# happyReduction_520+happyReduction_520 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn110+ (Exp Nothing (srclocOf happy_var_1)+ )}++happyReduce_521 = happySpecReduce_2 95# happyReduction_521+happyReduction_521 happy_x_2+ happy_x_1+ = case happyOut50 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn110+ (Exp (Just happy_var_1) (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_522 = happyMonadReduce 2# 95# happyReduction_522+happyReduction_522 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["';'"] Nothing)+ ) (\r -> happyReturn (happyIn110 r))++happyReduce_523 = happyReduce 5# 96# happyReduction_523+happyReduction_523 (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 happyOut50 happy_x_3 of { happy_var_3 -> + case happyOut102 happy_x_5 of { happy_var_5 -> + happyIn111+ (If happy_var_3 happy_var_5 Nothing (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_524 = happyReduce 7# 96# happyReduction_524+happyReduction_524 (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 happyOut50 happy_x_3 of { happy_var_3 -> + case happyOut102 happy_x_5 of { happy_var_5 -> + case happyOut102 happy_x_7 of { happy_var_7 -> + happyIn111+ (If happy_var_3 happy_var_5 (Just happy_var_7) (happy_var_1 `srcspan` happy_var_7)+ ) `HappyStk` happyRest}}}}++happyReduce_525 = happyMonadReduce 2# 96# happyReduction_525+happyReduction_525 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["("] (Just "`if'"))+ ) (\r -> happyReturn (happyIn111 r))++happyReduce_526 = happyMonadReduce 4# 96# happyReduction_526+happyReduction_526 (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 happyOut50 happy_x_3 of { happy_var_3 -> + ( unclosed (happy_var_2 <--> happy_var_3) "(")}}+ ) (\r -> happyReturn (happyIn111 r))++happyReduce_527 = happyReduce 5# 96# happyReduction_527+happyReduction_527 (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 happyOut50 happy_x_3 of { happy_var_3 -> + case happyOut102 happy_x_5 of { happy_var_5 -> + happyIn111+ (Switch happy_var_3 happy_var_5 (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_528 = happyMonadReduce 4# 96# happyReduction_528+happyReduction_528 (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 happyOut50 happy_x_3 of { happy_var_3 -> + ( unclosed (happy_var_2 <--> happy_var_3) "(")}}+ ) (\r -> happyReturn (happyIn111 r))++happyReduce_529 = happyReduce 5# 97# happyReduction_529+happyReduction_529 (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 happyOut50 happy_x_3 of { happy_var_3 -> + case happyOut102 happy_x_5 of { happy_var_5 -> + happyIn112+ (While happy_var_3 happy_var_5 (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_530 = happyMonadReduce 4# 97# happyReduction_530+happyReduction_530 (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 happyOut50 happy_x_3 of { happy_var_3 -> + ( unclosed (happy_var_2 <--> happy_var_3) "(")}}+ ) (\r -> happyReturn (happyIn112 r))++happyReduce_531 = happyReduce 7# 97# happyReduction_531+happyReduction_531 (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 happyOut102 happy_x_2 of { happy_var_2 -> + case happyOut50 happy_x_5 of { happy_var_5 -> + case happyOutTok happy_x_7 of { happy_var_7 -> + happyIn112+ (DoWhile happy_var_2 happy_var_5 (happy_var_1 `srcspan` happy_var_7)+ ) `HappyStk` happyRest}}}}++happyReduce_532 = happyMonadReduce 6# 97# happyReduction_532+happyReduction_532 (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 happyOut50 happy_x_5 of { happy_var_5 -> + ( unclosed (happy_var_4 <--> happy_var_5) "(")}}+ ) (\r -> happyReturn (happyIn112 r))++happyReduce_533 = happyMonadReduce 3# 97# happyReduction_533+happyReduction_533 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["expression", "declaration"] Nothing)+ ) (\r -> happyReturn (happyIn112 r))++happyReduce_534 = happyReduce 7# 97# happyReduction_534+happyReduction_534 (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 happyOut53 happy_x_3 of { happy_var_3 -> + case happyOut51 happy_x_4 of { happy_var_4 -> + case happyOut102 happy_x_7 of { happy_var_7 -> + happyIn112+ (For (Left happy_var_3) happy_var_4 Nothing happy_var_7 (happy_var_1 `srcspan` happy_var_7)+ ) `HappyStk` happyRest}}}}++happyReduce_535 = happyReduce 8# 97# happyReduction_535+happyReduction_535 (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 happyOut51 happy_x_3 of { happy_var_3 -> + case happyOut51 happy_x_5 of { happy_var_5 -> + case happyOut102 happy_x_8 of { happy_var_8 -> + happyIn112+ (For (Right happy_var_3) happy_var_5 Nothing happy_var_8 (happy_var_1 `srcspan` happy_var_8)+ ) `HappyStk` happyRest}}}}++happyReduce_536 = happyMonadReduce 7# 97# happyReduction_536+happyReduction_536 (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 (happyIn112 r))++happyReduce_537 = happyReduce 8# 97# happyReduction_537+happyReduction_537 (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 happyOut53 happy_x_3 of { happy_var_3 -> + case happyOut51 happy_x_4 of { happy_var_4 -> + case happyOut50 happy_x_6 of { happy_var_6 -> + case happyOut102 happy_x_8 of { happy_var_8 -> + happyIn112+ (For (Left happy_var_3) happy_var_4 (Just happy_var_6) happy_var_8 (happy_var_1 `srcspan` happy_var_8)+ ) `HappyStk` happyRest}}}}}++happyReduce_538 = happyReduce 9# 97# happyReduction_538+happyReduction_538 (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 happyOut51 happy_x_3 of { happy_var_3 -> + case happyOut51 happy_x_5 of { happy_var_5 -> + case happyOut50 happy_x_7 of { happy_var_7 -> + case happyOut102 happy_x_9 of { happy_var_9 -> + happyIn112+ (For (Right happy_var_3) happy_var_5 (Just happy_var_7) happy_var_9 (happy_var_1 `srcspan` happy_var_9)+ ) `HappyStk` happyRest}}}}}++happyReduce_539 = happyMonadReduce 8# 97# happyReduction_539+happyReduction_539 (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 happyOut50 happy_x_7 of { happy_var_7 -> + ( unclosed (happy_var_2 <--> happy_var_7) "(")}}+ ) (\r -> happyReturn (happyIn112 r))++happyReduce_540 = happySpecReduce_3 98# happyReduction_540+happyReduction_540 happy_x_3+ happy_x_2+ happy_x_1+ = 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 -> + happyIn113+ (Goto happy_var_2 (happy_var_1 `srcspan` happy_var_3)+ )}}}++happyReduce_541 = happyMonadReduce 2# 98# happyReduction_541+happyReduction_541 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["identifier"] (Just "`goto'"))+ ) (\r -> happyReturn (happyIn113 r))++happyReduce_542 = happyMonadReduce 3# 98# happyReduction_542+happyReduction_542 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["';'"] Nothing)+ ) (\r -> happyReturn (happyIn113 r))++happyReduce_543 = happySpecReduce_2 98# happyReduction_543+happyReduction_543 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn113+ (Continue (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_544 = happyMonadReduce 2# 98# happyReduction_544+happyReduction_544 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["';'"] (Just "`continue'"))+ ) (\r -> happyReturn (happyIn113 r))++happyReduce_545 = happySpecReduce_2 98# happyReduction_545+happyReduction_545 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn113+ (Break (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_546 = happyMonadReduce 2# 98# happyReduction_546+happyReduction_546 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["';'"] (Just "`break'"))+ ) (\r -> happyReturn (happyIn113 r))++happyReduce_547 = happySpecReduce_2 98# happyReduction_547+happyReduction_547 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn113+ (Return Nothing (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_548 = happyMonadReduce 2# 98# happyReduction_548+happyReduction_548 (happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["';'", "expression"] Nothing)+ ) (\r -> happyReturn (happyIn113 r))++happyReduce_549 = happySpecReduce_3 98# happyReduction_549+happyReduction_549 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut50 happy_x_2 of { happy_var_2 -> + case happyOutTok happy_x_3 of { happy_var_3 -> + happyIn113+ (Return (Just happy_var_2) (happy_var_1 `srcspan` happy_var_3)+ )}}}++happyReduce_550 = happyMonadReduce 3# 98# happyReduction_550+happyReduction_550 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["';'"] Nothing)+ ) (\r -> happyReturn (happyIn113 r))++happyReduce_551 = happyReduce 7# 99# happyReduction_551+happyReduction_551 (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 happyOut104 happy_x_3 of { happy_var_3 -> + case happyOut115 happy_x_4 of { happy_var_4 -> + case happyOut104 happy_x_7 of { happy_var_7 -> + happyIn114+ (let { Block tryItems _ = happy_var_3+ ; Block finallyItems _ = happy_var_7+ }+ in+ ObjCTry tryItems (rev happy_var_4) (Just finallyItems) (happy_var_1 `srcspan` happy_var_7)+ ) `HappyStk` happyRest}}}}++happyReduce_552 = happyMonadReduce 4# 99# happyReduction_552+happyReduction_552 (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 happyOut104 happy_x_3 of { happy_var_3 -> + case happyOut115 happy_x_4 of { happy_var_4 -> + ( do { let { Block tryItems _ = happy_var_3+ ; catchStmts = rev happy_var_4+ }+ ; when (null catchStmts) $+ throw $ ParserException (happy_var_1 <--> happy_var_3) $ + text "@try statement without @finally needs at least one @catch statement"+ ; return $ ObjCTry tryItems catchStmts Nothing (happy_var_1 `srcspan` catchStmts) + })}}}+ ) (\r -> happyReturn (happyIn114 r))++happyReduce_553 = happyMonadReduce 6# 99# happyReduction_553+happyReduction_553 (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_1 of { happy_var_1 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + ( parserError (happy_var_1 <--> happy_var_5)+ (text $ "a @try-@catch statement without a @finally clause needs to be followed\n" +++ "by a semicolon if the next statement begins with a '@'"))}}+ ) (\r -> happyReturn (happyIn114 r))++happyReduce_554 = happyReduce 4# 99# happyReduction_554+happyReduction_554 (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 happyOut50 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn114+ (ObjCThrow (Just happy_var_3) (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_555 = happyMonadReduce 4# 99# happyReduction_555+happyReduction_555 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["';'"] Nothing)+ ) (\r -> happyReturn (happyIn114 r))++happyReduce_556 = happySpecReduce_3 99# happyReduction_556+happyReduction_556 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 -> + happyIn114+ (ObjCThrow Nothing (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_557 = happyMonadReduce 3# 99# happyReduction_557+happyReduction_557 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( expected ["';'", "expression"] Nothing)+ ) (\r -> happyReturn (happyIn114 r))++happyReduce_558 = happyReduce 6# 99# happyReduction_558+happyReduction_558 (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 happyOut50 happy_x_4 of { happy_var_4 -> + case happyOut104 happy_x_6 of { happy_var_6 -> + happyIn114+ (let Block items _ = happy_var_6+ in+ ObjCSynchronized happy_var_4 items (happy_var_1 `srcspan` happy_var_6)+ ) `HappyStk` happyRest}}}++happyReduce_559 = happySpecReduce_3 99# happyReduction_559+happyReduction_559 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut104 happy_x_3 of { happy_var_3 -> + happyIn114+ (let Block items _ = happy_var_3+ in+ ObjCAutoreleasepool items (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_560 = happySpecReduce_0 100# happyReduction_560+happyReduction_560 = happyIn115+ (rnil+ )++happyReduce_561 = happyReduce 7# 100# happyReduction_561+happyReduction_561 (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 happyOut115 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + case happyOut90 happy_x_5 of { happy_var_5 -> + case happyOut104 happy_x_7 of { happy_var_7 -> + happyIn115+ (let Block items _ = happy_var_7+ in+ rcons (ObjCCatch (Just happy_var_5) items (happy_var_2 `srcspan` happy_var_7)) happy_var_1+ ) `HappyStk` happyRest}}}}++happyReduce_562 = happyReduce 7# 100# happyReduction_562+happyReduction_562 (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 happyOut115 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + case happyOut104 happy_x_7 of { happy_var_7 -> + happyIn115+ (let Block items _ = happy_var_7+ in+ rcons (ObjCCatch Nothing items (happy_var_2 `srcspan` happy_var_7)) happy_var_1+ ) `HappyStk` happyRest}}}++happyReduce_563 = happySpecReduce_0 101# happyReduction_563+happyReduction_563 = happyIn116+ ([]+ )++happyReduce_564 = happySpecReduce_1 101# happyReduction_564+happyReduction_564 happy_x_1+ = case happyOut117 happy_x_1 of { happy_var_1 -> + happyIn116+ (rev happy_var_1+ )}++happyReduce_565 = happySpecReduce_1 102# happyReduction_565+happyReduction_565 happy_x_1+ = case happyOut118 happy_x_1 of { happy_var_1 -> + happyIn117+ (rsingleton happy_var_1+ )}++happyReduce_566 = happySpecReduce_1 102# happyReduction_566+happyReduction_566 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn117+ (rsingleton (AntiEdecls (getANTI_EDECLS happy_var_1) (srclocOf happy_var_1))+ )}++happyReduce_567 = happySpecReduce_2 102# happyReduction_567+happyReduction_567 happy_x_2+ happy_x_1+ = case happyOut117 happy_x_1 of { happy_var_1 -> + case happyOut118 happy_x_2 of { happy_var_2 -> + happyIn117+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_568 = happySpecReduce_2 102# happyReduction_568+happyReduction_568 happy_x_2+ happy_x_1+ = case happyOut117 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn117+ (rcons (AntiEdecls (getANTI_EDECLS happy_var_2) (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_569 = happySpecReduce_1 103# happyReduction_569+happyReduction_569 happy_x_1+ = case happyOut119 happy_x_1 of { happy_var_1 -> + happyIn118+ (FuncDef happy_var_1 (srclocOf happy_var_1)+ )}++happyReduce_570 = happySpecReduce_1 103# happyReduction_570+happyReduction_570 happy_x_1+ = case happyOut53 happy_x_1 of { happy_var_1 -> + happyIn118+ (DecDef happy_var_1 (srclocOf happy_var_1)+ )}++happyReduce_571 = happySpecReduce_1 103# happyReduction_571+happyReduction_571 happy_x_1+ = case happyOut120 happy_x_1 of { happy_var_1 -> + happyIn118+ (happy_var_1+ )}++happyReduce_572 = happySpecReduce_1 103# happyReduction_572+happyReduction_572 happy_x_1+ = case happyOut121 happy_x_1 of { happy_var_1 -> + happyIn118+ (happy_var_1+ )}++happyReduce_573 = happySpecReduce_1 103# happyReduction_573+happyReduction_573 happy_x_1+ = case happyOut137 happy_x_1 of { happy_var_1 -> + happyIn118+ (happy_var_1+ )}++happyReduce_574 = happySpecReduce_1 103# happyReduction_574+happyReduction_574 happy_x_1+ = case happyOut139 happy_x_1 of { happy_var_1 -> + happyIn118+ (happy_var_1+ )}++happyReduce_575 = happySpecReduce_1 103# happyReduction_575+happyReduction_575 happy_x_1+ = case happyOut147 happy_x_1 of { happy_var_1 -> + happyIn118+ (happy_var_1+ )}++happyReduce_576 = happySpecReduce_1 103# happyReduction_576+happyReduction_576 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn118+ (AntiFunc (getANTI_FUNC happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_577 = happySpecReduce_1 103# happyReduction_577+happyReduction_577 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn118+ (AntiEsc (getANTI_ESC happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_578 = happySpecReduce_1 103# happyReduction_578+happyReduction_578 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn118+ (AntiEdecl (getANTI_EDECL happy_var_1) (srclocOf happy_var_1)+ )}++happyReduce_579 = happyMonadReduce 3# 104# happyReduction_579+happyReduction_579 (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 happyOut81 happy_x_2 of { happy_var_2 -> + case happyOut104 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 `srcspan` blockItems)+ ; OldProto protoDecl args _ -> return $+ OldFunc dspec ident protoDecl args Nothing+ blockItems+ (decl `srcspan` blockItems)+ ; _ -> parserError (decl <--> blockItems)+ (text "bad function declaration")+ }+ })}}}+ ) (\r -> happyReturn (happyIn119 r))++happyReduce_580 = happyMonadReduce 4# 104# happyReduction_580+happyReduction_580 (happy_x_4 `HappyStk`+ 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 happyOut81 happy_x_2 of { happy_var_2 -> + case happyOut109 happy_x_3 of { happy_var_3 -> + case happyOut104 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 `srcspan` blockItems)+ ; _ -> parserError (decl <--> blockItems)+ (text "bad function declaration")+ }+ })}}}}+ ) (\r -> happyReturn (happyIn119 r))++happyReduce_581 = happyMonadReduce 4# 105# happyReduction_581+happyReduction_581 (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 happyOut92 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + ( do { let idents = rev happy_var_3+ ; mapM addClassdefId idents+ ; return $ ObjCClassDec idents (happy_var_1 `srcspan` happy_var_4)+ })}}}+ ) (\r -> happyReturn (happyIn120 r))++happyReduce_582 = happyMonadReduce 4# 106# happyReduction_582+happyReduction_582 (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 happyOut15 happy_x_3 of { happy_var_3 -> + case happyOut122 happy_x_4 of { happy_var_4 -> + ( do { let (prot, vars, decls, loc) = happy_var_4+ ; addClassdefId happy_var_3+ ; return $ ObjCClassIface happy_var_3 Nothing prot vars decls [] (happy_var_1 `srcspan` loc) + })}}}+ ) (\r -> happyReturn (happyIn121 r))++happyReduce_583 = happyMonadReduce 5# 106# happyReduction_583+happyReduction_583 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut149 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + case happyOut15 happy_x_4 of { happy_var_4 -> + case happyOut122 happy_x_5 of { happy_var_5 -> + ( do { let (prot, vars, decls, loc) = happy_var_5+ ; addClassdefId happy_var_4+ ; return $ ObjCClassIface happy_var_4 Nothing prot vars decls happy_var_1 (happy_var_2 `srcspan` loc) + })}}}}+ ) (\r -> happyReturn (happyIn121 r))++happyReduce_584 = happyMonadReduce 6# 106# happyReduction_584+happyReduction_584 (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_1 of { happy_var_1 -> + case happyOut15 happy_x_3 of { happy_var_3 -> + case happyOut16 happy_x_5 of { happy_var_5 -> + case happyOut122 happy_x_6 of { happy_var_6 -> + ( do { let (prot, vars, decls, loc) = happy_var_6+ ; addClassdefId happy_var_3+ ; return $ ObjCClassIface happy_var_3 (Just happy_var_5) prot vars decls [] (happy_var_1 `srcspan` loc) + })}}}}+ ) (\r -> happyReturn (happyIn121 r))++happyReduce_585 = happyMonadReduce 7# 106# happyReduction_585+happyReduction_585 (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 happyOut149 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + case happyOut15 happy_x_4 of { happy_var_4 -> + case happyOut16 happy_x_6 of { happy_var_6 -> + case happyOut122 happy_x_7 of { happy_var_7 -> + ( do { let (prot, vars, decls, loc) = happy_var_7+ ; addClassdefId happy_var_4+ ; return $ ObjCClassIface happy_var_4 (Just happy_var_6) prot vars decls happy_var_1 (happy_var_2 `srcspan` loc)+ })}}}}}+ ) (\r -> happyReturn (happyIn121 r))++happyReduce_586 = happyReduce 6# 106# happyReduction_586+happyReduction_586 (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 happyOut16 happy_x_3 of { happy_var_3 -> + case happyOut122 happy_x_6 of { happy_var_6 -> + happyIn121+ (let (prot, vars, decls, loc) = happy_var_6+ in + ObjCCatIface happy_var_3 Nothing prot vars decls (happy_var_1 `srcspan` loc)+ ) `HappyStk` happyRest}}}++happyReduce_587 = happyReduce 7# 106# happyReduction_587+happyReduction_587 (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 happyOut16 happy_x_3 of { happy_var_3 -> + case happyOut15 happy_x_5 of { happy_var_5 -> + case happyOut122 happy_x_7 of { happy_var_7 -> + happyIn121+ (let (prot, vars, decls, loc) = happy_var_7+ in + ObjCCatIface happy_var_3 (Just happy_var_5) prot vars decls (happy_var_1 `srcspan` loc)+ ) `HappyStk` happyRest}}}}++happyReduce_588 = happyReduce 5# 107# happyReduction_588+happyReduction_588 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut123 happy_x_1 of { happy_var_1 -> + case happyOut124 happy_x_2 of { happy_var_2 -> + case happyOut127 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn122+ (( rev happy_var_1, rev happy_var_2, rev happy_var_3, happy_var_4 <--> happy_var_5)+ ) `HappyStk` happyRest}}}}}++happyReduce_589 = happySpecReduce_0 108# happyReduction_589+happyReduction_589 = happyIn123+ (rnil+ )++happyReduce_590 = happySpecReduce_3 108# happyReduction_590+happyReduction_590 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut92 happy_x_2 of { happy_var_2 -> + happyIn123+ (happy_var_2+ )}++happyReduce_591 = happySpecReduce_0 109# happyReduction_591+happyReduction_591 = happyIn124+ (rnil+ )++happyReduce_592 = happySpecReduce_2 109# happyReduction_592+happyReduction_592 happy_x_2+ happy_x_1+ = happyIn124+ (rnil+ )++happyReduce_593 = happySpecReduce_3 109# happyReduction_593+happyReduction_593 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut125 happy_x_2 of { happy_var_2 -> + happyIn124+ (happy_var_2+ )}++happyReduce_594 = happySpecReduce_1 110# happyReduction_594+happyReduction_594 happy_x_1+ = case happyOut126 happy_x_1 of { happy_var_1 -> + happyIn125+ (rsingleton (ObjCIvarVisi happy_var_1 (srclocOf happy_var_1))+ )}++happyReduce_595 = happySpecReduce_1 110# happyReduction_595+happyReduction_595 happy_x_1+ = happyIn125+ (rnil+ )++happyReduce_596 = happySpecReduce_2 110# happyReduction_596+happyReduction_596 happy_x_2+ happy_x_1+ = case happyOut68 happy_x_1 of { happy_var_1 -> + happyIn125+ (rsingleton (ObjCIvarDecl happy_var_1 (srclocOf happy_var_1))+ )}++happyReduce_597 = happySpecReduce_2 110# happyReduction_597+happyReduction_597 happy_x_2+ happy_x_1+ = case happyOut125 happy_x_1 of { happy_var_1 -> + case happyOut126 happy_x_2 of { happy_var_2 -> + happyIn125+ (rcons (ObjCIvarVisi happy_var_2 (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_598 = happySpecReduce_2 110# happyReduction_598+happyReduction_598 happy_x_2+ happy_x_1+ = case happyOut125 happy_x_1 of { happy_var_1 -> + happyIn125+ (happy_var_1+ )}++happyReduce_599 = happySpecReduce_3 110# happyReduction_599+happyReduction_599 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut125 happy_x_1 of { happy_var_1 -> + case happyOut68 happy_x_2 of { happy_var_2 -> + happyIn125+ (rcons (ObjCIvarDecl happy_var_2 (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_600 = happySpecReduce_2 111# happyReduction_600+happyReduction_600 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn126+ (ObjCPrivate (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_601 = happySpecReduce_2 111# happyReduction_601+happyReduction_601 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn126+ (ObjCPublic (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_602 = happySpecReduce_2 111# happyReduction_602+happyReduction_602 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn126+ (ObjCProtected (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_603 = happySpecReduce_2 111# happyReduction_603+happyReduction_603 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn126+ (ObjCPackage (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_604 = happySpecReduce_0 112# happyReduction_604+happyReduction_604 = happyIn127+ (rnil+ )++happyReduce_605 = happySpecReduce_2 112# happyReduction_605+happyReduction_605 happy_x_2+ happy_x_1+ = case happyOut127 happy_x_1 of { happy_var_1 -> + happyIn127+ (happy_var_1+ )}++happyReduce_606 = happySpecReduce_2 112# happyReduction_606+happyReduction_606 happy_x_2+ happy_x_1+ = case happyOut127 happy_x_1 of { happy_var_1 -> + case happyOut128 happy_x_2 of { happy_var_2 -> + happyIn127+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_607 = happySpecReduce_2 112# happyReduction_607+happyReduction_607 happy_x_2+ happy_x_1+ = case happyOut127 happy_x_1 of { happy_var_1 -> + case happyOut131 happy_x_2 of { happy_var_2 -> + happyIn127+ (rcons (ObjCIfaceReq happy_var_2 (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_608 = happySpecReduce_3 112# happyReduction_608+happyReduction_608 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut127 happy_x_1 of { happy_var_1 -> + case happyOut132 happy_x_2 of { happy_var_2 -> + happyIn127+ (rcons (ObjCIfaceMeth happy_var_2 (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_609 = happySpecReduce_2 112# happyReduction_609+happyReduction_609 happy_x_2+ happy_x_1+ = case happyOut127 happy_x_1 of { happy_var_1 -> + case happyOut53 happy_x_2 of { happy_var_2 -> + happyIn127+ (rcons (ObjCIfaceDecl happy_var_2 (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_610 = happySpecReduce_3 113# happyReduction_610+happyReduction_610 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut68 happy_x_3 of { happy_var_3 -> + happyIn128+ (ObjCIfaceProp [] happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}++happyReduce_611 = happyReduce 6# 113# happyReduction_611+happyReduction_611 (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 happyOut129 happy_x_4 of { happy_var_4 -> + case happyOut68 happy_x_6 of { happy_var_6 -> + happyIn128+ (ObjCIfaceProp (rev happy_var_4) happy_var_6 (happy_var_1 `srcspan` happy_var_6)+ ) `HappyStk` happyRest}}}++happyReduce_612 = happySpecReduce_1 114# happyReduction_612+happyReduction_612 happy_x_1+ = case happyOut130 happy_x_1 of { happy_var_1 -> + happyIn129+ (rsingleton happy_var_1+ )}++happyReduce_613 = happySpecReduce_2 114# happyReduction_613+happyReduction_613 happy_x_2+ happy_x_1+ = case happyOut129 happy_x_1 of { happy_var_1 -> + case happyOut130 happy_x_2 of { happy_var_2 -> + happyIn129+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_614 = happyMonadReduce 3# 115# happyReduction_614+happyReduction_614 (happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut15 happy_x_1 of { happy_var_1 -> + case happyOut26 happy_x_3 of { happy_var_3 -> + ( case happy_var_1 of + Id "getter" _ -> return $ ObjCGetter happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ _ -> expectedObjCPropertyAttr (locOf happy_var_1))}}+ ) (\r -> happyReturn (happyIn130 r))++happyReduce_615 = happyMonadReduce 4# 115# happyReduction_615+happyReduction_615 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut15 happy_x_1 of { happy_var_1 -> + case happyOut26 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + ( case happy_var_1 of + Id "setter" _ -> return $ ObjCSetter happy_var_3 (happy_var_1 `srcspan` happy_var_4)+ _ -> expectedObjCPropertyAttr (locOf happy_var_1))}}}+ ) (\r -> happyReturn (happyIn130 r))++happyReduce_616 = happyMonadReduce 1# 115# happyReduction_616+happyReduction_616 (happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut15 happy_x_1 of { happy_var_1 -> + ( case happy_var_1 of + Id "readonly" _ -> return $ ObjCReadonly (srclocOf happy_var_1) + Id "readwrite" _ -> return $ ObjCReadwrite (srclocOf happy_var_1) + Id "assign" _ -> return $ ObjCAssign (srclocOf happy_var_1) + Id "retain" _ -> return $ ObjCRetain (srclocOf happy_var_1) + Id "copy" _ -> return $ ObjCCopy (srclocOf happy_var_1) + Id "nonatomic" _ -> return $ ObjCNonatomic (srclocOf happy_var_1) + Id "atomic" _ -> return $ ObjCAtomic (srclocOf happy_var_1) + Id "strong" _ -> return $ ObjCStrong (srclocOf happy_var_1) + Id "weak" _ -> return $ ObjCWeak (srclocOf happy_var_1) + Id "unsafe_retained" _ -> return $ ObjCUnsafeRetained (srclocOf happy_var_1) + _ -> expectedObjCPropertyAttr (locOf happy_var_1))}+ ) (\r -> happyReturn (happyIn130 r))++happyReduce_617 = happySpecReduce_2 116# happyReduction_617+happyReduction_617 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn131+ (ObjCRequired (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_618 = happySpecReduce_2 116# happyReduction_618+happyReduction_618 happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn131+ (ObjCOptional (happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_619 = happySpecReduce_3 117# happyReduction_619+happyReduction_619 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut133 happy_x_2 of { happy_var_2 -> + case happyOut148 happy_x_3 of { happy_var_3 -> + happyIn132+ (let (res, attrs, parms, hasVargs) = happy_var_2+ in+ ObjCMethodProto False res attrs parms hasVargs happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}}++happyReduce_620 = happySpecReduce_3 117# happyReduction_620+happyReduction_620 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut133 happy_x_2 of { happy_var_2 -> + case happyOut148 happy_x_3 of { happy_var_3 -> + happyIn132+ (let (res, attrs, parms, hasVargs) = happy_var_2+ in+ ObjCMethodProto True res attrs parms hasVargs happy_var_3 (happy_var_1 `srcspan` happy_var_3)+ )}}}++happyReduce_621 = happySpecReduce_2 118# happyReduction_621+happyReduction_621 happy_x_2+ happy_x_1+ = case happyOut148 happy_x_1 of { happy_var_1 -> + case happyOut134 happy_x_2 of { happy_var_2 -> + happyIn133+ ((Nothing, happy_var_1, happy_var_2, False)+ )}}++happyReduce_622 = happyReduce 5# 118# happyReduction_622+happyReduction_622 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut93 happy_x_2 of { happy_var_2 -> + case happyOut148 happy_x_4 of { happy_var_4 -> + case happyOut134 happy_x_5 of { happy_var_5 -> + happyIn133+ ((Just happy_var_2, happy_var_4, happy_var_5, False)+ ) `HappyStk` happyRest}}}++happyReduce_623 = happyReduce 4# 118# happyReduction_623+happyReduction_623 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut148 happy_x_1 of { happy_var_1 -> + case happyOut134 happy_x_2 of { happy_var_2 -> + happyIn133+ ((Nothing, happy_var_1, happy_var_2, True)+ ) `HappyStk` happyRest}}++happyReduce_624 = happyReduce 7# 118# happyReduction_624+happyReduction_624 (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 happyOut93 happy_x_2 of { happy_var_2 -> + case happyOut148 happy_x_4 of { happy_var_4 -> + case happyOut134 happy_x_5 of { happy_var_5 -> + happyIn133+ ((Just happy_var_2, happy_var_4, happy_var_5, True)+ ) `HappyStk` happyRest}}}++happyReduce_625 = happySpecReduce_1 119# happyReduction_625+happyReduction_625 happy_x_1+ = case happyOut26 happy_x_1 of { happy_var_1 -> + happyIn134+ ([ObjCParm (Just happy_var_1) Nothing [] Nothing (srclocOf happy_var_1)]+ )}++happyReduce_626 = happySpecReduce_1 119# happyReduction_626+happyReduction_626 happy_x_1+ = case happyOut135 happy_x_1 of { happy_var_1 -> + happyIn134+ (rev happy_var_1+ )}++happyReduce_627 = happySpecReduce_1 120# happyReduction_627+happyReduction_627 happy_x_1+ = case happyOut136 happy_x_1 of { happy_var_1 -> + happyIn135+ (rsingleton happy_var_1+ )}++happyReduce_628 = happySpecReduce_2 120# happyReduction_628+happyReduction_628 happy_x_2+ happy_x_1+ = case happyOut135 happy_x_1 of { happy_var_1 -> + case happyOut136 happy_x_2 of { happy_var_2 -> + happyIn135+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_629 = happyReduce 7# 121# happyReduction_629+happyReduction_629 (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 happyOut26 happy_x_1 of { happy_var_1 -> + case happyOut93 happy_x_4 of { happy_var_4 -> + case happyOut148 happy_x_6 of { happy_var_6 -> + case happyOut15 happy_x_7 of { happy_var_7 -> + happyIn136+ (ObjCParm (Just happy_var_1) (Just happy_var_4) happy_var_6 (Just happy_var_7) (happy_var_1 `srcspan` happy_var_7)+ ) `HappyStk` happyRest}}}}++happyReduce_630 = happyReduce 6# 121# happyReduction_630+happyReduction_630 (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 happyOut93 happy_x_3 of { happy_var_3 -> + case happyOut148 happy_x_5 of { happy_var_5 -> + case happyOut15 happy_x_6 of { happy_var_6 -> + happyIn136+ (ObjCParm Nothing (Just happy_var_3) happy_var_5 (Just happy_var_6) (happy_var_1 `srcspan` happy_var_6)+ ) `HappyStk` happyRest}}}}++happyReduce_631 = happyReduce 4# 121# happyReduction_631+happyReduction_631 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut26 happy_x_1 of { happy_var_1 -> + case happyOut148 happy_x_3 of { happy_var_3 -> + case happyOut15 happy_x_4 of { happy_var_4 -> + happyIn136+ (ObjCParm (Just happy_var_1) Nothing happy_var_3 (Just happy_var_4) (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_632 = happySpecReduce_3 121# happyReduction_632+happyReduction_632 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut148 happy_x_2 of { happy_var_2 -> + case happyOut15 happy_x_3 of { happy_var_3 -> + happyIn136+ (ObjCParm Nothing Nothing happy_var_2 (Just happy_var_3) (happy_var_1 `srcspan` happy_var_3)+ )}}}++happyReduce_633 = happyReduce 5# 122# happyReduction_633+happyReduction_633 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut138 happy_x_1 of { happy_var_1 -> + case happyOut123 happy_x_2 of { happy_var_2 -> + case happyOut127 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn137+ (ObjCProtDef (fst happy_var_1) (rev happy_var_2) (rev happy_var_3) (snd happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}}++happyReduce_634 = happySpecReduce_2 122# happyReduction_634+happyReduction_634 happy_x_2+ happy_x_1+ = case happyOut138 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn137+ (ObjCProtDec [fst happy_var_1] (snd happy_var_1 `srcspan` happy_var_2)+ )}}++happyReduce_635 = happyReduce 4# 122# happyReduction_635+happyReduction_635 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut138 happy_x_1 of { happy_var_1 -> + case happyOut92 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn137+ (ObjCProtDec (fst happy_var_1 : rev happy_var_3) (snd happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_636 = happySpecReduce_3 123# happyReduction_636+happyReduction_636 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut15 happy_x_3 of { happy_var_3 -> + happyIn138+ ((happy_var_3, locOf happy_var_1)+ )}}++happyReduce_637 = happyReduce 6# 124# happyReduction_637+happyReduction_637 (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 happyOut16 happy_x_3 of { happy_var_3 -> + case happyOut16 happy_x_5 of { happy_var_5 -> + case happyOut140 happy_x_6 of { happy_var_6 -> + happyIn139+ (let (ivars, defs, loc) = happy_var_6+ in+ ObjCClassImpl happy_var_3 (Just happy_var_5) ivars defs (happy_var_1 `srcspan` loc)+ ) `HappyStk` happyRest}}}}++happyReduce_638 = happyReduce 4# 124# happyReduction_638+happyReduction_638 (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 happyOut16 happy_x_3 of { happy_var_3 -> + case happyOut140 happy_x_4 of { happy_var_4 -> + happyIn139+ (let (ivars, defs, loc) = happy_var_4+ in+ ObjCClassImpl happy_var_3 Nothing ivars defs (happy_var_1 `srcspan` loc)+ ) `HappyStk` happyRest}}}++happyReduce_639 = happyReduce 7# 124# happyReduction_639+happyReduction_639 (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 happyOut16 happy_x_3 of { happy_var_3 -> + case happyOut15 happy_x_5 of { happy_var_5 -> + case happyOut141 happy_x_7 of { happy_var_7 -> + happyIn139+ (ObjCCatImpl happy_var_3 happy_var_5 (fst happy_var_7) (happy_var_1 `srcspan` snd happy_var_7)+ ) `HappyStk` happyRest}}}}++happyReduce_640 = happySpecReduce_2 125# happyReduction_640+happyReduction_640 happy_x_2+ happy_x_1+ = case happyOut124 happy_x_1 of { happy_var_1 -> + case happyOut141 happy_x_2 of { happy_var_2 -> + happyIn140+ ((rev happy_var_1, fst happy_var_2, snd happy_var_2)+ )}}++happyReduce_641 = happySpecReduce_3 126# happyReduction_641+happyReduction_641 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut142 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_3 of { happy_var_3 -> + happyIn141+ ((rev happy_var_1, locOf happy_var_3)+ )}}++happyReduce_642 = happySpecReduce_0 127# happyReduction_642+happyReduction_642 = happyIn142+ (rnil+ )++happyReduce_643 = happySpecReduce_2 127# happyReduction_643+happyReduction_643 happy_x_2+ happy_x_1+ = case happyOut142 happy_x_1 of { happy_var_1 -> + case happyOut119 happy_x_2 of { happy_var_2 -> + happyIn142+ (rcons (FuncDef happy_var_2 (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_644 = happySpecReduce_2 127# happyReduction_644+happyReduction_644 happy_x_2+ happy_x_1+ = case happyOut142 happy_x_1 of { happy_var_1 -> + case happyOut53 happy_x_2 of { happy_var_2 -> + happyIn142+ (rcons (DecDef happy_var_2 (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_645 = happySpecReduce_2 127# happyReduction_645+happyReduction_645 happy_x_2+ happy_x_1+ = case happyOut142 happy_x_1 of { happy_var_1 -> + case happyOut143 happy_x_2 of { happy_var_2 -> + happyIn142+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_646 = happySpecReduce_2 127# happyReduction_646+happyReduction_646 happy_x_2+ happy_x_1+ = case happyOut142 happy_x_1 of { happy_var_1 -> + case happyOut145 happy_x_2 of { happy_var_2 -> + happyIn142+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_647 = happySpecReduce_2 127# happyReduction_647+happyReduction_647 happy_x_2+ happy_x_1+ = case happyOut142 happy_x_1 of { happy_var_1 -> + case happyOut146 happy_x_2 of { happy_var_2 -> + happyIn142+ (rcons happy_var_2 happy_var_1+ )}}++happyReduce_648 = happySpecReduce_2 127# happyReduction_648+happyReduction_648 happy_x_2+ happy_x_1+ = case happyOut142 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn142+ (rcons (AntiFunc (getANTI_FUNC happy_var_2) (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_649 = happySpecReduce_2 127# happyReduction_649+happyReduction_649 happy_x_2+ happy_x_1+ = case happyOut142 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn142+ (rcons (AntiEsc (getANTI_ESC happy_var_2) (srclocOf happy_var_2)) happy_var_1+ )}}++happyReduce_650 = happyReduce 4# 128# happyReduction_650+happyReduction_650 (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 happyOut144 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn143+ (ObjCSynDef (rev happy_var_3) (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_651 = happySpecReduce_1 129# happyReduction_651+happyReduction_651 happy_x_1+ = case happyOut15 happy_x_1 of { happy_var_1 -> + happyIn144+ (rsingleton (happy_var_1, Nothing)+ )}++happyReduce_652 = happySpecReduce_3 129# happyReduction_652+happyReduction_652 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut15 happy_x_1 of { happy_var_1 -> + case happyOut15 happy_x_3 of { happy_var_3 -> + happyIn144+ (rsingleton (happy_var_1, Just happy_var_3)+ )}}++happyReduce_653 = happySpecReduce_2 129# happyReduction_653+happyReduction_653 happy_x_2+ happy_x_1+ = case happyOut144 happy_x_1 of { happy_var_1 -> + case happyOut15 happy_x_2 of { happy_var_2 -> + happyIn144+ (rcons (happy_var_2, Nothing) happy_var_1+ )}}++happyReduce_654 = happyReduce 4# 129# happyReduction_654+happyReduction_654 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut144 happy_x_1 of { happy_var_1 -> + case happyOut15 happy_x_2 of { happy_var_2 -> + case happyOut15 happy_x_4 of { happy_var_4 -> + happyIn144+ (rcons (happy_var_2, Just happy_var_4) happy_var_1+ ) `HappyStk` happyRest}}}++happyReduce_655 = happyReduce 4# 130# happyReduction_655+happyReduction_655 (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 happyOut92 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn145+ (ObjCDynDef (rev happy_var_3) (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_656 = happySpecReduce_3 131# happyReduction_656+happyReduction_656 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut132 happy_x_1 of { happy_var_1 -> + case happyOut104 happy_x_3 of { happy_var_3 -> + happyIn146+ (let Block stmts loc = happy_var_3+ in+ ObjCMethDef happy_var_1 stmts (happy_var_1 `srcspan` loc)+ )}}++happyReduce_657 = happySpecReduce_2 131# happyReduction_657+happyReduction_657 happy_x_2+ happy_x_1+ = case happyOut132 happy_x_1 of { happy_var_1 -> + case happyOut104 happy_x_2 of { happy_var_2 -> + happyIn146+ (let Block stmts loc = happy_var_2+ in+ ObjCMethDef happy_var_1 stmts (happy_var_1 `srcspan` loc)+ )}}++happyReduce_658 = happyMonadReduce 5# 132# happyReduction_658+happyReduction_658 (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_1 of { happy_var_1 -> + case happyOut15 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + ( do { addClassdefId happy_var_3+ ; return $ ObjCCompAlias happy_var_3 (Id (getOBJCNAMED happy_var_1) (srclocOf happy_var_1)) (happy_var_1 `srcspan` happy_var_5)+ })}}}+ ) (\r -> happyReturn (happyIn147 r))++happyReduce_659 = happySpecReduce_0 133# happyReduction_659+happyReduction_659 = happyIn148+ ([]+ )++happyReduce_660 = happySpecReduce_1 133# happyReduction_660+happyReduction_660 happy_x_1+ = case happyOut149 happy_x_1 of { happy_var_1 -> + happyIn148+ (happy_var_1+ )}++happyReduce_661 = happySpecReduce_1 134# happyReduction_661+happyReduction_661 happy_x_1+ = case happyOut150 happy_x_1 of { happy_var_1 -> + happyIn149+ (happy_var_1+ )}++happyReduce_662 = happySpecReduce_2 134# happyReduction_662+happyReduction_662 happy_x_2+ happy_x_1+ = case happyOut149 happy_x_1 of { happy_var_1 -> + case happyOut150 happy_x_2 of { happy_var_2 -> + happyIn149+ (happy_var_1 ++ happy_var_2+ )}}++happyReduce_663 = happyReduce 6# 135# happyReduction_663+happyReduction_663 (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 happyOut151 happy_x_4 of { happy_var_4 -> + happyIn150+ (rev happy_var_4+ ) `HappyStk` happyRest}++happyReduce_664 = happySpecReduce_1 136# happyReduction_664+happyReduction_664 happy_x_1+ = case happyOut152 happy_x_1 of { happy_var_1 -> + happyIn151+ (rsingleton happy_var_1+ )}++happyReduce_665 = happySpecReduce_3 136# happyReduction_665+happyReduction_665 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut151 happy_x_1 of { happy_var_1 -> + case happyOut152 happy_x_3 of { happy_var_3 -> + happyIn151+ (rcons happy_var_3 happy_var_1+ )}}++happyReduce_666 = happySpecReduce_1 137# happyReduction_666+happyReduction_666 happy_x_1+ = case happyOut153 happy_x_1 of { happy_var_1 -> + happyIn152+ (Attr happy_var_1 [] (srclocOf happy_var_1)+ )}++happyReduce_667 = happyReduce 4# 137# happyReduction_667+happyReduction_667 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut153 happy_x_1 of { happy_var_1 -> + case happyOut35 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { happy_var_4 -> + happyIn152+ (Attr happy_var_1 (rev happy_var_3) (happy_var_1 `srcspan` happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_668 = happySpecReduce_1 138# happyReduction_668+happyReduction_668 happy_x_1+ = case happyOut16 happy_x_1 of { happy_var_1 -> + happyIn153+ (happy_var_1+ )}++happyReduce_669 = happySpecReduce_1 138# happyReduction_669+happyReduction_669 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "static" (srclocOf happy_var_1)+ )}++happyReduce_670 = happySpecReduce_1 138# happyReduction_670+happyReduction_670 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "extern" (srclocOf happy_var_1)+ )}++happyReduce_671 = happySpecReduce_1 138# happyReduction_671+happyReduction_671 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "register" (srclocOf happy_var_1)+ )}++happyReduce_672 = happySpecReduce_1 138# happyReduction_672+happyReduction_672 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "__block" (srclocOf happy_var_1)+ )}++happyReduce_673 = happySpecReduce_1 138# happyReduction_673+happyReduction_673 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "typedef" (srclocOf happy_var_1)+ )}++happyReduce_674 = happySpecReduce_1 138# happyReduction_674+happyReduction_674 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "inline" (srclocOf happy_var_1)+ )}++happyReduce_675 = happySpecReduce_1 138# happyReduction_675+happyReduction_675 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "auto" (srclocOf happy_var_1)+ )}++happyReduce_676 = happySpecReduce_1 138# happyReduction_676+happyReduction_676 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "const" (srclocOf happy_var_1)+ )}++happyReduce_677 = happySpecReduce_1 138# happyReduction_677+happyReduction_677 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "volatile" (srclocOf happy_var_1)+ )}++happyReduce_678 = happySpecReduce_1 138# happyReduction_678+happyReduction_678 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "unsigned" (srclocOf happy_var_1)+ )}++happyReduce_679 = happySpecReduce_1 138# happyReduction_679+happyReduction_679 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "long" (srclocOf happy_var_1)+ )}++happyReduce_680 = happySpecReduce_1 138# happyReduction_680+happyReduction_680 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "short" (srclocOf happy_var_1)+ )}++happyReduce_681 = happySpecReduce_1 138# happyReduction_681+happyReduction_681 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "signed" (srclocOf happy_var_1)+ )}++happyReduce_682 = happySpecReduce_1 138# happyReduction_682+happyReduction_682 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "int" (srclocOf happy_var_1)+ )}++happyReduce_683 = happySpecReduce_1 138# happyReduction_683+happyReduction_683 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "char" (srclocOf happy_var_1)+ )}++happyReduce_684 = happySpecReduce_1 138# happyReduction_684+happyReduction_684 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "float" (srclocOf happy_var_1)+ )}++happyReduce_685 = happySpecReduce_1 138# happyReduction_685+happyReduction_685 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "double" (srclocOf happy_var_1)+ )}++happyReduce_686 = happySpecReduce_1 138# happyReduction_686+happyReduction_686 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn153+ (Id "void" (srclocOf happy_var_1)+ )}++happyReduce_687 = happySpecReduce_0 139# happyReduction_687+happyReduction_687 = happyIn154+ (False+ )++happyReduce_688 = happySpecReduce_1 139# happyReduction_688+happyReduction_688 happy_x_1+ = happyIn154+ (True+ )++happyReduce_689 = happyReduce 6# 140# happyReduction_689+happyReduction_689 (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 happyOut154 happy_x_2 of { happy_var_2 -> + case happyOut156 happy_x_4 of { happy_var_4 -> + case happyOutTok happy_x_5 of { happy_var_5 -> + happyIn155+ (Asm happy_var_2 [] (rev happy_var_4) [] [] [] (happy_var_1 `srcspan` happy_var_5)+ ) `HappyStk` happyRest}}}}++happyReduce_690 = happyReduce 8# 140# happyReduction_690+happyReduction_690 (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 happyOut154 happy_x_2 of { happy_var_2 -> + case happyOut156 happy_x_4 of { happy_var_4 -> + case happyOut157 happy_x_6 of { happy_var_6 -> + case happyOutTok happy_x_7 of { happy_var_7 -> + happyIn155+ (Asm happy_var_2 [] (rev happy_var_4) happy_var_6 [] [] (happy_var_1 `srcspan` happy_var_7)+ ) `HappyStk` happyRest}}}}}++happyReduce_691 = happyReduce 10# 140# happyReduction_691+happyReduction_691 (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 happyOut154 happy_x_2 of { happy_var_2 -> + case happyOut156 happy_x_4 of { happy_var_4 -> + case happyOut157 happy_x_6 of { happy_var_6 -> + case happyOut157 happy_x_8 of { happy_var_8 -> + case happyOutTok happy_x_9 of { happy_var_9 -> + happyIn155+ (Asm happy_var_2 [] (rev happy_var_4) happy_var_6 happy_var_8 [] (happy_var_1 `srcspan` happy_var_9)+ ) `HappyStk` happyRest}}}}}}++happyReduce_692 = happyReduce 12# 140# happyReduction_692+happyReduction_692 (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 happyOut154 happy_x_2 of { happy_var_2 -> + case happyOut156 happy_x_4 of { happy_var_4 -> + case happyOut157 happy_x_6 of { happy_var_6 -> + case happyOut157 happy_x_8 of { happy_var_8 -> + case happyOut160 happy_x_10 of { happy_var_10 -> + case happyOutTok happy_x_11 of { happy_var_11 -> + happyIn155+ (Asm happy_var_2 [] (rev happy_var_4) happy_var_6 happy_var_8 happy_var_10 (happy_var_1 `srcspan` happy_var_11)+ ) `HappyStk` happyRest}}}}}}}++happyReduce_693 = happySpecReduce_1 141# happyReduction_693+happyReduction_693 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn156+ (rsingleton ((fst . getSTRING) happy_var_1)+ )}++happyReduce_694 = happySpecReduce_2 141# happyReduction_694+happyReduction_694 happy_x_2+ happy_x_1+ = case happyOut156 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { happy_var_2 -> + happyIn156+ (rcons ((fst . getSTRING) happy_var_2) happy_var_1+ )}}++happyReduce_695 = happySpecReduce_0 142# happyReduction_695+happyReduction_695 = happyIn157+ ([]+ )++happyReduce_696 = happySpecReduce_1 142# happyReduction_696+happyReduction_696 happy_x_1+ = case happyOut158 happy_x_1 of { happy_var_1 -> + happyIn157+ (rev happy_var_1+ )}++happyReduce_697 = happySpecReduce_1 143# happyReduction_697+happyReduction_697 happy_x_1+ = case happyOut159 happy_x_1 of { happy_var_1 -> + happyIn158+ (rsingleton happy_var_1+ )}++happyReduce_698 = happySpecReduce_3 143# happyReduction_698+happyReduction_698 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut158 happy_x_1 of { happy_var_1 -> + case happyOut159 happy_x_3 of { happy_var_3 -> + happyIn158+ (rcons happy_var_3 happy_var_1+ )}}++happyReduce_699 = happyReduce 4# 144# happyReduction_699+happyReduction_699 (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 happyOut50 happy_x_3 of { happy_var_3 -> + happyIn159+ (((fst . getSTRING) happy_var_1, happy_var_3)+ ) `HappyStk` happyRest}}++happyReduce_700 = happySpecReduce_0 145# happyReduction_700+happyReduction_700 = happyIn160+ ([]+ )++happyReduce_701 = happySpecReduce_1 145# happyReduction_701+happyReduction_701 happy_x_1+ = case happyOut161 happy_x_1 of { happy_var_1 -> + happyIn160+ (rev happy_var_1+ )}++happyReduce_702 = happySpecReduce_1 146# happyReduction_702+happyReduction_702 happy_x_1+ = case happyOut162 happy_x_1 of { happy_var_1 -> + happyIn161+ (rsingleton happy_var_1+ )}++happyReduce_703 = happySpecReduce_3 146# happyReduction_703+happyReduction_703 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut161 happy_x_1 of { happy_var_1 -> + case happyOut162 happy_x_3 of { happy_var_3 -> + happyIn161+ (rcons happy_var_3 happy_var_1+ )}}++happyReduce_704 = happySpecReduce_1 147# happyReduction_704+happyReduction_704 happy_x_1+ = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn162+ ((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 191# 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.Tpragma _) -> cont 94#;+ L _ T.Tasm -> cont 95#;+ L _ T.Tattribute -> cont 96#;+ L _ T.Textension -> cont 97#;+ L _ T.Tbuiltin_va_arg -> cont 98#;+ L _ T.Tbuiltin_va_list -> cont 99#;+ L _ T.Ttypeof -> cont 100#;+ L _ T.TCUDA3lt -> cont 101#;+ L _ T.TCUDA3gt -> cont 102#;+ L _ T.TCUDAdevice -> cont 103#;+ L _ T.TCUDAglobal -> cont 104#;+ L _ T.TCUDAhost -> cont 105#;+ L _ T.TCUDAconstant -> cont 106#;+ L _ T.TCUDAshared -> cont 107#;+ L _ T.TCUDArestrict -> cont 108#;+ L _ T.TCUDAnoinline -> cont 109#;+ L _ T.TCLprivate -> cont 110#;+ L _ T.TCLprivate -> cont 111#;+ L _ T.TCLlocal -> cont 112#;+ L _ T.TCLlocal -> cont 113#;+ L _ T.TCLglobal -> cont 114#;+ L _ T.TCLglobal -> cont 115#;+ L _ T.TCLconstant -> cont 116#;+ L _ T.TCLconstant -> cont 117#;+ L _ T.TCLreadonly -> cont 118#;+ L _ T.TCLreadonly -> cont 119#;+ L _ T.TCLwriteonly -> cont 120#;+ L _ T.TCLwriteonly -> cont 121#;+ L _ T.TCLkernel -> cont 122#;+ L _ T.TCLkernel -> cont 123#;+ L _ T.T__block -> cont 124#;+ L _ (T.TObjCnamed _) -> cont 125#;+ L _ T.TObjCat -> cont 126#;+ L _ T.TObjCautoreleasepool -> cont 127#;+ L _ T.TObjCcatch -> cont 128#;+ L _ T.TObjCclass -> cont 129#;+ L _ T.TObjCcompatibility_alias -> cont 130#;+ L _ T.TObjCdynamic -> cont 131#;+ L _ T.TObjCencode -> cont 132#;+ L _ T.TObjCend -> cont 133#;+ L _ T.TObjCfinally -> cont 134#;+ L _ T.TObjCinterface -> cont 135#;+ L _ T.TObjCimplementation -> cont 136#;+ L _ T.TObjCNO -> cont 137#;+ L _ T.TObjCprivate -> cont 138#;+ L _ T.TObjCoptional -> cont 139#;+ L _ T.TObjCpublic -> cont 140#;+ L _ T.TObjCproperty -> cont 141#;+ L _ T.TObjCprotected -> cont 142#;+ L _ T.TObjCpackage -> cont 143#;+ L _ T.TObjCprotocol -> cont 144#;+ L _ T.TObjCrequired -> cont 145#;+ L _ T.TObjCselector -> cont 146#;+ L _ T.TObjCsynchronized -> cont 147#;+ L _ T.TObjCsynthesize -> cont 148#;+ L _ T.TObjCthrow -> cont 149#;+ L _ T.TObjCtry -> cont 150#;+ L _ T.TObjCYES -> cont 151#;+ L _ T.TObjC__weak -> cont 152#;+ L _ T.TObjC__strong -> cont 153#;+ L _ T.TObjC__unsafe_retained -> cont 154#;+ L _ T.Ttypename -> cont 155#;+ L _ (T.Tanti_id _) -> cont 156#;+ L _ (T.Tanti_int _) -> cont 157#;+ L _ (T.Tanti_uint _) -> cont 158#;+ L _ (T.Tanti_lint _) -> cont 159#;+ L _ (T.Tanti_ulint _) -> cont 160#;+ L _ (T.Tanti_llint _) -> cont 161#;+ L _ (T.Tanti_ullint _) -> cont 162#;+ L _ (T.Tanti_float _) -> cont 163#;+ L _ (T.Tanti_double _) -> cont 164#;+ L _ (T.Tanti_long_double _) -> cont 165#;+ L _ (T.Tanti_char _) -> cont 166#;+ L _ (T.Tanti_string _) -> cont 167#;+ L _ (T.Tanti_exp _) -> cont 168#;+ L _ (T.Tanti_func _) -> cont 169#;+ L _ (T.Tanti_args _) -> cont 170#;+ L _ (T.Tanti_decl _) -> cont 171#;+ L _ (T.Tanti_decls _) -> cont 172#;+ L _ (T.Tanti_sdecl _) -> cont 173#;+ L _ (T.Tanti_sdecls _) -> cont 174#;+ L _ (T.Tanti_enum _) -> cont 175#;+ L _ (T.Tanti_enums _) -> cont 176#;+ L _ (T.Tanti_esc _) -> cont 177#;+ L _ (T.Tanti_edecl _) -> cont 178#;+ L _ (T.Tanti_edecls _) -> cont 179#;+ L _ (T.Tanti_item _) -> cont 180#;+ L _ (T.Tanti_items _) -> cont 181#;+ L _ (T.Tanti_stm _) -> cont 182#;+ L _ (T.Tanti_stms _) -> cont 183#;+ L _ (T.Tanti_spec _) -> cont 184#;+ L _ (T.Tanti_type _) -> cont 185#;+ L _ (T.Tanti_param _) -> cont 186#;+ L _ (T.Tanti_params _) -> cont 187#;+ L _ (T.Tanti_pragma _) -> cont 188#;+ L _ (T.Tanti_init _) -> cont 189#;+ L _ (T.Tanti_inits _) -> cont 190#;+ _ -> happyError' tk+ })++happyError_ 191# tk = 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 (happyOut50 x))++parseEdecl = happySomeParser where+ happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut118 x))++parseDecl = happySomeParser where+ happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut53 x))++parseStructDecl = happySomeParser where+ happySomeParser = happyThen (happyParse 3#) (\x -> happyReturn (happyOut68 x))++parseEnum = happySomeParser where+ happySomeParser = happyThen (happyParse 4#) (\x -> happyReturn (happyOut75 x))++parseType = happySomeParser where+ happySomeParser = happyThen (happyParse 5#) (\x -> happyReturn (happyOut91 x))++parseParam = happySomeParser where+ happySomeParser = happyThen (happyParse 6#) (\x -> happyReturn (happyOut90 x))++parseInit = happySomeParser where+ happySomeParser = happyThen (happyParse 7#) (\x -> happyReturn (happyOut97 x))++parseStm = happySomeParser where+ happySomeParser = happyThen (happyParse 8#) (\x -> happyReturn (happyOut102 x))++parseBlockItem = happySomeParser where+ happySomeParser = happyThen (happyParse 9#) (\x -> happyReturn (happyOut106 x))++parseUnit = happySomeParser where+ happySomeParser = happyThen (happyParse 10#) (\x -> happyReturn (happyOut116 x))++parseFunc = happySomeParser where+ happySomeParser = happyThen (happyParse 11#) (\x -> happyReturn (happyOut119 x))++happySeq = happyDontSeq+++happyError :: L T.Token -> P a+happyError (L loc t) =+ parserError (locStart loc) (text "parse error on" <+> quoteTok (ppr t))++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 ident)) = ident+getNAMED (L _ (T.Tnamed ident)) = ident+getOBJCNAMED (L _ (T.TObjCnamed ident)) = ident++getPRAGMA (L _ (T.Tpragma pragma)) = pragma++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_LLINT (L _ (T.Tanti_llint v)) = v+getANTI_ULLINT (L _ (T.Tanti_ullint 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+getANTI_PRAGMA (L _ (T.Tanti_pragma v)) = v+getANTI_INIT (L _ (T.Tanti_init v)) = v+getANTI_INITS (L _ (T.Tanti_inits v)) = v++lexer :: (L T.Token -> P a) -> P a+lexer cont = do+ t <- lexToken+ setCurToken t+ cont t++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+ | TS__block !SrcLoc+ | TSObjC__weak !SrcLoc+ | TSObjC__strong !SrcLoc+ | TSObjC__unsafe_retained !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 [Id] !SrcLoc -- the '[Id]' are Objective-C protocol references++ | TStypeofExp Exp !SrcLoc+ | TStypeofType Type !SrcLoc+ | TSva_list !SrcLoc++ -- C99+ | TSrestrict !SrcLoc++ -- CUDA+ | TSCUDAdevice !SrcLoc+ | TSCUDAglobal !SrcLoc+ | TSCUDAhost !SrcLoc+ | TSCUDAconstant !SrcLoc+ | TSCUDAshared !SrcLoc+ | TSCUDArestrict !SrcLoc+ | TSCUDAnoinline !SrcLoc++ -- OpenCL+ | TSCLprivate !SrcLoc+ | TSCLlocal !SrcLoc+ | TSCLglobal !SrcLoc+ | TSCLconstant !SrcLoc+ | TSCLreadonly !SrcLoc+ | TSCLwriteonly !SrcLoc+ | TSCLkernel !SrcLoc++instance Located DeclTySpec where+ locOf (DeclTySpec _ loc) = locOf loc+ locOf (AntiDeclTySpec _ loc) = locOf loc++instance Located TySpec where+ locOf (TSauto loc) = locOf loc+ locOf (TSregister loc) = locOf loc+ locOf (TSstatic loc) = locOf loc+ locOf (TSextern loc) = locOf loc+ locOf (TSexternL _ loc) = locOf loc+ locOf (TStypedef loc) = locOf loc+ locOf (TS__block loc) = locOf loc+ locOf (TSObjC__weak loc) = locOf loc+ locOf (TSObjC__strong loc) = locOf loc+ locOf (TSObjC__unsafe_retained loc)+ = locOf loc++ locOf (TSconst loc) = locOf loc+ locOf (TSvolatile loc) = locOf loc+ locOf (TSinline loc) = locOf loc++ locOf (TSsigned loc) = locOf loc+ locOf (TSunsigned loc) = locOf loc++ locOf (TSvoid loc) = locOf loc+ locOf (TSchar loc) = locOf loc+ locOf (TSshort loc) = locOf loc+ locOf (TSint loc) = locOf loc+ locOf (TSlong loc) = locOf loc+ locOf (TSfloat loc) = locOf loc+ locOf (TSdouble loc) = locOf loc++ locOf (TSstruct _ _ _ loc) = locOf loc+ locOf (TSunion _ _ _ loc) = locOf loc+ locOf (TSenum _ _ _ loc) = locOf loc+ locOf (TSnamed _ _ loc) = locOf loc++ locOf (TStypeofExp _ loc) = locOf loc+ locOf (TStypeofType _ loc) = locOf loc+ locOf (TSva_list loc) = locOf loc++ locOf (TSrestrict loc) = locOf loc++ locOf (TSCUDAdevice loc) = locOf loc+ locOf (TSCUDAglobal loc) = locOf loc+ locOf (TSCUDAhost loc) = locOf loc+ locOf (TSCUDAconstant loc) = locOf loc+ locOf (TSCUDAshared loc) = locOf loc+ locOf (TSCUDArestrict loc) = locOf loc+ locOf (TSCUDAnoinline loc) = locOf loc++ locOf (TSCLprivate loc) = locOf loc+ locOf (TSCLlocal loc) = locOf loc+ locOf (TSCLglobal loc) = locOf loc+ locOf (TSCLconstant loc) = locOf loc+ locOf (TSCLreadonly loc) = locOf loc+ locOf (TSCLwriteonly loc) = locOf loc+ locOf (TSCLkernel loc) = locOf 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 (TS__block _) = text "__block"+ ppr (TSObjC__weak _) = text "__weak"+ ppr (TSObjC__strong _) = text "__strong"+ ppr (TSObjC__unsafe_retained _) = text "__unsafe_retained"++ 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 ps _)= ppr ident <> if null ps then empty else angles (commasep (map ppr ps))++ ppr (TSva_list _) = text "__builtin_va_list"++ ppr (TSCUDAdevice _) = text "__device__"+ ppr (TSCUDAglobal _) = text "__global__"+ ppr (TSCUDAhost _) = text "__host__"+ ppr (TSCUDAconstant _) = text "__constant__"+ ppr (TSCUDAshared _) = text "__shared__"+ ppr (TSCUDArestrict _) = text "__restrict__"+ 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+isStorage (TSstatic _) = True+isStorage (TSextern _) = True+isStorage (TSexternL _ _) = True+isStorage (TStypedef _) = True+isStorage (TS__block _) = True+isStorage (TSObjC__weak _) = True+isStorage (TSObjC__strong _) = True+isStorage (TSObjC__unsafe_retained _) = 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 (TS__block loc) = T__block loc+ mk (TSObjC__weak loc) = TObjC__weak loc+ mk (TSObjC__strong loc) = TObjC__strong loc+ mk (TSObjC__unsafe_retained loc) = TObjC__unsafe_retained loc+ mk _ = error "internal error in mkStorage"++isTypeQual :: TySpec -> Bool+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 (TSCUDArestrict _) = 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 (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 (TSCUDArestrict loc) = TCUDArestrict 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+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 ()++mkStringConst :: RevList (L (String, String)) -> Const+mkStringConst str_desc+ = let ss = rev str_desc+ l = srclocOf ss+ raw = map (fst . unLoc) ss+ s = (concat . intersperse " " . map (snd . unLoc)) ss+ in+ StringConst raw s l++composeDecls :: Decl -> Decl -> Decl+composeDecls (DeclRoot _) root =+ root++composeDecls (C.Ptr quals decl loc) root =+ C.Ptr quals (composeDecls decl root) loc++composeDecls (C.BlockPtr quals decl loc) root =+ C.BlockPtr 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 l] = do+ checkNoSign specs "sign specified for void type"+ return $ cdeclSpec storage quals (Tvoid l)++ go [TSchar l] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tchar sign l)++ go [TSshort l] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tshort sign l)++ go [TSshort _, TSint _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tshort sign (srclocOf rest))++ go [TSint _, TSshort _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tshort sign (srclocOf rest))++ go [TSint l] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tint sign l)++ go [TSlong l] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong sign l)++ go [TSlong _, TSint _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong sign (srclocOf rest))++ go [TSint _, TSlong _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong sign (srclocOf rest))++ go [TSlong _, TSlong _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong_long sign (srclocOf rest))++ go [TSlong _, TSlong _, TSint _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong_long sign (srclocOf rest))++ go [TSlong _, TSint _, TSlong _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong_long sign (srclocOf rest))++ go [TSint _, TSlong _, TSlong _] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tlong_long sign (srclocOf 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 (srclocOf rest))++ go [TSdouble _, TSlong _] = do+ checkNoSign specs "sign specified for long double type"+ return $ cdeclSpec storage quals (Tlong_double (srclocOf 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 refs loc] = do+ checkNoSign specs "sign specified for named type"+ return $ cdeclSpec storage quals (Tnamed ident refs 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 l] = do+ checkNoSign specs "sign specified for __builtin_va_list"+ return $ cdeclSpec storage quals (Tva_list l)++ go [] = do+ sign <- mkSign specs+ return $ cdeclSpec storage quals (Tint sign (storage `srcspan` quals))++ go tyspecs =+ throw $ ParserException (locOf tyspecs)+ (text "bad type:" <+> spread (map ppr tyspecs))++mkPtr :: [TySpec] -> Decl -> Decl+mkPtr specs decl = C.Ptr quals decl (specs `srcspan` decl)+ where+ quals = mkTypeQuals specs++mkBlockPtr :: Loc -> [TySpec] -> P (Decl -> Decl)+mkBlockPtr loc specs+ = do+ { assertObjCEnabled loc "blocks are currently only allowed as part of the Objective-C extension"+ ; return $ \decl -> C.BlockPtr quals decl (specs `srcspan` decl)+ }+ where+ quals = mkTypeQuals specs++mkArray :: [TySpec] -> ArraySize -> Decl -> Decl+mkArray specs size decl = Array quals size decl (specs `srcspan` decl)+ where+ quals = mkTypeQuals specs++mkProto :: Params -> Decl -> Decl+mkProto args decl = Proto decl args (args `srcspan` decl)++mkOldProto :: [Id] -> Decl -> Decl+mkOldProto args decl = OldProto decl args (args `srcspan` 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 (locOf init) $+ text "typedef" <+>+ quoteTok (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 <--> inits++declRoot :: Located a => a -> Decl+declRoot x = DeclRoot (srclocOf x)++addClassdefId :: Id -> P ()+addClassdefId (Id str _) = addClassdef str+addClassdefId (AntiId {}) = return ()++expectedObjCPropertyAttr :: Loc -> P a+expectedObjCPropertyAttr loc+ = throw $ ParserException loc $+ text "Expected an Objective-C property attribute; allowed are the following:" </>+ nest 2 + (text "'getter = <sel>', 'setter = <sel>:', 'readonly', 'readwrite', 'assign'," <+>+ text "'retain', 'copy', 'nonatomic', 'atomic', 'strong', 'weak', and 'unsafe_retained'")++assertObjCEnabled :: Loc -> String -> P ()+assertObjCEnabled loc errMsg+ = do+ { objc_enabled <- useObjCExts+ ; unless objc_enabled $ + throw $ ParserException loc $ + text errMsg+ }++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+{-# 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@(x `HappyStk` _) =+ let (i) = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in+-- trace "failing" $ + happyError_ i 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,21 +1,23 @@ name: language-c-quote-version: 0.4.4+version: 0.7.1 cabal-version: >= 1.10 license: BSD3 license-file: LICENSE copyright: (c) 2006-2011 Harvard University- (c) 2011-2012 Geoffrey Mainland+ (c) 2011-2013 Geoffrey Mainland+ (c) 2013 Manuel M. T. Chakravarty author: Geoffrey Mainland <mainland@eecs.harvard.edu> maintainer: mainland@eecs.harvard.edu stability: alpha homepage: http://www.eecs.harvard.edu/~mainland/ category: Language-synopsis: C/CUDA/OpenCL quasiquoting library.+synopsis: C/CUDA/OpenCL/Objective-C quasiquoting library. tested-with: GHC==7.0.4, GHC==7.4.2, GHC==7.6.1 description: This package provides a general parser for the C language, including most GCC- extensions and some CUDA and OpenCL extensions.+ extensions and some CUDA and OpenCL extensions as well as the entire Objective-C+ language. build-type: Custom @@ -23,19 +25,19 @@ default-language: Haskell98 build-depends:- array >= 0.2 && < 0.5,- base >= 4 && < 5,- bytestring >= 0.9 && < 0.11,- containers >= 0.4 && < 0.6,- exception-mtl >= 0.3 && < 0.4,- exception-transformers >= 0.3 && < 0.4,- filepath >= 1.2 && < 1.4,- haskell-src-meta >= 0.4 && < 0.7,- mainland-pretty >= 0.2 && < 0.3,- mtl >= 2.0 && < 3,- srcloc >= 0.2 && < 0.4,- syb >= 0.3 && < 0.4,- symbol >= 0.1 && < 0.2,+ array >= 0.2 && < 0.5,+ base >= 4 && < 5,+ bytestring >= 0.9 && < 0.11,+ containers >= 0.4 && < 0.6,+ exception-mtl >= 0.3 && < 0.4,+ exception-transformers >= 0.3 && < 0.4,+ filepath >= 1.2 && < 1.4,+ haskell-src-meta >= 0.4 && < 0.7,+ mainland-pretty >= 0.2.5 && < 0.3,+ mtl >= 2.0 && < 3,+ srcloc >= 0.4 && < 0.5,+ syb >= 0.3 && < 0.4,+ symbol >= 0.1 && < 0.2, template-haskell if impl(ghc < 7.4)@@ -61,10 +63,13 @@ Language.C.Quote.C Language.C.Quote.CUDA Language.C.Quote.GCC+ Language.C.Quote.ObjC Language.C.Quote.OpenCL Language.C.Smart Language.C.Syntax + ghc-options: -Wall+ test-suite unit type: exitcode-stdio-1.0 hs-source-dirs: tests/unit@@ -75,7 +80,7 @@ HUnit >= 1.2 && < 1.3, base >= 4 && < 5, language-c-quote,- srcloc >= 0.2 && < 0.4,+ srcloc >= 0.4 && < 0.5, symbol >= 0.1 && < 0.2, test-framework >= 0.8 && < 0.9, test-framework-hunit >= 0.3 && < 0.4
tests/unit/Main.hs view
@@ -23,7 +23,8 @@ tests = [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, exp_hexp]+ pat_args, exp_hexp,+ exp_init, exp_inits, exp_item] exp_id :: Test exp_id = testCase "exp id" $ [cexp|$id:ident|] @=? [cexp|x|]@@ -169,3 +170,24 @@ exp_hexp :: Test exp_hexp = testCase "exp hexp" $ [cexp|$ulint:(13 - 2*5)|] @=? [cexp|3UL|]++exp_init :: Test+exp_init = testCase "initializer" $+ [cinit|{$init:initializer, .a = 10}|] @=? [cinit|{{.d = 1}, .a = 10}|]+ where+ initializer = [cinit|{.d = 1}|]++exp_inits :: Test+exp_inits = testCase "initializers" $+ [cinit|{$inits:([initializer1, initializer2])}|] @=? [cinit|{{.d = 1},{.a = 10}}|]+ where+ initializer1 = [cinit|{.d = 1}|]+ initializer2 = [cinit|{.a = 10}|]++exp_item :: Test+exp_item = testCase "exp item" $+ [cfun|int add(int x) { int y = 2; return x + y; }|]+ @=? [cfun|int add(int x) { $items:([item1, item2]) }|]+ where+ item1 = [citem|int y = 2;|]+ item2 = [citem|return x + y;|]