packages feed

language-javascript 0.4.10 → 0.5.0

raw patch · 15 files changed

+6586/−4885 lines, 15 filesdep +blaze-builderdep +bytestringdep +utf8-stringPVP ok

version bump matches the API change (PVP)

Dependencies added: blaze-builder, bytestring, utf8-string

API changes (from Hackage documentation)

- Language.JavaScript.Parser: AlexPn :: !Int -> !Int -> !Int -> AlexPosn
- Language.JavaScript.Parser: JSEmpty :: JSNode -> Node
- Language.JavaScript.Parser: JSIfElse :: JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: NS :: Node -> SrcSpan -> JSNode
- Language.JavaScript.Parser: ParseState :: !AlexPosn -> String -> !Char -> [Byte] -> !Int -> !Token -> [Token] -> ParseState
- Language.JavaScript.Parser: SpanCoLinear :: !String -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> SrcSpan
- Language.JavaScript.Parser: SpanEmpty :: SrcSpan
- Language.JavaScript.Parser: SpanMultiLine :: !String -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> SrcSpan
- Language.JavaScript.Parser: SpanPoint :: !String -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> SrcSpan
- Language.JavaScript.Parser: StrError :: String -> ParseError
- Language.JavaScript.Parser: UnexpectedChar :: Char -> AlexPosn -> ParseError
- Language.JavaScript.Parser: UnexpectedToken :: Token -> ParseError
- Language.JavaScript.Parser: alex_bytes :: ParseState -> [Byte]
- Language.JavaScript.Parser: alex_chr :: ParseState -> !Char
- Language.JavaScript.Parser: alex_inp :: ParseState -> String
- Language.JavaScript.Parser: alex_pos :: ParseState -> !AlexPosn
- Language.JavaScript.Parser: alex_scd :: ParseState -> !Int
- Language.JavaScript.Parser: comments :: ParseState -> [Token]
- Language.JavaScript.Parser: data AlexPosn
- Language.JavaScript.Parser: data ParseError
- Language.JavaScript.Parser: data ParseState
- Language.JavaScript.Parser: data SrcSpan
- Language.JavaScript.Parser: previousToken :: ParseState -> !Token
- Language.JavaScript.Parser: span_column :: SrcSpan -> {-# UNPACK #-} !Int
- Language.JavaScript.Parser: span_end_column :: SrcSpan -> {-# UNPACK #-} !Int
- Language.JavaScript.Parser: span_end_row :: SrcSpan -> {-# UNPACK #-} !Int
- Language.JavaScript.Parser: span_filename :: SrcSpan -> !String
- Language.JavaScript.Parser: span_row :: SrcSpan -> {-# UNPACK #-} !Int
- Language.JavaScript.Parser: span_start_column :: SrcSpan -> {-# UNPACK #-} !Int
- Language.JavaScript.Parser: span_start_row :: SrcSpan -> {-# UNPACK #-} !Int
- Language.JavaScript.Parser: type AlexSpan = (AlexPosn, Char, String)
- Language.JavaScript.Parser: type P a = StateT ParseState (Either ParseError) a
- Language.JavaScript.Parser.AST: AlexPn :: !Int -> !Int -> !Int -> AlexPosn
- Language.JavaScript.Parser.AST: JSEmpty :: JSNode -> Node
- Language.JavaScript.Parser.AST: JSIfElse :: JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: NS :: Node -> SrcSpan -> JSNode
- Language.JavaScript.Parser.AST: SpanCoLinear :: !String -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> SrcSpan
- Language.JavaScript.Parser.AST: SpanEmpty :: SrcSpan
- Language.JavaScript.Parser.AST: SpanMultiLine :: !String -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> SrcSpan
- Language.JavaScript.Parser.AST: SpanPoint :: !String -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> SrcSpan
- Language.JavaScript.Parser.AST: data AlexPosn
- Language.JavaScript.Parser.AST: data SrcSpan
- Language.JavaScript.Parser.AST: span_column :: SrcSpan -> {-# UNPACK #-} !Int
- Language.JavaScript.Parser.AST: span_end_column :: SrcSpan -> {-# UNPACK #-} !Int
- Language.JavaScript.Parser.AST: span_end_row :: SrcSpan -> {-# UNPACK #-} !Int
- Language.JavaScript.Parser.AST: span_filename :: SrcSpan -> !String
- Language.JavaScript.Parser.AST: span_row :: SrcSpan -> {-# UNPACK #-} !Int
- Language.JavaScript.Parser.AST: span_start_column :: SrcSpan -> {-# UNPACK #-} !Int
- Language.JavaScript.Parser.AST: span_start_row :: SrcSpan -> {-# UNPACK #-} !Int
+ Language.JavaScript.Parser: NN :: Node -> JSNode
+ Language.JavaScript.Parser: NT :: Node -> TokenPosn -> [CommentAnnotation] -> JSNode
+ Language.JavaScript.Parser: TokenPn :: !Int -> !Int -> !Int -> TokenPosn
+ Language.JavaScript.Parser: data TokenPosn
+ Language.JavaScript.Parser: renderJS :: JSNode -> Builder
+ Language.JavaScript.Parser: renderToString :: JSNode -> String
+ Language.JavaScript.Parser: tokenPosnEmpty :: TokenPosn
+ Language.JavaScript.Parser.AST: NN :: Node -> JSNode
+ Language.JavaScript.Parser.AST: NT :: Node -> TokenPosn -> [CommentAnnotation] -> JSNode
+ Language.JavaScript.Parser.Grammar5: fp :: JSNode -> JSNode
+ Language.JavaScript.Parser.Lexer: AlexPn :: !Int -> !Int -> !Int -> AlexPosn
+ Language.JavaScript.Parser.Lexer: TailToken :: !TokenPosn -> ![CommentAnnotation] -> Token
+ Language.JavaScript.Parser.Lexer: WsToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
+ Language.JavaScript.Parser.Lexer: alexError :: String -> Alex a
+ Language.JavaScript.Parser.Lexer: data Alex a
+ Language.JavaScript.Parser.Lexer: data AlexPosn
+ Language.JavaScript.Parser.Lexer: instance Eq AlexPosn
+ Language.JavaScript.Parser.Lexer: instance Monad Alex
+ Language.JavaScript.Parser.Lexer: instance Show AlexPosn
+ Language.JavaScript.Parser.Lexer: runAlex :: String -> Alex a -> Either String a
+ Language.JavaScript.Parser.Lexer: token_comment :: Token -> ![CommentAnnotation]
+ Language.JavaScript.Pretty.Printer: renderJS :: JSNode -> Builder
+ Language.JavaScript.Pretty.Printer: renderToString :: JSNode -> String
- Language.JavaScript.Parser: JSArguments :: [[JSNode]] -> Node
+ Language.JavaScript.Parser: JSArguments :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser: JSArrayLiteral :: [JSNode] -> Node
+ Language.JavaScript.Parser: JSArrayLiteral :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser: JSBlock :: JSNode -> Node
+ Language.JavaScript.Parser: JSBlock :: [JSNode] -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser: JSBreak :: [JSNode] -> [JSNode] -> Node
+ Language.JavaScript.Parser: JSBreak :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser: JSCallExpression :: String -> [JSNode] -> Node
+ Language.JavaScript.Parser: JSCallExpression :: String -> [JSNode] -> [JSNode] -> [JSNode] -> Node
- Language.JavaScript.Parser: JSCase :: JSNode -> JSNode -> Node
+ Language.JavaScript.Parser: JSCase :: JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSCatch :: JSNode -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser: JSCatch :: JSNode -> JSNode -> JSNode -> [JSNode] -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSContinue :: [JSNode] -> Node
+ Language.JavaScript.Parser: JSContinue :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser: JSDefault :: JSNode -> Node
+ Language.JavaScript.Parser: JSDefault :: JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSDoWhile :: JSNode -> JSNode -> JSNode -> Node
+ Language.JavaScript.Parser: JSDoWhile :: JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSElision :: [JSNode] -> Node
+ Language.JavaScript.Parser: JSElision :: JSNode -> Node
- Language.JavaScript.Parser: JSExpressionBinary :: String -> [JSNode] -> [JSNode] -> Node
+ Language.JavaScript.Parser: JSExpressionBinary :: String -> [JSNode] -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser: JSExpressionParen :: JSNode -> Node
+ Language.JavaScript.Parser: JSExpressionParen :: JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSExpressionPostfix :: String -> [JSNode] -> Node
+ Language.JavaScript.Parser: JSExpressionPostfix :: String -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser: JSExpressionTernary :: [JSNode] -> [JSNode] -> [JSNode] -> Node
+ Language.JavaScript.Parser: JSExpressionTernary :: [JSNode] -> JSNode -> [JSNode] -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser: JSFinally :: JSNode -> Node
+ Language.JavaScript.Parser: JSFinally :: JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSFor :: [JSNode] -> [JSNode] -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser: JSFor :: JSNode -> JSNode -> [JSNode] -> JSNode -> [JSNode] -> JSNode -> [JSNode] -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSForIn :: [JSNode] -> JSNode -> JSNode -> Node
+ Language.JavaScript.Parser: JSForIn :: JSNode -> JSNode -> [JSNode] -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSForVar :: [JSNode] -> [JSNode] -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser: JSForVar :: JSNode -> JSNode -> JSNode -> [JSNode] -> JSNode -> [JSNode] -> JSNode -> [JSNode] -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSForVarIn :: JSNode -> JSNode -> JSNode -> Node
+ Language.JavaScript.Parser: JSForVarIn :: JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSFunction :: JSNode -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser: JSFunction :: JSNode -> JSNode -> JSNode -> [JSNode] -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSFunctionExpression :: [JSNode] -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser: JSFunctionExpression :: JSNode -> [JSNode] -> JSNode -> [JSNode] -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSIf :: JSNode -> JSNode -> Node
+ Language.JavaScript.Parser: JSIf :: JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser: JSLabelled :: JSNode -> JSNode -> Node
+ Language.JavaScript.Parser: JSLabelled :: JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSMemberDot :: [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser: JSMemberDot :: [JSNode] -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSMemberSquare :: [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser: JSMemberSquare :: [JSNode] -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSObjectLiteral :: [JSNode] -> Node
+ Language.JavaScript.Parser: JSObjectLiteral :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser: JSOperator :: String -> Node
+ Language.JavaScript.Parser: JSOperator :: JSNode -> Node
- Language.JavaScript.Parser: JSPropertyAccessor :: String -> JSNode -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser: JSPropertyAccessor :: JSNode -> JSNode -> JSNode -> [JSNode] -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSPropertyNameandValue :: JSNode -> [JSNode] -> Node
+ Language.JavaScript.Parser: JSPropertyNameandValue :: JSNode -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser: JSReturn :: [JSNode] -> Node
+ Language.JavaScript.Parser: JSReturn :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser: JSStatementBlock :: JSNode -> Node
+ Language.JavaScript.Parser: JSStatementBlock :: JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSSwitch :: JSNode -> [JSNode] -> Node
+ Language.JavaScript.Parser: JSSwitch :: JSNode -> JSNode -> JSNode -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser: JSThrow :: JSNode -> Node
+ Language.JavaScript.Parser: JSThrow :: JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSTry :: JSNode -> [JSNode] -> Node
+ Language.JavaScript.Parser: JSTry :: JSNode -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser: JSUnary :: String -> Node
+ Language.JavaScript.Parser: JSUnary :: String -> JSNode -> Node
- Language.JavaScript.Parser: JSVariables :: String -> [JSNode] -> Node
+ Language.JavaScript.Parser: JSVariables :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser: JSWhile :: JSNode -> JSNode -> Node
+ Language.JavaScript.Parser: JSWhile :: JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser: JSWith :: JSNode -> [JSNode] -> Node
+ Language.JavaScript.Parser: JSWith :: JSNode -> JSNode -> JSNode -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser: parse :: String -> String -> Either ParseError JSNode
+ Language.JavaScript.Parser: parse :: String -> String -> Either String JSNode
- Language.JavaScript.Parser: showStrippedMaybe :: Show a => Either a JSNode -> [Char]
+ Language.JavaScript.Parser: showStrippedMaybe :: Show a => Either a JSNode -> String
- Language.JavaScript.Parser.AST: JSArguments :: [[JSNode]] -> Node
+ Language.JavaScript.Parser.AST: JSArguments :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSArrayLiteral :: [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSArrayLiteral :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSBlock :: JSNode -> Node
+ Language.JavaScript.Parser.AST: JSBlock :: [JSNode] -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser.AST: JSBreak :: [JSNode] -> [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSBreak :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSCallExpression :: String -> [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSCallExpression :: String -> [JSNode] -> [JSNode] -> [JSNode] -> Node
- Language.JavaScript.Parser.AST: JSCase :: JSNode -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSCase :: JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSCatch :: JSNode -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSCatch :: JSNode -> JSNode -> JSNode -> [JSNode] -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSContinue :: [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSContinue :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSDefault :: JSNode -> Node
+ Language.JavaScript.Parser.AST: JSDefault :: JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSDoWhile :: JSNode -> JSNode -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSDoWhile :: JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSElision :: [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSElision :: JSNode -> Node
- Language.JavaScript.Parser.AST: JSExpressionBinary :: String -> [JSNode] -> [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSExpressionBinary :: String -> [JSNode] -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser.AST: JSExpressionParen :: JSNode -> Node
+ Language.JavaScript.Parser.AST: JSExpressionParen :: JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSExpressionPostfix :: String -> [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSExpressionPostfix :: String -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSExpressionTernary :: [JSNode] -> [JSNode] -> [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSExpressionTernary :: [JSNode] -> JSNode -> [JSNode] -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser.AST: JSFinally :: JSNode -> Node
+ Language.JavaScript.Parser.AST: JSFinally :: JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSFor :: [JSNode] -> [JSNode] -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSFor :: JSNode -> JSNode -> [JSNode] -> JSNode -> [JSNode] -> JSNode -> [JSNode] -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSForIn :: [JSNode] -> JSNode -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSForIn :: JSNode -> JSNode -> [JSNode] -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSForVar :: [JSNode] -> [JSNode] -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSForVar :: JSNode -> JSNode -> JSNode -> [JSNode] -> JSNode -> [JSNode] -> JSNode -> [JSNode] -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSForVarIn :: JSNode -> JSNode -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSForVarIn :: JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSFunction :: JSNode -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSFunction :: JSNode -> JSNode -> JSNode -> [JSNode] -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSFunctionExpression :: [JSNode] -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSFunctionExpression :: JSNode -> [JSNode] -> JSNode -> [JSNode] -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSIf :: JSNode -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSIf :: JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser.AST: JSLabelled :: JSNode -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSLabelled :: JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSMemberDot :: [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSMemberDot :: [JSNode] -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSMemberSquare :: [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSMemberSquare :: [JSNode] -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSObjectLiteral :: [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSObjectLiteral :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSOperator :: String -> Node
+ Language.JavaScript.Parser.AST: JSOperator :: JSNode -> Node
- Language.JavaScript.Parser.AST: JSPropertyAccessor :: String -> JSNode -> [JSNode] -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSPropertyAccessor :: JSNode -> JSNode -> JSNode -> [JSNode] -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSPropertyNameandValue :: JSNode -> [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSPropertyNameandValue :: JSNode -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser.AST: JSReturn :: [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSReturn :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSStatementBlock :: JSNode -> Node
+ Language.JavaScript.Parser.AST: JSStatementBlock :: JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSSwitch :: JSNode -> [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSSwitch :: JSNode -> JSNode -> JSNode -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser.AST: JSThrow :: JSNode -> Node
+ Language.JavaScript.Parser.AST: JSThrow :: JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSTry :: JSNode -> [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSTry :: JSNode -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser.AST: JSUnary :: String -> Node
+ Language.JavaScript.Parser.AST: JSUnary :: String -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSVariables :: String -> [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSVariables :: JSNode -> [JSNode] -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSWhile :: JSNode -> JSNode -> Node
+ Language.JavaScript.Parser.AST: JSWhile :: JSNode -> JSNode -> JSNode -> JSNode -> JSNode -> Node
- Language.JavaScript.Parser.AST: JSWith :: JSNode -> [JSNode] -> Node
+ Language.JavaScript.Parser.AST: JSWith :: JSNode -> JSNode -> JSNode -> JSNode -> [JSNode] -> Node
- Language.JavaScript.Parser.Grammar5: parseLiteral :: P JSNode
+ Language.JavaScript.Parser.Grammar5: parseLiteral :: Alex JSNode
- Language.JavaScript.Parser.Grammar5: parsePrimaryExpression :: P JSNode
+ Language.JavaScript.Parser.Grammar5: parsePrimaryExpression :: Alex JSNode
- Language.JavaScript.Parser.Grammar5: parseProgram :: P JSNode
+ Language.JavaScript.Parser.Grammar5: parseProgram :: Alex JSNode
- Language.JavaScript.Parser.Grammar5: parseStatement :: P JSNode
+ Language.JavaScript.Parser.Grammar5: parseStatement :: Alex JSNode
- Language.JavaScript.Parser.Lexer: AndToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: AndToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: AssignToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: AssignToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: BitwiseAndToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: BitwiseAndToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: BitwiseNotToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: BitwiseNotToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: BitwiseOrToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: BitwiseOrToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: BitwiseXorToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: BitwiseXorToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: BreakToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: BreakToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: CaseToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: CaseToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: CatchToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: CatchToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: ColonToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: ColonToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: CommaToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: CommaToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: CommentToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: CommentToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: CondcommentEndToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: CondcommentEndToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: ConstToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: ConstToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: ContinueToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: ContinueToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: DebuggerToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: DebuggerToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: DecimalToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: DecimalToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: DecrementToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: DecrementToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: DefaultToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: DefaultToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: DeleteToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: DeleteToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: DivToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: DivToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: DoToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: DoToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: DotToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: DotToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: EOFToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: EOFToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: ElseToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: ElseToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: EnumToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: EnumToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: EqToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: EqToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: FalseToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: FalseToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: FinallyToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: FinallyToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: ForToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: ForToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: FunctionToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: FunctionToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: FutureToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: FutureToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: GeToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: GeToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: GetToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: GetToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: GtToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: GtToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: HexIntegerToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: HexIntegerToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: HookToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: HookToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: IdentifierToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: IdentifierToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: IfToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: IfToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: InToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: InToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: IncrementToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: IncrementToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: InstanceofToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: InstanceofToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: LeToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: LeToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: LeftBracketToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: LeftBracketToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: LeftCurlyToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: LeftCurlyToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: LeftParenToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: LeftParenToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: LshToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: LshToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: LtToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: LtToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: MinusToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: MinusToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: ModToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: ModToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: MulToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: MulToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: NeToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: NeToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: NewToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: NewToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: NotToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: NotToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: NullToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: NullToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: OrToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: OrToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: PlusToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: PlusToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: RegExToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: RegExToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: ReturnToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: ReturnToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: RightBracketToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: RightBracketToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: RightCurlyToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: RightCurlyToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: RightParenToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: RightParenToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: RshToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: RshToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: SemiColonToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: SemiColonToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: SetToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: SetToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: SimpleAssignToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: SimpleAssignToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: StrictEqToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: StrictEqToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: StrictNeToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: StrictNeToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: StringToken :: !AlexSpan -> !String -> !Char -> Token
+ Language.JavaScript.Parser.Lexer: StringToken :: !TokenPosn -> !String -> !Char -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: SwitchToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: SwitchToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: ThisToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: ThisToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: ThrowToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: ThrowToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: TrueToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: TrueToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: TryToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: TryToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: TypeofToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: TypeofToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: UrshToken :: !AlexSpan -> Token
+ Language.JavaScript.Parser.Lexer: UrshToken :: !TokenPosn -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: VarToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: VarToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: VoidToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: VoidToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: WhileToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: WhileToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: WithToken :: !AlexSpan -> !String -> Token
+ Language.JavaScript.Parser.Lexer: WithToken :: !TokenPosn -> !String -> ![CommentAnnotation] -> Token
- Language.JavaScript.Parser.Lexer: lexCont :: (Token -> P a) -> P a
+ Language.JavaScript.Parser.Lexer: lexCont :: (Token -> Alex b) -> Alex b
- Language.JavaScript.Parser.Lexer: token_span :: Token -> !AlexSpan
+ Language.JavaScript.Parser.Lexer: token_span :: Token -> !TokenPosn
- Language.JavaScript.Parser.Parser: parse :: String -> String -> Either ParseError JSNode
+ Language.JavaScript.Parser.Parser: parse :: String -> String -> Either String JSNode
- Language.JavaScript.Parser.Parser: parseUsing :: P JSNode -> String -> String -> Either ParseError JSNode
+ Language.JavaScript.Parser.Parser: parseUsing :: Alex JSNode -> String -> String -> Either String JSNode
- Language.JavaScript.Parser.Parser: showStrippedMaybe :: Show a => Either a JSNode -> [Char]
+ Language.JavaScript.Parser.Parser: showStrippedMaybe :: Show a => Either a JSNode -> String

Files

README view
@@ -35,6 +35,9 @@  Changes +0.5.0 Rework AST to allow full round-trip parsing and output of+      JavaScript. Breaks AST compatibility with prior versions+ 0.4.10 Moved Lexer.x into a separate directory, and made a script to        call alex to generate Lexer.hs. This means alex is not required        at install time
dist/build/Language/JavaScript/Parser/Grammar5.hs view
@@ -5,3516 +5,4611 @@   , parseLiteral   , parsePrimaryExpression   , parseStatement-  ) where--import Control.Monad.Error.Class (throwError)-import Data.Char-import Language.JavaScript.Parser.Lexer-import Language.JavaScript.Parser.ParserMonad-import Language.JavaScript.Parser.SrcLocation-import qualified Language.JavaScript.Parser.AST as AST-import qualified Data.Array as Happy_Data_Array-import qualified GHC.Exts as Happy_GHC_Exts---- parser produced by Happy Version 1.18.9--newtype HappyAbsSyn  = HappyAbsSyn HappyAny-#if __GLASGOW_HASKELL__ >= 607-type HappyAny = Happy_GHC_Exts.Any-#else-type HappyAny = forall a . a-#endif-happyIn7 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn7 #-}-happyOut7 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut7 #-}-happyIn8 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn8 #-}-happyOut8 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut8 #-}-happyIn9 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn9 #-}-happyOut9 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut9 #-}-happyIn10 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn10 #-}-happyOut10 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut10 #-}-happyIn11 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn11 #-}-happyOut11 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut11 #-}-happyIn12 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn12 #-}-happyOut12 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut12 #-}-happyIn13 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn13 #-}-happyOut13 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut13 #-}-happyIn14 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn14 #-}-happyOut14 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut14 #-}-happyIn15 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn15 #-}-happyOut15 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut15 #-}-happyIn16 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn16 #-}-happyOut16 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut16 #-}-happyIn17 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn17 #-}-happyOut17 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut17 #-}-happyIn18 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn18 #-}-happyOut18 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut18 #-}-happyIn19 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn19 #-}-happyOut19 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut19 #-}-happyIn20 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn20 #-}-happyOut20 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut20 #-}-happyIn21 :: ([ AST.JSNode ]) -> (HappyAbsSyn )-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn21 #-}-happyOut21 :: (HappyAbsSyn ) -> ([ AST.JSNode ])-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut21 #-}-happyIn22 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn22 #-}-happyOut22 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut22 #-}-happyIn23 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn23 #-}-happyOut23 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut23 #-}-happyIn24 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn24 #-}-happyOut24 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut24 #-}-happyIn25 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn25 #-}-happyOut25 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut25 #-}-happyIn26 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn26 #-}-happyOut26 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut26 #-}-happyIn27 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn27 #-}-happyOut27 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut27 #-}-happyIn28 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn28 #-}-happyOut28 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut28 #-}-happyIn29 :: ([[AST.JSNode]]) -> (HappyAbsSyn )-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn29 #-}-happyOut29 :: (HappyAbsSyn ) -> ([[AST.JSNode]])-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut29 #-}-happyIn30 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn30 #-}-happyOut30 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut30 #-}-happyIn31 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn31 #-}-happyOut31 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut31 #-}-happyIn32 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn32 #-}-happyOut32 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut32 #-}-happyIn33 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn33 #-}-happyOut33 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut33 #-}-happyIn34 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn34 #-}-happyOut34 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut34 #-}-happyIn35 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn35 #-}-happyOut35 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut35 #-}-happyIn36 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn36 #-}-happyOut36 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut36 #-}-happyIn37 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn37 #-}-happyOut37 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut37 #-}-happyIn38 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn38 #-}-happyOut38 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut38 #-}-happyIn39 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn39 #-}-happyOut39 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut39 #-}-happyIn40 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn40 #-}-happyOut40 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut40 #-}-happyIn41 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn41 #-}-happyOut41 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut41 #-}-happyIn42 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn42 #-}-happyOut42 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut42 #-}-happyIn43 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn43 #-}-happyOut43 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut43 #-}-happyIn44 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn44 #-}-happyOut44 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut44 #-}-happyIn45 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn45 #-}-happyOut45 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut45 #-}-happyIn46 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn46 #-}-happyOut46 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut46 #-}-happyIn47 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn47 #-}-happyOut47 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut47 #-}-happyIn48 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn48 #-}-happyOut48 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut48 #-}-happyIn49 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn49 #-}-happyOut49 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut49 #-}-happyIn50 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn50 #-}-happyOut50 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut50 #-}-happyIn51 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn51 #-}-happyOut51 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut51 #-}-happyIn52 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn52 #-}-happyOut52 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut52 #-}-happyIn53 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn53 #-}-happyOut53 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut53 #-}-happyIn54 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn54 #-}-happyOut54 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut54 #-}-happyIn55 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn55 #-}-happyOut55 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut55 #-}-happyIn56 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn56 #-}-happyOut56 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut56 #-}-happyIn57 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn57 #-}-happyOut57 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut57 #-}-happyIn58 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn58 #-}-happyOut58 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut58 #-}-happyIn59 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn59 #-}-happyOut59 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut59 #-}-happyIn60 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn60 #-}-happyOut60 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut60 #-}-happyIn61 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn61 #-}-happyOut61 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut61 #-}-happyIn62 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn62 #-}-happyOut62 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut62 #-}-happyIn63 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn63 #-}-happyOut63 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut63 #-}-happyIn64 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn64 #-}-happyOut64 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut64 #-}-happyIn65 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn65 #-}-happyOut65 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut65 #-}-happyIn66 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn66 #-}-happyOut66 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut66 #-}-happyIn67 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn67 #-}-happyOut67 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut67 #-}-happyIn68 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn68 #-}-happyOut68 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut68 #-}-happyIn69 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn69 #-}-happyOut69 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut69 #-}-happyIn70 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn70 #-}-happyOut70 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut70 #-}-happyIn71 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn71 #-}-happyOut71 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut71 #-}-happyIn72 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn72 #-}-happyOut72 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut72 #-}-happyIn73 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn73 #-}-happyOut73 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut73 #-}-happyIn74 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn74 #-}-happyOut74 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut74 #-}-happyIn75 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn75 #-}-happyOut75 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut75 #-}-happyIn76 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn76 #-}-happyOut76 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut76 #-}-happyIn77 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn77 #-}-happyOut77 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut77 #-}-happyIn78 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn78 #-}-happyOut78 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut78 #-}-happyIn79 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn79 #-}-happyOut79 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut79 #-}-happyIn80 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn80 #-}-happyOut80 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut80 #-}-happyIn81 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn81 #-}-happyOut81 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut81 #-}-happyIn82 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn82 #-}-happyOut82 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut82 #-}-happyIn83 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn83 #-}-happyOut83 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut83 #-}-happyIn84 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn84 #-}-happyOut84 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut84 #-}-happyIn85 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn85 #-}-happyOut85 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut85 #-}-happyIn86 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn86 #-}-happyOut86 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut86 #-}-happyIn87 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn87 #-}-happyOut87 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut87 #-}-happyIn88 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn88 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn88 #-}-happyOut88 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut88 #-}-happyIn89 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn89 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn89 #-}-happyOut89 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut89 #-}-happyIn90 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn90 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn90 #-}-happyOut90 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut90 #-}-happyIn91 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn91 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn91 #-}-happyOut91 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut91 #-}-happyIn92 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn92 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn92 #-}-happyOut92 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut92 #-}-happyIn93 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn93 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn93 #-}-happyOut93 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut93 #-}-happyIn94 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn94 #-}-happyOut94 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut94 #-}-happyIn95 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn95 #-}-happyOut95 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut95 #-}-happyIn96 :: ([AST.JSNode]) -> (HappyAbsSyn )-happyIn96 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn96 #-}-happyOut96 :: (HappyAbsSyn ) -> ([AST.JSNode])-happyOut96 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut96 #-}-happyIn97 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn97 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn97 #-}-happyOut97 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut97 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut97 #-}-happyIn98 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn98 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn98 #-}-happyOut98 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut98 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut98 #-}-happyIn99 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn99 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn99 #-}-happyOut99 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut99 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut99 #-}-happyIn100 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn100 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn100 #-}-happyOut100 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut100 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut100 #-}-happyIn101 :: (AST.JSNode) -> (HappyAbsSyn )-happyIn101 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn101 #-}-happyOut101 :: (HappyAbsSyn ) -> (AST.JSNode)-happyOut101 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut101 #-}-happyInTok :: (Token) -> (HappyAbsSyn )-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyInTok #-}-happyOutTok :: (HappyAbsSyn ) -> (Token)-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOutTok #-}---happyActOffsets :: HappyAddr-happyActOffsets = HappyA# "\x2d\x1b\xa4\x02\x9e\x1d\xf6\x1a\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x02\x00\x00\x00\x00\x4f\x01\x00\x00\x49\x01\x1d\x00\xcc\x01\x00\x00\xee\x00\xb9\x01\xe9\x00\xab\x03\x9d\x01\x77\x02\x70\x02\x6b\x02\x6a\x02\x13\x01\x00\x00\x00\x00\x6f\x02\x25\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\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\xc1\x1c\x16\x18\x66\x1d\x37\x00\x65\x00\x37\x00\x6e\x02\x66\x1d\xf6\x1a\x00\x00\x49\x02\x65\x00\x00\x00\x48\x02\x82\x1d\x00\x00\x64\x1b\x00\x00\x44\x02\x00\x00\x66\x1d\x00\x00\x41\x02\x66\x1d\x65\x00\x66\x1d\x43\x02\x40\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x02\x00\x00\xf1\x1d\x17\x02\x00\x00\x00\x00\x17\x02\xbf\x1a\x00\x00\x65\x00\x3d\x02\x37\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x5b\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\xd2\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x1d\x66\x1d\x00\x00\x00\x00\x51\x02\xca\x01\x00\x00\x00\x00\xfc\xff\x3e\x19\x57\x02\x66\x1d\x00\x00\xc5\x01\x07\x01\x00\x00\x66\x1d\x00\x00\x2f\x1d\x11\x02\x00\x00\x00\x00\x00\x00\x54\x02\xc3\x01\x00\x00\x54\x02\xcb\x00\x4f\x02\x47\x02\x46\x02\x00\x00\x07\x19\xca\x17\xd0\x18\x65\x00\xd0\x18\x99\x18\x66\x1d\x88\x1a\x42\x02\x21\x02\xaf\x00\x20\x02\x82\x1d\x3f\x02\x62\x18\x1d\x02\x3c\x02\x66\x1d\x3a\x02\x12\x02\x66\x1d\x65\x00\x66\x1d\x0e\x02\x0c\x02\x7b\x00\x8a\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x00\x00\x00\x00\x66\x1d\x00\x00\x00\x00\x00\x00\x19\x1e\x66\x1d\xf8\x1c\x00\x00\x19\x1e\x66\x1d\x88\x1a\x00\x00\x2b\x00\x00\x00\x7d\x17\x2e\x17\xca\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x00\xee\x00\xa4\x01\xa4\x01\xa4\x01\xe9\x00\xe9\x00\xe9\x00\xe9\x00\xe9\x00\xe9\x00\xab\x03\xab\x03\xab\x03\xab\x03\x9d\x01\x26\x02\x22\x02\x24\x02\x23\x02\x1f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x53\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x01\x02\x06\x00\xe9\x00\x39\x03\x7a\x01\x1b\x02\x1a\x02\x13\x02\x15\x02\x0c\x01\x00\x00\x00\x00\x14\x02\x10\x02\x65\x00\xc6\x00\x00\x00\x00\x00\xb6\x00\xdf\x16\x00\x00\xfc\xff\x00\x00\x00\x00\xf1\x01\xf2\x01\x00\x00\x00\x00\x66\x1d\xa9\x00\xa1\x00\xef\x01\xee\x01\x66\x1d\xc8\x1d\x00\x00\xb8\x00\x74\x00\x00\x00\x8e\x00\xed\x01\x69\x00\xec\x01\x00\x00\x00\x00\x00\x00\xe4\x01\x65\x00\x88\x1a\x88\x1a\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\xe1\x01\x51\x1a\xfe\x01\xaf\x01\xce\x01\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x00\x00\x1c\x1c\x00\x00\x00\x00\x66\x1d\x00\x00\x66\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x14\x00\x1d\x00\x00\x00\xe9\x00\xe9\x00\xe9\x00\xe9\x00\xe9\x00\xab\x03\xab\x03\xab\x03\xab\x03\x7a\x01\xff\x01\xfd\x01\xfa\x01\xf7\x01\xfb\x01\x00\x00\xf9\x01\xf8\x01\x66\x1d\x66\x1d\x65\x00\x00\x00\x66\x1d\xf6\x01\xbc\x01\x00\x00\x00\x00\xcd\x01\x75\x00\x00\x00\xe6\x01\x00\x00\xc0\x01\xcb\x01\x1a\x1a\x65\x00\xc6\x01\x1a\x1a\xc4\x01\x1a\x1a\xb1\x01\x1a\x1a\x00\x00\x1a\x1a\x00\x00\xaa\x01\x1a\x1a\xbe\x01\x00\x00\xb4\x01\x66\x1d\xe8\x00\x00\x00\x66\x1d\x00\x00\xe3\x19\x00\x00\x00\x00\x00\x00\xab\x01\x0e\x00\x66\x1d\x66\x1d\xe3\x19\xa0\x01\x00\x00\x00\x00\x00\x00\x80\x01\xe3\x19\x66\x1d\x00\x00\x2e\x00\x00\x00\x7b\x01\x00\x00\x99\x01\x5d\x01\x00\x00\xac\x19\x7c\x01\x00\x00\x78\x01\x00\x00\x00\x00\x76\x01\x00\x00\x00\x00\x00\x00\x74\x01\x56\x01\x75\x19\xd1\x00\x75\x19\x51\x01\x00\x00\x75\x19\x00\x00\x75\x19\x75\x19\x00\x00\x75\x19\x00\x00\x00\x00\x00\x00\x00\x00"#--happyGotoOffsets :: HappyAddr-happyGotoOffsets = HappyA# "\x35\x02\xb2\x01\xcc\x17\x48\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x01\x00\x00\x4a\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x16\x9c\x16\x80\x16\x61\x16\x45\x16\x29\x16\xf4\x0a\x81\x03\xc7\x0d\xe1\x00\x8f\x00\xdf\x00\x47\x01\x0a\x16\xf1\x08\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\xd7\x16\x00\x00\x50\x03\x00\x00\x00\x00\x00\x00\x96\x0d\x00\x00\x0e\x01\xee\x15\x51\x00\xd2\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x09\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x02\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x01\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\x00\x00\x00\x00\x00\x00\x65\x0d\x34\x0d\x00\x00\x00\x00\x05\x01\x41\x01\x00\x00\x00\x00\x06\x01\x86\x04\x00\x00\x03\x0d\x00\x00\x3f\x01\x28\x01\x00\x00\xd2\x0c\x00\x00\xc1\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x01\x39\x01\x00\x00\x2c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x08\x00\x00\xb2\x00\x4d\x00\x96\x00\x24\x01\xb3\x15\x43\x08\x00\x00\x00\x00\x02\x00\x00\x00\xd7\x16\x00\x00\x50\x03\x00\x00\x00\x00\xa1\x0c\x00\x00\xe3\x00\x97\x15\x47\x00\x7b\x15\x00\x00\x00\x00\x00\x00\x48\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x10\xee\x0f\xcc\x10\x23\x11\x7a\x11\xc8\x11\x0e\x12\x12\x13\xf0\x12\xd1\x12\xaf\x12\x76\x14\x57\x14\x35\x14\x16\x14\xf4\x13\xd5\x13\xcd\x14\xae\x14\x92\x14\x05\x15\xe9\x14\x5c\x15\x40\x15\x24\x15\x00\x00\x00\x00\xc1\x0f\x00\x00\x00\x00\x00\x00\x86\x01\x70\x0c\x43\x0c\x00\x00\x5e\x01\x12\x0c\xec\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\xd2\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x95\x07\x00\x00\x36\x01\x00\x00\x00\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x94\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x0f\xde\x16\x00\x00\x0f\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x3e\x07\xe7\x06\x00\x00\x00\x00\xdb\x00\x00\x00\x00\x00\x00\x00\x87\x00\x9f\x09\x78\x00\x00\x00\x00\x00\x8f\x0a\x38\x0f\x0a\x0f\xa0\x10\xf7\x10\x4e\x11\xa5\x11\xeb\x11\x90\x12\x6e\x12\x4f\x12\x2d\x12\xb3\x13\x94\x13\x72\x13\x53\x13\x31\x13\xdc\x0e\xb4\x0b\x83\x0b\x00\x00\xae\x0e\x00\x00\x00\x00\x81\x0e\x00\x00\x54\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x0b\x5c\x0a\x07\x00\x00\x00\x25\x0e\x00\x00\x0a\x00\x00\x00\x00\x00\xe4\x00\x00\x00\x00\x00\x85\x00\x00\x00\x00\x00\x00\x00\xd7\x01\x34\x00\x00\x00\x79\x01\x00\x00\x1b\x01\x00\x00\x93\x02\x00\x00\xbd\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x08\x00\x75\x10\xdc\x00\x00\x00\x21\x0b\x00\x00\x90\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x0a\xf7\x0d\x39\x06\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x05\xf6\x09\x00\x00\x00\x00\x00\x00\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\x2f\x04\xb4\xff\xd8\x03\x00\x00\x00\x00\x8b\x05\x00\x00\x34\x05\xdd\x04\x00\x00\xdd\x04\x00\x00\x00\x00\x00\x00\x00\x00"#--happyDefActions :: HappyAddr-happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xeb\xff\xf9\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xaa\xff\xec\xff\xea\xff\xe9\xff\xa5\xff\x9b\xff\x9a\xff\x99\xff\x96\xff\x8c\xff\x86\xff\x82\xff\x81\xff\x74\xff\x6a\xff\x66\xff\x62\xff\x5e\xff\x5a\xff\x56\xff\x52\xff\x4c\xff\x21\xff\x00\x00\x44\xff\x42\xff\x41\xff\x43\xff\x40\xff\x3f\xff\x3e\xff\x3d\xff\x3c\xff\x3b\xff\x3a\xff\x38\xff\x39\xff\x37\xff\x36\xff\x35\xff\xa9\xff\x22\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\x00\x00\x00\x00\xf2\xff\x00\x00\xf3\xfe\xe6\xff\x00\x00\x00\x00\xf4\xff\xfa\xff\xe5\xff\x00\x00\xed\xff\x00\x00\xf3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xff\xf1\xff\xf0\xff\xef\xff\xee\xff\x00\x00\xec\xff\x00\x00\x00\x00\xe9\xfe\xe8\xfe\x00\x00\xee\xfe\xeb\xfe\xf3\xfe\x00\x00\x00\x00\xea\xfe\xac\xff\xad\xff\xe4\xff\xae\xff\x00\x00\xb3\xff\x00\x00\xb6\xff\xe3\xff\xe2\xff\xe1\xff\xe0\xff\xdf\xff\xde\xff\xdd\xff\xdc\xff\xdb\xff\xda\xff\xd9\xff\xd8\xff\xd7\xff\xd6\xff\xd5\xff\xe6\xff\xd3\xff\xd2\xff\xd1\xff\xd0\xff\xcf\xff\xce\xff\xe5\xff\xcc\xff\xcb\xff\xca\xff\xc9\xff\xc8\xff\xc7\xff\xc6\xff\xc5\xff\xc4\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x99\xff\x94\xff\x28\xff\xfa\xff\x2c\xff\x93\xff\x00\x00\x00\x00\x02\xff\x00\x00\x10\xff\xfa\xff\xa5\xff\xa4\xff\x00\x00\xf4\xfe\x45\xff\x00\x00\x95\xff\xf9\xfe\x14\xff\xfa\xff\xfa\xff\x12\xff\xfa\xff\x00\x00\xf7\xff\xf6\xff\xec\xff\x30\xff\x00\x00\xb6\xff\xe3\xff\xe0\xff\xdf\xff\xde\xff\xdc\xff\xdb\xff\xf2\xff\xd6\xff\xd5\xff\xd3\xff\xd0\xff\xf4\xff\xce\xff\xcc\xff\xed\xff\xca\xff\xf3\xff\xc8\xff\xc7\xff\xc6\xff\xc5\xff\xc4\xff\xc3\xff\x00\x00\x00\x00\xbb\xff\xb8\xff\xc1\xff\x8e\xff\x8d\xff\x8f\xff\x90\xff\x91\xff\x92\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\x98\xff\x97\xff\x00\x00\x4d\xff\x4e\xff\xa2\xff\x00\x00\x00\x00\x00\x00\xa3\xff\x00\x00\x00\x00\x00\x00\x03\xff\x00\x00\xa7\xff\xd4\xff\xcd\xff\x00\x00\x9d\xff\x9f\xff\x00\x00\xa0\xff\x51\xff\x89\xff\x8a\xff\x8b\xff\x87\xff\x88\xff\x84\xff\x83\xff\x85\xff\x7c\xff\x7b\xff\x7f\xff\x7d\xff\x80\xff\x7e\xff\x72\xff\x70\xff\x73\xff\x71\xff\x69\xff\x65\xff\x61\xff\x5d\xff\x59\xff\x00\x00\x4b\xff\xbc\xff\xb7\xff\xc0\xff\x00\x00\xbf\xff\x2f\xff\x33\xff\xe8\xff\x11\xff\x2d\xff\x00\x00\x13\xff\x00\x00\x99\xff\x7a\xff\x6f\xff\x68\xff\x64\xff\x60\xff\x5c\xff\x58\xff\x54\xff\x50\xff\x4a\xff\x46\xff\x00\x00\x00\x00\x00\x00\xa6\xff\x0f\xff\x00\x00\x00\x00\x32\xff\x01\xff\xfe\xfe\x00\xff\x00\x00\x00\x00\x2e\xff\x27\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\xff\x00\x00\x00\x00\xf2\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xb2\xff\xb4\xff\xb1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x24\xff\xfa\xfe\x00\x00\xfd\xfe\xff\xfe\x31\xff\x00\x00\x00\x00\x25\xff\x00\x00\x2a\xff\x47\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\x2b\xff\x00\x00\xb9\xff\xbd\xff\x00\x00\xa1\xff\x00\x00\x9e\xff\xa8\xff\x9c\xff\x55\xff\xba\xff\xbe\xff\x00\x00\x00\x00\x99\xff\x4f\xff\x75\xff\x78\xff\x76\xff\x79\xff\x77\xff\x6d\xff\x6b\xff\x6e\xff\x6c\xff\x67\xff\x63\xff\x5f\xff\x5b\xff\x57\xff\x00\x00\x49\xff\x48\xff\x00\x00\x00\x00\x47\xff\x00\x00\x26\xff\x00\x00\x1c\xff\x1e\xff\x1b\xff\x0d\xff\x08\xff\x00\x00\x19\xff\xfa\xff\xab\xff\x00\x00\x00\x00\xef\xfe\x00\x00\x00\x00\xef\xfe\x00\x00\xef\xfe\x00\x00\xf0\xfe\xed\xfe\xef\xfe\xf1\xfe\x00\x00\xef\xfe\x00\x00\x0e\xff\x00\x00\x00\x00\x00\x00\x0a\xff\x00\x00\x20\xff\x00\x00\x1d\xff\x23\xff\x29\xff\x00\x00\x00\x00\x47\xff\x00\x00\x00\x00\xfa\xff\x1a\xff\x16\xff\x53\xff\x00\x00\x00\x00\x47\xff\x1f\xff\x00\x00\x09\xff\x08\xff\x0c\xff\x00\x00\x00\x00\xfc\xfe\xef\xfe\x00\x00\xf6\xfe\x00\x00\xec\xfe\xf7\xfe\x00\x00\xf8\xfe\xf5\xfe\xb0\xff\x00\x00\x00\x00\x05\xff\x00\x00\x06\xff\x00\x00\x15\xff\x00\x00\x18\xff\x00\x00\x07\xff\x0b\xff\x04\xff\xfb\xfe\xaf\xff\x17\xff"#--happyCheck :: HappyAddr-happyCheck = HappyA# "\xff\xff\x4d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x08\x00\x0a\x00\x08\x00\x08\x00\x0d\x00\x08\x00\x02\x00\x08\x00\x0c\x00\x12\x00\x13\x00\x14\x00\x02\x00\x08\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x08\x00\x1f\x00\x02\x00\x21\x00\x37\x00\x23\x00\x29\x00\x25\x00\x00\x00\x27\x00\x0c\x00\x29\x00\x02\x00\x2b\x00\x02\x00\x2d\x00\x33\x00\x02\x00\x30\x00\x04\x00\x25\x00\x08\x00\x34\x00\x35\x00\x36\x00\x01\x00\x25\x00\x39\x00\x08\x00\x08\x00\x11\x00\x38\x00\x37\x00\x21\x00\x40\x00\x41\x00\x42\x00\x3d\x00\x3c\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x21\x00\x43\x00\x25\x00\x08\x00\x4f\x00\x50\x00\x51\x00\x4d\x00\x02\x00\x08\x00\x55\x00\x56\x00\x57\x00\x08\x00\x58\x00\x5a\x00\x58\x00\x5c\x00\x59\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x59\x00\x0a\x00\x4d\x00\x02\x00\x0d\x00\x36\x00\x3b\x00\x58\x00\x3d\x00\x12\x00\x13\x00\x14\x00\x3d\x00\x23\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x02\x00\x1f\x00\x48\x00\x21\x00\x3a\x00\x23\x00\x3c\x00\x25\x00\x00\x00\x27\x00\x3a\x00\x29\x00\x3c\x00\x2b\x00\x3a\x00\x2d\x00\x3c\x00\x25\x00\x30\x00\x02\x00\x4c\x00\x4d\x00\x34\x00\x35\x00\x36\x00\x00\x00\x08\x00\x39\x00\x25\x00\x25\x00\x36\x00\x21\x00\x2f\x00\x08\x00\x40\x00\x41\x00\x42\x00\x3d\x00\x02\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x02\x00\x37\x00\x48\x00\x4f\x00\x50\x00\x51\x00\x3d\x00\x00\x00\x25\x00\x55\x00\x56\x00\x57\x00\x3f\x00\x02\x00\x5a\x00\x08\x00\x5c\x00\x48\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x25\x00\x0a\x00\x02\x00\x3a\x00\x0d\x00\x3c\x00\x02\x00\x02\x00\x25\x00\x12\x00\x13\x00\x14\x00\x4b\x00\x24\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x25\x00\x1f\x00\x25\x00\x21\x00\x00\x00\x23\x00\x00\x00\x25\x00\x08\x00\x27\x00\x36\x00\x29\x00\x08\x00\x2b\x00\x08\x00\x2d\x00\x25\x00\x3d\x00\x30\x00\x36\x00\x25\x00\x25\x00\x34\x00\x35\x00\x36\x00\x23\x00\x3d\x00\x39\x00\x48\x00\x0f\x00\x28\x00\x37\x00\x12\x00\x13\x00\x40\x00\x41\x00\x42\x00\x48\x00\x2f\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x1a\x00\x1b\x00\x1c\x00\x23\x00\x4f\x00\x50\x00\x51\x00\x03\x00\x28\x00\x05\x00\x55\x00\x56\x00\x57\x00\x2d\x00\x03\x00\x5a\x00\x05\x00\x5c\x00\x37\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x00\x00\x0a\x00\x1f\x00\x20\x00\x0d\x00\x4d\x00\x4e\x00\x24\x00\x00\x00\x12\x00\x13\x00\x14\x00\x4c\x00\x4d\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1f\x00\x00\x00\x21\x00\x15\x00\x23\x00\x00\x00\x25\x00\x00\x00\x27\x00\x3e\x00\x29\x00\x37\x00\x2b\x00\x00\x00\x2d\x00\x04\x00\x05\x00\x30\x00\x2f\x00\x08\x00\x09\x00\x34\x00\x35\x00\x36\x00\x04\x00\x05\x00\x39\x00\x10\x00\x08\x00\x09\x00\x52\x00\x53\x00\x54\x00\x40\x00\x41\x00\x42\x00\x10\x00\x15\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x08\x00\x09\x00\x1f\x00\x20\x00\x4f\x00\x50\x00\x51\x00\x24\x00\x1f\x00\x20\x00\x55\x00\x56\x00\x57\x00\x24\x00\x15\x00\x5a\x00\x25\x00\x5c\x00\x22\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x25\x00\x0a\x00\x0a\x00\x0b\x00\x0d\x00\x0d\x00\x0e\x00\x53\x00\x54\x00\x12\x00\x13\x00\x14\x00\x08\x00\x09\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x23\x00\x1f\x00\x23\x00\x21\x00\x23\x00\x23\x00\x04\x00\x25\x00\x23\x00\x27\x00\x01\x00\x29\x00\x28\x00\x2b\x00\x25\x00\x2d\x00\x0a\x00\x0b\x00\x30\x00\x0d\x00\x0e\x00\x01\x00\x34\x00\x35\x00\x36\x00\x01\x00\x02\x00\x39\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x40\x00\x41\x00\x42\x00\x18\x00\x19\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x01\x00\x02\x00\x01\x00\x02\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x02\x00\x23\x00\x55\x00\x56\x00\x57\x00\x18\x00\x19\x00\x5a\x00\x23\x00\x5c\x00\x22\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x22\x00\x0a\x00\x16\x00\x17\x00\x0d\x00\x25\x00\x22\x00\x01\x00\x22\x00\x12\x00\x13\x00\x14\x00\x30\x00\x22\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x28\x00\x1f\x00\x01\x00\x21\x00\x01\x00\x23\x00\x02\x00\x25\x00\x06\x00\x27\x00\x04\x00\x29\x00\x07\x00\x2b\x00\x22\x00\x2d\x00\x08\x00\x38\x00\x30\x00\x09\x00\x25\x00\x0c\x00\x34\x00\x35\x00\x36\x00\x22\x00\x22\x00\x39\x00\x01\x00\x24\x00\x24\x00\x22\x00\x24\x00\x02\x00\x40\x00\x41\x00\x42\x00\x07\x00\x06\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x08\x00\x04\x00\x09\x00\x24\x00\x4f\x00\x50\x00\x51\x00\x06\x00\x08\x00\x07\x00\x55\x00\x56\x00\x57\x00\x09\x00\x24\x00\x5a\x00\x24\x00\x5c\x00\x22\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x04\x00\x0a\x00\x04\x00\x24\x00\x0d\x00\x04\x00\x24\x00\x24\x00\x04\x00\x12\x00\x13\x00\x14\x00\x04\x00\x04\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x04\x00\x1f\x00\x01\x00\x21\x00\x46\x00\x23\x00\x02\x00\x25\x00\x24\x00\x27\x00\x0c\x00\x29\x00\x04\x00\x2b\x00\x24\x00\x2d\x00\x22\x00\x24\x00\x30\x00\x4f\x00\x24\x00\x24\x00\x34\x00\x35\x00\x36\x00\x24\x00\x24\x00\x39\x00\x01\x00\x06\x00\x02\x00\x07\x00\x01\x00\x4f\x00\x40\x00\x41\x00\x42\x00\x08\x00\x04\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x09\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x57\x00\xff\xff\xff\xff\xff\xff\x5b\x00\xff\xff\x5d\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x32\x00\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\x3b\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x41\x00\xff\xff\xff\xff\x55\x00\x56\x00\x57\x00\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x57\x00\x10\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x5e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\x39\x00\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\x38\x00\x39\x00\x10\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\x38\x00\x39\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\x04\x00\x05\x00\x35\x00\x36\x00\x08\x00\x09\x00\x39\x00\xff\xff\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x57\x00\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x57\x00\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x57\x00\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\x57\x00\x26\x00\xff\xff\x28\x00\xff\xff\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x57\x00\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\x57\x00\x28\x00\xff\xff\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\x28\x00\x57\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\x57\x00\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\x28\x00\x57\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\x28\x00\x57\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\x28\x00\x57\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\x57\x00\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x57\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\x57\x00\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\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\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\x57\x00\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x57\x00\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\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\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\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\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\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\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\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\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\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\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\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\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\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\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\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\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\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\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\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\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\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\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\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\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\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\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\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\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x01\x00\x0a\x00\x04\x00\x05\x00\x0d\x00\xff\xff\x08\x00\x09\x00\xff\xff\x12\x00\x13\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\x57\x00\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x57\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\xff\xff\x27\x00\x28\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\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\xff\xff\x4f\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\xff\xff\x27\x00\x28\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\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\x01\x00\x4f\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\x28\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\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\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\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\x01\x00\x4e\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\x00\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\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\x04\x00\xff\xff\x4e\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\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\x02\x00\xff\xff\x4e\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\x21\x00\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\x02\x00\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\x21\x00\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\x02\x00\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\x21\x00\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\x02\x00\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\x21\x00\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\x20\x00\x3d\x00\x22\x00\x3f\x00\x24\x00\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\x20\x00\x3d\x00\x22\x00\x3f\x00\x24\x00\x41\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x23\x00\xff\xff\xff\xff\xff\xff\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\x23\x00\xff\xff\x4e\x00\xff\xff\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\xff\xff\xff\xff\x4e\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\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"#--happyTable :: HappyAddr-happyTable = HappyA# "\x00\x00\xd9\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xa5\x00\x0e\x00\x67\x00\x54\x01\x0f\x00\x68\x01\xd9\x00\x98\x00\xf5\x00\x10\x00\x11\x00\x12\x00\xd9\x00\x54\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xa5\x00\x1a\x00\xd9\x00\x1b\x00\xf6\x01\x1c\x00\x47\x01\x1d\x00\xd1\x01\x1e\x00\xf5\x00\x1f\x00\xd9\x00\x20\x00\xd9\x00\x21\x00\x48\x01\xd9\x00\x22\x00\xee\x01\xd6\x01\xaf\x01\x61\x00\x24\x00\x25\x00\x06\x00\xd0\x01\x26\x00\x68\x01\xbc\x01\xb0\x01\x7e\x01\xde\x01\x85\x01\x27\x00\x28\x00\x29\x00\xca\x01\x7f\x01\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x88\x01\xc6\x01\xd1\x01\x98\x00\x30\x00\x31\x00\x32\x00\xf6\x00\x51\x01\x98\x00\x33\x00\x62\x00\x34\x00\x98\x00\x68\x00\xe9\x01\x68\x00\xb9\x01\x55\x01\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x57\x01\x0e\x00\xf6\x00\xb4\x01\x0f\x00\x49\x00\x69\x01\x68\x00\x6a\x01\x10\x00\x11\x00\x12\x00\x4e\x00\x52\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x26\x01\x1a\x00\x59\x00\x1b\x00\x99\x00\x1c\x00\x9a\x00\x1d\x00\xc0\x01\x1e\x00\xac\x00\x1f\x00\x9a\x00\x20\x00\x99\x00\x21\x00\x9a\x00\xb5\x01\x22\x00\xb4\x01\xec\x01\xc4\x01\x61\x00\x24\x00\x25\x00\xaa\x00\x98\x00\x26\x00\x57\x01\xc2\x01\x49\x00\x27\x01\x7c\x01\xab\x00\x27\x00\x28\x00\x29\x00\x4e\x00\xd9\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x49\x00\xd9\x00\xc3\x01\x59\x00\x30\x00\x31\x00\x32\x00\x4e\x00\xad\x00\xb7\x01\x33\x00\x62\x00\x34\x00\xa5\x01\xd9\x00\xe0\x01\xae\x00\xb9\x01\x59\x00\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x5f\x01\x0e\x00\xd9\x00\xac\x00\x0f\x00\x9a\x00\x86\x01\xd9\x00\x60\x01\x10\x00\x11\x00\x12\x00\xaa\x01\xf3\xfe\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x67\x01\x1a\x00\x59\x01\x1b\x00\xaa\x00\x1c\x00\xad\x00\x1d\x00\xac\x01\x1e\x00\x49\x00\x1f\x00\xab\x00\x20\x00\xae\x00\x21\x00\x68\x01\x4e\x00\x22\x00\x49\x00\x87\x01\x2a\x01\x61\x00\x24\x00\x25\x00\xf5\x01\x4e\x00\x26\x00\x59\x00\xea\x00\xc6\x01\x61\x01\xeb\x00\xec\x00\x27\x00\x28\x00\x29\x00\x59\x00\x7c\x01\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xef\x00\xf0\x00\xf1\x00\xdc\x01\x30\x00\x31\x00\x32\x00\x6e\x01\xc6\x01\x6f\x01\x33\x00\x62\x00\x34\x00\xdd\x01\xda\x00\xe2\x01\xdb\x00\xb9\x01\x9c\x00\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xa9\x00\x0e\x00\xfc\x00\xfd\x00\x0f\x00\xd9\x01\xda\x01\xfa\x00\x2a\x01\x10\x00\x11\x00\x12\x00\xc3\x01\xc4\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x2b\x01\x1a\x00\x2d\x01\x1b\x00\x3e\x01\x1c\x00\x3f\x01\x1d\x00\x48\x01\x1e\x00\x49\x01\x1f\x00\x9c\x00\x20\x00\xa9\x00\x21\x00\x6a\x00\x6b\x00\x22\x00\xf3\x00\x6c\x00\x6d\x00\x61\x00\x24\x00\x25\x00\x6a\x00\x6b\x00\x26\x00\x4d\x01\x6c\x00\x6d\x00\x43\x01\x44\x01\x45\x01\x27\x00\x28\x00\x29\x00\x4e\x01\xf6\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x6c\x00\x00\x01\xf8\x00\xf9\x00\x30\x00\x31\x00\x32\x00\xfa\x00\xfc\x00\xfd\x00\x33\x00\x62\x00\x34\x00\xfa\x00\xfa\x00\xe5\x01\xf3\x01\xb9\x01\x9e\x00\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xeb\x01\x0e\x00\x74\x01\x75\x01\x0f\x00\x76\x01\x77\x01\x63\x01\x64\x01\x10\x00\x11\x00\x12\x00\x6c\x00\x07\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xf8\x01\x1a\x00\xe7\x01\x1b\x00\xe8\x01\x1c\x00\xec\x01\x1d\x00\xe9\x01\x1e\x00\x06\x00\x1f\x00\xc6\x01\x20\x00\xf1\x01\x21\x00\xe0\x00\xe1\x00\x22\x00\xe2\x00\xe3\x00\xd7\x01\x61\x00\x24\x00\x25\x00\xa4\x01\xa5\x01\x26\x00\x60\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x27\x00\x28\x00\x29\x00\xed\x00\xee\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x06\x00\x2d\x01\x06\x00\xd9\x00\x30\x00\x31\x00\x32\x00\x06\x00\x2d\x01\xe2\x01\x33\x00\x62\x00\x34\x00\xed\x00\xee\x00\xb8\x01\xe5\x01\xb9\x01\x9e\x00\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xe0\x01\x0e\x00\xf2\x00\xf3\x00\x0f\x00\xc0\x01\xb8\x01\x06\x00\xbc\x01\x10\x00\x11\x00\x12\x00\xc8\x01\xbf\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xc6\x01\x1a\x00\xc9\x01\x1b\x00\xce\x01\x1c\x00\xd9\x00\x1d\x00\x70\x01\x1e\x00\xcf\x01\x1f\x00\x71\x01\x20\x00\xac\x01\x21\x00\x72\x01\xa3\x01\x22\x00\x73\x01\xb2\x01\xa7\x01\x61\x00\x24\x00\x25\x00\xb3\x01\xb6\x01\x26\x00\x6c\x01\x5d\x01\x5e\x01\x9e\x00\x63\x01\x6d\x01\x27\x00\x28\x00\x29\x00\x71\x01\x70\x01\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x72\x01\x84\x01\x73\x01\x7f\x01\x30\x00\x31\x00\x32\x00\xdc\x00\xde\x00\xdd\x00\x33\x00\x62\x00\x34\x00\xdf\x00\x95\x00\xbd\x01\x96\x00\xb9\x01\x9e\x00\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xc9\xff\x0e\x00\xcb\xff\xa0\x00\x0f\x00\xcf\xff\xa5\x00\xa7\x00\xd8\xff\x10\x00\x11\x00\x12\x00\xfe\x00\xad\xff\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xac\xff\x1a\x00\x06\x00\x1b\x00\x2f\x01\x1c\x00\xd9\x00\x1d\x00\x53\x01\x1e\x00\x4b\x01\x1f\x00\x50\x01\x20\x00\x54\x01\x21\x00\x9e\x00\x95\x00\x22\x00\xff\xff\x96\x00\xa0\x00\x61\x00\x24\x00\x25\x00\xa5\x00\xa7\x00\x26\x00\x06\x00\xdc\x00\xd9\x00\xdd\x00\x06\x00\xff\xff\x27\x00\x28\x00\x29\x00\xde\x00\xfe\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xdf\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x62\x00\x34\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x64\x00\x65\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x61\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x46\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x52\x00\x00\x00\x00\x00\x33\x00\x62\x00\x34\x00\x00\x00\x00\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\xe3\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x61\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x62\x00\x34\x00\x78\x01\x79\x01\x00\x00\x00\x00\x7a\x01\x7b\x01\x69\x00\xa0\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x7c\x01\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xa1\x00\x00\x00\x06\x00\x07\x00\x08\x00\xb0\x00\xb1\x00\x0b\x00\x0c\x00\xb2\x00\x6d\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x24\x00\x25\x00\x00\x00\xb4\x00\x26\x00\xe4\x00\xe5\x00\x00\x00\x00\x00\xe6\x00\xe7\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\xe8\x00\xe9\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x24\x00\x25\x00\x00\x00\xf3\x01\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x24\x00\x25\x00\x00\x00\xf5\x01\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x24\x00\x25\x00\x00\x00\x41\x01\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x27\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xf1\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xef\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xd2\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xd7\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xad\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xae\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x27\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xa7\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x27\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xa7\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x6a\x00\x6b\x00\xa7\x01\x25\x00\x6c\x00\x6d\x00\x26\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x28\x00\x29\x00\x00\x00\xa8\x01\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xa0\x01\x00\x00\xee\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x34\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xa0\x01\x00\x00\xd4\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x34\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xa0\x01\x00\x00\xcb\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x34\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xa0\x01\x00\x00\xa1\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x2f\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x34\x00\x35\x01\x00\x00\x36\x01\x00\x00\x37\x01\x00\x00\x38\x01\x00\x00\x39\x01\x00\x00\x00\x00\x3a\x01\x00\x00\x3b\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\xcd\x00\xce\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x34\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\xcf\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xd8\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xcc\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x8c\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x8d\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x80\x01\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x81\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xff\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x03\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x04\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x06\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x3d\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x40\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x4b\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xaf\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x8e\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x34\x00\x36\x01\x00\x00\x37\x01\x00\x00\x38\x01\x00\x00\xd3\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x8e\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x00\x00\x36\x01\x34\x00\x37\x01\x00\x00\x38\x01\x00\x00\xc9\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x34\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x88\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x89\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x8a\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x8e\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x00\x00\x36\x01\x34\x00\x37\x01\x00\x00\x38\x01\x00\x00\x8f\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x8e\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x00\x00\x36\x01\x34\x00\x37\x01\x00\x00\x38\x01\x00\x00\x9e\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x8e\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x00\x00\x36\x01\x34\x00\x37\x01\x00\x00\x38\x01\x00\x00\x9f\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x34\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x5b\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x60\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x08\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x20\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x21\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x22\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\xdd\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x00\x00\x9d\x01\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1f\x01\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x9c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x9b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x9a\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x34\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1c\x01\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x34\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x99\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x34\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1b\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x34\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x95\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x96\x01\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x97\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x98\x01\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x17\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x18\x01\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x1a\x01\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x90\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x91\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x92\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x93\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x94\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x11\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x12\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x13\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x14\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x15\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x16\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x0e\x01\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x0f\x01\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x10\x01\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x0c\x01\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x09\x01\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x0a\x01\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x0b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x97\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x9b\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x97\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x9b\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd2\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd3\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd5\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd6\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x36\x00\x0e\x00\x6a\x00\x6b\x00\x0f\x00\x00\x00\x6c\x00\x6d\x00\x00\x00\xa2\x00\xa3\x00\x00\x00\x00\x00\x59\x01\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x66\x01\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x34\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x00\x00\x00\x00\x34\x00\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\x00\x00\xcd\xff\xcd\xff\x00\x00\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\x00\x00\xcd\xff\x00\x00\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\x00\x00\xcd\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\x00\x00\xd4\xff\xd4\xff\x00\x00\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\x00\x00\xd4\xff\x00\x00\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\x34\xff\xd4\xff\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x5d\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\xff\x34\xff\x34\xff\x34\xff\x00\x00\x00\x00\x00\x00\x34\xff\x34\xff\x00\x00\x34\xff\x00\x00\x34\xff\x34\xff\x34\xff\x00\x00\x00\x00\x34\xff\x34\xff\x00\x00\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x00\x00\x34\xff\x00\x00\x34\xff\x34\xff\x34\xff\x34\xff\x00\x00\x00\x00\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x36\x00\x00\x00\x34\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\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\xb6\x00\x3f\x00\x00\x00\x00\x00\xb7\x00\x74\x00\x75\x00\xb8\x00\xb9\x00\xba\x00\x79\x00\xbb\x00\xbc\x00\x7c\x00\x7d\x00\xbd\x00\x7f\x00\xbe\x00\xbf\x00\x82\x00\xc0\x00\x84\x00\x85\x00\xc1\x00\xc2\x00\xc3\x00\x89\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x06\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x60\x00\xfa\xff\x3f\x00\x00\x00\x00\x00\xfa\xff\x00\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\x44\x00\xfa\xff\x00\x00\x00\x00\x46\x00\x00\x00\xfa\xff\x48\x00\x49\x00\xfa\xff\x06\x00\x00\x00\x4b\x00\x4c\x00\xfa\xff\x4e\x00\xfa\xff\x50\x00\xfa\xff\x52\x00\xfa\xff\x54\x00\xfa\xff\x56\x00\xfa\xff\xfa\xff\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x00\x00\x00\x00\x00\x00\xfa\xff\xfa\xff\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\x00\x00\xfa\xff\x00\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\xfa\xff\xfa\xff\x00\x00\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x06\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x00\x00\x00\x00\x00\x00\xfa\xff\xfa\xff\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\x00\x00\xfa\xff\x00\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\xfa\xff\xfa\xff\x00\x00\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\x49\x00\xfa\xff\x36\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\x4e\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x59\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x29\x01\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x43\x01\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x67\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x67\x00\x49\x00\x4a\x00\xaa\x01\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x67\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x67\x00\x49\x00\x4a\x00\x06\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xff\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\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\x02\x01\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x03\x01\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xd4\xff\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x02\x01\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x03\x01\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x24\x01\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x8c\x01\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\xd1\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x83\x01\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x24\x01\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x25\x01\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\xd1\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\xd2\x00\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x60\x00\x00\x00\x3f\x00\x06\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x3d\x01\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x3d\x00\x4e\x00\x60\x00\x50\x00\x3f\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x3d\x00\x4e\x00\x60\x00\x50\x00\x3f\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x00\x00\x46\x00\x00\x00\x00\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5b\x01\x00\x00\x00\x00\x00\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\x59\x00\x5a\x00\x5b\x00\x5c\x00\x72\x00\x00\x00\x94\x00\x00\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\x59\x00\x5a\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x94\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\x02\x01\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x03\x01\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (4, 279) [-	(4 , happyReduce_4),-	(5 , happyReduce_5),-	(6 , happyReduce_6),-	(7 , happyReduce_7),-	(8 , happyReduce_8),-	(9 , happyReduce_9),-	(10 , happyReduce_10),-	(11 , happyReduce_11),-	(12 , happyReduce_12),-	(13 , happyReduce_13),-	(14 , happyReduce_14),-	(15 , happyReduce_15),-	(16 , happyReduce_16),-	(17 , happyReduce_17),-	(18 , happyReduce_18),-	(19 , happyReduce_19),-	(20 , happyReduce_20),-	(21 , happyReduce_21),-	(22 , happyReduce_22),-	(23 , happyReduce_23),-	(24 , happyReduce_24),-	(25 , happyReduce_25),-	(26 , happyReduce_26),-	(27 , happyReduce_27),-	(28 , happyReduce_28),-	(29 , happyReduce_29),-	(30 , happyReduce_30),-	(31 , happyReduce_31),-	(32 , happyReduce_32),-	(33 , happyReduce_33),-	(34 , happyReduce_34),-	(35 , happyReduce_35),-	(36 , happyReduce_36),-	(37 , happyReduce_37),-	(38 , happyReduce_38),-	(39 , happyReduce_39),-	(40 , happyReduce_40),-	(41 , happyReduce_41),-	(42 , happyReduce_42),-	(43 , happyReduce_43),-	(44 , happyReduce_44),-	(45 , happyReduce_45),-	(46 , happyReduce_46),-	(47 , happyReduce_47),-	(48 , happyReduce_48),-	(49 , happyReduce_49),-	(50 , happyReduce_50),-	(51 , happyReduce_51),-	(52 , happyReduce_52),-	(53 , happyReduce_53),-	(54 , happyReduce_54),-	(55 , happyReduce_55),-	(56 , happyReduce_56),-	(57 , happyReduce_57),-	(58 , happyReduce_58),-	(59 , happyReduce_59),-	(60 , happyReduce_60),-	(61 , happyReduce_61),-	(62 , happyReduce_62),-	(63 , happyReduce_63),-	(64 , happyReduce_64),-	(65 , happyReduce_65),-	(66 , happyReduce_66),-	(67 , happyReduce_67),-	(68 , happyReduce_68),-	(69 , happyReduce_69),-	(70 , happyReduce_70),-	(71 , happyReduce_71),-	(72 , happyReduce_72),-	(73 , happyReduce_73),-	(74 , happyReduce_74),-	(75 , happyReduce_75),-	(76 , happyReduce_76),-	(77 , happyReduce_77),-	(78 , happyReduce_78),-	(79 , happyReduce_79),-	(80 , happyReduce_80),-	(81 , happyReduce_81),-	(82 , happyReduce_82),-	(83 , happyReduce_83),-	(84 , happyReduce_84),-	(85 , happyReduce_85),-	(86 , happyReduce_86),-	(87 , happyReduce_87),-	(88 , happyReduce_88),-	(89 , happyReduce_89),-	(90 , happyReduce_90),-	(91 , happyReduce_91),-	(92 , happyReduce_92),-	(93 , happyReduce_93),-	(94 , happyReduce_94),-	(95 , happyReduce_95),-	(96 , happyReduce_96),-	(97 , happyReduce_97),-	(98 , happyReduce_98),-	(99 , happyReduce_99),-	(100 , happyReduce_100),-	(101 , happyReduce_101),-	(102 , happyReduce_102),-	(103 , happyReduce_103),-	(104 , happyReduce_104),-	(105 , happyReduce_105),-	(106 , happyReduce_106),-	(107 , happyReduce_107),-	(108 , happyReduce_108),-	(109 , happyReduce_109),-	(110 , happyReduce_110),-	(111 , happyReduce_111),-	(112 , happyReduce_112),-	(113 , happyReduce_113),-	(114 , happyReduce_114),-	(115 , happyReduce_115),-	(116 , happyReduce_116),-	(117 , happyReduce_117),-	(118 , happyReduce_118),-	(119 , happyReduce_119),-	(120 , happyReduce_120),-	(121 , happyReduce_121),-	(122 , happyReduce_122),-	(123 , happyReduce_123),-	(124 , happyReduce_124),-	(125 , happyReduce_125),-	(126 , happyReduce_126),-	(127 , happyReduce_127),-	(128 , happyReduce_128),-	(129 , happyReduce_129),-	(130 , happyReduce_130),-	(131 , happyReduce_131),-	(132 , happyReduce_132),-	(133 , happyReduce_133),-	(134 , happyReduce_134),-	(135 , happyReduce_135),-	(136 , happyReduce_136),-	(137 , happyReduce_137),-	(138 , happyReduce_138),-	(139 , happyReduce_139),-	(140 , happyReduce_140),-	(141 , happyReduce_141),-	(142 , happyReduce_142),-	(143 , happyReduce_143),-	(144 , happyReduce_144),-	(145 , happyReduce_145),-	(146 , happyReduce_146),-	(147 , happyReduce_147),-	(148 , happyReduce_148),-	(149 , happyReduce_149),-	(150 , happyReduce_150),-	(151 , happyReduce_151),-	(152 , happyReduce_152),-	(153 , happyReduce_153),-	(154 , happyReduce_154),-	(155 , happyReduce_155),-	(156 , happyReduce_156),-	(157 , happyReduce_157),-	(158 , happyReduce_158),-	(159 , happyReduce_159),-	(160 , happyReduce_160),-	(161 , happyReduce_161),-	(162 , happyReduce_162),-	(163 , happyReduce_163),-	(164 , happyReduce_164),-	(165 , happyReduce_165),-	(166 , happyReduce_166),-	(167 , happyReduce_167),-	(168 , happyReduce_168),-	(169 , happyReduce_169),-	(170 , happyReduce_170),-	(171 , happyReduce_171),-	(172 , happyReduce_172),-	(173 , happyReduce_173),-	(174 , happyReduce_174),-	(175 , happyReduce_175),-	(176 , happyReduce_176),-	(177 , happyReduce_177),-	(178 , happyReduce_178),-	(179 , happyReduce_179),-	(180 , happyReduce_180),-	(181 , happyReduce_181),-	(182 , happyReduce_182),-	(183 , happyReduce_183),-	(184 , happyReduce_184),-	(185 , happyReduce_185),-	(186 , happyReduce_186),-	(187 , happyReduce_187),-	(188 , happyReduce_188),-	(189 , happyReduce_189),-	(190 , happyReduce_190),-	(191 , happyReduce_191),-	(192 , happyReduce_192),-	(193 , happyReduce_193),-	(194 , happyReduce_194),-	(195 , happyReduce_195),-	(196 , happyReduce_196),-	(197 , happyReduce_197),-	(198 , happyReduce_198),-	(199 , happyReduce_199),-	(200 , happyReduce_200),-	(201 , happyReduce_201),-	(202 , happyReduce_202),-	(203 , happyReduce_203),-	(204 , happyReduce_204),-	(205 , happyReduce_205),-	(206 , happyReduce_206),-	(207 , happyReduce_207),-	(208 , happyReduce_208),-	(209 , happyReduce_209),-	(210 , happyReduce_210),-	(211 , happyReduce_211),-	(212 , happyReduce_212),-	(213 , happyReduce_213),-	(214 , happyReduce_214),-	(215 , happyReduce_215),-	(216 , happyReduce_216),-	(217 , happyReduce_217),-	(218 , happyReduce_218),-	(219 , happyReduce_219),-	(220 , happyReduce_220),-	(221 , happyReduce_221),-	(222 , happyReduce_222),-	(223 , happyReduce_223),-	(224 , happyReduce_224),-	(225 , happyReduce_225),-	(226 , happyReduce_226),-	(227 , happyReduce_227),-	(228 , happyReduce_228),-	(229 , happyReduce_229),-	(230 , happyReduce_230),-	(231 , happyReduce_231),-	(232 , happyReduce_232),-	(233 , happyReduce_233),-	(234 , happyReduce_234),-	(235 , happyReduce_235),-	(236 , happyReduce_236),-	(237 , happyReduce_237),-	(238 , happyReduce_238),-	(239 , happyReduce_239),-	(240 , happyReduce_240),-	(241 , happyReduce_241),-	(242 , happyReduce_242),-	(243 , happyReduce_243),-	(244 , happyReduce_244),-	(245 , happyReduce_245),-	(246 , happyReduce_246),-	(247 , happyReduce_247),-	(248 , happyReduce_248),-	(249 , happyReduce_249),-	(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)-	]--happy_n_terms = 80 :: Int-happy_n_nonterms = 95 :: Int--happyReduce_4 = happySpecReduce_1  0# happyReduction_4-happyReduction_4 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn7-		 (AST.NS (AST.JSLiteral ";") (ss happy_var_1)-	)}--happyReduce_5 = happySpecReduce_0  0# happyReduction_5-happyReduction_5  =  happyIn7-		 (AST.NS (AST.JSLiteral "") SpanEmpty-	)--happyReduce_6 = happySpecReduce_1  1# happyReduction_6-happyReduction_6 happy_x_1-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> -	happyIn8-		 (happy_var_1-	)}--happyReduce_7 = happySpecReduce_1  1# happyReduction_7-happyReduction_7 happy_x_1-	 =  case happyOut10 happy_x_1 of { happy_var_1 -> -	happyIn8-		 (happy_var_1-	)}--happyReduce_8 = happySpecReduce_1  1# happyReduction_8-happyReduction_8 happy_x_1-	 =  case happyOut11 happy_x_1 of { happy_var_1 -> -	happyIn8-		 (happy_var_1-	)}--happyReduce_9 = happySpecReduce_1  1# happyReduction_9-happyReduction_9 happy_x_1-	 =  case happyOut12 happy_x_1 of { happy_var_1 -> -	happyIn8-		 (happy_var_1-	)}--happyReduce_10 = happySpecReduce_1  1# happyReduction_10-happyReduction_10 happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	happyIn8-		 (happy_var_1-	)}--happyReduce_11 = happySpecReduce_1  2# happyReduction_11-happyReduction_11 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn9-		 (AST.NS (AST.JSLiteral "null") (ss happy_var_1)-	)}--happyReduce_12 = happySpecReduce_1  3# happyReduction_12-happyReduction_12 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn10-		 (AST.NS (AST.JSLiteral "true")  (ss happy_var_1)-	)}--happyReduce_13 = happySpecReduce_1  3# happyReduction_13-happyReduction_13 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn10-		 (AST.NS (AST.JSLiteral "false") (ss happy_var_1)-	)}--happyReduce_14 = happySpecReduce_1  4# happyReduction_14-happyReduction_14 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn11-		 (AST.NS (AST.JSDecimal (token_literal happy_var_1)) (ss happy_var_1)-	)}--happyReduce_15 = happySpecReduce_1  4# happyReduction_15-happyReduction_15 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn11-		 (AST.NS (AST.JSHexInteger (token_literal happy_var_1)) (ss happy_var_1)-	)}--happyReduce_16 = happySpecReduce_1  5# happyReduction_16-happyReduction_16 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn12-		 (AST.NS (AST.JSStringLiteral (token_delimiter happy_var_1) (token_literal happy_var_1)) (ss happy_var_1)-	)}--happyReduce_17 = happySpecReduce_1  6# happyReduction_17-happyReduction_17 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn13-		 (AST.NS (AST.JSRegEx (token_literal happy_var_1)) (ss happy_var_1)-	)}--happyReduce_18 = happySpecReduce_1  7# happyReduction_18-happyReduction_18 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn14-		 (AST.NS (AST.JSLiteral "this") (ss happy_var_1)-	)}--happyReduce_19 = happySpecReduce_1  7# happyReduction_19-happyReduction_19 happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	happyIn14-		 (happy_var_1 {- PrimaryExpression1 -}-	)}--happyReduce_20 = happySpecReduce_1  7# happyReduction_20-happyReduction_20 happy_x_1-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> -	happyIn14-		 (happy_var_1 {- PrimaryExpression2 -}-	)}--happyReduce_21 = happySpecReduce_1  7# happyReduction_21-happyReduction_21 happy_x_1-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> -	happyIn14-		 (happy_var_1 {- PrimaryExpression3 -}-	)}--happyReduce_22 = happySpecReduce_1  7# happyReduction_22-happyReduction_22 happy_x_1-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> -	happyIn14-		 (happy_var_1 {- PrimaryExpression4 -}-	)}--happyReduce_23 = happySpecReduce_3  7# happyReduction_23-happyReduction_23 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut55 happy_x_2 of { happy_var_2 -> -	happyIn14-		 (AST.NS (AST.JSExpressionParen happy_var_2) (ss happy_var_1)-	)}}--happyReduce_24 = happySpecReduce_1  8# happyReduction_24-happyReduction_24 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn15-		 (AST.NS (AST.JSIdentifier (token_literal happy_var_1)) (ss happy_var_1)-	)}--happyReduce_25 = happySpecReduce_1  8# happyReduction_25-happyReduction_25 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn15-		 (AST.NS (AST.JSIdentifier "get") (ss happy_var_1)-	)}--happyReduce_26 = happySpecReduce_1  8# happyReduction_26-happyReduction_26 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn15-		 (AST.NS (AST.JSIdentifier "set") (ss happy_var_1)-	)}--happyReduce_27 = happySpecReduce_1  9# happyReduction_27-happyReduction_27 happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	happyIn16-		 (happy_var_1-	)}--happyReduce_28 = happySpecReduce_1  9# happyReduction_28-happyReduction_28 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "break") (ss happy_var_1)-	)}--happyReduce_29 = happySpecReduce_1  9# happyReduction_29-happyReduction_29 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "case") (ss happy_var_1)-	)}--happyReduce_30 = happySpecReduce_1  9# happyReduction_30-happyReduction_30 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "catch") (ss happy_var_1)-	)}--happyReduce_31 = happySpecReduce_1  9# happyReduction_31-happyReduction_31 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "const") (ss happy_var_1)-	)}--happyReduce_32 = happySpecReduce_1  9# happyReduction_32-happyReduction_32 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "continue") (ss happy_var_1)-	)}--happyReduce_33 = happySpecReduce_1  9# happyReduction_33-happyReduction_33 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "debugger") (ss happy_var_1)-	)}--happyReduce_34 = happySpecReduce_1  9# happyReduction_34-happyReduction_34 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "default") (ss happy_var_1)-	)}--happyReduce_35 = happySpecReduce_1  9# happyReduction_35-happyReduction_35 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "delete") (ss happy_var_1)-	)}--happyReduce_36 = happySpecReduce_1  9# happyReduction_36-happyReduction_36 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "do") (ss happy_var_1)-	)}--happyReduce_37 = happySpecReduce_1  9# happyReduction_37-happyReduction_37 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "else") (ss happy_var_1)-	)}--happyReduce_38 = happySpecReduce_1  9# happyReduction_38-happyReduction_38 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "enum") (ss happy_var_1)-	)}--happyReduce_39 = happySpecReduce_1  9# happyReduction_39-happyReduction_39 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "false") (ss happy_var_1)-	)}--happyReduce_40 = happySpecReduce_1  9# happyReduction_40-happyReduction_40 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "finally") (ss happy_var_1)-	)}--happyReduce_41 = happySpecReduce_1  9# happyReduction_41-happyReduction_41 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "for")  (ss happy_var_1)-	)}--happyReduce_42 = happySpecReduce_1  9# happyReduction_42-happyReduction_42 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "function") (ss happy_var_1)-	)}--happyReduce_43 = happySpecReduce_1  9# happyReduction_43-happyReduction_43 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "get") (ss happy_var_1)-	)}--happyReduce_44 = happySpecReduce_1  9# happyReduction_44-happyReduction_44 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "if") (ss happy_var_1)-	)}--happyReduce_45 = happySpecReduce_1  9# happyReduction_45-happyReduction_45 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "in") (ss happy_var_1)-	)}--happyReduce_46 = happySpecReduce_1  9# happyReduction_46-happyReduction_46 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "instanceof") (ss happy_var_1)-	)}--happyReduce_47 = happySpecReduce_1  9# happyReduction_47-happyReduction_47 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "new") (ss happy_var_1)-	)}--happyReduce_48 = happySpecReduce_1  9# happyReduction_48-happyReduction_48 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "null") (ss happy_var_1)-	)}--happyReduce_49 = happySpecReduce_1  9# happyReduction_49-happyReduction_49 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "return") (ss happy_var_1)-	)}--happyReduce_50 = happySpecReduce_1  9# happyReduction_50-happyReduction_50 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "set") (ss happy_var_1)-	)}--happyReduce_51 = happySpecReduce_1  9# happyReduction_51-happyReduction_51 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "switch") (ss happy_var_1)-	)}--happyReduce_52 = happySpecReduce_1  9# happyReduction_52-happyReduction_52 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "this") (ss happy_var_1)-	)}--happyReduce_53 = happySpecReduce_1  9# happyReduction_53-happyReduction_53 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "throw") (ss happy_var_1)-	)}--happyReduce_54 = happySpecReduce_1  9# happyReduction_54-happyReduction_54 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "true") (ss happy_var_1)-	)}--happyReduce_55 = happySpecReduce_1  9# happyReduction_55-happyReduction_55 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "try") (ss happy_var_1)-	)}--happyReduce_56 = happySpecReduce_1  9# happyReduction_56-happyReduction_56 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "typeof") (ss happy_var_1)-	)}--happyReduce_57 = happySpecReduce_1  9# happyReduction_57-happyReduction_57 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "var") (ss happy_var_1)-	)}--happyReduce_58 = happySpecReduce_1  9# happyReduction_58-happyReduction_58 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "void") (ss happy_var_1)-	)}--happyReduce_59 = happySpecReduce_1  9# happyReduction_59-happyReduction_59 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "while") (ss happy_var_1)-	)}--happyReduce_60 = happySpecReduce_1  9# happyReduction_60-happyReduction_60 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier "with") (ss happy_var_1)-	)}--happyReduce_61 = happySpecReduce_1  9# happyReduction_61-happyReduction_61 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn16-		 (AST.NS (AST.JSIdentifier (token_literal happy_var_1)) (ss happy_var_1)-	)}--happyReduce_62 = happySpecReduce_2  10# happyReduction_62-happyReduction_62 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn17-		 (AST.NS (AST.JSArrayLiteral []) (ss happy_var_1)-	)}--happyReduce_63 = happySpecReduce_3  10# happyReduction_63-happyReduction_63 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut19 happy_x_2 of { happy_var_2 -> -	happyIn17-		 (AST.NS (AST.JSArrayLiteral happy_var_2) (ss happy_var_1)-	)}}--happyReduce_64 = happySpecReduce_3  10# happyReduction_64-happyReduction_64 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut18 happy_x_2 of { happy_var_2 -> -	happyIn17-		 (AST.NS (AST.JSArrayLiteral happy_var_2) (ss happy_var_1)-	)}}--happyReduce_65 = happyReduce 5# 10# happyReduction_65-happyReduction_65 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut18 happy_x_2 of { happy_var_2 -> -	case happyOut19 happy_x_4 of { happy_var_4 -> -	happyIn17-		 (AST.NS (AST.JSArrayLiteral (happy_var_2++happy_var_4)) (ss happy_var_1)-	) `HappyStk` happyRest}}}--happyReduce_66 = happyReduce 4# 10# happyReduction_66-happyReduction_66 (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 happyOut18 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { happy_var_3 -> -	happyIn17-		 (AST.NS (AST.JSArrayLiteral (happy_var_2++[AST.NS (AST.JSLiteral ",") (ss happy_var_3)])) (ss happy_var_1)-	) `HappyStk` happyRest}}}--happyReduce_67 = happySpecReduce_2  11# happyReduction_67-happyReduction_67 happy_x_2-	happy_x_1-	 =  case happyOut19 happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_2 of { happy_var_2 -> -	happyIn18-		 (((happy_var_1)++(happy_var_2)) {- ElementList -}-	)}}--happyReduce_68 = happySpecReduce_1  11# happyReduction_68-happyReduction_68 happy_x_1-	 =  case happyOut52 happy_x_1 of { happy_var_1 -> -	happyIn18-		 (happy_var_1 {- ElementList -}-	)}--happyReduce_69 = happyReduce 4# 11# happyReduction_69-happyReduction_69 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { happy_var_2 -> -	case happyOut19 happy_x_3 of { happy_var_3 -> -	case happyOut52 happy_x_4 of { happy_var_4 -> -	happyIn18-		 (((happy_var_1)++[(AST.NS (AST.JSElision []) (ss happy_var_2))]++(happy_var_3)++(happy_var_4)) {- ElementList -}-	) `HappyStk` happyRest}}}}--happyReduce_70 = happySpecReduce_3  11# happyReduction_70-happyReduction_70 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { happy_var_2 -> -	case happyOut52 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (((happy_var_1)++[(AST.NS (AST.JSElision []) (ss happy_var_2))]++(happy_var_3)) {- ElementList -}-	)}}}--happyReduce_71 = happySpecReduce_1  12# happyReduction_71-happyReduction_71 happy_x_1-	 =  happyIn19-		 ([AST.NS (AST.JSElision []) SpanEmpty]-	)--happyReduce_72 = happySpecReduce_2  12# happyReduction_72-happyReduction_72 happy_x_2-	happy_x_1-	 =  case happyOut19 happy_x_1 of { happy_var_1 -> -	happyIn19-		 ((happy_var_1 ++ [(AST.NS (AST.JSElision []) SpanEmpty)])-	)}--happyReduce_73 = happySpecReduce_2  13# happyReduction_73-happyReduction_73 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn20-		 (AST.NS (AST.JSObjectLiteral []) (ss happy_var_1)-	)}--happyReduce_74 = happySpecReduce_3  13# happyReduction_74-happyReduction_74 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut21 happy_x_2 of { happy_var_2 -> -	happyIn20-		 (AST.NS (AST.JSObjectLiteral happy_var_2) (ss happy_var_1)-	)}}--happyReduce_75 = happyReduce 4# 13# happyReduction_75-happyReduction_75 (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 happyOut21 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { happy_var_3 -> -	happyIn20-		 (AST.NS (AST.JSObjectLiteral (happy_var_2++[AST.NS (AST.JSLiteral ",") (ss happy_var_3)])) (ss happy_var_1)-	) `HappyStk` happyRest}}}--happyReduce_76 = happySpecReduce_1  14# happyReduction_76-happyReduction_76 happy_x_1-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> -	happyIn21-		 ([happy_var_1] {- PropertyNameandValueList1 -}-	)}--happyReduce_77 = happySpecReduce_3  14# happyReduction_77-happyReduction_77 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut21 happy_x_1 of { happy_var_1 -> -	case happyOut22 happy_x_3 of { happy_var_3 -> -	happyIn21-		 ((happy_var_1 ++ [happy_var_3]) {- PropertyNameandValueList2 -}-	)}}--happyReduce_78 = happySpecReduce_3  15# happyReduction_78-happyReduction_78 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_3 of { happy_var_3 -> -	happyIn22-		 ((AST.NS (AST.JSPropertyNameandValue happy_var_1 happy_var_3) (ex happy_var_1))-	)}}--happyReduce_79 = happyReduce 7# 15# happyReduction_79-happyReduction_79 (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 happyOut23 happy_x_2 of { happy_var_2 -> -	case happyOut97 happy_x_6 of { happy_var_6 -> -	happyIn22-		 ((AST.NS (AST.JSPropertyAccessor "get" happy_var_2 [] happy_var_6) (ss happy_var_1))-	) `HappyStk` happyRest}}}--happyReduce_80 = happyReduce 8# 15# happyReduction_80-happyReduction_80 (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 happyOut23 happy_x_2 of { happy_var_2 -> -	case happyOut24 happy_x_4 of { happy_var_4 -> -	case happyOut97 happy_x_7 of { happy_var_7 -> -	happyIn22-		 ((AST.NS (AST.JSPropertyAccessor "set" happy_var_2 [happy_var_4] happy_var_7) (ss happy_var_1))-	) `HappyStk` happyRest}}}}--happyReduce_81 = happySpecReduce_1  16# happyReduction_81-happyReduction_81 happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	happyIn23-		 (happy_var_1 {- PropertyName1 -}-	)}--happyReduce_82 = happySpecReduce_1  16# happyReduction_82-happyReduction_82 happy_x_1-	 =  case happyOut12 happy_x_1 of { happy_var_1 -> -	happyIn23-		 (happy_var_1 {- PropertyName2 -}-	)}--happyReduce_83 = happySpecReduce_1  16# happyReduction_83-happyReduction_83 happy_x_1-	 =  case happyOut11 happy_x_1 of { happy_var_1 -> -	happyIn23-		 (happy_var_1 {- PropertyName3 -}-	)}--happyReduce_84 = happySpecReduce_1  17# happyReduction_84-happyReduction_84 happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	happyIn24-		 (happy_var_1 {- PropertySetParameterList -}-	)}--happyReduce_85 = happySpecReduce_1  18# happyReduction_85-happyReduction_85 happy_x_1-	 =  case happyOut14 happy_x_1 of { happy_var_1 -> -	happyIn25-		 ([happy_var_1] {- MemberExpression -}-	)}--happyReduce_86 = happySpecReduce_1  18# happyReduction_86-happyReduction_86 happy_x_1-	 =  case happyOut94 happy_x_1 of { happy_var_1 -> -	happyIn25-		 ([happy_var_1] {- MemberExpression -}-	)}--happyReduce_87 = happyReduce 4# 18# happyReduction_87-happyReduction_87 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut25 happy_x_1 of { happy_var_1 -> -	case happyOut55 happy_x_3 of { happy_var_3 -> -	happyIn25-		 ([AST.NS (AST.JSMemberSquare happy_var_1 happy_var_3) (mex happy_var_1)]-	) `HappyStk` happyRest}}--happyReduce_88 = happySpecReduce_3  18# happyReduction_88-happyReduction_88 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> -	case happyOut16 happy_x_3 of { happy_var_3 -> -	happyIn25-		 ([AST.NS (AST.JSMemberDot happy_var_1 happy_var_3) (mex happy_var_1)]-	)}}--happyReduce_89 = happySpecReduce_3  18# happyReduction_89-happyReduction_89 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut25 happy_x_2 of { happy_var_2 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn25-		 ((((AST.NS (AST.JSLiteral "new ") (ss happy_var_1)):happy_var_2)++[happy_var_3])-	)}}}--happyReduce_90 = happySpecReduce_1  19# happyReduction_90-happyReduction_90 happy_x_1-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> -	happyIn26-		 (happy_var_1 {- NewExpression -}-	)}--happyReduce_91 = happySpecReduce_2  19# happyReduction_91-happyReduction_91 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut26 happy_x_2 of { happy_var_2 -> -	happyIn26-		 ((AST.NS (AST.JSLiteral "new ") (ss happy_var_1)):happy_var_2-	)}}--happyReduce_92 = happySpecReduce_2  20# happyReduction_92-happyReduction_92 happy_x_2-	happy_x_1-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { happy_var_2 -> -	happyIn27-		 (happy_var_1++[happy_var_2] {- CallExpression -}-	)}}--happyReduce_93 = happySpecReduce_2  20# happyReduction_93-happyReduction_93 happy_x_2-	happy_x_1-	 =  case happyOut27 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { happy_var_2 -> -	happyIn27-		 ((happy_var_1++[(AST.NS (AST.JSCallExpression "()" [happy_var_2]) (mex happy_var_1))])-	)}}--happyReduce_94 = happyReduce 4# 20# happyReduction_94-happyReduction_94 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut27 happy_x_1 of { happy_var_1 -> -	case happyOut55 happy_x_3 of { happy_var_3 -> -	happyIn27-		 ((happy_var_1++[(AST.NS (AST.JSCallExpression "[]" [happy_var_3]) (mex happy_var_1))])-	) `HappyStk` happyRest}}--happyReduce_95 = happySpecReduce_3  20# happyReduction_95-happyReduction_95 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut27 happy_x_1 of { happy_var_1 -> -	case happyOut16 happy_x_3 of { happy_var_3 -> -	happyIn27-		 ((happy_var_1++[(AST.NS (AST.JSCallExpression "."  [happy_var_3]) (mex happy_var_1))])-	)}}--happyReduce_96 = happySpecReduce_2  21# happyReduction_96-happyReduction_96 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn28-		 ((AST.NS (AST.JSArguments []) (ss happy_var_1))-	)}--happyReduce_97 = happySpecReduce_3  21# happyReduction_97-happyReduction_97 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut29 happy_x_2 of { happy_var_2 -> -	happyIn28-		 ((AST.NS (AST.JSArguments happy_var_2) (ss happy_var_1))-	)}}--happyReduce_98 = happySpecReduce_1  22# happyReduction_98-happyReduction_98 happy_x_1-	 =  case happyOut52 happy_x_1 of { happy_var_1 -> -	happyIn29-		 ([happy_var_1] {- ArgumentList -}-	)}--happyReduce_99 = happySpecReduce_3  22# happyReduction_99-happyReduction_99 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_3 of { happy_var_3 -> -	happyIn29-		 (happy_var_1++[happy_var_3] {- ArgumentList2 -}-	)}}--happyReduce_100 = happySpecReduce_1  23# happyReduction_100-happyReduction_100 happy_x_1-	 =  case happyOut26 happy_x_1 of { happy_var_1 -> -	happyIn30-		 (happy_var_1 {- LeftHandSideExpression1 -}-	)}--happyReduce_101 = happySpecReduce_1  23# happyReduction_101-happyReduction_101 happy_x_1-	 =  case happyOut27 happy_x_1 of { happy_var_1 -> -	happyIn30-		 (happy_var_1 {- LeftHandSideExpression12 -}-	)}--happyReduce_102 = happySpecReduce_1  24# happyReduction_102-happyReduction_102 happy_x_1-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> -	happyIn31-		 (happy_var_1 {- PostfixExpression -}-	)}--happyReduce_103 = happySpecReduce_2  24# happyReduction_103-happyReduction_103 happy_x_2-	happy_x_1-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> -	happyIn31-		 ([(AST.NS (AST.JSExpressionPostfix "++" happy_var_1) (mex happy_var_1))]-	)}--happyReduce_104 = happySpecReduce_2  24# happyReduction_104-happyReduction_104 happy_x_2-	happy_x_1-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> -	happyIn31-		 ([(AST.NS (AST.JSExpressionPostfix "--" happy_var_1) (mex happy_var_1))]-	)}--happyReduce_105 = happySpecReduce_1  25# happyReduction_105-happyReduction_105 happy_x_1-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> -	happyIn32-		 (happy_var_1 {- UnaryExpression -}-	)}--happyReduce_106 = happySpecReduce_2  25# happyReduction_106-happyReduction_106 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_2 of { happy_var_2 -> -	happyIn32-		 (((AST.NS (AST.JSUnary "delete ") (ss happy_var_1)):happy_var_2)-	)}}--happyReduce_107 = happySpecReduce_2  25# happyReduction_107-happyReduction_107 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_2 of { happy_var_2 -> -	happyIn32-		 (((AST.NS (AST.JSUnary "void ") (ss happy_var_1)):happy_var_2)-	)}}--happyReduce_108 = happySpecReduce_2  25# happyReduction_108-happyReduction_108 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_2 of { happy_var_2 -> -	happyIn32-		 (((AST.NS (AST.JSUnary "typeof ") (ss happy_var_1)):happy_var_2)-	)}}--happyReduce_109 = happySpecReduce_2  25# happyReduction_109-happyReduction_109 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_2 of { happy_var_2 -> -	happyIn32-		 (((AST.NS (AST.JSUnary "++") (ss happy_var_1)):happy_var_2)-	)}}--happyReduce_110 = happySpecReduce_2  25# happyReduction_110-happyReduction_110 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_2 of { happy_var_2 -> -	happyIn32-		 (((AST.NS (AST.JSUnary "--") (ss happy_var_1)):happy_var_2)-	)}}--happyReduce_111 = happySpecReduce_2  25# happyReduction_111-happyReduction_111 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_2 of { happy_var_2 -> -	happyIn32-		 (((AST.NS (AST.JSUnary "+") (ss happy_var_1)):happy_var_2)-	)}}--happyReduce_112 = happySpecReduce_2  25# happyReduction_112-happyReduction_112 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_2 of { happy_var_2 -> -	happyIn32-		 (((AST.NS (AST.JSUnary "-") (ss happy_var_1)):happy_var_2)-	)}}--happyReduce_113 = happySpecReduce_2  25# happyReduction_113-happyReduction_113 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_2 of { happy_var_2 -> -	happyIn32-		 (((AST.NS (AST.JSUnary "~") (ss happy_var_1)):happy_var_2)-	)}}--happyReduce_114 = happySpecReduce_2  25# happyReduction_114-happyReduction_114 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_2 of { happy_var_2 -> -	happyIn32-		 (((AST.NS (AST.JSUnary "!") (ss happy_var_1)):happy_var_2)-	)}}--happyReduce_115 = happySpecReduce_1  26# happyReduction_115-happyReduction_115 happy_x_1-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> -	happyIn33-		 (happy_var_1 {- MultiplicativeExpression -}-	)}--happyReduce_116 = happySpecReduce_3  26# happyReduction_116-happyReduction_116 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_3 of { happy_var_3 -> -	happyIn33-		 ([(AST.NS (AST.JSExpressionBinary "*" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_117 = happySpecReduce_3  26# happyReduction_117-happyReduction_117 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_3 of { happy_var_3 -> -	happyIn33-		 ([(AST.NS (AST.JSExpressionBinary "/" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_118 = happySpecReduce_3  26# happyReduction_118-happyReduction_118 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> -	case happyOut32 happy_x_3 of { happy_var_3 -> -	happyIn33-		 ([(AST.NS (AST.JSExpressionBinary "%" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_119 = happySpecReduce_3  27# happyReduction_119-happyReduction_119 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> -	case happyOut33 happy_x_3 of { happy_var_3 -> -	happyIn34-		 ([(AST.NS (AST.JSExpressionBinary "+" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_120 = happySpecReduce_3  27# happyReduction_120-happyReduction_120 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> -	case happyOut33 happy_x_3 of { happy_var_3 -> -	happyIn34-		 ([(AST.NS (AST.JSExpressionBinary "-" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_121 = happySpecReduce_1  27# happyReduction_121-happyReduction_121 happy_x_1-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> -	happyIn34-		 (happy_var_1 {- (goRegExp happy_var_1)-} {- AdditiveExpression -}-	)}--happyReduce_122 = happySpecReduce_3  28# happyReduction_122-happyReduction_122 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut35 happy_x_1 of { happy_var_1 -> -	case happyOut34 happy_x_3 of { happy_var_3 -> -	happyIn35-		 ([(AST.NS (AST.JSExpressionBinary "<<" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_123 = happySpecReduce_3  28# happyReduction_123-happyReduction_123 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut35 happy_x_1 of { happy_var_1 -> -	case happyOut34 happy_x_3 of { happy_var_3 -> -	happyIn35-		 ([(AST.NS (AST.JSExpressionBinary ">>" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_124 = happySpecReduce_3  28# happyReduction_124-happyReduction_124 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut35 happy_x_1 of { happy_var_1 -> -	case happyOut34 happy_x_3 of { happy_var_3 -> -	happyIn35-		 ([(AST.NS (AST.JSExpressionBinary ">>>" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_125 = happySpecReduce_1  28# happyReduction_125-happyReduction_125 happy_x_1-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> -	happyIn35-		 (happy_var_1 {- ShiftExpression -}-	)}--happyReduce_126 = happySpecReduce_1  29# happyReduction_126-happyReduction_126 happy_x_1-	 =  case happyOut35 happy_x_1 of { happy_var_1 -> -	happyIn36-		 (happy_var_1 {- RelationalExpression -}-	)}--happyReduce_127 = happySpecReduce_3  29# happyReduction_127-happyReduction_127 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn36-		 ([(AST.NS (AST.JSExpressionBinary "<" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_128 = happySpecReduce_3  29# happyReduction_128-happyReduction_128 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn36-		 ([(AST.NS (AST.JSExpressionBinary ">" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_129 = happySpecReduce_3  29# happyReduction_129-happyReduction_129 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn36-		 ([(AST.NS (AST.JSExpressionBinary "<=" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_130 = happySpecReduce_3  29# happyReduction_130-happyReduction_130 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn36-		 ([(AST.NS (AST.JSExpressionBinary ">=" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_131 = happySpecReduce_3  29# happyReduction_131-happyReduction_131 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn36-		 ([(AST.NS (AST.JSExpressionBinary " instanceof " happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_132 = happySpecReduce_3  29# happyReduction_132-happyReduction_132 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn36-		 ([(AST.NS (AST.JSExpressionBinary " in " happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_133 = happySpecReduce_1  30# happyReduction_133-happyReduction_133 happy_x_1-	 =  case happyOut35 happy_x_1 of { happy_var_1 -> -	happyIn37-		 (happy_var_1 {- RelationalExpressionNoIn -}-	)}--happyReduce_134 = happySpecReduce_3  30# happyReduction_134-happyReduction_134 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn37-		 ([(AST.NS (AST.JSExpressionBinary "<" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_135 = happySpecReduce_3  30# happyReduction_135-happyReduction_135 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn37-		 ([(AST.NS (AST.JSExpressionBinary ">" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_136 = happySpecReduce_3  30# happyReduction_136-happyReduction_136 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn37-		 ([(AST.NS (AST.JSExpressionBinary "<=" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_137 = happySpecReduce_3  30# happyReduction_137-happyReduction_137 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn37-		 ([(AST.NS (AST.JSExpressionBinary ">=" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_138 = happySpecReduce_3  30# happyReduction_138-happyReduction_138 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn37-		 ([(AST.NS (AST.JSExpressionBinary " instanceof " happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_139 = happySpecReduce_1  31# happyReduction_139-happyReduction_139 happy_x_1-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> -	happyIn38-		 (happy_var_1 {- EqualityExpression -}-	)}--happyReduce_140 = happySpecReduce_3  31# happyReduction_140-happyReduction_140 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	case happyOut36 happy_x_3 of { happy_var_3 -> -	happyIn38-		 ([(AST.NS (AST.JSExpressionBinary "==" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_141 = happySpecReduce_3  31# happyReduction_141-happyReduction_141 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	case happyOut36 happy_x_3 of { happy_var_3 -> -	happyIn38-		 ([(AST.NS (AST.JSExpressionBinary "!=" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_142 = happySpecReduce_3  31# happyReduction_142-happyReduction_142 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	case happyOut36 happy_x_3 of { happy_var_3 -> -	happyIn38-		 ([(AST.NS (AST.JSExpressionBinary "===" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_143 = happySpecReduce_3  31# happyReduction_143-happyReduction_143 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	case happyOut36 happy_x_3 of { happy_var_3 -> -	happyIn38-		 ([(AST.NS (AST.JSExpressionBinary "!==" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_144 = happySpecReduce_1  32# happyReduction_144-happyReduction_144 happy_x_1-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> -	happyIn39-		 (happy_var_1 {- EqualityExpressionNoIn -}-	)}--happyReduce_145 = happySpecReduce_3  32# happyReduction_145-happyReduction_145 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut39 happy_x_1 of { happy_var_1 -> -	case happyOut36 happy_x_3 of { happy_var_3 -> -	happyIn39-		 ([(AST.NS (AST.JSExpressionBinary "==" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_146 = happySpecReduce_3  32# happyReduction_146-happyReduction_146 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut39 happy_x_1 of { happy_var_1 -> -	case happyOut36 happy_x_3 of { happy_var_3 -> -	happyIn39-		 ([(AST.NS (AST.JSExpressionBinary "!=" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_147 = happySpecReduce_3  32# happyReduction_147-happyReduction_147 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut39 happy_x_1 of { happy_var_1 -> -	case happyOut36 happy_x_3 of { happy_var_3 -> -	happyIn39-		 ([(AST.NS (AST.JSExpressionBinary "===" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_148 = happySpecReduce_3  32# happyReduction_148-happyReduction_148 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut39 happy_x_1 of { happy_var_1 -> -	case happyOut36 happy_x_3 of { happy_var_3 -> -	happyIn39-		 ([(AST.NS (AST.JSExpressionBinary "!==" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_149 = happySpecReduce_1  33# happyReduction_149-happyReduction_149 happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	happyIn40-		 (happy_var_1 {- BitwiseAndExpression -}-	)}--happyReduce_150 = happySpecReduce_3  33# happyReduction_150-happyReduction_150 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut40 happy_x_1 of { happy_var_1 -> -	case happyOut38 happy_x_3 of { happy_var_3 -> -	happyIn40-		 ([(AST.NS (AST.JSExpressionBinary "&" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_151 = happySpecReduce_1  34# happyReduction_151-happyReduction_151 happy_x_1-	 =  case happyOut39 happy_x_1 of { happy_var_1 -> -	happyIn41-		 (happy_var_1 {- BitwiseAndExpression -}-	)}--happyReduce_152 = happySpecReduce_3  34# happyReduction_152-happyReduction_152 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> -	case happyOut39 happy_x_3 of { happy_var_3 -> -	happyIn41-		 ([(AST.NS (AST.JSExpressionBinary "&" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_153 = happySpecReduce_1  35# happyReduction_153-happyReduction_153 happy_x_1-	 =  case happyOut40 happy_x_1 of { happy_var_1 -> -	happyIn42-		 (happy_var_1 {- BitwiseXOrExpression -}-	)}--happyReduce_154 = happySpecReduce_3  35# happyReduction_154-happyReduction_154 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut42 happy_x_1 of { happy_var_1 -> -	case happyOut40 happy_x_3 of { happy_var_3 -> -	happyIn42-		 ([(AST.NS (AST.JSExpressionBinary "^" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_155 = happySpecReduce_1  36# happyReduction_155-happyReduction_155 happy_x_1-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> -	happyIn43-		 (happy_var_1 {- BitwiseXOrExpression -}-	)}--happyReduce_156 = happySpecReduce_3  36# happyReduction_156-happyReduction_156 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> -	case happyOut41 happy_x_3 of { happy_var_3 -> -	happyIn43-		 ([(AST.NS (AST.JSExpressionBinary "^" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_157 = happySpecReduce_1  37# happyReduction_157-happyReduction_157 happy_x_1-	 =  case happyOut42 happy_x_1 of { happy_var_1 -> -	happyIn44-		 (happy_var_1 {- BitwiseOrExpression -}-	)}--happyReduce_158 = happySpecReduce_3  37# happyReduction_158-happyReduction_158 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> -	case happyOut42 happy_x_3 of { happy_var_3 -> -	happyIn44-		 ([(AST.NS (AST.JSExpressionBinary "|" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_159 = happySpecReduce_1  38# happyReduction_159-happyReduction_159 happy_x_1-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> -	happyIn45-		 (happy_var_1 {- BitwiseOrExpression -}-	)}--happyReduce_160 = happySpecReduce_3  38# happyReduction_160-happyReduction_160 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut45 happy_x_1 of { happy_var_1 -> -	case happyOut43 happy_x_3 of { happy_var_3 -> -	happyIn45-		 ([(AST.NS (AST.JSExpressionBinary "|" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_161 = happySpecReduce_1  39# happyReduction_161-happyReduction_161 happy_x_1-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> -	happyIn46-		 (happy_var_1 {- LogicalAndExpression -}-	)}--happyReduce_162 = happySpecReduce_3  39# happyReduction_162-happyReduction_162 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut46 happy_x_1 of { happy_var_1 -> -	case happyOut44 happy_x_3 of { happy_var_3 -> -	happyIn46-		 ([(AST.NS (AST.JSExpressionBinary "&&" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_163 = happySpecReduce_1  40# happyReduction_163-happyReduction_163 happy_x_1-	 =  case happyOut45 happy_x_1 of { happy_var_1 -> -	happyIn47-		 (happy_var_1 {- LogicalAndExpression -}-	)}--happyReduce_164 = happySpecReduce_3  40# happyReduction_164-happyReduction_164 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut47 happy_x_1 of { happy_var_1 -> -	case happyOut45 happy_x_3 of { happy_var_3 -> -	happyIn47-		 ([(AST.NS (AST.JSExpressionBinary "&&" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_165 = happySpecReduce_1  41# happyReduction_165-happyReduction_165 happy_x_1-	 =  case happyOut46 happy_x_1 of { happy_var_1 -> -	happyIn48-		 (happy_var_1 {- LogicalOrExpression -}-	)}--happyReduce_166 = happySpecReduce_3  41# happyReduction_166-happyReduction_166 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> -	case happyOut46 happy_x_3 of { happy_var_3 -> -	happyIn48-		 ([(AST.NS (AST.JSExpressionBinary "||" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_167 = happySpecReduce_1  42# happyReduction_167-happyReduction_167 happy_x_1-	 =  case happyOut47 happy_x_1 of { happy_var_1 -> -	happyIn49-		 (happy_var_1 {- LogicalOrExpression -}-	)}--happyReduce_168 = happySpecReduce_3  42# happyReduction_168-happyReduction_168 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut49 happy_x_1 of { happy_var_1 -> -	case happyOut47 happy_x_3 of { happy_var_3 -> -	happyIn49-		 ([(AST.NS (AST.JSExpressionBinary "||" happy_var_1 happy_var_3) (mex happy_var_1))]-	)}}--happyReduce_169 = happySpecReduce_1  43# happyReduction_169-happyReduction_169 happy_x_1-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> -	happyIn50-		 (happy_var_1 {- ConditionalExpression -}-	)}--happyReduce_170 = happyReduce 5# 43# happyReduction_170-happyReduction_170 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut48 happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_3 of { happy_var_3 -> -	case happyOut52 happy_x_5 of { happy_var_5 -> -	happyIn50-		 ([AST.NS (AST.JSExpressionTernary happy_var_1 happy_var_3 happy_var_5) (mex happy_var_1)]-	) `HappyStk` happyRest}}}--happyReduce_171 = happySpecReduce_1  44# happyReduction_171-happyReduction_171 happy_x_1-	 =  case happyOut49 happy_x_1 of { happy_var_1 -> -	happyIn51-		 (happy_var_1 {- ConditionalExpression -}-	)}--happyReduce_172 = happyReduce 5# 44# happyReduction_172-happyReduction_172 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut49 happy_x_1 of { happy_var_1 -> -	case happyOut53 happy_x_3 of { happy_var_3 -> -	case happyOut53 happy_x_5 of { happy_var_5 -> -	happyIn51-		 ([AST.NS (AST.JSExpressionTernary happy_var_1 happy_var_3 happy_var_5) (mex happy_var_1)]-	) `HappyStk` happyRest}}}--happyReduce_173 = happySpecReduce_1  45# happyReduction_173-happyReduction_173 happy_x_1-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> -	happyIn52-		 (happy_var_1 {- AssignmentExpression -}-	)}--happyReduce_174 = happySpecReduce_3  45# happyReduction_174-happyReduction_174 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> -	case happyOut54 happy_x_2 of { happy_var_2 -> -	case happyOut52 happy_x_3 of { happy_var_3 -> -	happyIn52-		 ((happy_var_1++[happy_var_2]++happy_var_3)-	)}}}--happyReduce_175 = happySpecReduce_1  46# happyReduction_175-happyReduction_175 happy_x_1-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> -	happyIn53-		 (happy_var_1 {- AssignmentExpression -}-	)}--happyReduce_176 = happySpecReduce_3  46# happyReduction_176-happyReduction_176 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> -	case happyOut54 happy_x_2 of { happy_var_2 -> -	case happyOut53 happy_x_3 of { happy_var_3 -> -	happyIn53-		 ((happy_var_1++[happy_var_2]++happy_var_3)-	)}}}--happyReduce_177 = happySpecReduce_1  47# happyReduction_177-happyReduction_177 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn54-		 (AST.NS (AST.JSOperator (token_literal happy_var_1)) (ss happy_var_1)-	)}--happyReduce_178 = happySpecReduce_1  47# happyReduction_178-happyReduction_178 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn54-		 (AST.NS (AST.JSOperator "=") (ss happy_var_1)-	)}--happyReduce_179 = happySpecReduce_1  48# happyReduction_179-happyReduction_179 happy_x_1-	 =  case happyOut52 happy_x_1 of { happy_var_1 -> -	happyIn55-		 (AST.NS (AST.JSExpression happy_var_1) (mex happy_var_1) {- Expression -}-	)}--happyReduce_180 = happySpecReduce_3  48# happyReduction_180-happyReduction_180 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut55 happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_3 of { happy_var_3 -> -	happyIn55-		 (flattenExpression happy_var_1 happy_var_3-	)}}--happyReduce_181 = happySpecReduce_1  49# happyReduction_181-happyReduction_181 happy_x_1-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> -	happyIn56-		 (AST.NS (AST.JSExpression happy_var_1) (mex happy_var_1) {- Expression -}-	)}--happyReduce_182 = happySpecReduce_3  49# happyReduction_182-happyReduction_182 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> -	case happyOut53 happy_x_3 of { happy_var_3 -> -	happyIn56-		 (flattenExpression happy_var_1 happy_var_3-	)}}--happyReduce_183 = happySpecReduce_1  50# happyReduction_183-happyReduction_183 happy_x_1-	 =  case happyOut55 happy_x_1 of { happy_var_1 -> -	happyIn57-		 ([happy_var_1] {- ExpressionOpt -}-	)}--happyReduce_184 = happySpecReduce_0  50# happyReduction_184-happyReduction_184  =  happyIn57-		 ([]   {- ExpressionOpt -}-	)--happyReduce_185 = happySpecReduce_1  51# happyReduction_185-happyReduction_185 happy_x_1-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> -	happyIn58-		 ([happy_var_1] {- ExpressionOpt -}-	)}--happyReduce_186 = happySpecReduce_0  51# happyReduction_186-happyReduction_186  =  happyIn58-		 ([]   {- ExpressionOpt -}-	)--happyReduce_187 = happySpecReduce_1  52# happyReduction_187-happyReduction_187 happy_x_1-	 =  case happyOut60 happy_x_1 of { happy_var_1 -> -	happyIn59-		 (happy_var_1 {- Statement1 -}-	)}--happyReduce_188 = happySpecReduce_1  52# happyReduction_188-happyReduction_188 happy_x_1-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> -	happyIn59-		 (happy_var_1 {- Statement3 -}-	)}--happyReduce_189 = happySpecReduce_1  53# happyReduction_189-happyReduction_189 happy_x_1-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty1 -}-	)}--happyReduce_190 = happySpecReduce_1  53# happyReduction_190-happyReduction_190 happy_x_1-	 =  case happyOut64 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty2 -}-	)}--happyReduce_191 = happySpecReduce_1  53# happyReduction_191-happyReduction_191 happy_x_1-	 =  case happyOut72 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty4 -}-	)}--happyReduce_192 = happySpecReduce_1  53# happyReduction_192-happyReduction_192 happy_x_1-	 =  case happyOut73 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty5 -}-	)}--happyReduce_193 = happySpecReduce_1  53# happyReduction_193-happyReduction_193 happy_x_1-	 =  case happyOut76 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty6 -}-	)}--happyReduce_194 = happySpecReduce_1  53# happyReduction_194-happyReduction_194 happy_x_1-	 =  case happyOut77 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty7 -}-	)}--happyReduce_195 = happySpecReduce_1  53# happyReduction_195-happyReduction_195 happy_x_1-	 =  case happyOut78 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty8 -}-	)}--happyReduce_196 = happySpecReduce_1  53# happyReduction_196-happyReduction_196 happy_x_1-	 =  case happyOut79 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty9 -}-	)}--happyReduce_197 = happySpecReduce_1  53# happyReduction_197-happyReduction_197 happy_x_1-	 =  case happyOut80 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty10 -}-	)}--happyReduce_198 = happySpecReduce_1  53# happyReduction_198-happyReduction_198 happy_x_1-	 =  case happyOut86 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty11 -}-	)}--happyReduce_199 = happySpecReduce_1  53# happyReduction_199-happyReduction_199 happy_x_1-	 =  case happyOut81 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty12 -}-	)}--happyReduce_200 = happySpecReduce_1  53# happyReduction_200-happyReduction_200 happy_x_1-	 =  case happyOut87 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty13 -}-	)}--happyReduce_201 = happySpecReduce_1  53# happyReduction_201-happyReduction_201 happy_x_1-	 =  case happyOut88 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty14 -}-	)}--happyReduce_202 = happySpecReduce_1  53# happyReduction_202-happyReduction_202 happy_x_1-	 =  case happyOut92 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1 {- StatementNoEmpty15 -}-	)}--happyReduce_203 = happySpecReduce_2  54# happyReduction_203-happyReduction_203 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn61-		 ((AST.NS (AST.JSStatementBlock (AST.NS (AST.JSStatementList []) (ss happy_var_1))) (ss happy_var_1))-	)}--happyReduce_204 = happySpecReduce_3  54# happyReduction_204-happyReduction_204 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut63 happy_x_2 of { happy_var_2 -> -	happyIn61-		 ((AST.NS (AST.JSStatementBlock happy_var_2) (ss happy_var_1))-	)}}--happyReduce_205 = happySpecReduce_2  55# happyReduction_205-happyReduction_205 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn62-		 ((AST.NS (AST.JSBlock (AST.NS (AST.JSStatementList []) (ss happy_var_1))) (ss happy_var_1))-	)}--happyReduce_206 = happySpecReduce_3  55# happyReduction_206-happyReduction_206 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut63 happy_x_2 of { happy_var_2 -> -	happyIn62-		 ((AST.NS (AST.JSBlock happy_var_2) (ss happy_var_1))-	)}}--happyReduce_207 = happySpecReduce_1  56# happyReduction_207-happyReduction_207 happy_x_1-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> -	happyIn63-		 ((AST.NS (AST.JSStatementList [happy_var_1]) (ex happy_var_1))-	)}--happyReduce_208 = happySpecReduce_2  56# happyReduction_208-happyReduction_208 happy_x_2-	happy_x_1-	 =  case happyOut63 happy_x_1 of { happy_var_1 -> -	case happyOut59 happy_x_2 of { happy_var_2 -> -	happyIn63-		 ((combineStatements happy_var_1 happy_var_2)-	)}}--happyReduce_209 = happySpecReduce_3  57# happyReduction_209-happyReduction_209 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut65 happy_x_2 of { happy_var_2 -> -	happyIn64-		 (AST.NS (AST.JSVariables "var" happy_var_2) (ss happy_var_1)-	)}}--happyReduce_210 = happySpecReduce_3  57# happyReduction_210-happyReduction_210 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut65 happy_x_2 of { happy_var_2 -> -	happyIn64-		 (AST.NS (AST.JSVariables "const" happy_var_2) (ss happy_var_1)-	)}}--happyReduce_211 = happySpecReduce_1  58# happyReduction_211-happyReduction_211 happy_x_1-	 =  case happyOut67 happy_x_1 of { happy_var_1 -> -	happyIn65-		 ([happy_var_1] {- VariableDeclarationList -}-	)}--happyReduce_212 = happySpecReduce_3  58# happyReduction_212-happyReduction_212 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut65 happy_x_1 of { happy_var_1 -> -	case happyOut67 happy_x_3 of { happy_var_3 -> -	happyIn65-		 ((happy_var_1 ++ [happy_var_3]) {- VariableDeclarationList -}-	)}}--happyReduce_213 = happySpecReduce_1  59# happyReduction_213-happyReduction_213 happy_x_1-	 =  case happyOut68 happy_x_1 of { happy_var_1 -> -	happyIn66-		 ([happy_var_1] {- VariableDeclarationList -}-	)}--happyReduce_214 = happySpecReduce_3  59# happyReduction_214-happyReduction_214 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut66 happy_x_1 of { happy_var_1 -> -	case happyOut68 happy_x_3 of { happy_var_3 -> -	happyIn66-		 ((happy_var_1 ++ [happy_var_3]) {- VariableDeclarationList -}-	)}}--happyReduce_215 = happySpecReduce_1  60# happyReduction_215-happyReduction_215 happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	happyIn67-		 ((AST.NS (AST.JSVarDecl happy_var_1 []) (ex happy_var_1) )-	)}--happyReduce_216 = happySpecReduce_2  60# happyReduction_216-happyReduction_216 happy_x_2-	happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	case happyOut69 happy_x_2 of { happy_var_2 -> -	happyIn67-		 ((AST.NS (AST.JSVarDecl happy_var_1 happy_var_2) (ex happy_var_1))-	)}}--happyReduce_217 = happySpecReduce_2  61# happyReduction_217-happyReduction_217 happy_x_2-	happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	case happyOut70 happy_x_2 of { happy_var_2 -> -	happyIn68-		 ((AST.NS (AST.JSVarDecl happy_var_1 happy_var_2) (ex happy_var_1))-	)}}--happyReduce_218 = happySpecReduce_1  61# happyReduction_218-happyReduction_218 happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	happyIn68-		 ((AST.NS (AST.JSVarDecl happy_var_1 []) (ex happy_var_1))-	)}--happyReduce_219 = happySpecReduce_2  62# happyReduction_219-happyReduction_219 happy_x_2-	happy_x_1-	 =  case happyOut52 happy_x_2 of { happy_var_2 -> -	happyIn69-		 (happy_var_2 {- Initializer -}-	)}--happyReduce_220 = happySpecReduce_2  63# happyReduction_220-happyReduction_220 happy_x_2-	happy_x_1-	 =  case happyOut53 happy_x_2 of { happy_var_2 -> -	happyIn70-		 (happy_var_2 {- InitializerNoIn -}-	)}--happyReduce_221 = happySpecReduce_1  64# happyReduction_221-happyReduction_221 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn71-		 ((AST.NS (AST.JSLiteral ";") (ss happy_var_1))-	)}--happyReduce_222 = happySpecReduce_1  65# happyReduction_222-happyReduction_222 happy_x_1-	 =  case happyOut55 happy_x_1 of { happy_var_1 -> -	happyIn72-		 (happy_var_1 {- ExpressionStatement -}-	)}--happyReduce_223 = happyReduce 6# 66# happyReduction_223-happyReduction_223 (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 happyOut55 happy_x_3 of { happy_var_3 -> -	case happyOut75 happy_x_5 of { happy_var_5 -> -	case happyOut74 happy_x_6 of { happy_var_6 -> -	happyIn73-		 ((if (happy_var_6 /= []) then  -                       (if (length happy_var_6 == 1) -                        then -                          (AST.NS (AST.JSIfElse happy_var_3 happy_var_5 (head happy_var_6)) (ss happy_var_1)) -                        else -                          (AST.NS -                             (AST.JSIfElse -                                happy_var_3 -                                (AST.NS -                                   (AST.JSBlock (AST.NS (AST.JSStatementList [happy_var_5]) (ss happy_var_1)) ) -                                   (ss happy_var_1) -                                   )-                                (last happy_var_6)-                             ) -                             (ss happy_var_1)-                           ) -                       )   -                     else (AST.NS (AST.JSIf happy_var_3 happy_var_5) (ss happy_var_1)))-	) `HappyStk` happyRest}}}}--happyReduce_224 = happySpecReduce_2  67# happyReduction_224-happyReduction_224 happy_x_2-	happy_x_1-	 =  case happyOut59 happy_x_2 of { happy_var_2 -> -	happyIn74-		 ([happy_var_2]-	)}--happyReduce_225 = happySpecReduce_0  67# happyReduction_225-happyReduction_225  =  happyIn74-		 ([]-	)--happyReduce_226 = happySpecReduce_2  68# happyReduction_226-happyReduction_226 happy_x_2-	happy_x_1-	 =  case happyOut60 happy_x_1 of { happy_var_1 -> -	happyIn75-		 ((AST.NS (AST.JSBlock (AST.NS (AST.JSStatementList [happy_var_1]) (ex happy_var_1))) (ex happy_var_1))-	)}--happyReduce_227 = happySpecReduce_1  68# happyReduction_227-happyReduction_227 happy_x_1-	 =  case happyOut60 happy_x_1 of { happy_var_1 -> -	happyIn75-		 (happy_var_1 {- StatementSemi -}-	)}--happyReduce_228 = happySpecReduce_1  68# happyReduction_228-happyReduction_228 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn75-		 (AST.NS (AST.JSLiteral ";") (ss happy_var_1)-	)}--happyReduce_229 = happyReduce 7# 69# happyReduction_229-happyReduction_229 (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 happyOut59 happy_x_2 of { happy_var_2 -> -	case happyOut55 happy_x_5 of { happy_var_5 -> -	case happyOut7 happy_x_7 of { happy_var_7 -> -	happyIn76-		 ((AST.NS (AST.JSDoWhile happy_var_2 happy_var_5 happy_var_7) (ss happy_var_1))-	) `HappyStk` happyRest}}}}--happyReduce_230 = happyReduce 5# 69# happyReduction_230-happyReduction_230 (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 happyOut55 happy_x_3 of { happy_var_3 -> -	case happyOut59 happy_x_5 of { happy_var_5 -> -	happyIn76-		 ((AST.NS (AST.JSWhile happy_var_3 happy_var_5) (ss happy_var_1))-	) `HappyStk` happyRest}}}--happyReduce_231 = happyReduce 9# 69# happyReduction_231-happyReduction_231 (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 happyOut58 happy_x_3 of { happy_var_3 -> -	case happyOut57 happy_x_5 of { happy_var_5 -> -	case happyOut57 happy_x_7 of { happy_var_7 -> -	case happyOut59 happy_x_9 of { happy_var_9 -> -	happyIn76-		 ((AST.NS (AST.JSFor happy_var_3 happy_var_5 happy_var_7 happy_var_9) (ss happy_var_1))-	) `HappyStk` happyRest}}}}}--happyReduce_232 = happyReduce 10# 69# happyReduction_232-happyReduction_232 (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 happyOut66 happy_x_4 of { happy_var_4 -> -	case happyOut57 happy_x_6 of { happy_var_6 -> -	case happyOut57 happy_x_8 of { happy_var_8 -> -	case happyOut59 happy_x_10 of { happy_var_10 -> -	happyIn76-		 ((AST.NS (AST.JSForVar happy_var_4 happy_var_6 happy_var_8 happy_var_10) (ss happy_var_1))-	) `HappyStk` happyRest}}}}}--happyReduce_233 = happyReduce 7# 69# happyReduction_233-happyReduction_233 (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 happyOut30 happy_x_3 of { happy_var_3 -> -	case happyOut55 happy_x_5 of { happy_var_5 -> -	case happyOut59 happy_x_7 of { happy_var_7 -> -	happyIn76-		 ((AST.NS (AST.JSForIn happy_var_3 happy_var_5 happy_var_7) (ss happy_var_1))-	) `HappyStk` happyRest}}}}--happyReduce_234 = happyReduce 8# 69# happyReduction_234-happyReduction_234 (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 happyOut68 happy_x_4 of { happy_var_4 -> -	case happyOut55 happy_x_6 of { happy_var_6 -> -	case happyOut59 happy_x_8 of { happy_var_8 -> -	happyIn76-		 ((AST.NS (AST.JSForVarIn happy_var_4 happy_var_6 happy_var_8) (ss happy_var_1))-	) `HappyStk` happyRest}}}}--happyReduce_235 = happySpecReduce_2  70# happyReduction_235-happyReduction_235 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut7 happy_x_2 of { happy_var_2 -> -	happyIn77-		 ((AST.NS (AST.JSContinue [happy_var_2]) (ss happy_var_1))-	)}}--happyReduce_236 = happySpecReduce_3  70# happyReduction_236-happyReduction_236 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 happyOut7 happy_x_3 of { happy_var_3 -> -	happyIn77-		 ((AST.NS (AST.JSContinue [happy_var_2,happy_var_3]) (ss happy_var_1))-	)}}}--happyReduce_237 = happySpecReduce_2  71# happyReduction_237-happyReduction_237 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut7 happy_x_2 of { happy_var_2 -> -	happyIn78-		 ((AST.NS (AST.JSBreak []   [happy_var_2]) (ss happy_var_1))-	)}}--happyReduce_238 = happySpecReduce_3  71# happyReduction_238-happyReduction_238 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 happyOut7 happy_x_3 of { happy_var_3 -> -	happyIn78-		 ((AST.NS (AST.JSBreak [happy_var_2] [happy_var_3]) (ss happy_var_1))-	)}}}--happyReduce_239 = happySpecReduce_2  72# happyReduction_239-happyReduction_239 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut7 happy_x_2 of { happy_var_2 -> -	happyIn79-		 ((AST.NS (AST.JSReturn [happy_var_2])    (ss happy_var_1))-	)}}--happyReduce_240 = happySpecReduce_3  72# happyReduction_240-happyReduction_240 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut55 happy_x_2 of { happy_var_2 -> -	case happyOut7 happy_x_3 of { happy_var_3 -> -	happyIn79-		 ((AST.NS (AST.JSReturn [happy_var_2,happy_var_3]) (ss happy_var_1))-	)}}}--happyReduce_241 = happyReduce 6# 73# happyReduction_241-happyReduction_241 (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 happyOut55 happy_x_3 of { happy_var_3 -> -	case happyOut59 happy_x_5 of { happy_var_5 -> -	case happyOut7 happy_x_6 of { happy_var_6 -> -	happyIn80-		 ((AST.NS (AST.JSWith happy_var_3 [happy_var_5,happy_var_6]) (ss happy_var_1))-	) `HappyStk` happyRest}}}}--happyReduce_242 = happyReduce 5# 74# happyReduction_242-happyReduction_242 (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 happyOut55 happy_x_3 of { happy_var_3 -> -	case happyOut82 happy_x_5 of { happy_var_5 -> -	happyIn81-		 ((AST.NS (AST.JSSwitch happy_var_3 happy_var_5) (ss happy_var_1))-	) `HappyStk` happyRest}}}--happyReduce_243 = happySpecReduce_3  75# happyReduction_243-happyReduction_243 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut83 happy_x_2 of { happy_var_2 -> -	happyIn82-		 (happy_var_2            {- CaseBlock1 -}-	)}--happyReduce_244 = happyReduce 5# 75# happyReduction_244-happyReduction_244 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut83 happy_x_2 of { happy_var_2 -> -	case happyOut85 happy_x_3 of { happy_var_3 -> -	case happyOut83 happy_x_4 of { happy_var_4 -> -	happyIn82-		 ((happy_var_2++(happy_var_3:happy_var_4)) {- CaseBlock2 -}-	) `HappyStk` happyRest}}}--happyReduce_245 = happySpecReduce_1  76# happyReduction_245-happyReduction_245 happy_x_1-	 =  case happyOut84 happy_x_1 of { happy_var_1 -> -	happyIn83-		 ([happy_var_1] {- CaseClauses1 -}-	)}--happyReduce_246 = happySpecReduce_2  76# happyReduction_246-happyReduction_246 happy_x_2-	happy_x_1-	 =  case happyOut83 happy_x_1 of { happy_var_1 -> -	case happyOut84 happy_x_2 of { happy_var_2 -> -	happyIn83-		 ((happy_var_1++[happy_var_2]) {- CaseClauses2 -}-	)}}--happyReduce_247 = happySpecReduce_0  76# happyReduction_247-happyReduction_247  =  happyIn83-		 ([]-	)--happyReduce_248 = happyReduce 4# 77# happyReduction_248-happyReduction_248 (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 happyOut55 happy_x_2 of { happy_var_2 -> -	case happyOut63 happy_x_4 of { happy_var_4 -> -	happyIn84-		 ((AST.NS (AST.JSCase happy_var_2 happy_var_4) (ss happy_var_1))-	) `HappyStk` happyRest}}}--happyReduce_249 = happySpecReduce_3  77# happyReduction_249-happyReduction_249 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut55 happy_x_2 of { happy_var_2 -> -	happyIn84-		 ((AST.NS (AST.JSCase happy_var_2 (AST.NS (AST.JSStatementList []) (ss happy_var_1))) (ss happy_var_1))-	)}}--happyReduce_250 = happySpecReduce_2  78# happyReduction_250-happyReduction_250 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn85-		 ((AST.NS (AST.JSDefault (AST.NS (AST.JSStatementList []) (ss happy_var_1))) (ss happy_var_1))-	)}--happyReduce_251 = happySpecReduce_3  78# happyReduction_251-happyReduction_251 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut63 happy_x_3 of { happy_var_3 -> -	happyIn85-		 ((AST.NS (AST.JSDefault happy_var_3) (ss happy_var_1))-	)}}--happyReduce_252 = happySpecReduce_3  79# happyReduction_252-happyReduction_252 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	case happyOut59 happy_x_3 of { happy_var_3 -> -	happyIn86-		 ((AST.NS (AST.JSLabelled happy_var_1 happy_var_3) (ex happy_var_1))-	)}}--happyReduce_253 = happySpecReduce_2  80# happyReduction_253-happyReduction_253 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut55 happy_x_2 of { happy_var_2 -> -	happyIn87-		 ((AST.NS (AST.JSThrow happy_var_2) (ss happy_var_1))-	)}}--happyReduce_254 = happySpecReduce_3  81# happyReduction_254-happyReduction_254 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut62 happy_x_2 of { happy_var_2 -> -	case happyOut89 happy_x_3 of { happy_var_3 -> -	happyIn88-		 ((AST.NS (AST.JSTry happy_var_2 happy_var_3) (ss happy_var_1))         {- TryStatement1 -}-	)}}}--happyReduce_255 = happySpecReduce_3  81# happyReduction_255-happyReduction_255 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut62 happy_x_2 of { happy_var_2 -> -	case happyOut91 happy_x_3 of { happy_var_3 -> -	happyIn88-		 ((AST.NS (AST.JSTry happy_var_2 [happy_var_3]) (ss happy_var_1))       {- TryStatement2 -}-	)}}}--happyReduce_256 = happyReduce 4# 81# happyReduction_256-happyReduction_256 (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 happyOut62 happy_x_2 of { happy_var_2 -> -	case happyOut89 happy_x_3 of { happy_var_3 -> -	case happyOut91 happy_x_4 of { happy_var_4 -> -	happyIn88-		 ((AST.NS (AST.JSTry happy_var_2 (happy_var_3++[happy_var_4])) (ss happy_var_1)) {- TryStatement3 -}-	) `HappyStk` happyRest}}}}--happyReduce_257 = happySpecReduce_1  82# happyReduction_257-happyReduction_257 happy_x_1-	 =  case happyOut90 happy_x_1 of { happy_var_1 -> -	happyIn89-		 ([happy_var_1]       {- Catches 1 -}-	)}--happyReduce_258 = happySpecReduce_2  82# happyReduction_258-happyReduction_258 happy_x_2-	happy_x_1-	 =  case happyOut89 happy_x_1 of { happy_var_1 -> -	case happyOut90 happy_x_2 of { happy_var_2 -> -	happyIn89-		 ((happy_var_1++[happy_var_2]) {- Catches 2 -}-	)}}--happyReduce_259 = happyReduce 5# 83# happyReduction_259-happyReduction_259 (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_3 of { happy_var_3 -> -	case happyOut62 happy_x_5 of { happy_var_5 -> -	happyIn90-		 ((AST.NS (AST.JSCatch happy_var_3 [] happy_var_5) (ss happy_var_1))-	) `HappyStk` happyRest}}}--happyReduce_260 = happyReduce 7# 83# happyReduction_260-happyReduction_260 (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 happyOut15 happy_x_3 of { happy_var_3 -> -	case happyOut50 happy_x_5 of { happy_var_5 -> -	case happyOut62 happy_x_7 of { happy_var_7 -> -	happyIn90-		 ((AST.NS (AST.JSCatch happy_var_3 happy_var_5 happy_var_7) (ss happy_var_1))-	) `HappyStk` happyRest}}}}--happyReduce_261 = happySpecReduce_2  84# happyReduction_261-happyReduction_261 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut62 happy_x_2 of { happy_var_2 -> -	happyIn91-		 ((AST.NS (AST.JSFinally happy_var_2) (ss happy_var_1))-	)}}--happyReduce_262 = happySpecReduce_2  85# happyReduction_262-happyReduction_262 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn92-		 ((AST.NS (AST.JSLiteral "debugger") (ss happy_var_1))-	)}--happyReduce_263 = happyReduce 8# 86# happyReduction_263-happyReduction_263 (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 happyOut15 happy_x_2 of { happy_var_2 -> -	case happyOut96 happy_x_4 of { happy_var_4 -> -	case happyOut97 happy_x_7 of { happy_var_7 -> -	happyIn93-		 ((AST.NS (AST.JSFunction happy_var_2 happy_var_4 happy_var_7) (ss happy_var_1))-	) `HappyStk` happyRest}}}}--happyReduce_264 = happyReduce 7# 86# happyReduction_264-happyReduction_264 (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 happyOut15 happy_x_2 of { happy_var_2 -> -	case happyOut97 happy_x_6 of { happy_var_6 -> -	happyIn93-		 ((AST.NS (AST.JSFunction happy_var_2 [] happy_var_6) (ss happy_var_1))-	) `HappyStk` happyRest}}}--happyReduce_265 = happyReduce 7# 87# happyReduction_265-happyReduction_265 (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 happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut97 happy_x_6 of { happy_var_6 -> -	happyIn94-		 ((AST.NS (AST.JSFunctionExpression happy_var_2 [] happy_var_6) (ss happy_var_1))-	) `HappyStk` happyRest}}}--happyReduce_266 = happyReduce 8# 87# happyReduction_266-happyReduction_266 (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 happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut96 happy_x_4 of { happy_var_4 -> -	case happyOut97 happy_x_7 of { happy_var_7 -> -	happyIn94-		 ((AST.NS (AST.JSFunctionExpression happy_var_2 happy_var_4 happy_var_7) (ss happy_var_1))-	) `HappyStk` happyRest}}}}--happyReduce_267 = happySpecReduce_1  88# happyReduction_267-happyReduction_267 happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	happyIn95-		 ([happy_var_1] {- IdentifierOpt -}-	)}--happyReduce_268 = happySpecReduce_0  88# happyReduction_268-happyReduction_268  =  happyIn95-		 ([]   {- IdentifierOpt -}-	)--happyReduce_269 = happySpecReduce_1  89# happyReduction_269-happyReduction_269 happy_x_1-	 =  case happyOut15 happy_x_1 of { happy_var_1 -> -	happyIn96-		 ([happy_var_1] {- FormalParameterList -}-	)}--happyReduce_270 = happySpecReduce_3  89# happyReduction_270-happyReduction_270 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut96 happy_x_1 of { happy_var_1 -> -	case happyOut15 happy_x_3 of { happy_var_3 -> -	happyIn96-		 ((happy_var_1++[happy_var_3])-	)}}--happyReduce_271 = happySpecReduce_1  90# happyReduction_271-happyReduction_271 happy_x_1-	 =  case happyOut99 happy_x_1 of { happy_var_1 -> -	happyIn97-		 ((AST.NS (AST.JSFunctionBody [happy_var_1]) (ex happy_var_1))-	)}--happyReduce_272 = happySpecReduce_0  90# happyReduction_272-happyReduction_272  =  happyIn97-		 ((AST.NS (AST.JSFunctionBody [])   SpanEmpty)-	)--happyReduce_273 = happySpecReduce_1  91# happyReduction_273-happyReduction_273 happy_x_1-	 =  case happyOut100 happy_x_1 of { happy_var_1 -> -	happyIn98-		 (happy_var_1 {- Program -}-	)}--happyReduce_274 = happySpecReduce_1  92# happyReduction_274-happyReduction_274 happy_x_1-	 =  case happyOut101 happy_x_1 of { happy_var_1 -> -	happyIn99-		 ((AST.NS (AST.JSSourceElements [happy_var_1]) (ex happy_var_1))-	)}--happyReduce_275 = happySpecReduce_2  92# happyReduction_275-happyReduction_275 happy_x_2-	happy_x_1-	 =  case happyOut99 happy_x_1 of { happy_var_1 -> -	case happyOut101 happy_x_2 of { happy_var_2 -> -	happyIn99-		 ((combineSourceElements happy_var_1 happy_var_2)-	)}}--happyReduce_276 = happySpecReduce_1  93# happyReduction_276-happyReduction_276 happy_x_1-	 =  case happyOut101 happy_x_1 of { happy_var_1 -> -	happyIn100-		 ((AST.NS (AST.JSSourceElementsTop [happy_var_1]) (ex happy_var_1))-	)}--happyReduce_277 = happySpecReduce_2  93# happyReduction_277-happyReduction_277 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-		 ((combineSourceElementsTop happy_var_1 happy_var_2)-	)}}--happyReduce_278 = happySpecReduce_1  94# happyReduction_278-happyReduction_278 happy_x_1-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> -	happyIn101-		 (happy_var_1 {- SourceElement1 -}-	)}--happyReduce_279 = happySpecReduce_1  94# happyReduction_279-happyReduction_279 happy_x_1-	 =  case happyOut93 happy_x_1 of { happy_var_1 -> -	happyIn101-		 (happy_var_1 {- SourceElement2 -}-	)}--happyNewToken action sts stk-	= lexCont(\tk -> -	let cont i = happyDoAction i tk action sts stk in-	case tk of {-	EOFToken {} -> happyDoAction 79# tk action sts stk;-	SemiColonToken {} -> cont 1#;-	CommaToken {} -> cont 2#;-	HookToken {} -> cont 3#;-	ColonToken {} -> cont 4#;-	OrToken {} -> cont 5#;-	AndToken {} -> cont 6#;-	BitwiseOrToken {} -> cont 7#;-	BitwiseXorToken {} -> cont 8#;-	BitwiseAndToken {} -> cont 9#;-	StrictEqToken {} -> cont 10#;-	EqToken {} -> cont 11#;-	SimpleAssignToken {} -> cont 12#;-	StrictNeToken {} -> cont 13#;-	NeToken {} -> cont 14#;-	LshToken {} -> cont 15#;-	LeToken {} -> cont 16#;-	LtToken {} -> cont 17#;-	UrshToken {} -> cont 18#;-	RshToken {} -> cont 19#;-	GeToken {} -> cont 20#;-	GtToken {} -> cont 21#;-	IncrementToken {} -> cont 22#;-	DecrementToken {} -> cont 23#;-	PlusToken {} -> cont 24#;-	MinusToken {} -> cont 25#;-	MulToken {} -> cont 26#;-	DivToken {} -> cont 27#;-	ModToken {} -> cont 28#;-	NotToken {} -> cont 29#;-	BitwiseNotToken {} -> cont 30#;-	DotToken {} -> cont 31#;-	LeftBracketToken {} -> cont 32#;-	RightBracketToken {} -> cont 33#;-	LeftCurlyToken {} -> cont 34#;-	RightCurlyToken {} -> cont 35#;-	LeftParenToken {} -> cont 36#;-	RightParenToken {} -> cont 37#;-	CondcommentEndToken {} -> cont 38#;-	BreakToken {} -> cont 39#;-	CaseToken {} -> cont 40#;-	CatchToken {} -> cont 41#;-	ConstToken {} -> cont 42#;-	ContinueToken {} -> cont 43#;-	DebuggerToken {} -> cont 44#;-	DefaultToken {} -> cont 45#;-	DeleteToken {} -> cont 46#;-	DoToken {} -> cont 47#;-	ElseToken {} -> cont 48#;-	EnumToken {} -> cont 49#;-	FalseToken {} -> cont 50#;-	FinallyToken {} -> cont 51#;-	ForToken {} -> cont 52#;-	FunctionToken {} -> cont 53#;-	GetToken {} -> cont 54#;-	IfToken {} -> cont 55#;-	InToken {} -> cont 56#;-	InstanceofToken {} -> cont 57#;-	NewToken {} -> cont 58#;-	NullToken {} -> cont 59#;-	ReturnToken {} -> cont 60#;-	SetToken {} -> cont 61#;-	SwitchToken {} -> cont 62#;-	ThisToken {} -> cont 63#;-	ThrowToken {} -> cont 64#;-	TrueToken {} -> cont 65#;-	TryToken {} -> cont 66#;-	TypeofToken {} -> cont 67#;-	VarToken {} -> cont 68#;-	VoidToken {} -> cont 69#;-	WhileToken {} -> cont 70#;-	WithToken {} -> cont 71#;-	IdentifierToken {} -> cont 72#;-	DecimalToken {} -> cont 73#;-	HexIntegerToken {} -> cont 74#;-	StringToken {} -> cont 75#;-	RegExToken {} -> cont 76#;-	AssignToken {} -> cont 77#;-	FutureToken {} -> cont 78#;-	_ -> happyError' tk-	})--happyError_ 79# tk = happyError' tk-happyError_ _ tk = happyError' tk--happyThen :: () => P a -> (a -> P b) -> P b-happyThen = (thenP)-happyReturn :: () => a -> P a-happyReturn = (returnP)-happyThen1 = happyThen-happyReturn1 :: () => a -> P a-happyReturn1 = happyReturn-happyError' :: () => (Token) -> P a-happyError' tk = parseError tk--parseProgram = happySomeParser where-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut98 x))--parseLiteral = happySomeParser where-  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut8 x))--parsePrimaryExpression = happySomeParser where-  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut14 x))--parseStatement = happySomeParser where-  happySomeParser = happyThen (happyParse 3#) (\x -> happyReturn (happyOut59 x))--happySeq = happyDontSeq----- combineSourceElements :: AST.JSNode -> AST.JSNode -> AST.JSNode--- combineSourceElements (AST.JSSourceElements xs) x = (AST.JSSourceElements (xs++[x] (ss $1)) )-combineSourceElements :: AST.JSNode -> AST.JSNode -> AST.JSNode-combineSourceElements (AST.NS (AST.JSSourceElements xs) s1) x1@(AST.NS x s2) = (AST.NS (AST.JSSourceElements (xs++[x1])) s1) ---- combineSourceElementsTop :: AST.JSNode -> AST.JSNode -> AST.JSNode--- combineSourceElementsTop (AST.JSSourceElementsTop xs) x = (AST.JSSourceElementsTop (xs++[x] (ss $1)) )-combineSourceElementsTop :: AST.JSNode -> AST.JSNode -> AST.JSNode-combineSourceElementsTop (AST.NS (AST.JSSourceElementsTop xs) s1) x1@(AST.NS x s2) = (AST.NS (AST.JSSourceElementsTop (xs++[x1])) s1)---- combineStatements :: AST.JSNode -> AST.JSNode -> AST.JSNode--- combineStatements (AST.JSStatementList xs) (AST.JSStatementList ys) = (AST.JSStatementList (xs++ys) )--- combineStatements (AST.JSStatementList xs) y = (AST.JSStatementList (xs++[y]) )-combineStatements :: AST.JSNode -> AST.JSNode -> AST.JSNode-combineStatements (AST.NS (AST.JSStatementList xs) s1) (AST.NS (AST.JSStatementList ys) s2) = (AST.NS (AST.JSStatementList (xs++ys) ) s1)-combineStatements (AST.NS (AST.JSStatementList xs) s1) y = (AST.NS (AST.JSStatementList (xs++[y])) s1)--parseError :: Token -> P a -parseError = throwError . UnexpectedToken ---- flattenExpression :: AST.JSNode -> [AST.JSNode] -> AST.JSNode--- flattenExpression (AST.JSExpression xs) e = AST.JSExpression (xs++litComma++e)---                         where---                           litComma :: [AST.JSNode]---                           litComma = [(AST.JSLiteral ",")]-flattenExpression :: AST.JSNode -> [AST.JSNode] -> AST.JSNode-flattenExpression (AST.NS (AST.JSExpression xs) s1) e = (AST.NS (AST.JSExpression (xs++litComma++e)) s1)-                        where-                          litComma :: [AST.JSNode]-                          litComma = [AST.NS (AST.JSLiteral ",") SpanEmpty]--mex :: [AST.JSNode] -> SrcSpan-mex [] = SpanEmpty-mex xs = ex (head xs)--ex :: AST.JSNode -> SrcSpan-ex (AST.NS _node span) = span--ss token = toSrcSpan (token_span token) --{--ex :: AST.JSNode -> AST.JSNode-ex (AST.NS node span) = node--mex :: [AST.JSNode] -> [AST.JSNode]-mex xs = map ex xs--combine :: [AST.JSNode] -> AST.JSNode-combine [] = AST.NSS [] SpanEmpty-combine xs = AST.NSS (mex xs) span-  where-    (AST.NS _ span) = head xs+  -- debug+  , fp+  ) where++-- import Control.Monad.Error.Class (throwError)+import Data.Char+import Language.JavaScript.Parser.Lexer+import Language.JavaScript.Parser.ParseError+import Language.JavaScript.Parser.ParserMonad+import Language.JavaScript.Parser.SrcLocation+import Language.JavaScript.Parser.Token+import qualified Language.JavaScript.Parser.AST as AST+import qualified Data.Array as Happy_Data_Array+import qualified GHC.Exts as Happy_GHC_Exts++-- parser produced by Happy Version 1.18.9++newtype HappyAbsSyn  = HappyAbsSyn HappyAny+#if __GLASGOW_HASKELL__ >= 607+type HappyAny = Happy_GHC_Exts.Any+#else+type HappyAny = forall a . a+#endif+happyIn7 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn7 #-}+happyOut7 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut7 #-}+happyIn8 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn8 #-}+happyOut8 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut8 #-}+happyIn9 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn9 #-}+happyOut9 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut9 #-}+happyIn10 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn10 #-}+happyOut10 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut10 #-}+happyIn11 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn11 #-}+happyOut11 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut11 #-}+happyIn12 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn12 #-}+happyOut12 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut12 #-}+happyIn13 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn13 #-}+happyOut13 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut13 #-}+happyIn14 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn14 #-}+happyOut14 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut14 #-}+happyIn15 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn15 #-}+happyOut15 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut15 #-}+happyIn16 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn16 #-}+happyOut16 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut16 #-}+happyIn17 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn17 #-}+happyOut17 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut17 #-}+happyIn18 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn18 #-}+happyOut18 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut18 #-}+happyIn19 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn19 #-}+happyOut19 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut19 #-}+happyIn20 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn20 #-}+happyOut20 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut20 #-}+happyIn21 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn21 #-}+happyOut21 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut21 #-}+happyIn22 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn22 #-}+happyOut22 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut22 #-}+happyIn23 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn23 #-}+happyOut23 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut23 #-}+happyIn24 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn24 #-}+happyOut24 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut24 #-}+happyIn25 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn25 #-}+happyOut25 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut25 #-}+happyIn26 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn26 #-}+happyOut26 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut26 #-}+happyIn27 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn27 #-}+happyOut27 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut27 #-}+happyIn28 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn28 #-}+happyOut28 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut28 #-}+happyIn29 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn29 #-}+happyOut29 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut29 #-}+happyIn30 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn30 #-}+happyOut30 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut30 #-}+happyIn31 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn31 #-}+happyOut31 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut31 #-}+happyIn32 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn32 #-}+happyOut32 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut32 #-}+happyIn33 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn33 #-}+happyOut33 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut33 #-}+happyIn34 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn34 #-}+happyOut34 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut34 #-}+happyIn35 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn35 #-}+happyOut35 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut35 #-}+happyIn36 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn36 #-}+happyOut36 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut36 #-}+happyIn37 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn37 #-}+happyOut37 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut37 #-}+happyIn38 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn38 #-}+happyOut38 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut38 #-}+happyIn39 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn39 #-}+happyOut39 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut39 #-}+happyIn40 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn40 #-}+happyOut40 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut40 #-}+happyIn41 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn41 #-}+happyOut41 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut41 #-}+happyIn42 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn42 #-}+happyOut42 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut42 #-}+happyIn43 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn43 #-}+happyOut43 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut43 #-}+happyIn44 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn44 #-}+happyOut44 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut44 #-}+happyIn45 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn45 #-}+happyOut45 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut45 #-}+happyIn46 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn46 #-}+happyOut46 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut46 #-}+happyIn47 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn47 #-}+happyOut47 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut47 #-}+happyIn48 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn48 #-}+happyOut48 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut48 #-}+happyIn49 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn49 #-}+happyOut49 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut49 #-}+happyIn50 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn50 #-}+happyOut50 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut50 #-}+happyIn51 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn51 #-}+happyOut51 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut51 #-}+happyIn52 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn52 #-}+happyOut52 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut52 #-}+happyIn53 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn53 #-}+happyOut53 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut53 #-}+happyIn54 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn54 #-}+happyOut54 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut54 #-}+happyIn55 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn55 #-}+happyOut55 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut55 #-}+happyIn56 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn56 #-}+happyOut56 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut56 #-}+happyIn57 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn57 #-}+happyOut57 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut57 #-}+happyIn58 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn58 #-}+happyOut58 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut58 #-}+happyIn59 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn59 #-}+happyOut59 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut59 #-}+happyIn60 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn60 #-}+happyOut60 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut60 #-}+happyIn61 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn61 #-}+happyOut61 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut61 #-}+happyIn62 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn62 #-}+happyOut62 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut62 #-}+happyIn63 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn63 #-}+happyOut63 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut63 #-}+happyIn64 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn64 #-}+happyOut64 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut64 #-}+happyIn65 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn65 #-}+happyOut65 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut65 #-}+happyIn66 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn66 #-}+happyOut66 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut66 #-}+happyIn67 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn67 #-}+happyOut67 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut67 #-}+happyIn68 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn68 #-}+happyOut68 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut68 #-}+happyIn69 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn69 #-}+happyOut69 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut69 #-}+happyIn70 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn70 #-}+happyOut70 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut70 #-}+happyIn71 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn71 #-}+happyOut71 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut71 #-}+happyIn72 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn72 #-}+happyOut72 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut72 #-}+happyIn73 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn73 #-}+happyOut73 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut73 #-}+happyIn74 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn74 #-}+happyOut74 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut74 #-}+happyIn75 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn75 #-}+happyOut75 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut75 #-}+happyIn76 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn76 #-}+happyOut76 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut76 #-}+happyIn77 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn77 #-}+happyOut77 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut77 #-}+happyIn78 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn78 #-}+happyOut78 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut78 #-}+happyIn79 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn79 #-}+happyOut79 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut79 #-}+happyIn80 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn80 #-}+happyOut80 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut80 #-}+happyIn81 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn81 #-}+happyOut81 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut81 #-}+happyIn82 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn82 #-}+happyOut82 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut82 #-}+happyIn83 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn83 #-}+happyOut83 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut83 #-}+happyIn84 :: ([ AST.JSNode ]) -> (HappyAbsSyn )+happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn84 #-}+happyOut84 :: (HappyAbsSyn ) -> ([ AST.JSNode ])+happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut84 #-}+happyIn85 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn85 #-}+happyOut85 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut85 #-}+happyIn86 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn86 #-}+happyOut86 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut86 #-}+happyIn87 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn87 #-}+happyOut87 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut87 #-}+happyIn88 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn88 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn88 #-}+happyOut88 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut88 #-}+happyIn89 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn89 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn89 #-}+happyOut89 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut89 #-}+happyIn90 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn90 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn90 #-}+happyOut90 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut90 #-}+happyIn91 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn91 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn91 #-}+happyOut91 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut91 #-}+happyIn92 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn92 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn92 #-}+happyOut92 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut92 #-}+happyIn93 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn93 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn93 #-}+happyOut93 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut93 #-}+happyIn94 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn94 #-}+happyOut94 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut94 #-}+happyIn95 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn95 #-}+happyOut95 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut95 #-}+happyIn96 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn96 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn96 #-}+happyOut96 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut96 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut96 #-}+happyIn97 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn97 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn97 #-}+happyOut97 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut97 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut97 #-}+happyIn98 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn98 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn98 #-}+happyOut98 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut98 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut98 #-}+happyIn99 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn99 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn99 #-}+happyOut99 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut99 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut99 #-}+happyIn100 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn100 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn100 #-}+happyOut100 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut100 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut100 #-}+happyIn101 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn101 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn101 #-}+happyOut101 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut101 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut101 #-}+happyIn102 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn102 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn102 #-}+happyOut102 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut102 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut102 #-}+happyIn103 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn103 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn103 #-}+happyOut103 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut103 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut103 #-}+happyIn104 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn104 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn104 #-}+happyOut104 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut104 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut104 #-}+happyIn105 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn105 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn105 #-}+happyOut105 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut105 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut105 #-}+happyIn106 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn106 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn106 #-}+happyOut106 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut106 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut106 #-}+happyIn107 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn107 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn107 #-}+happyOut107 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut107 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut107 #-}+happyIn108 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn108 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn108 #-}+happyOut108 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut108 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut108 #-}+happyIn109 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn109 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn109 #-}+happyOut109 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut109 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut109 #-}+happyIn110 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn110 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn110 #-}+happyOut110 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut110 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut110 #-}+happyIn111 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn111 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn111 #-}+happyOut111 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut111 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut111 #-}+happyIn112 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn112 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn112 #-}+happyOut112 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut112 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut112 #-}+happyIn113 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn113 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn113 #-}+happyOut113 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut113 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut113 #-}+happyIn114 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn114 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn114 #-}+happyOut114 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut114 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut114 #-}+happyIn115 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn115 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn115 #-}+happyOut115 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut115 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut115 #-}+happyIn116 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn116 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn116 #-}+happyOut116 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut116 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut116 #-}+happyIn117 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn117 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn117 #-}+happyOut117 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut117 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut117 #-}+happyIn118 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn118 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn118 #-}+happyOut118 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut118 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut118 #-}+happyIn119 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn119 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn119 #-}+happyOut119 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut119 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut119 #-}+happyIn120 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn120 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn120 #-}+happyOut120 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut120 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut120 #-}+happyIn121 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn121 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn121 #-}+happyOut121 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut121 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut121 #-}+happyIn122 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn122 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn122 #-}+happyOut122 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut122 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut122 #-}+happyIn123 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn123 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn123 #-}+happyOut123 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut123 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut123 #-}+happyIn124 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn124 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn124 #-}+happyOut124 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut124 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut124 #-}+happyIn125 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn125 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn125 #-}+happyOut125 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut125 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut125 #-}+happyIn126 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn126 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn126 #-}+happyOut126 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut126 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut126 #-}+happyIn127 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn127 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn127 #-}+happyOut127 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut127 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut127 #-}+happyIn128 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn128 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn128 #-}+happyOut128 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut128 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut128 #-}+happyIn129 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn129 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn129 #-}+happyOut129 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut129 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut129 #-}+happyIn130 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn130 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn130 #-}+happyOut130 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut130 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut130 #-}+happyIn131 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn131 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn131 #-}+happyOut131 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut131 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut131 #-}+happyIn132 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn132 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn132 #-}+happyOut132 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut132 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut132 #-}+happyIn133 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn133 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn133 #-}+happyOut133 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut133 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut133 #-}+happyIn134 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn134 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn134 #-}+happyOut134 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut134 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut134 #-}+happyIn135 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn135 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn135 #-}+happyOut135 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut135 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut135 #-}+happyIn136 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn136 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn136 #-}+happyOut136 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut136 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut136 #-}+happyIn137 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn137 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn137 #-}+happyOut137 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut137 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut137 #-}+happyIn138 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn138 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn138 #-}+happyOut138 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut138 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut138 #-}+happyIn139 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn139 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn139 #-}+happyOut139 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut139 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut139 #-}+happyIn140 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn140 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn140 #-}+happyOut140 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut140 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut140 #-}+happyIn141 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn141 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn141 #-}+happyOut141 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut141 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut141 #-}+happyIn142 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn142 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn142 #-}+happyOut142 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut142 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut142 #-}+happyIn143 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn143 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn143 #-}+happyOut143 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut143 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut143 #-}+happyIn144 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn144 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn144 #-}+happyOut144 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut144 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut144 #-}+happyIn145 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn145 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn145 #-}+happyOut145 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut145 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut145 #-}+happyIn146 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn146 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn146 #-}+happyOut146 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut146 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut146 #-}+happyIn147 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn147 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn147 #-}+happyOut147 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut147 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut147 #-}+happyIn148 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn148 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn148 #-}+happyOut148 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut148 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut148 #-}+happyIn149 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn149 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn149 #-}+happyOut149 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut149 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut149 #-}+happyIn150 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn150 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn150 #-}+happyOut150 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut150 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut150 #-}+happyIn151 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn151 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn151 #-}+happyOut151 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut151 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut151 #-}+happyIn152 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn152 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn152 #-}+happyOut152 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut152 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut152 #-}+happyIn153 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn153 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn153 #-}+happyOut153 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut153 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut153 #-}+happyIn154 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn154 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn154 #-}+happyOut154 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut154 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut154 #-}+happyIn155 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn155 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn155 #-}+happyOut155 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut155 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut155 #-}+happyIn156 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn156 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn156 #-}+happyOut156 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut156 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut156 #-}+happyIn157 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn157 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn157 #-}+happyOut157 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut157 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut157 #-}+happyIn158 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn158 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn158 #-}+happyOut158 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut158 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut158 #-}+happyIn159 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn159 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn159 #-}+happyOut159 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut159 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut159 #-}+happyIn160 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn160 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn160 #-}+happyOut160 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut160 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut160 #-}+happyIn161 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn161 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn161 #-}+happyOut161 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut161 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut161 #-}+happyIn162 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn162 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn162 #-}+happyOut162 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut162 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut162 #-}+happyIn163 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn163 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn163 #-}+happyOut163 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut163 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut163 #-}+happyIn164 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn164 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn164 #-}+happyOut164 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut164 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut164 #-}+happyIn165 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn165 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn165 #-}+happyOut165 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut165 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut165 #-}+happyIn166 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn166 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn166 #-}+happyOut166 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut166 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut166 #-}+happyIn167 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn167 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn167 #-}+happyOut167 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut167 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut167 #-}+happyInTok :: (Token) -> (HappyAbsSyn )+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyInTok #-}+happyOutTok :: (HappyAbsSyn ) -> (Token)+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOutTok #-}+++happyActOffsets :: HappyAddr+happyActOffsets = HappyA# "\x52\x2b\xb2\x0f\x92\x13\x52\x2b\xb2\x03\x00\x00\x41\x2d\x61\x2a\x89\x2b\x00\x00\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x7a\x01\x7a\x01\x91\x03\x52\x2b\x91\x03\x91\x03\xef\x00\xef\x00\xde\x28\x91\x03\x91\x03\x41\x2d\x90\x03\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x03\x00\x00\x00\x00\x65\x01\x00\x00\x65\x01\xfc\xff\xa7\x02\x00\x00\xcb\x02\x9b\x02\x5f\x01\x9e\x01\x79\x02\x9c\x03\x97\x03\x96\x03\x8f\x03\x30\x01\x00\x00\x00\x00\x92\x03\x62\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\x53\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\x8e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x0f\x4c\x03\x00\x00\x49\x03\x41\x03\x45\x03\x7a\x01\x00\x00\x00\x00\x45\x03\x15\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x89\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\x1f\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x01\x00\x00\x00\x00\x00\x00\x41\x2d\x00\x00\x41\x2d\x41\x2d\x00\x00\x00\x00\x41\x2d\x00\x00\x41\x2d\x00\x00\x41\x2d\x00\x00\x41\x2d\x00\x00\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x2d\x41\x2d\x41\x2d\x00\x00\x00\x00\x00\x00\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x41\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x2d\x00\x00\x00\x00\xf7\x2b\x41\x2d\xc2\x1d\x00\x00\x00\x00\x41\x2d\xc2\x1d\x00\x00\x52\x2b\x00\x00\x00\x00\x1b\x2b\x09\x01\x84\x03\x41\x2d\x41\x2d\x00\x00\xa4\x02\x00\x00\x80\x03\x00\x00\x80\x03\xc0\x2b\x41\x2d\x3f\x03\x41\x2d\x74\x03\xa4\x02\x00\x00\xa4\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\x6c\x00\x89\x2b\x00\x00\x00\x00\xc9\x29\x7b\x03\x7a\x03\x79\x03\x00\x00\x1b\x2b\x78\x03\x37\x01\x71\x03\xe4\x2a\x0a\x2d\x70\x03\x6f\x03\x56\x03\xe0\x00\x55\x03\x1c\x11\x6d\x03\x6c\x03\x4a\x03\x68\x03\xd3\x2c\x66\x03\x46\x03\x9c\x2c\x18\x01\x65\x2c\x42\x03\x40\x03\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x2b\x00\x00\x7b\x00\x00\x00\x2e\x2c\x00\x00\x3b\x00\x3e\x03\x3b\x00\x7b\x00\x32\x00\x5f\x01\x49\x01\x79\x02\x4e\x03\x58\x03\x51\x03\x4d\x03\x30\x01\x00\x00\x00\x00\x50\x03\x4f\x03\x00\x00\x00\x00\x00\x00\x3b\x00\x3b\x00\x2d\x03\x2c\x03\x09\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\x2a\x00\x00\x00\x00\x7c\x29\x2d\x29\x6c\x00\x00\x00\x6c\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x02\xcb\x02\x89\x02\x89\x02\x89\x02\x5f\x01\x5f\x01\x5f\x01\x5f\x01\x5f\x01\x5f\x01\x9e\x01\x9e\x01\x9e\x01\x9e\x01\x79\x02\x44\x03\x43\x03\x3b\x03\x3c\x03\x39\x03\x00\x00\x00\x00\x18\x03\x18\x03\x2e\x2c\x00\x00\xf4\x0f\xb2\x00\xb2\x00\x10\x03\x00\x00\x3b\x00\x10\x03\x3b\x00\x00\x00\x00\x00\x00\x00\x07\x03\x7b\x00\x2e\x2c\x00\x00\x2e\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x08\x03\x52\x2b\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2e\x2c\x2f\x03\x6f\x02\xf3\x02\x52\x2b\x2e\x2c\x52\x2b\x00\x00\x00\x00\x00\x00\x89\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x26\x03\xfe\x02\x3b\x00\x00\x00\x2e\x2c\x7b\x00\x2e\x2c\x2e\x2c\x00\x00\xfc\xff\x00\x00\x3b\x00\x5f\x01\x5f\x01\x5f\x01\x5f\x01\x5f\x01\x9e\x01\x9e\x01\x9e\x01\x9e\x01\x79\x02\x20\x03\x25\x03\x1f\x03\x24\x03\x1e\x03\x00\x00\x23\x03\x22\x03\x21\x03\xf7\x02\x00\x00\xa1\x00\x00\x00\x00\x00\x00\x00\xf8\x02\xff\x02\xff\x02\x7b\x00\x52\x2b\xff\x02\x52\x2b\xfd\x02\x52\x2b\x00\x00\x52\x2b\xfd\x02\x00\x00\x52\x2b\x52\x2b\xfc\x02\xfc\x02\x2e\x2c\x2e\x2c\xf1\x00\x00\x00\x00\x00\x00\x00\x2e\x2c\x2e\x2c\x52\x2b\x00\x00\x1b\x03\x00\x00\x3b\x00\x1a\x03\x52\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x2b\x2e\x2c\x00\x00\x00\x00\xf5\x02\x00\x00\x15\x03\x00\x00\xf0\x02\x00\x00\xfe\x00\xf2\x02\x00\x00\x52\x2b\xea\x02\xea\x02\x00\x00\xea\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x02\xe9\x02\x52\x2b\x2a\x02\x52\x2b\x52\x2b\xe5\x02\x00\x00\x52\x2b\x00\x00\x52\x2b\x00\x00\x52\x2b\x00\x00\x00\x00\x00\x00\x00\x00"#++happyGotoOffsets :: HappyAddr+happyGotoOffsets = HappyA# "\x9d\x03\xe2\xff\x79\x00\x61\x05\x00\x00\x00\x00\x72\x18\x65\x06\x03\x10\x00\x00\x97\x28\x7c\x28\x23\x28\x08\x28\xaf\x27\x94\x27\x3b\x27\x20\x27\xc7\x26\xd1\x00\x83\x00\x04\x03\xe1\x0e\x02\x03\x00\x03\x2c\x00\x09\x00\xf8\x05\xfb\x02\xfa\x02\x0c\x18\x1d\x00\xe4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x02\x00\x00\x00\x00\x52\x01\x00\x00\x4a\x01\xa9\x00\x5b\x02\x00\x00\xce\x02\x3b\x02\xc2\x02\xd9\x01\x70\x02\xd9\x02\xcd\x02\xd4\x02\xcf\x02\xf6\x01\x00\x00\x00\x00\xec\x02\xad\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\xeb\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x01\xa1\x02\x00\x00\x00\x00\xa0\x02\x00\x00\xcf\xff\x00\x00\x00\x00\x00\x00\x35\x04\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x02\xd5\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x00\x00\x00\xcc\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\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x01\x00\x00\x00\x00\x00\x00\x13\x1d\x00\x00\x32\x1e\xb1\x1c\x00\x00\x00\x00\xb4\x1e\x00\x00\x34\x1f\x00\x00\xb2\x1f\x00\x00\x2e\x20\x00\x00\x1a\x22\xfb\x21\x9f\x21\x80\x21\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x24\x78\x24\x5a\x24\xff\x23\xe1\x23\x86\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x25\x4b\x25\xf1\x24\x00\x00\x00\x00\x00\x00\xdf\x25\xc3\x25\xac\x26\x53\x26\x38\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1c\x00\x00\x00\x00\xae\x13\xa6\x17\xdc\x01\x00\x00\x00\x00\x40\x17\xa5\x01\x00\x00\x51\x0e\x00\x00\x00\x00\xf9\x06\x7a\x00\xc7\x02\xda\x16\x74\x16\x00\x00\x51\x01\x00\x00\xd2\x02\x00\x00\xd0\x02\xcd\x10\x0e\x16\x99\x02\xa8\x15\xeb\xff\x27\x01\x00\x00\x26\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\xb9\x01\x42\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x02\x00\x00\x41\x09\x00\x00\x00\x00\x00\x00\xc8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x10\x00\x00\xd0\xff\x00\x00\xed\x1b\x00\x00\x15\x02\xc5\x02\x05\x02\x69\x00\xfe\xff\xc2\x02\x63\x02\x6c\x02\x8a\x02\x91\x02\x82\x02\x73\x02\xd5\x01\x00\x00\x00\x00\x8d\x02\x7c\x02\x00\x00\x00\x00\x00\x00\xc6\x01\xc5\x01\x80\x02\x1c\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\x08\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x01\x00\x00\x0b\x01\x00\x00\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x02\xa2\x02\x29\x00\x29\x00\x29\x00\x49\x02\x49\x02\x49\x02\x49\x02\x49\x02\x49\x02\xd9\x01\xd9\x01\xd9\x01\xd9\x01\x68\x02\x44\x02\x4b\x02\x43\x02\x32\x02\x1a\x02\x00\x00\x00\x00\x37\x02\x35\x02\x8b\x1b\x00\x00\xa3\x01\x17\x00\x05\x00\x31\x02\x00\x00\xaa\x01\x2f\x02\x5d\x01\x00\x00\x00\x00\x00\x00\x2c\x02\xda\xff\x29\x1b\x00\x00\xc7\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x01\x02\x00\xc1\x0d\xd5\x12\x64\x1a\xd5\x1d\x01\x1a\x8e\x1e\x10\x1f\x90\x1f\x0e\x20\x24\x21\x05\x21\xa9\x20\x8a\x20\x68\x23\x0d\x23\xef\x22\x94\x22\x76\x22\x42\x15\x9e\x19\xd7\xff\x5b\x00\x0e\x02\x31\x0d\xdc\x14\x71\x0f\x00\x00\x00\x00\x00\x00\x73\x12\x00\x00\x00\x00\x00\x00\x00\x00\x14\x02\xd4\xff\x54\x01\x00\x00\x76\x14\xc4\xff\x06\x12\x3b\x19\x00\x00\x8a\x00\x00\x00\xe4\x00\x49\x02\x49\x02\x49\x02\x49\x02\x49\x02\xd9\x01\xd9\x01\xd9\x01\xd9\x01\x39\x02\xe7\x01\xe3\x01\xe2\x01\xf2\x01\xbe\x01\x00\x00\xc8\x01\xd0\x01\xd1\x01\xf8\xff\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\xb6\x01\xa8\x01\x9d\x01\x53\x01\x03\x03\x95\x01\x69\x02\x92\x01\xcb\x04\x00\x00\xcf\x01\x90\x01\x00\x00\x35\x01\x9b\x00\x8f\x01\x18\x00\x75\x1d\x10\x14\x16\x00\x00\x00\x00\x00\x00\x00\x9e\x11\xd8\x18\xa1\x0c\x00\x00\x81\x01\x00\x00\x92\x00\x83\x01\x11\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x0b\x36\x11\x00\x00\x00\x00\x7e\x01\x00\x00\x75\x01\x00\x00\xe6\xff\x00\x00\xe2\x00\x4e\x01\x00\x00\x01\x00\x3b\x01\x39\x01\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x15\x00\x19\x08\x19\x00\x89\x07\xf1\x0a\xd8\x00\x00\x00\x61\x0a\x00\x00\xd1\x09\x00\x00\xd1\x09\x00\x00\x00\x00\x00\x00\x00\x00"#++happyDefActions :: HappyAddr+happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xff\x00\x00\x00\x00\x00\x00\xe3\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xfe\xac\xff\xba\xff\xb9\xff\xb8\xff\xb7\xff\xb6\xff\x6b\xff\xad\xff\xab\xff\xaa\xff\x66\xff\x5c\xff\x5b\xff\x5a\xff\x57\xff\x4d\xff\x47\xff\x43\xff\x42\xff\x35\xff\x2b\xff\x27\xff\x23\xff\x1f\xff\x1b\xff\x17\xff\x13\xff\x0d\xff\xe2\xfe\x00\x00\x05\xff\x03\xff\x02\xff\x04\xff\x01\xff\x00\xff\xff\xfe\xfe\xfe\xfd\xfe\xfc\xfe\xfb\xfe\xf9\xfe\xfa\xfe\xf8\xfe\xf7\xfe\xf6\xfe\x6a\xff\x00\x00\xf1\xff\xef\xff\xee\xff\xea\xff\xe9\xff\xe7\xff\xe8\xff\xf5\xff\xf7\xff\xf9\xff\xc6\xff\xcd\xff\xc7\xff\xfa\xff\xed\xff\xca\xff\xb3\xff\xc8\xff\xbc\xff\xa7\xff\xcc\xff\x00\x00\xb5\xff\xc5\xff\xa6\xff\xc3\xff\xae\xff\xc0\xff\xb4\xff\xbf\xff\xeb\xff\xce\xff\xec\xff\xc9\xff\xc4\xff\xa8\xff\xb2\xff\xb1\xff\xb0\xff\xaf\xff\x00\x00\x00\x00\xad\xff\x00\x00\x00\x00\x00\x00\xb4\xfe\xa7\xfe\xa6\xfe\x00\x00\x00\x00\xa9\xfe\xaf\xfe\xa8\xfe\xbb\xff\x00\x00\x00\x00\xae\xfe\xad\xfe\x77\xff\x6d\xff\x6e\xff\xa5\xff\x6f\xff\x00\x00\x74\xff\x00\x00\xf6\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\xa7\xff\x94\xff\x93\xff\x92\xff\x91\xff\x90\xff\x8f\xff\xa6\xff\x8d\xff\x8c\xff\x8b\xff\x8a\xff\x89\xff\x88\xff\x87\xff\x86\xff\x85\xff\x84\xff\x83\xff\x66\xff\x65\xff\xba\xfe\xac\xfe\x00\x00\xf3\xff\x00\x00\x00\x00\xd1\xff\xd6\xff\x00\x00\xd5\xff\x00\x00\xd4\xff\x00\x00\xd2\xff\x00\x00\xd3\xff\x00\x00\x00\x00\x00\x00\x00\x00\xda\xff\xd9\xff\xd8\xff\xd7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\xdf\xff\xde\xff\xdd\xff\xdc\xff\xdb\xff\x00\x00\x00\x00\x00\x00\xe3\xff\xe1\xff\xe2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xff\xe5\xff\xe4\xff\x59\xff\x58\xff\x0e\xff\x0f\xff\x00\x00\xd0\xff\xcf\xff\x00\x00\x00\x00\x00\x00\x63\xff\xf0\xff\x00\x00\x00\x00\x64\xff\x00\x00\xf2\xff\xb5\xfe\x00\x00\x00\x00\xc3\xfe\x00\x00\x00\x00\xd1\xfe\xfa\xff\xd3\xfe\xfa\xff\xd5\xfe\xfa\xff\x06\xff\x00\x00\x00\x00\x00\x00\xe9\xfe\xfa\xff\xed\xfe\xfa\xff\x5a\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x54\xff\x55\xff\x56\xff\x52\xff\x53\xff\x82\xff\x79\xff\x00\x00\x00\x00\x7c\xff\xf4\xff\x77\xff\xb8\xff\xb7\xff\xad\xff\xf1\xfe\x00\x00\xc6\xff\xa1\xff\xc7\xff\x9f\xff\x9d\xff\xca\xff\xb3\xff\x97\xff\x96\xff\x94\xff\x91\xff\xb5\xff\xc5\xff\x8d\xff\xae\xff\x8b\xff\xb4\xff\x89\xff\x88\xff\x87\xff\x86\xff\x85\xff\x84\xff\x00\x00\xa9\xff\xf8\xff\xf4\xfe\xf0\xfe\x81\xff\x78\xff\x7d\xff\x80\xff\x00\x00\xef\xfe\x00\x00\xee\xfe\x00\x00\xe8\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xff\x3b\xff\x30\xff\x29\xff\x25\xff\x21\xff\x1d\xff\x19\xff\x15\xff\x11\xff\x0b\xff\x07\xff\x00\x00\xd4\xfe\xd2\xfe\xd0\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xc2\xfe\xbf\xfe\xc1\xfe\xbe\xff\xbd\xff\xf3\xfe\x00\x00\xc4\xfe\x68\xff\x95\xff\x8e\xff\x00\x00\x61\xff\x00\x00\x60\xff\x00\x00\x5e\xff\x12\xff\x4a\xff\x4b\xff\x4c\xff\x48\xff\x49\xff\x44\xff\x45\xff\x46\xff\x3d\xff\x3c\xff\x40\xff\x3e\xff\x41\xff\x3f\xff\x33\xff\x31\xff\x34\xff\x32\xff\x2a\xff\x26\xff\x22\xff\x1e\xff\x00\x00\x1a\xff\x0c\xff\x67\xff\x00\x00\x00\x00\x00\x00\x76\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb3\xfe\x00\x00\x00\x00\x00\x00\x75\xff\x73\xff\x72\xff\x00\x00\x00\x00\x00\x00\x5f\xff\x00\x00\x62\xff\x69\xff\xf2\xfe\xbe\xfe\xc0\xfe\xbb\xfe\x00\x00\x00\x00\x00\x00\x08\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\xe6\xfe\x00\x00\xeb\xfe\x00\x00\x00\x00\x00\x00\xe5\xfe\xec\xfe\x7e\xff\x00\x00\x7a\xff\x7f\xff\x7b\xff\xdc\xfe\xdd\xfe\xdf\xfe\x00\x00\xda\xfe\x00\x00\x00\x00\x08\xff\x00\x00\xe7\xfe\x5a\xff\x10\xff\x00\x00\x36\xff\x39\xff\x37\xff\x3a\xff\x38\xff\x2e\xff\x2c\xff\x2f\xff\x2d\xff\x28\xff\x24\xff\x20\xff\x1c\xff\x00\x00\x18\xff\x0a\xff\x09\xff\x00\x00\xfa\xff\xc9\xfe\xce\xfe\x00\x00\x5d\xff\x16\xff\x6c\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xfe\x00\x00\xb0\xfe\x00\x00\xb1\xfe\xab\xfe\xb0\xfe\x00\x00\xb2\xfe\xb0\xfe\xb0\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xfe\xc2\xff\xcf\xfe\x08\xff\x00\x00\x00\x00\xe4\xfe\x00\x00\xea\xfe\x00\x00\xfa\xff\x00\x00\xe1\xfe\xcb\xff\xde\xfe\xe0\xfe\xdb\xfe\x00\x00\x08\xff\xd7\xfe\x14\xff\x00\x00\xcd\xfe\x00\x00\xca\xfe\xc9\xfe\xc1\xff\x00\x00\x00\x00\xbd\xfe\xb0\xfe\x00\x00\x00\x00\xb7\xfe\x00\x00\xaa\xfe\xb8\xfe\xb9\xfe\xb6\xfe\x71\xff\x00\x00\x00\x00\xc7\xfe\x00\x00\xc6\xfe\x00\x00\x00\x00\xd6\xfe\x00\x00\xd9\xfe\xc5\xfe\xcc\xfe\xc8\xfe\xbc\xfe\x70\xff\xd8\xfe"#++happyCheck :: HappyAddr+happyCheck = HappyA# "\xff\xff\x2a\x00\x01\x00\x2f\x00\x03\x00\x03\x00\x05\x00\x02\x00\x0c\x00\x00\x00\x09\x00\x47\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x2a\x00\x47\x00\x47\x00\x03\x00\x02\x00\x04\x00\x03\x00\x1e\x00\x04\x00\x38\x00\x03\x00\x03\x00\x47\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x2a\x00\x2b\x00\x50\x00\x47\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x38\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x10\x00\x11\x00\x3a\x00\x3b\x00\x02\x00\x0c\x00\x3e\x00\x7c\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x4d\x00\x49\x00\x7b\x00\x47\x00\x4c\x00\x38\x00\x39\x00\x47\x00\x38\x00\x51\x00\x52\x00\x53\x00\x7e\x00\x82\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x47\x00\x5e\x00\x25\x00\x60\x00\x07\x00\x62\x00\x09\x00\x64\x00\x97\x00\x66\x00\x7d\x00\x68\x00\x38\x00\x6a\x00\x6e\x00\x6c\x00\x02\x00\x02\x00\x6f\x00\x8b\x00\x8c\x00\x47\x00\x73\x00\x74\x00\x75\x00\x02\x00\x04\x00\x78\x00\x01\x00\x97\x00\x03\x00\x9b\x00\x05\x00\x4d\x00\x7f\x00\x80\x00\x81\x00\x8b\x00\x8c\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x76\x00\x8a\x00\x21\x00\x76\x00\x8e\x00\x8f\x00\x90\x00\x76\x00\x76\x00\x02\x00\x94\x00\x95\x00\x96\x00\x23\x00\x07\x00\x99\x00\x2e\x00\x01\x00\x98\x00\x03\x00\x9e\x00\x05\x00\xa0\x00\x8c\x00\x8d\x00\x09\x00\x8c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x98\x00\x47\x00\x36\x00\x3c\x00\x3d\x00\x2a\x00\x2b\x00\x3c\x00\x3d\x00\x3d\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x04\x00\x49\x00\x48\x00\x07\x00\x4c\x00\x25\x00\x2c\x00\x2d\x00\x2e\x00\x47\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x2a\x00\x2b\x00\x3a\x00\x3b\x00\x25\x00\x37\x00\x3e\x00\x02\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x7a\x00\x49\x00\x7c\x00\x02\x00\x4c\x00\x36\x00\x07\x00\x08\x00\x07\x00\x51\x00\x52\x00\x53\x00\x3d\x00\x01\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x6e\x00\x5e\x00\x48\x00\x60\x00\x79\x00\x62\x00\x7b\x00\x64\x00\x02\x00\x66\x00\x04\x00\x68\x00\x24\x00\x6a\x00\x04\x00\x6c\x00\x92\x00\x93\x00\x6f\x00\x91\x00\x92\x00\x93\x00\x73\x00\x74\x00\x75\x00\x06\x00\x07\x00\x78\x00\x23\x00\x9c\x00\x36\x00\x6e\x00\x47\x00\x28\x00\x7f\x00\x80\x00\x81\x00\x3d\x00\x2d\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x36\x00\x00\x00\x00\x00\x48\x00\x8e\x00\x8f\x00\x90\x00\x3d\x00\x07\x00\x07\x00\x94\x00\x95\x00\x96\x00\x29\x00\x03\x00\x99\x00\x05\x00\x01\x00\x48\x00\x03\x00\x9e\x00\x05\x00\xa0\x00\x33\x00\x04\x00\x09\x00\x04\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x01\x00\x79\x00\x01\x00\x7b\x00\x05\x00\x36\x00\x05\x00\x02\x00\x00\x00\x0a\x00\x01\x00\x0a\x00\x3d\x00\x02\x00\x05\x00\x07\x00\x10\x00\x11\x00\x07\x00\x0a\x00\x14\x00\x15\x00\x02\x00\x48\x00\x2c\x00\x2d\x00\x2e\x00\x07\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x36\x00\x0f\x00\x3a\x00\x3b\x00\x12\x00\x13\x00\x3e\x00\x3d\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x08\x00\x49\x00\x48\x00\x02\x00\x4c\x00\x39\x00\x00\x00\x1f\x00\x20\x00\x51\x00\x52\x00\x53\x00\x24\x00\x09\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x03\x00\x5e\x00\x04\x00\x60\x00\x04\x00\x62\x00\x03\x00\x64\x00\x47\x00\x66\x00\x54\x00\x68\x00\x54\x00\x6a\x00\x03\x00\x6c\x00\x06\x00\x07\x00\x6f\x00\x04\x00\x54\x00\x04\x00\x73\x00\x74\x00\x75\x00\x03\x00\x02\x00\x78\x00\x10\x00\x11\x00\x36\x00\x07\x00\x14\x00\x15\x00\x7f\x00\x80\x00\x81\x00\x3d\x00\x02\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x06\x00\x07\x00\x02\x00\x48\x00\x8e\x00\x8f\x00\x90\x00\x07\x00\x02\x00\x02\x00\x94\x00\x95\x00\x96\x00\x07\x00\x07\x00\x99\x00\x07\x00\x01\x00\x00\x00\x03\x00\x9e\x00\x05\x00\xa0\x00\x38\x00\x39\x00\x09\x00\x09\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x25\x00\x43\x00\x44\x00\x43\x00\x44\x00\x47\x00\x48\x00\x47\x00\x48\x00\x47\x00\x48\x00\x4d\x00\x4e\x00\x4f\x00\x4e\x00\x4f\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x24\x00\x08\x00\x2c\x00\x2d\x00\x2e\x00\x29\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x02\x00\x26\x00\x3a\x00\x3b\x00\x28\x00\x07\x00\x3e\x00\x27\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x02\x00\x49\x00\x02\x00\x24\x00\x4c\x00\x07\x00\x09\x00\x07\x00\x29\x00\x51\x00\x52\x00\x53\x00\x47\x00\x48\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x1e\x00\x5e\x00\x02\x00\x60\x00\x47\x00\x62\x00\x03\x00\x64\x00\x03\x00\x66\x00\x01\x00\x68\x00\x01\x00\x6a\x00\x08\x00\x6c\x00\x43\x00\x44\x00\x6f\x00\x25\x00\x47\x00\x48\x00\x73\x00\x74\x00\x75\x00\x43\x00\x44\x00\x78\x00\x4f\x00\x47\x00\x48\x00\x10\x00\x11\x00\x23\x00\x7f\x00\x80\x00\x81\x00\x4f\x00\x28\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x20\x00\x21\x00\x22\x00\x23\x00\x8e\x00\x8f\x00\x90\x00\x17\x00\x18\x00\x19\x00\x94\x00\x95\x00\x96\x00\x0b\x00\x0c\x00\x99\x00\x26\x00\x01\x00\x27\x00\x03\x00\x9e\x00\x05\x00\xa0\x00\x01\x00\x02\x00\x09\x00\x28\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x01\x00\x1f\x00\x0a\x00\x0b\x00\x09\x00\x0d\x00\x0e\x00\x20\x00\x21\x00\x22\x00\x23\x00\x20\x00\x21\x00\x22\x00\x23\x00\x20\x00\x21\x00\x22\x00\x23\x00\x07\x00\x2c\x00\x2d\x00\x2e\x00\x25\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x18\x00\x19\x00\x3a\x00\x3b\x00\x01\x00\x02\x00\x3e\x00\x26\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x27\x00\x49\x00\x18\x00\x19\x00\x4c\x00\x14\x00\x15\x00\x16\x00\x28\x00\x51\x00\x52\x00\x53\x00\x16\x00\x17\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\x5e\x00\x00\x00\x60\x00\x31\x00\x62\x00\x08\x00\x64\x00\x07\x00\x66\x00\x00\x00\x68\x00\x00\x00\x6a\x00\x08\x00\x6c\x00\x01\x00\x01\x00\x6f\x00\x17\x00\x18\x00\x19\x00\x73\x00\x74\x00\x75\x00\x3f\x00\x3f\x00\x78\x00\x14\x00\x15\x00\x16\x00\x1a\x00\x1b\x00\x1c\x00\x7f\x00\x80\x00\x81\x00\x00\x00\x3f\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x07\x00\x25\x00\x28\x00\x08\x00\x8e\x00\x8f\x00\x90\x00\x26\x00\x01\x00\x01\x00\x94\x00\x95\x00\x96\x00\x27\x00\x01\x00\x99\x00\x01\x00\x01\x00\x01\x00\x03\x00\x9e\x00\x05\x00\xa0\x00\x25\x00\x22\x00\x09\x00\x23\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x25\x00\x28\x00\x04\x00\x25\x00\x01\x00\x01\x00\x25\x00\x22\x00\x28\x00\x23\x00\x22\x00\x01\x00\x01\x00\x06\x00\x02\x00\x07\x00\x01\x00\x04\x00\x09\x00\x22\x00\x38\x00\x25\x00\x08\x00\x30\x00\x2c\x00\x2d\x00\x2e\x00\x22\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x0c\x00\x24\x00\x3a\x00\x3b\x00\x06\x00\x04\x00\x3e\x00\x07\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x08\x00\x49\x00\x09\x00\x22\x00\x4c\x00\x01\x00\x24\x00\x02\x00\x06\x00\x51\x00\x52\x00\x53\x00\x09\x00\x07\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x08\x00\x5e\x00\x24\x00\x60\x00\x24\x00\x62\x00\x24\x00\x64\x00\x22\x00\x66\x00\x04\x00\x68\x00\x04\x00\x6a\x00\x24\x00\x6c\x00\x04\x00\x04\x00\x6f\x00\x04\x00\x04\x00\x04\x00\x73\x00\x74\x00\x75\x00\x24\x00\x24\x00\x78\x00\x04\x00\x04\x00\x04\x00\x04\x00\x0c\x00\x01\x00\x7f\x00\x80\x00\x81\x00\x46\x00\x02\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x04\x00\x24\x00\x01\x00\x4f\x00\x8e\x00\x8f\x00\x90\x00\x02\x00\x06\x00\x51\x00\x94\x00\x95\x00\x96\x00\x51\x00\x4f\x00\x99\x00\x07\x00\x01\x00\x08\x00\x03\x00\x9e\x00\x05\x00\xa0\x00\x51\x00\x09\x00\x09\x00\x04\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x4f\x00\x22\x00\x01\x00\xff\xff\x24\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\xff\xff\xff\xff\xff\xff\x94\x00\x95\x00\x96\x00\xff\xff\xff\xff\x01\x00\x9a\x00\x03\x00\xff\xff\x05\x00\xff\xff\x9f\x00\xa0\x00\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\x01\x00\x6f\x00\x03\x00\xff\xff\x05\x00\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\xff\xff\xff\xff\xff\xff\x94\x00\x95\x00\x96\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\x09\x00\xa0\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x96\x00\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\xff\xff\xff\xff\xff\xff\x94\x00\x95\x00\x96\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\x09\x00\xa0\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x04\x00\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\xff\xff\xff\xff\xff\xff\x94\x00\xff\xff\x96\x00\x00\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\x9d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x4e\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\x01\x00\x6f\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\xff\xff\xff\xff\x4c\x00\x4d\x00\x4e\x00\x4f\x00\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\x77\x00\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\xff\xff\xff\xff\xff\xff\x94\x00\x01\x00\x96\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\x77\x00\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\x77\x00\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\x77\x00\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\xff\xff\xff\xff\xff\xff\x94\x00\x01\x00\x96\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\xff\xff\xff\xff\xff\xff\x94\x00\x01\x00\x96\x00\x03\x00\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\xff\xff\xff\xff\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x90\x00\x01\x00\xff\xff\x03\x00\x94\x00\x05\x00\x96\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\x2d\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\xff\xff\xff\xff\x32\x00\x74\x00\x75\x00\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\x3b\x00\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x41\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x8e\x00\x8f\x00\x90\x00\xff\xff\xff\xff\x01\x00\x94\x00\x03\x00\x96\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x23\x00\xff\xff\xff\xff\xff\xff\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\xff\xff\x3e\x00\x4e\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\x01\x00\x6a\x00\x03\x00\x6c\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\x4b\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\x01\x00\x64\x00\x03\x00\x66\x00\x05\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\xff\xff\x61\x00\xff\xff\x63\x00\xff\xff\x65\x00\xff\xff\x67\x00\xff\xff\x69\x00\x01\x00\x6b\x00\x03\x00\x6d\x00\x05\x00\x20\x00\x70\x00\x22\x00\x72\x00\x24\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\x48\x00\x49\x00\x4a\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\x01\x00\x6a\x00\x03\x00\x6c\x00\x05\x00\xff\xff\x6f\x00\xff\xff\x71\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\x01\x00\x6a\x00\x03\x00\x6c\x00\x05\x00\xff\xff\x6f\x00\xff\xff\x71\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\x01\x00\x6f\x00\x03\x00\x71\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\x01\x00\x64\x00\x03\x00\x66\x00\x05\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\x01\x00\x6f\x00\x03\x00\x71\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x01\x00\x02\x00\x03\x00\x20\x00\x05\x00\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\x48\x00\x49\x00\x4a\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\x01\x00\x64\x00\x03\x00\x66\x00\x05\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x01\x00\x68\x00\x03\x00\x6a\x00\x05\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\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\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\xff\xff\x61\x00\xff\xff\x63\x00\x01\x00\x65\x00\x03\x00\x67\x00\x05\x00\x69\x00\xff\xff\x6b\x00\xff\xff\x6d\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\xff\xff\x61\x00\xff\xff\x63\x00\x01\x00\x65\x00\x03\x00\x67\x00\x05\x00\x69\x00\xff\xff\x6b\x00\xff\xff\x6d\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\xff\xff\x61\x00\xff\xff\x63\x00\x01\x00\x65\x00\x03\x00\x67\x00\x05\x00\x69\x00\xff\xff\x6b\x00\xff\xff\x6d\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\xff\xff\x61\x00\xff\xff\x63\x00\x01\x00\x65\x00\x03\x00\x67\x00\x05\x00\x69\x00\xff\xff\x6b\x00\xff\xff\x6d\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\xff\xff\x61\x00\xff\xff\x63\x00\x01\x00\x65\x00\x03\x00\x67\x00\x05\x00\x69\x00\xff\xff\x6b\x00\xff\xff\x6d\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\x01\x00\x64\x00\x03\x00\x66\x00\x05\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\x01\x00\x64\x00\x03\x00\x66\x00\x05\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\x01\x00\x64\x00\x03\x00\x66\x00\x05\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\x01\x00\x64\x00\x03\x00\x66\x00\x05\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\x01\x00\x64\x00\x03\x00\x66\x00\x05\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\x01\x00\x64\x00\x03\x00\x66\x00\x05\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\xff\xff\x62\x00\x01\x00\x64\x00\x03\x00\x66\x00\x05\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\x5e\x00\xff\xff\x60\x00\x01\x00\x62\x00\x03\x00\x64\x00\x05\x00\x66\x00\xff\xff\x68\x00\xff\xff\x6a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\x04\x00\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\x01\x00\x5f\x00\x03\x00\x61\x00\x05\x00\x63\x00\xff\xff\x65\x00\xff\xff\x67\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\x4e\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\x5e\x00\x03\x00\x60\x00\x05\x00\x62\x00\xff\xff\x64\x00\xff\xff\x66\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x96\x00\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\xff\xff\x61\x00\xff\xff\x63\x00\x3e\x00\x65\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\x5e\x00\x03\x00\x60\x00\x05\x00\x62\x00\xff\xff\x64\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x96\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\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\xff\xff\x61\x00\x3e\x00\x63\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\x5e\x00\x03\x00\x60\x00\x05\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\x96\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\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\x3e\x00\x61\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\x5e\x00\x03\x00\x60\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\x3e\x00\x5f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\x5e\x00\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x96\x00\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x96\x00\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\xff\xff\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x59\x00\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\x96\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\x05\x00\xff\xff\x96\x00\xff\xff\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\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\x96\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\xff\xff\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x3e\x00\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x01\x00\x49\x00\xff\xff\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\x96\x00\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\x96\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\xff\xff\x27\x00\x28\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\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\xff\xff\x4f\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\xff\xff\x27\x00\x28\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\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\x01\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\x28\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\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\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\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\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\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\x01\x00\x4e\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\x02\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\x21\x00\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\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"#++happyTable :: HappyAddr+happyTable = HappyA# "\x00\x00\xd5\x01\x06\x00\x12\x02\x07\x00\xed\x01\x08\x00\x97\x01\xf1\x00\x04\x01\x09\x00\xc0\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x4a\x01\x88\x00\x0c\x01\xfd\x00\x9a\x01\x1d\x02\xfd\x00\xbe\x01\x3a\x02\x05\x02\xfd\x00\xfd\x00\xf2\x01\x7d\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\xed\x00\xee\x00\xf3\x01\xfc\x00\x06\x01\x13\x00\x14\x00\x15\x00\x05\x02\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xe3\x00\xe4\x00\x1e\x00\x1f\x00\xbd\x00\xf1\x00\x7f\x00\x0f\x02\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xf2\x00\x29\x00\xc7\x01\x98\x01\x2a\x00\x05\x02\x1e\x02\x05\x01\x05\x02\x2b\x00\x2c\x00\x2d\x00\xd6\x01\x13\x02\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x98\x01\x35\x00\x40\x01\x36\x00\xd3\x01\x37\x00\xd4\x01\x38\x00\x89\x00\x39\x00\x4b\x01\x3a\x00\xdc\x00\x3b\x00\xbf\x01\x3c\x00\xbd\x00\x03\x02\x3d\x00\x32\x02\x07\x02\x07\x01\x80\x00\x3f\x00\x40\x00\xbd\x00\x3d\x02\x41\x00\x06\x00\x89\x00\x79\x00\x7e\x00\x08\x00\xf2\x00\x42\x00\x43\x00\x44\x00\x06\x02\x07\x02\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x3c\x02\xee\x01\x20\x01\x24\x02\x4b\x00\x4c\x00\x4d\x00\xa9\x01\xfe\x00\x18\x02\x4e\x00\x81\x00\x4f\x00\x95\x00\xbb\x00\x2f\x02\x04\x02\x06\x00\x99\x01\x07\x00\xfb\x01\x08\x00\xfc\x01\x1f\x02\x20\x02\x09\x00\x1f\x02\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x9b\x01\xc0\x01\x65\x00\x62\x01\x63\x01\xed\x00\xee\x00\x62\x01\x63\x01\x6a\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x7a\x00\x7b\x00\x93\x01\x29\x00\x75\x00\x94\x01\x2a\x00\x40\x01\x13\x00\x14\x00\x15\x00\x0c\x01\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xed\x00\xee\x00\x1e\x00\x1f\x00\x40\x01\x66\x00\x7f\x00\x37\x02\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xc1\x01\x29\x00\xc2\x01\x0c\x02\x2a\x00\x65\x00\xbb\x00\x31\x02\xbb\x00\x2b\x00\x2c\x00\x2d\x00\x6a\x00\x06\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\xbf\x01\x35\x00\x75\x00\x36\x00\x0d\x01\x37\x00\x0e\x01\x38\x00\xbd\x00\x39\x00\xfc\x00\x3a\x00\xbc\xff\x3b\x00\x2c\x02\x3c\x00\xa7\x01\xa8\x01\x3d\x00\x64\x01\x65\x01\x66\x01\x80\x00\x3f\x00\x40\x00\xa4\x01\xbb\x00\x41\x00\x95\x00\x7c\x00\xbc\xff\xef\x00\x0c\x01\x09\x02\x42\x00\x43\x00\x44\x00\xbc\xff\x22\x02\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x65\x00\x47\x01\x49\x01\xbc\xff\x4b\x00\x4c\x00\x4d\x00\x6a\x00\x48\x01\x48\x01\x4e\x00\x81\x00\x4f\x00\x68\x01\xc0\x00\x26\x02\xc1\x00\x06\x00\x75\x00\x07\x00\xfb\x01\x08\x00\xfc\x01\x69\x01\x2d\x02\x09\x00\x2e\x02\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\xf2\x00\x0f\x01\xf2\x00\x0e\x01\xf7\x00\xce\xff\xf3\x00\x30\x02\x5f\x01\xf8\x00\xf2\x00\xf4\x00\xce\xff\x11\x02\xf7\x00\xbb\x00\xd8\x00\xd9\x00\xbb\x00\xf8\x00\xda\x00\xdb\x00\xf5\x01\xce\xff\x13\x00\x14\x00\x15\x00\xf6\x01\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xcd\xff\xe1\x00\x1e\x00\x1f\x00\xe2\x00\xe3\x00\x7f\x00\xcd\xff\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x33\x02\x29\x00\xcd\xff\x34\x02\x2a\x00\xdd\x00\x17\x02\xf7\x00\x59\x00\x2b\x00\x2c\x00\x2d\x00\x5b\x00\x19\x02\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x25\x02\x35\x00\x28\x02\x36\x00\x2b\x02\x37\x00\xfd\x01\x38\x00\xff\x01\x39\x00\x8f\x01\x3a\x00\xf5\x00\x3b\x00\x00\x02\x3c\x00\xa5\x01\xbb\x00\x3d\x00\x8c\x00\xf9\x00\x9c\x01\x80\x00\x3f\x00\x40\x00\x01\x02\xf8\x01\x41\x00\xd8\x00\xd9\x00\x65\x00\xf6\x01\xda\x00\xdb\x00\x42\x00\x43\x00\x44\x00\x6a\x00\x02\x02\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x45\x01\x46\x01\xa2\x01\x75\x00\x4b\x00\x4c\x00\x4d\x00\xa3\x01\xab\x01\xac\x01\x4e\x00\x81\x00\x4f\x00\xbb\x00\xbb\x00\x27\x02\xbb\x00\x06\x00\x09\x02\x07\x00\xfb\x01\x08\x00\xfc\x01\xdc\x00\xdd\x00\x09\x00\x0a\x02\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\xb1\x01\x8d\x00\x8e\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x8f\x00\x90\x00\x8f\x00\x6c\x01\x91\x00\x92\x00\x93\x00\x9d\x01\x93\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xaf\x01\x0b\x02\x13\x00\x14\x00\x15\x00\xb0\x01\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xc3\x01\xb2\x01\x1e\x00\x1f\x00\xb3\x01\xbb\x00\x7f\x00\xb4\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xc5\x01\x29\x00\x3e\x01\xbd\x00\x2a\x00\xbb\x00\x15\x02\xbb\x00\xbe\x00\x2b\x00\x2c\x00\x2d\x00\x8f\x00\x70\x01\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\xd2\x01\x35\x00\xf4\x01\x36\x00\xef\x01\x37\x00\xf7\x01\x38\x00\xf9\x01\x39\x00\x9f\x01\x3a\x00\xa0\x01\x3b\x00\xa1\x01\x3c\x00\x8d\x00\x8e\x00\x3d\x00\xc1\x00\x8f\x00\x90\x00\x80\x00\x3f\x00\x40\x00\x8d\x00\x8e\x00\x41\x00\x90\x01\x8f\x00\x90\x00\xe3\x00\xe4\x00\x95\x00\x42\x00\x43\x00\x44\x00\x91\x01\x09\x02\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xb5\x01\xb6\x01\xb7\x01\xb8\x01\x4b\x00\x4c\x00\x4d\x00\xdd\x00\xde\x00\xdf\x00\x4e\x00\x81\x00\x4f\x00\xeb\x00\xec\x00\x29\x02\xc3\x00\x06\x00\xc7\x00\x07\x00\xfb\x01\x08\x00\xfc\x01\x52\x00\xbd\x00\x09\x00\xc5\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\xb9\x01\xba\x01\xbb\x01\xbc\x01\xaa\x01\xbd\x01\xce\x00\xcf\x00\xad\x01\xd0\x00\xd1\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xb5\x01\xb6\x01\xb7\x01\xb8\x01\xc9\x00\xca\x00\xcb\x00\xcc\x00\xae\x01\x13\x00\x14\x00\x15\x00\xb1\x01\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x55\x00\x56\x00\x1e\x00\x1f\x00\x06\x00\xbd\x00\x7f\x00\xb2\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xb4\x01\x29\x00\x55\x00\x56\x00\x2a\x00\xe5\x00\xe6\x00\xe7\x00\xb3\x01\x2b\x00\x2c\x00\x2d\x00\x53\x00\x54\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\xc4\x01\x35\x00\xb9\x00\x36\x00\x4d\x01\x37\x00\xfa\x00\x38\x00\xbb\x00\x39\x00\x5d\x01\x3a\x00\x5e\x01\x3b\x00\x92\x01\x3c\x00\x95\x01\x96\x01\x3d\x00\xdd\x00\xde\x00\xdf\x00\x80\x00\x3f\x00\x40\x00\x8a\x00\x8b\x00\x41\x00\xe5\x00\xe6\x00\xe7\x00\xe9\x00\xea\x00\xeb\x00\x42\x00\x43\x00\x44\x00\xb9\x00\xba\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xbb\x00\xc1\x00\xc5\x00\xfa\x00\x4b\x00\x4c\x00\x4d\x00\xc3\x00\x00\x01\x01\x01\x4e\x00\x81\x00\x4f\x00\xc7\x00\x08\x01\xfa\x01\x09\x01\x06\x00\x0b\x01\x07\x00\xfb\x01\x08\x00\xfc\x01\x40\x01\x5a\x00\x09\x00\x95\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x40\x01\x09\x02\xfc\x00\x40\x01\x06\x00\x52\x00\x40\x01\x5a\x00\x09\x02\x95\x00\x5a\x00\x06\x00\x52\x00\xc3\x00\xbd\x00\xc5\x00\x52\x00\xfc\x00\xc9\x00\x5a\x00\xdc\x00\x40\x01\xc7\x00\x15\x02\x13\x00\x14\x00\x15\x00\x5a\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xf1\x00\x5b\x00\x1e\x00\x1f\x00\xc3\x00\xfc\x00\x7f\x00\xc5\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xc7\x00\x29\x00\xc9\x00\x5a\x00\x2a\x00\x52\x00\x5b\x00\xbd\x00\xc3\x00\x2b\x00\x2c\x00\x2d\x00\xc9\x00\xc5\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\xc7\x00\x35\x00\x5b\x00\x36\x00\xc4\xff\x37\x00\xc9\xff\x38\x00\xbf\xff\x39\x00\x8a\xff\x3a\x00\x8c\xff\x3b\x00\xc3\xff\x3c\x00\x8f\xff\x90\xff\x3d\x00\x99\xff\x9c\xff\xa0\xff\x80\x00\x3f\x00\x40\x00\xcc\xff\xc8\xff\x41\x00\xa4\xff\xfc\x00\x6e\xff\x6d\xff\xf1\x00\x06\x00\x42\x00\x43\x00\x44\x00\x73\x00\xbd\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xfc\x00\x5b\x00\x06\x00\x88\x00\x4b\x00\x4c\x00\x4d\x00\xbd\x00\xc3\x00\xff\xff\x4e\x00\x81\x00\x4f\x00\xff\xff\x88\x00\xfe\x01\xc5\x00\x06\x00\xc7\x00\x07\x00\xfb\x01\x08\x00\xfc\x01\xff\xff\xc9\x00\x09\x00\xfc\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x88\x00\x5a\x00\x06\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x80\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x81\x00\x4f\x00\x00\x00\x00\x00\x06\x00\x82\x00\x07\x00\x00\x00\x08\x00\x00\x00\x83\x00\x84\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x7f\x00\x85\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x06\x00\x3d\x00\x79\x00\x00\x00\x08\x00\x80\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x81\x00\x4f\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x09\x00\x86\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x00\xb8\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x4f\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x80\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x81\x00\x4f\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x09\x00\x2a\x02\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x8e\xff\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x02\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\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\x6e\x01\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\x6f\x01\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\x75\x00\x76\x00\x77\x00\x78\x00\x00\x00\x00\x00\xb7\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x06\x00\x03\x01\x07\x00\x20\x01\x08\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x21\x01\x22\x01\x26\x00\x27\x00\x23\x01\x90\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x91\x00\x92\x00\x93\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x24\x01\x3f\x00\x40\x00\x00\x00\x25\x01\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x06\x00\x4f\x00\x07\x00\x69\x01\x08\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x24\x01\x3f\x00\x40\x00\x00\x00\x6a\x01\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x24\x01\x3f\x00\x40\x00\x00\x00\x39\x02\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x24\x01\x3f\x00\x40\x00\x00\x00\x3b\x02\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x06\x00\x4f\x00\x07\x00\xa6\x01\x08\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x41\x01\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x06\x00\x4f\x00\x07\x00\x40\x01\x08\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x41\x01\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x41\x01\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x3e\x02\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x38\x02\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x36\x02\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x16\x02\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x1a\x02\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xd1\x01\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xec\x01\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x6b\x01\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x0a\x01\x3f\x00\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x06\x00\x00\x00\x07\x00\x4e\x00\x08\x00\x4f\x00\x00\x00\x00\x00\xcd\x01\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x14\x00\x15\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x62\x00\xce\x01\x40\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x00\x00\x00\x00\x43\x00\x44\x00\x6e\x00\xcf\x01\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x76\x00\x77\x00\x78\x00\x79\x00\x4b\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x06\x00\x4e\x00\x79\x00\x4f\x00\x08\x00\x1a\x01\x1b\x01\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x95\x00\x00\x00\x00\x00\x00\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\x75\x00\x76\x00\x77\x00\x78\x00\x00\x00\x20\x00\xb7\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x1c\x01\x1d\x01\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x06\x00\x3b\x00\x79\x00\x1e\x01\x08\x00\xc8\x01\x1b\x01\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\xc9\x01\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x06\x00\x38\x00\x79\x00\x39\x00\x08\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xca\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x50\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x51\x01\x00\x00\x52\x01\x00\x00\x53\x01\x00\x00\x54\x01\x00\x00\x55\x01\x00\x00\x56\x01\x00\x00\x57\x01\x00\x00\x58\x01\x06\x00\x59\x01\x79\x00\x5a\x01\x08\x00\x59\x00\x5b\x01\x5a\x00\x5c\x01\x5b\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x64\x00\x65\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x6a\x00\x00\x00\x6c\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x06\x00\x3b\x00\x79\x00\x3c\x00\x08\x00\x00\x00\xea\x01\x00\x00\x35\x02\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x06\x00\x3b\x00\x79\x00\x3c\x00\x08\x00\x00\x00\xea\x01\x00\x00\x1c\x02\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x06\x00\xea\x01\x79\x00\x0e\x02\x08\x00\xcb\x01\x43\x01\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x06\x00\x38\x00\x79\x00\x39\x00\x08\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xcc\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x06\x00\xea\x01\x79\x00\xeb\x01\x08\x00\x42\x01\x43\x01\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x44\x01\x06\x00\x72\x01\x79\x00\x59\x00\x08\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x6a\x00\x00\x00\x6c\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x73\x01\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x06\x00\x38\x00\x79\x00\x39\x00\x08\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x74\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\x22\x02\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\x10\x02\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\xd0\x01\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\xd9\x01\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\x4e\x01\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\x60\x01\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\x61\x01\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\x6f\x01\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\x71\x01\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\xff\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x06\x00\x3a\x00\x79\x00\x3b\x00\x08\x00\x3c\x00\x00\x00\x00\x00\x3d\x01\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\xd7\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x51\x01\x00\x00\x52\x01\x00\x00\x53\x01\x00\x00\x54\x01\x00\x00\x55\x01\x06\x00\x56\x01\x79\x00\x57\x01\x08\x00\x58\x01\x00\x00\x59\x01\x00\x00\x1b\x02\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\xd7\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x51\x01\x00\x00\x52\x01\x00\x00\x53\x01\x00\x00\x54\x01\x00\x00\x55\x01\x06\x00\x56\x01\x79\x00\x57\x01\x08\x00\x58\x01\x00\x00\x59\x01\x00\x00\x0d\x02\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\xd7\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x51\x01\x00\x00\x52\x01\x00\x00\x53\x01\x00\x00\x54\x01\x00\x00\x55\x01\x06\x00\x56\x01\x79\x00\x57\x01\x08\x00\x58\x01\x00\x00\x59\x01\x00\x00\xd8\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\xd7\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x51\x01\x00\x00\x52\x01\x00\x00\x53\x01\x00\x00\x54\x01\x00\x00\x55\x01\x06\x00\x56\x01\x79\x00\x57\x01\x08\x00\x58\x01\x00\x00\x59\x01\x00\x00\xe7\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\xd7\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x51\x01\x00\x00\x52\x01\x00\x00\x53\x01\x00\x00\x54\x01\x00\x00\x55\x01\x06\x00\x56\x01\x79\x00\x57\x01\x08\x00\x58\x01\x00\x00\x59\x01\x00\x00\xe9\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x06\x00\x38\x00\x79\x00\x39\x00\x08\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xf0\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x06\x00\x38\x00\x79\x00\x39\x00\x08\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xf1\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x06\x00\x38\x00\x79\x00\x39\x00\x08\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x9e\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x06\x00\x38\x00\x79\x00\x39\x00\x08\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\xc6\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x06\x00\x38\x00\x79\x00\x39\x00\x08\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x75\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x06\x00\x38\x00\x79\x00\x39\x00\x08\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x8c\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x06\x00\x38\x00\x79\x00\x39\x00\x08\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x8e\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x06\x00\x37\x00\x79\x00\x38\x00\x08\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x23\x02\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\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\x6e\x01\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\x6f\x01\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\x75\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x95\xff\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x51\x01\x00\x00\x52\x01\x06\x00\x53\x01\x79\x00\x54\x01\x08\x00\x55\x01\x00\x00\x56\x01\x00\x00\xe8\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\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\x6e\x01\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\x6f\x01\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\x75\x00\x76\x00\x77\x00\x78\x00\x4f\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x06\x00\x35\x00\x79\x00\x36\x00\x08\x00\x37\x00\x00\x00\x38\x00\x00\x00\x8d\x01\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x51\x01\x00\x00\x52\x01\x00\x00\x53\x01\x00\x00\x54\x01\x00\x00\x55\x01\x20\x00\xe6\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x06\x00\x35\x00\x79\x00\x36\x00\x08\x00\x37\x00\x00\x00\x8b\x01\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x51\x01\x00\x00\x52\x01\x00\x00\x53\x01\x00\x00\x54\x01\x20\x00\xe5\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x06\x00\x35\x00\x79\x00\x36\x00\x08\x00\x8a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x51\x01\x00\x00\x52\x01\x00\x00\x53\x01\x20\x00\xe4\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x06\x00\x35\x00\x79\x00\x89\x01\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x51\x01\x00\x00\x52\x01\x20\x00\xe3\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x06\x00\x88\x01\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\xdf\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\xe0\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\xe1\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\xe2\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x84\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x85\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x86\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x87\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\xda\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\xdb\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\xdc\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\xdd\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\xde\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x7e\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x7f\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x80\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x81\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x82\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x32\x00\x83\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x7b\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x7c\x01\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x31\x00\x7d\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x4f\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x79\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x30\x00\x7a\x01\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x76\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x77\x01\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x78\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x11\x01\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x12\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x13\x01\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x14\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x15\x01\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x16\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x17\x01\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x00\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x18\x01\x20\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x7b\x00\x06\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x00\x00\x10\x01\x2f\x00\x19\x01\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x00\x00\x00\x00\x57\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\x4f\x00\x64\x00\x65\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x6a\x00\x00\x00\x6c\x00\x00\x00\x6e\x00\x00\x00\x70\x00\x00\x00\x72\x00\x00\x00\x00\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x00\x00\x00\x00\x4f\x00\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x00\x00\x8e\xff\x8e\xff\x00\x00\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x00\x00\x8e\xff\x00\x00\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x8e\xff\x00\x00\x8e\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x00\x00\x95\xff\x95\xff\x00\x00\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x00\x00\x95\xff\x00\x00\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\x95\xff\xf5\xfe\x95\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\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\x00\x00\x00\x00\x00\x00\xf5\xfe\xf5\xfe\x00\x00\xf5\xfe\x00\x00\xf5\xfe\xf5\xfe\xf5\xfe\x00\x00\x00\x00\xf5\xfe\xf5\xfe\x00\x00\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\x00\x00\xf5\xfe\x00\x00\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\x00\x00\x00\x00\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\xf5\xfe\x52\x00\x00\x00\xf5\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x00\x00\x00\x00\x57\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x00\x00\x60\x00\x61\x00\x00\x00\x00\x00\x62\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x00\x00\x00\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\x52\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x00\x00\x00\x00\x57\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x95\x00\x5b\x00\x00\x00\x00\x00\x27\x01\x97\x00\x98\x00\x28\x01\x29\x01\x2a\x01\x9c\x00\x2b\x01\x2c\x01\x9f\x00\xa0\x00\x2d\x01\xa2\x00\x2e\x01\x2f\x01\xa5\x00\x30\x01\xa7\x00\xa8\x00\x31\x01\x32\x01\x33\x01\xac\x00\x34\x01\x35\x01\x36\x01\x37\x01\x38\x01\x39\x01\x3a\x01\x3b\x01\x3c\x01\x3d\x01\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x52\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x00\x00\x00\x00\x57\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x95\x00\x5b\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x00\x00\x60\x00\x61\x00\x00\x00\x00\x00\x62\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x06\x00\x00\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\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x00\x00\x00\x00\x00\x00\xfa\xff\xfa\xff\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\x00\x00\xfa\xff\x00\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\xfa\xff\xfa\xff\x00\x00\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x52\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x00\x00\x00\x00\x57\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x95\x00\x5b\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x00\x00\x60\x00\x61\x00\x00\x00\x00\x00\x62\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x52\x00\x00\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\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x00\x00\x00\x00\x57\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x5d\x00\x5e\x00\x5f\x00\x00\x00\x60\x00\x61\x00\x00\x00\x00\x00\x62\x00\x00\x00\x63\x00\x64\x00\x65\x00\x66\x00\x00\x00\xbd\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\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x00\x00\x00\x00\x57\x00\x58\x00\x00\x00\x59\x00\x20\x01\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x64\x00\x65\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x6a\x00\x00\x00\x6c\x00\x00\x00\x6e\x00\x00\x00\x70\x00\x00\x00\x72\x00\x00\x00\x00\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x00\x00\x00\x00\x57\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x64\x00\x65\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x6a\x00\x00\x00\x6c\x00\x00\x00\x6e\x00\x00\x00\x70\x00\x71\x00\x72\x00\x00\x00\x00\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x00\x00\x00\x00\x57\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x40\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x64\x00\x65\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x6a\x00\x00\x00\x6c\x00\x00\x00\x6e\x00\x00\x00\x70\x00\x00\x00\x72\x00\x00\x00\x00\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x00\x00\x00\x00\x57\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x64\x00\x65\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x6a\x00\x00\x00\x6c\x00\x00\x00\x6e\x00\x00\x00\x70\x00\x00\x00\x72\x00\x00\x00\x00\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\xec\xff\xec\xff\xec\xff\xec\xff\x00\x00\x00\x00\x00\x00\xec\xff\xec\xff\x00\x00\xec\xff\x00\x00\xec\xff\x00\x00\xec\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\x00\x00\x00\x00\x00\x00\xec\xff\x00\x00\x00\x00\xec\xff\xec\xff\x00\x00\x00\x00\x00\x00\xec\xff\xec\xff\x00\x00\xec\xff\x00\x00\xec\xff\x00\x00\xec\xff\x00\x00\xec\xff\x00\x00\xec\xff\x00\x00\x00\x00\xec\xff\xec\xff\xec\xff\xec\xff\xec\xff\xeb\xff\xeb\xff\xeb\xff\xeb\xff\x00\x00\x00\x00\x00\x00\xeb\xff\xeb\xff\x00\x00\xeb\xff\x00\x00\xeb\xff\x00\x00\xeb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xff\x00\x00\x00\x00\x00\x00\xeb\xff\x00\x00\x00\x00\xeb\xff\xeb\xff\x00\x00\x00\x00\x00\x00\xeb\xff\xeb\xff\x00\x00\xeb\xff\x00\x00\xeb\xff\x00\x00\xeb\xff\x00\x00\xeb\xff\x00\x00\xeb\xff\x00\x00\x00\x00\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xc0\xff\xc0\xff\xc0\xff\xc0\xff\x00\x00\x00\x00\x00\x00\xc0\xff\xc0\xff\x00\x00\xc0\xff\x00\x00\xc0\xff\x00\x00\xc0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xff\x00\x00\x00\x00\x00\x00\xc0\xff\x00\x00\x00\x00\xc0\xff\xc0\xff\x00\x00\x00\x00\x00\x00\xc0\xff\xc0\xff\x00\x00\xc0\xff\x00\x00\xc0\xff\x00\x00\xc0\xff\x00\x00\xc0\xff\x00\x00\xc0\xff\x00\x00\x00\x00\xc0\xff\xc0\xff\xc0\xff\xc0\xff\xc0\xff\xed\xff\xed\xff\xed\xff\xed\xff\x00\x00\x00\x00\x00\x00\xed\xff\xed\xff\x00\x00\xed\xff\x00\x00\xed\xff\x00\x00\xed\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\x00\x00\xed\xff\xed\xff\x00\x00\x00\x00\x00\x00\xed\xff\xed\xff\x00\x00\xed\xff\x00\x00\xed\xff\x00\x00\xed\xff\x00\x00\xed\xff\x00\x00\xed\xff\x00\x00\x00\x00\xed\xff\xed\xff\xed\xff\xed\xff\xed\xff\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x00\x00\x00\x00\x57\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x64\x00\x65\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x6a\x00\x00\x00\x6c\x00\x00\x00\x6e\x00\x00\x00\x70\x00\x00\x00\x72\x00\x00\x00\x00\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (4, 345) [+	(4 , happyReduce_4),+	(5 , happyReduce_5),+	(6 , happyReduce_6),+	(7 , happyReduce_7),+	(8 , happyReduce_8),+	(9 , happyReduce_9),+	(10 , happyReduce_10),+	(11 , happyReduce_11),+	(12 , happyReduce_12),+	(13 , happyReduce_13),+	(14 , happyReduce_14),+	(15 , happyReduce_15),+	(16 , happyReduce_16),+	(17 , happyReduce_17),+	(18 , happyReduce_18),+	(19 , happyReduce_19),+	(20 , happyReduce_20),+	(21 , happyReduce_21),+	(22 , happyReduce_22),+	(23 , happyReduce_23),+	(24 , happyReduce_24),+	(25 , happyReduce_25),+	(26 , happyReduce_26),+	(27 , happyReduce_27),+	(28 , happyReduce_28),+	(29 , happyReduce_29),+	(30 , happyReduce_30),+	(31 , happyReduce_31),+	(32 , happyReduce_32),+	(33 , happyReduce_33),+	(34 , happyReduce_34),+	(35 , happyReduce_35),+	(36 , happyReduce_36),+	(37 , happyReduce_37),+	(38 , happyReduce_38),+	(39 , happyReduce_39),+	(40 , happyReduce_40),+	(41 , happyReduce_41),+	(42 , happyReduce_42),+	(43 , happyReduce_43),+	(44 , happyReduce_44),+	(45 , happyReduce_45),+	(46 , happyReduce_46),+	(47 , happyReduce_47),+	(48 , happyReduce_48),+	(49 , happyReduce_49),+	(50 , happyReduce_50),+	(51 , happyReduce_51),+	(52 , happyReduce_52),+	(53 , happyReduce_53),+	(54 , happyReduce_54),+	(55 , happyReduce_55),+	(56 , happyReduce_56),+	(57 , happyReduce_57),+	(58 , happyReduce_58),+	(59 , happyReduce_59),+	(60 , happyReduce_60),+	(61 , happyReduce_61),+	(62 , happyReduce_62),+	(63 , happyReduce_63),+	(64 , happyReduce_64),+	(65 , happyReduce_65),+	(66 , happyReduce_66),+	(67 , happyReduce_67),+	(68 , happyReduce_68),+	(69 , happyReduce_69),+	(70 , happyReduce_70),+	(71 , happyReduce_71),+	(72 , happyReduce_72),+	(73 , happyReduce_73),+	(74 , happyReduce_74),+	(75 , happyReduce_75),+	(76 , happyReduce_76),+	(77 , happyReduce_77),+	(78 , happyReduce_78),+	(79 , happyReduce_79),+	(80 , happyReduce_80),+	(81 , happyReduce_81),+	(82 , happyReduce_82),+	(83 , happyReduce_83),+	(84 , happyReduce_84),+	(85 , happyReduce_85),+	(86 , happyReduce_86),+	(87 , happyReduce_87),+	(88 , happyReduce_88),+	(89 , happyReduce_89),+	(90 , happyReduce_90),+	(91 , happyReduce_91),+	(92 , happyReduce_92),+	(93 , happyReduce_93),+	(94 , happyReduce_94),+	(95 , happyReduce_95),+	(96 , happyReduce_96),+	(97 , happyReduce_97),+	(98 , happyReduce_98),+	(99 , happyReduce_99),+	(100 , happyReduce_100),+	(101 , happyReduce_101),+	(102 , happyReduce_102),+	(103 , happyReduce_103),+	(104 , happyReduce_104),+	(105 , happyReduce_105),+	(106 , happyReduce_106),+	(107 , happyReduce_107),+	(108 , happyReduce_108),+	(109 , happyReduce_109),+	(110 , happyReduce_110),+	(111 , happyReduce_111),+	(112 , happyReduce_112),+	(113 , happyReduce_113),+	(114 , happyReduce_114),+	(115 , happyReduce_115),+	(116 , happyReduce_116),+	(117 , happyReduce_117),+	(118 , happyReduce_118),+	(119 , happyReduce_119),+	(120 , happyReduce_120),+	(121 , happyReduce_121),+	(122 , happyReduce_122),+	(123 , happyReduce_123),+	(124 , happyReduce_124),+	(125 , happyReduce_125),+	(126 , happyReduce_126),+	(127 , happyReduce_127),+	(128 , happyReduce_128),+	(129 , happyReduce_129),+	(130 , happyReduce_130),+	(131 , happyReduce_131),+	(132 , happyReduce_132),+	(133 , happyReduce_133),+	(134 , happyReduce_134),+	(135 , happyReduce_135),+	(136 , happyReduce_136),+	(137 , happyReduce_137),+	(138 , happyReduce_138),+	(139 , happyReduce_139),+	(140 , happyReduce_140),+	(141 , happyReduce_141),+	(142 , happyReduce_142),+	(143 , happyReduce_143),+	(144 , happyReduce_144),+	(145 , happyReduce_145),+	(146 , happyReduce_146),+	(147 , happyReduce_147),+	(148 , happyReduce_148),+	(149 , happyReduce_149),+	(150 , happyReduce_150),+	(151 , happyReduce_151),+	(152 , happyReduce_152),+	(153 , happyReduce_153),+	(154 , happyReduce_154),+	(155 , happyReduce_155),+	(156 , happyReduce_156),+	(157 , happyReduce_157),+	(158 , happyReduce_158),+	(159 , happyReduce_159),+	(160 , happyReduce_160),+	(161 , happyReduce_161),+	(162 , happyReduce_162),+	(163 , happyReduce_163),+	(164 , happyReduce_164),+	(165 , happyReduce_165),+	(166 , happyReduce_166),+	(167 , happyReduce_167),+	(168 , happyReduce_168),+	(169 , happyReduce_169),+	(170 , happyReduce_170),+	(171 , happyReduce_171),+	(172 , happyReduce_172),+	(173 , happyReduce_173),+	(174 , happyReduce_174),+	(175 , happyReduce_175),+	(176 , happyReduce_176),+	(177 , happyReduce_177),+	(178 , happyReduce_178),+	(179 , happyReduce_179),+	(180 , happyReduce_180),+	(181 , happyReduce_181),+	(182 , happyReduce_182),+	(183 , happyReduce_183),+	(184 , happyReduce_184),+	(185 , happyReduce_185),+	(186 , happyReduce_186),+	(187 , happyReduce_187),+	(188 , happyReduce_188),+	(189 , happyReduce_189),+	(190 , happyReduce_190),+	(191 , happyReduce_191),+	(192 , happyReduce_192),+	(193 , happyReduce_193),+	(194 , happyReduce_194),+	(195 , happyReduce_195),+	(196 , happyReduce_196),+	(197 , happyReduce_197),+	(198 , happyReduce_198),+	(199 , happyReduce_199),+	(200 , happyReduce_200),+	(201 , happyReduce_201),+	(202 , happyReduce_202),+	(203 , happyReduce_203),+	(204 , happyReduce_204),+	(205 , happyReduce_205),+	(206 , happyReduce_206),+	(207 , happyReduce_207),+	(208 , happyReduce_208),+	(209 , happyReduce_209),+	(210 , happyReduce_210),+	(211 , happyReduce_211),+	(212 , happyReduce_212),+	(213 , happyReduce_213),+	(214 , happyReduce_214),+	(215 , happyReduce_215),+	(216 , happyReduce_216),+	(217 , happyReduce_217),+	(218 , happyReduce_218),+	(219 , happyReduce_219),+	(220 , happyReduce_220),+	(221 , happyReduce_221),+	(222 , happyReduce_222),+	(223 , happyReduce_223),+	(224 , happyReduce_224),+	(225 , happyReduce_225),+	(226 , happyReduce_226),+	(227 , happyReduce_227),+	(228 , happyReduce_228),+	(229 , happyReduce_229),+	(230 , happyReduce_230),+	(231 , happyReduce_231),+	(232 , happyReduce_232),+	(233 , happyReduce_233),+	(234 , happyReduce_234),+	(235 , happyReduce_235),+	(236 , happyReduce_236),+	(237 , happyReduce_237),+	(238 , happyReduce_238),+	(239 , happyReduce_239),+	(240 , happyReduce_240),+	(241 , happyReduce_241),+	(242 , happyReduce_242),+	(243 , happyReduce_243),+	(244 , happyReduce_244),+	(245 , happyReduce_245),+	(246 , happyReduce_246),+	(247 , happyReduce_247),+	(248 , happyReduce_248),+	(249 , happyReduce_249),+	(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)+	]++happy_n_terms = 82 :: Int+happy_n_nonterms = 161 :: Int++happyReduce_4 = happySpecReduce_1  0# happyReduction_4+happyReduction_4 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn7+		 (AST.NT (AST.JSLiteral ";") (ss happy_var_1) (gc happy_var_1)+	)}++happyReduce_5 = happySpecReduce_0  0# happyReduction_5+happyReduction_5  =  happyIn7+		 (AST.NT (AST.JSLiteral "") tokenPosnEmpty []+	)++happyReduce_6 = happySpecReduce_1  1# happyReduction_6+happyReduction_6 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn8+		 (fp (AST.NT (AST.JSLiteral "(") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_7 = happySpecReduce_1  2# happyReduction_7+happyReduction_7 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn9+		 (fp (AST.NT (AST.JSLiteral ")") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_8 = happySpecReduce_1  3# happyReduction_8+happyReduction_8 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn10+		 (fp (AST.NT (AST.JSLiteral "{") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_9 = happySpecReduce_1  4# happyReduction_9+happyReduction_9 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn11+		 (fp (AST.NT (AST.JSLiteral "}") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_10 = happySpecReduce_1  5# happyReduction_10+happyReduction_10 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn12+		 (fp (AST.NT (AST.JSLiteral "[") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_11 = happySpecReduce_1  6# happyReduction_11+happyReduction_11 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn13+		 (fp (AST.NT (AST.JSLiteral "]") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_12 = happySpecReduce_1  7# happyReduction_12+happyReduction_12 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn14+		 (fp (AST.NT (AST.JSLiteral ",") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_13 = happySpecReduce_1  8# happyReduction_13+happyReduction_13 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn15+		 (fp (AST.NT (AST.JSLiteral ":") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_14 = happySpecReduce_1  9# happyReduction_14+happyReduction_14 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn16+		 (fp (AST.NT (AST.JSLiteral ";") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_15 = happySpecReduce_1  10# happyReduction_15+happyReduction_15 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn17+		 (fp (AST.NT (AST.JSLiteral ".") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_16 = happySpecReduce_1  11# happyReduction_16+happyReduction_16 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn18+		 (fp (AST.NT (AST.JSLiteral "++") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_17 = happySpecReduce_1  12# happyReduction_17+happyReduction_17 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn19+		 (fp (AST.NT (AST.JSLiteral "--") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_18 = happySpecReduce_1  13# happyReduction_18+happyReduction_18 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn20+		 (fp (AST.NT (AST.JSLiteral "delete") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_19 = happySpecReduce_1  14# happyReduction_19+happyReduction_19 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn21+		 (fp (AST.NT (AST.JSLiteral "void") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_20 = happySpecReduce_1  15# happyReduction_20+happyReduction_20 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn22+		 (fp (AST.NT (AST.JSLiteral "typeof") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_21 = happySpecReduce_1  16# happyReduction_21+happyReduction_21 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn23+		 (fp (AST.NT (AST.JSLiteral "+") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_22 = happySpecReduce_1  17# happyReduction_22+happyReduction_22 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn24+		 (fp (AST.NT (AST.JSLiteral "-") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_23 = happySpecReduce_1  18# happyReduction_23+happyReduction_23 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn25+		 (fp (AST.NT (AST.JSLiteral "~") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_24 = happySpecReduce_1  19# happyReduction_24+happyReduction_24 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn26+		 (fp (AST.NT (AST.JSLiteral "!") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_25 = happySpecReduce_1  20# happyReduction_25+happyReduction_25 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn27+		 (fp (AST.NT (AST.JSLiteral "*") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_26 = happySpecReduce_1  21# happyReduction_26+happyReduction_26 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn28+		 (fp (AST.NT (AST.JSLiteral "/") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_27 = happySpecReduce_1  22# happyReduction_27+happyReduction_27 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn29+		 (fp (AST.NT (AST.JSLiteral "%") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_28 = happySpecReduce_1  23# happyReduction_28+happyReduction_28 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn30+		 (fp (AST.NT (AST.JSLiteral "<<") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_29 = happySpecReduce_1  24# happyReduction_29+happyReduction_29 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn31+		 (fp (AST.NT (AST.JSLiteral ">>") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_30 = happySpecReduce_1  25# happyReduction_30+happyReduction_30 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn32+		 (fp (AST.NT (AST.JSLiteral ">>>") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_31 = happySpecReduce_1  26# happyReduction_31+happyReduction_31 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn33+		 (fp (AST.NT (AST.JSLiteral "<=") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_32 = happySpecReduce_1  27# happyReduction_32+happyReduction_32 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn34+		 (fp (AST.NT (AST.JSLiteral "<") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_33 = happySpecReduce_1  28# happyReduction_33+happyReduction_33 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn35+		 (fp (AST.NT (AST.JSLiteral ">=") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_34 = happySpecReduce_1  29# happyReduction_34+happyReduction_34 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn36+		 (fp (AST.NT (AST.JSLiteral ">") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_35 = happySpecReduce_1  30# happyReduction_35+happyReduction_35 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn37+		 (fp (AST.NT (AST.JSLiteral "in") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_36 = happySpecReduce_1  31# happyReduction_36+happyReduction_36 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn38+		 (fp (AST.NT (AST.JSLiteral "instanceof") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_37 = happySpecReduce_1  32# happyReduction_37+happyReduction_37 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn39+		 (fp (AST.NT (AST.JSLiteral "===") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_38 = happySpecReduce_1  33# happyReduction_38+happyReduction_38 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn40+		 (fp (AST.NT (AST.JSLiteral "==") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_39 = happySpecReduce_1  34# happyReduction_39+happyReduction_39 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn41+		 (fp (AST.NT (AST.JSLiteral "!==") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_40 = happySpecReduce_1  35# happyReduction_40+happyReduction_40 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn42+		 (fp (AST.NT (AST.JSLiteral "!=") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_41 = happySpecReduce_1  36# happyReduction_41+happyReduction_41 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn43+		 (fp (AST.NT (AST.JSLiteral "||") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_42 = happySpecReduce_1  37# happyReduction_42+happyReduction_42 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn44+		 (fp (AST.NT (AST.JSLiteral "&&") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_43 = happySpecReduce_1  38# happyReduction_43+happyReduction_43 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn45+		 (fp (AST.NT (AST.JSLiteral "|") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_44 = happySpecReduce_1  39# happyReduction_44+happyReduction_44 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn46+		 (fp (AST.NT (AST.JSLiteral "&") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_45 = happySpecReduce_1  40# happyReduction_45+happyReduction_45 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn47+		 (fp (AST.NT (AST.JSLiteral "^") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_46 = happySpecReduce_1  41# happyReduction_46+happyReduction_46 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn48+		 (fp (AST.NT (AST.JSLiteral "?") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_47 = happySpecReduce_1  42# happyReduction_47+happyReduction_47 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn49+		 (fp (AST.NT (AST.JSLiteral "=") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_48 = happySpecReduce_1  43# happyReduction_48+happyReduction_48 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn50+		 (fp (AST.NT (AST.JSLiteral (token_literal happy_var_1)) (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_49 = happySpecReduce_1  44# happyReduction_49+happyReduction_49 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn51+		 (fp (AST.NT (AST.JSLiteral "var") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_50 = happySpecReduce_1  45# happyReduction_50+happyReduction_50 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn52+		 (fp (AST.NT (AST.JSLiteral "const") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_51 = happySpecReduce_1  46# happyReduction_51+happyReduction_51 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn53+		 (fp (AST.NT (AST.JSLiteral "if") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_52 = happySpecReduce_1  47# happyReduction_52+happyReduction_52 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn54+		 (fp (AST.NT (AST.JSLiteral "else") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_53 = happySpecReduce_1  48# happyReduction_53+happyReduction_53 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn55+		 (fp (AST.NT (AST.JSLiteral "do") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_54 = happySpecReduce_1  49# happyReduction_54+happyReduction_54 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn56+		 (fp (AST.NT (AST.JSLiteral "while") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_55 = happySpecReduce_1  50# happyReduction_55+happyReduction_55 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn57+		 (fp (AST.NT (AST.JSLiteral "for") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_56 = happySpecReduce_1  51# happyReduction_56+happyReduction_56 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn58+		 (fp (AST.NT (AST.JSLiteral "continue") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_57 = happySpecReduce_1  52# happyReduction_57+happyReduction_57 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn59+		 (fp (AST.NT (AST.JSLiteral "break") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_58 = happySpecReduce_1  53# happyReduction_58+happyReduction_58 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn60+		 (fp (AST.NT (AST.JSLiteral "return") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_59 = happySpecReduce_1  54# happyReduction_59+happyReduction_59 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn61+		 (fp (AST.NT (AST.JSLiteral "with") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_60 = happySpecReduce_1  55# happyReduction_60+happyReduction_60 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn62+		 (fp (AST.NT (AST.JSLiteral "switch") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_61 = happySpecReduce_1  56# happyReduction_61+happyReduction_61 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn63+		 (fp (AST.NT (AST.JSLiteral "case") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_62 = happySpecReduce_1  57# happyReduction_62+happyReduction_62 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn64+		 (fp (AST.NT (AST.JSLiteral "default") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_63 = happySpecReduce_1  58# happyReduction_63+happyReduction_63 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn65+		 (fp (AST.NT (AST.JSLiteral "throw") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_64 = happySpecReduce_1  59# happyReduction_64+happyReduction_64 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn66+		 (fp (AST.NT (AST.JSLiteral "try") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_65 = happySpecReduce_1  60# happyReduction_65+happyReduction_65 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn67+		 (fp (AST.NT (AST.JSLiteral "catch") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_66 = happySpecReduce_1  61# happyReduction_66+happyReduction_66 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn68+		 (fp (AST.NT (AST.JSLiteral "finally") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_67 = happySpecReduce_1  62# happyReduction_67+happyReduction_67 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn69+		 (fp (AST.NT (AST.JSLiteral "function") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_68 = happySpecReduce_1  63# happyReduction_68+happyReduction_68 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn70+		 (fp (AST.NT (AST.JSLiteral "") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_69 = happySpecReduce_1  64# happyReduction_69+happyReduction_69 happy_x_1+	 =  case happyOut72 happy_x_1 of { happy_var_1 -> +	happyIn71+		 (happy_var_1+	)}++happyReduce_70 = happySpecReduce_1  64# happyReduction_70+happyReduction_70 happy_x_1+	 =  case happyOut73 happy_x_1 of { happy_var_1 -> +	happyIn71+		 (happy_var_1+	)}++happyReduce_71 = happySpecReduce_1  64# happyReduction_71+happyReduction_71 happy_x_1+	 =  case happyOut74 happy_x_1 of { happy_var_1 -> +	happyIn71+		 (happy_var_1+	)}++happyReduce_72 = happySpecReduce_1  64# happyReduction_72+happyReduction_72 happy_x_1+	 =  case happyOut75 happy_x_1 of { happy_var_1 -> +	happyIn71+		 (happy_var_1+	)}++happyReduce_73 = happySpecReduce_1  64# happyReduction_73+happyReduction_73 happy_x_1+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> +	happyIn71+		 (happy_var_1+	)}++happyReduce_74 = happySpecReduce_1  65# happyReduction_74+happyReduction_74 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn72+		 (fp (AST.NT (AST.JSLiteral "null") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_75 = happySpecReduce_1  66# happyReduction_75+happyReduction_75 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn73+		 (fp (AST.NT (AST.JSLiteral "true")  (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_76 = happySpecReduce_1  66# happyReduction_76+happyReduction_76 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn73+		 (fp (AST.NT (AST.JSLiteral "false") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_77 = happySpecReduce_1  67# happyReduction_77+happyReduction_77 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn74+		 (fp (AST.NT (AST.JSDecimal (token_literal happy_var_1)) (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_78 = happySpecReduce_1  67# happyReduction_78+happyReduction_78 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn74+		 (fp (AST.NT (AST.JSHexInteger (token_literal happy_var_1)) (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_79 = happySpecReduce_1  68# happyReduction_79+happyReduction_79 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn75+		 (fp (AST.NT (AST.JSStringLiteral (token_delimiter happy_var_1) (token_literal happy_var_1)) (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_80 = happySpecReduce_1  69# happyReduction_80+happyReduction_80 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn76+		 (fp (AST.NT (AST.JSRegEx (token_literal happy_var_1)) (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_81 = happySpecReduce_1  70# happyReduction_81+happyReduction_81 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn77+		 (fp (AST.NT (AST.JSLiteral "this") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_82 = happySpecReduce_1  70# happyReduction_82+happyReduction_82 happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	happyIn77+		 (happy_var_1 {- PrimaryExpression1 -}+	)}++happyReduce_83 = happySpecReduce_1  70# happyReduction_83+happyReduction_83 happy_x_1+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> +	happyIn77+		 (happy_var_1 {- PrimaryExpression2 -}+	)}++happyReduce_84 = happySpecReduce_1  70# happyReduction_84+happyReduction_84 happy_x_1+	 =  case happyOut80 happy_x_1 of { happy_var_1 -> +	happyIn77+		 (happy_var_1 {- PrimaryExpression3 -}+	)}++happyReduce_85 = happySpecReduce_1  70# happyReduction_85+happyReduction_85 happy_x_1+	 =  case happyOut83 happy_x_1 of { happy_var_1 -> +	happyIn77+		 (happy_var_1 {- PrimaryExpression4 -}+	)}++happyReduce_86 = happySpecReduce_3  70# happyReduction_86+happyReduction_86 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> +	case happyOut118 happy_x_2 of { happy_var_2 -> +	case happyOut9 happy_x_3 of { happy_var_3 -> +	happyIn77+		 (fp (AST.NN (AST.JSExpressionParen happy_var_1 happy_var_2 happy_var_3))+	)}}}++happyReduce_87 = happySpecReduce_1  71# happyReduction_87+happyReduction_87 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn78+		 ((AST.NT (AST.JSIdentifier (token_literal happy_var_1)) (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_88 = happySpecReduce_1  71# happyReduction_88+happyReduction_88 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn78+		 ((AST.NT (AST.JSIdentifier "get") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_89 = happySpecReduce_1  71# happyReduction_89+happyReduction_89 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn78+		 ((AST.NT (AST.JSIdentifier "set") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_90 = happySpecReduce_1  72# happyReduction_90+happyReduction_90 happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	happyIn79+		 (happy_var_1+	)}++happyReduce_91 = happySpecReduce_1  72# happyReduction_91+happyReduction_91 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "break") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_92 = happySpecReduce_1  72# happyReduction_92+happyReduction_92 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "case") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_93 = happySpecReduce_1  72# happyReduction_93+happyReduction_93 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "catch") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_94 = happySpecReduce_1  72# happyReduction_94+happyReduction_94 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "const") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_95 = happySpecReduce_1  72# happyReduction_95+happyReduction_95 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "continue") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_96 = happySpecReduce_1  72# happyReduction_96+happyReduction_96 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "debugger") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_97 = happySpecReduce_1  72# happyReduction_97+happyReduction_97 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "default") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_98 = happySpecReduce_1  72# happyReduction_98+happyReduction_98 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "delete") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_99 = happySpecReduce_1  72# happyReduction_99+happyReduction_99 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "do") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_100 = happySpecReduce_1  72# happyReduction_100+happyReduction_100 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "else") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_101 = happySpecReduce_1  72# happyReduction_101+happyReduction_101 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "enum") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_102 = happySpecReduce_1  72# happyReduction_102+happyReduction_102 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "false") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_103 = happySpecReduce_1  72# happyReduction_103+happyReduction_103 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "finally") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_104 = happySpecReduce_1  72# happyReduction_104+happyReduction_104 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "for")  (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_105 = happySpecReduce_1  72# happyReduction_105+happyReduction_105 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "function") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_106 = happySpecReduce_1  72# happyReduction_106+happyReduction_106 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "get") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_107 = happySpecReduce_1  72# happyReduction_107+happyReduction_107 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "if") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_108 = happySpecReduce_1  72# happyReduction_108+happyReduction_108 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "in") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_109 = happySpecReduce_1  72# happyReduction_109+happyReduction_109 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "instanceof") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_110 = happySpecReduce_1  72# happyReduction_110+happyReduction_110 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "new") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_111 = happySpecReduce_1  72# happyReduction_111+happyReduction_111 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "null") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_112 = happySpecReduce_1  72# happyReduction_112+happyReduction_112 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "return") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_113 = happySpecReduce_1  72# happyReduction_113+happyReduction_113 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "set") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_114 = happySpecReduce_1  72# happyReduction_114+happyReduction_114 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "switch") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_115 = happySpecReduce_1  72# happyReduction_115+happyReduction_115 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "this") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_116 = happySpecReduce_1  72# happyReduction_116+happyReduction_116 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "throw") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_117 = happySpecReduce_1  72# happyReduction_117+happyReduction_117 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "true") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_118 = happySpecReduce_1  72# happyReduction_118+happyReduction_118 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "try") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_119 = happySpecReduce_1  72# happyReduction_119+happyReduction_119 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "typeof") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_120 = happySpecReduce_1  72# happyReduction_120+happyReduction_120 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "var") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_121 = happySpecReduce_1  72# happyReduction_121+happyReduction_121 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "void") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_122 = happySpecReduce_1  72# happyReduction_122+happyReduction_122 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "while") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_123 = happySpecReduce_1  72# happyReduction_123+happyReduction_123 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier "with") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_124 = happySpecReduce_1  72# happyReduction_124+happyReduction_124 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn79+		 (fp (AST.NT (AST.JSIdentifier (token_literal happy_var_1)) (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_125 = happySpecReduce_2  73# happyReduction_125+happyReduction_125 happy_x_2+	happy_x_1+	 =  case happyOut12 happy_x_1 of { happy_var_1 -> +	case happyOut13 happy_x_2 of { happy_var_2 -> +	happyIn80+		 (fp (AST.NN (AST.JSArrayLiteral happy_var_1 [] happy_var_2))+	)}}++happyReduce_126 = happySpecReduce_3  73# happyReduction_126+happyReduction_126 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut12 happy_x_1 of { happy_var_1 -> +	case happyOut82 happy_x_2 of { happy_var_2 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn80+		 (fp (AST.NN (AST.JSArrayLiteral happy_var_1 happy_var_2 happy_var_3))+	)}}}++happyReduce_127 = happySpecReduce_3  73# happyReduction_127+happyReduction_127 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut12 happy_x_1 of { happy_var_1 -> +	case happyOut81 happy_x_2 of { happy_var_2 -> +	case happyOut13 happy_x_3 of { happy_var_3 -> +	happyIn80+		 (fp (AST.NN (AST.JSArrayLiteral happy_var_1 happy_var_2 happy_var_3))+	)}}}++happyReduce_128 = happyReduce 5# 73# happyReduction_128+happyReduction_128 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut12 happy_x_1 of { happy_var_1 -> +	case happyOut81 happy_x_2 of { happy_var_2 -> +	case happyOut14 happy_x_3 of { happy_var_3 -> +	case happyOut82 happy_x_4 of { happy_var_4 -> +	case happyOut13 happy_x_5 of { happy_var_5 -> +	happyIn80+		 (fp (AST.NN (AST.JSArrayLiteral happy_var_1 (happy_var_2++[happy_var_3]++happy_var_4) happy_var_5))+	) `HappyStk` happyRest}}}}}++happyReduce_129 = happyReduce 4# 73# happyReduction_129+happyReduction_129 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut12 happy_x_1 of { happy_var_1 -> +	case happyOut81 happy_x_2 of { happy_var_2 -> +	case happyOut14 happy_x_3 of { happy_var_3 -> +	case happyOut13 happy_x_4 of { happy_var_4 -> +	happyIn80+		 (fp (AST.NN (AST.JSArrayLiteral happy_var_1 (happy_var_2++[happy_var_3])     happy_var_4))+	) `HappyStk` happyRest}}}}++happyReduce_130 = happySpecReduce_2  74# happyReduction_130+happyReduction_130 happy_x_2+	happy_x_1+	 =  case happyOut82 happy_x_1 of { happy_var_1 -> +	case happyOut115 happy_x_2 of { happy_var_2 -> +	happyIn81+		 (((happy_var_1)++(happy_var_2)) {- ElementList -}+	)}}++happyReduce_131 = happySpecReduce_1  74# happyReduction_131+happyReduction_131 happy_x_1+	 =  case happyOut115 happy_x_1 of { happy_var_1 -> +	happyIn81+		 (happy_var_1           {- ElementList -}+	)}++happyReduce_132 = happyReduce 4# 74# happyReduction_132+happyReduction_132 (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 happyOut14 happy_x_2 of { happy_var_2 -> +	case happyOut82 happy_x_3 of { happy_var_3 -> +	case happyOut115 happy_x_4 of { happy_var_4 -> +	happyIn81+		 (((happy_var_1)++[fp (AST.NN (AST.JSElision happy_var_2))]++(happy_var_3)++(happy_var_4)) {- ElementList -}+	) `HappyStk` happyRest}}}}++happyReduce_133 = happySpecReduce_3  74# happyReduction_133+happyReduction_133 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut81 happy_x_1 of { happy_var_1 -> +	case happyOut14 happy_x_2 of { happy_var_2 -> +	case happyOut115 happy_x_3 of { happy_var_3 -> +	happyIn81+		 (((happy_var_1)++[fp (AST.NN (AST.JSElision happy_var_2))]++(happy_var_3)) {- ElementList -}+	)}}}++happyReduce_134 = happySpecReduce_1  75# happyReduction_134+happyReduction_134 happy_x_1+	 =  case happyOut14 happy_x_1 of { happy_var_1 -> +	happyIn82+		 ([        fp (AST.NN (AST.JSElision happy_var_1))]+	)}++happyReduce_135 = happySpecReduce_2  75# happyReduction_135+happyReduction_135 happy_x_2+	happy_x_1+	 =  case happyOut82 happy_x_1 of { happy_var_1 -> +	case happyOut14 happy_x_2 of { happy_var_2 -> +	happyIn82+		 ((happy_var_1 ++ [fp (AST.NN (AST.JSElision happy_var_2))])+	)}}++happyReduce_136 = happySpecReduce_2  76# happyReduction_136+happyReduction_136 happy_x_2+	happy_x_1+	 =  case happyOut10 happy_x_1 of { happy_var_1 -> +	case happyOut11 happy_x_2 of { happy_var_2 -> +	happyIn83+		 (fp (AST.NN (AST.JSObjectLiteral happy_var_1 [] happy_var_2)         )+	)}}++happyReduce_137 = happySpecReduce_3  76# happyReduction_137+happyReduction_137 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut10 happy_x_1 of { happy_var_1 -> +	case happyOut84 happy_x_2 of { happy_var_2 -> +	case happyOut11 happy_x_3 of { happy_var_3 -> +	happyIn83+		 (fp (AST.NN (AST.JSObjectLiteral happy_var_1 happy_var_2 happy_var_3)         )+	)}}}++happyReduce_138 = happyReduce 4# 76# happyReduction_138+happyReduction_138 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut10 happy_x_1 of { happy_var_1 -> +	case happyOut84 happy_x_2 of { happy_var_2 -> +	case happyOut14 happy_x_3 of { happy_var_3 -> +	case happyOut11 happy_x_4 of { happy_var_4 -> +	happyIn83+		 (fp (AST.NN (AST.JSObjectLiteral happy_var_1 (happy_var_2++[happy_var_3]) happy_var_4) )+	) `HappyStk` happyRest}}}}++happyReduce_139 = happySpecReduce_1  77# happyReduction_139+happyReduction_139 happy_x_1+	 =  case happyOut85 happy_x_1 of { happy_var_1 -> +	happyIn84+		 ([happy_var_1] {- PropertyNameandValueList1 -}+	)}++happyReduce_140 = happySpecReduce_3  77# happyReduction_140+happyReduction_140 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut84 happy_x_1 of { happy_var_1 -> +	case happyOut14 happy_x_2 of { happy_var_2 -> +	case happyOut85 happy_x_3 of { happy_var_3 -> +	happyIn84+		 ((happy_var_1++[happy_var_2]++[happy_var_3]) {- PropertyNameandValueList2 -}+	)}}}++happyReduce_141 = happySpecReduce_3  78# happyReduction_141+happyReduction_141 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut86 happy_x_1 of { happy_var_1 -> +	case happyOut15 happy_x_2 of { happy_var_2 -> +	case happyOut115 happy_x_3 of { happy_var_3 -> +	happyIn85+		 (fp (AST.NN (AST.JSPropertyNameandValue happy_var_1 happy_var_2 happy_var_3))+	)}}}++happyReduce_142 = happyReduce 7# 78# happyReduction_142+happyReduction_142 (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 happyOut86 happy_x_2 of { happy_var_2 -> +	case happyOut8 happy_x_3 of { happy_var_3 -> +	case happyOut9 happy_x_4 of { happy_var_4 -> +	case happyOut10 happy_x_5 of { happy_var_5 -> +	case happyOut160 happy_x_6 of { happy_var_6 -> +	case happyOut11 happy_x_7 of { happy_var_7 -> +	happyIn85+		 (fp (AST.NN (AST.JSPropertyAccessor (AST.NT (AST.JSLiteral "get") (ss happy_var_1) (gc happy_var_1)) happy_var_2 happy_var_3 [] happy_var_4 happy_var_5 happy_var_6 happy_var_7))+	) `HappyStk` happyRest}}}}}}}++happyReduce_143 = happyReduce 8# 78# happyReduction_143+happyReduction_143 (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 happyOut86 happy_x_2 of { happy_var_2 -> +	case happyOut8 happy_x_3 of { happy_var_3 -> +	case happyOut87 happy_x_4 of { happy_var_4 -> +	case happyOut9 happy_x_5 of { happy_var_5 -> +	case happyOut10 happy_x_6 of { happy_var_6 -> +	case happyOut160 happy_x_7 of { happy_var_7 -> +	case happyOut11 happy_x_8 of { happy_var_8 -> +	happyIn85+		 (fp (AST.NN (AST.JSPropertyAccessor (AST.NT (AST.JSLiteral "set") (ss happy_var_1) (gc happy_var_1)) happy_var_2 happy_var_3 [happy_var_4] happy_var_5 happy_var_6 happy_var_7 happy_var_8))+	) `HappyStk` happyRest}}}}}}}}++happyReduce_144 = happySpecReduce_1  79# happyReduction_144+happyReduction_144 happy_x_1+	 =  case happyOut79 happy_x_1 of { happy_var_1 -> +	happyIn86+		 (happy_var_1 {- PropertyName1 -}+	)}++happyReduce_145 = happySpecReduce_1  79# happyReduction_145+happyReduction_145 happy_x_1+	 =  case happyOut75 happy_x_1 of { happy_var_1 -> +	happyIn86+		 (happy_var_1 {- PropertyName2 -}+	)}++happyReduce_146 = happySpecReduce_1  79# happyReduction_146+happyReduction_146 happy_x_1+	 =  case happyOut74 happy_x_1 of { happy_var_1 -> +	happyIn86+		 (happy_var_1 {- PropertyName3 -}+	)}++happyReduce_147 = happySpecReduce_1  80# happyReduction_147+happyReduction_147 happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	happyIn87+		 (happy_var_1 {- PropertySetParameterList -}+	)}++happyReduce_148 = happySpecReduce_1  81# happyReduction_148+happyReduction_148 happy_x_1+	 =  case happyOut77 happy_x_1 of { happy_var_1 -> +	happyIn88+		 ([happy_var_1] {- MemberExpression -}+	)}++happyReduce_149 = happySpecReduce_1  81# happyReduction_149+happyReduction_149 happy_x_1+	 =  case happyOut157 happy_x_1 of { happy_var_1 -> +	happyIn88+		 ([happy_var_1] {- MemberExpression -}+	)}++happyReduce_150 = happyReduce 4# 81# happyReduction_150+happyReduction_150 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut88 happy_x_1 of { happy_var_1 -> +	case happyOut12 happy_x_2 of { happy_var_2 -> +	case happyOut118 happy_x_3 of { happy_var_3 -> +	case happyOut13 happy_x_4 of { happy_var_4 -> +	happyIn88+		 ([fp (AST.NN (AST.JSMemberSquare happy_var_1 happy_var_2 happy_var_3 happy_var_4))]+	) `HappyStk` happyRest}}}}++happyReduce_151 = happySpecReduce_3  81# happyReduction_151+happyReduction_151 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut88 happy_x_1 of { happy_var_1 -> +	case happyOut17 happy_x_2 of { happy_var_2 -> +	case happyOut79 happy_x_3 of { happy_var_3 -> +	happyIn88+		 ([fp (AST.NN (AST.JSMemberDot happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_152 = happySpecReduce_3  81# happyReduction_152+happyReduction_152 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut88 happy_x_2 of { happy_var_2 -> +	case happyOut91 happy_x_3 of { happy_var_3 -> +	happyIn88+		 ((((fp (AST.NT (AST.JSLiteral "new") (ss happy_var_1) (gc happy_var_1))):happy_var_2)++[happy_var_3])+	)}}}++happyReduce_153 = happySpecReduce_1  82# happyReduction_153+happyReduction_153 happy_x_1+	 =  case happyOut88 happy_x_1 of { happy_var_1 -> +	happyIn89+		 (happy_var_1 {- NewExpression -}+	)}++happyReduce_154 = happySpecReduce_2  82# happyReduction_154+happyReduction_154 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	case happyOut89 happy_x_2 of { happy_var_2 -> +	happyIn89+		 ((fp (AST.NT (AST.JSLiteral "new") (ss happy_var_1) (gc happy_var_1))):happy_var_2+	)}}++happyReduce_155 = happySpecReduce_2  83# happyReduction_155+happyReduction_155 happy_x_2+	happy_x_1+	 =  case happyOut88 happy_x_1 of { happy_var_1 -> +	case happyOut91 happy_x_2 of { happy_var_2 -> +	happyIn90+		 (happy_var_1++[happy_var_2] {- CallExpression -}+	)}}++happyReduce_156 = happySpecReduce_2  83# happyReduction_156+happyReduction_156 happy_x_2+	happy_x_1+	 =  case happyOut90 happy_x_1 of { happy_var_1 -> +	case happyOut91 happy_x_2 of { happy_var_2 -> +	happyIn90+		 ((happy_var_1++[fp (AST.NN (AST.JSCallExpression "()" [] [happy_var_2] []))])+	)}}++happyReduce_157 = happyReduce 4# 83# happyReduction_157+happyReduction_157 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut90 happy_x_1 of { happy_var_1 -> +	case happyOut12 happy_x_2 of { happy_var_2 -> +	case happyOut118 happy_x_3 of { happy_var_3 -> +	case happyOut13 happy_x_4 of { happy_var_4 -> +	happyIn90+		 ((happy_var_1++[fp (AST.NN (AST.JSCallExpression "[]" [happy_var_2] [happy_var_3] [happy_var_4]))])+	) `HappyStk` happyRest}}}}++happyReduce_158 = happySpecReduce_3  83# happyReduction_158+happyReduction_158 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut90 happy_x_1 of { happy_var_1 -> +	case happyOut17 happy_x_2 of { happy_var_2 -> +	case happyOut79 happy_x_3 of { happy_var_3 -> +	happyIn90+		 ((happy_var_1++[fp (AST.NN (AST.JSCallExpression "."  [happy_var_2] [happy_var_3] []))])+	)}}}++happyReduce_159 = happySpecReduce_2  84# happyReduction_159+happyReduction_159 happy_x_2+	happy_x_1+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> +	case happyOut9 happy_x_2 of { happy_var_2 -> +	happyIn91+		 (fp (AST.NN (AST.JSArguments happy_var_1 [] happy_var_2))+	)}}++happyReduce_160 = happySpecReduce_3  84# happyReduction_160+happyReduction_160 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> +	case happyOut92 happy_x_2 of { happy_var_2 -> +	case happyOut9 happy_x_3 of { happy_var_3 -> +	happyIn91+		 (fp (AST.NN (AST.JSArguments happy_var_1 happy_var_2 happy_var_3))+	)}}}++happyReduce_161 = happySpecReduce_1  85# happyReduction_161+happyReduction_161 happy_x_1+	 =  case happyOut115 happy_x_1 of { happy_var_1 -> +	happyIn92+		 (happy_var_1 {- ArgumentList -}+	)}++happyReduce_162 = happySpecReduce_3  85# happyReduction_162+happyReduction_162 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut92 happy_x_1 of { happy_var_1 -> +	case happyOut14 happy_x_2 of { happy_var_2 -> +	case happyOut115 happy_x_3 of { happy_var_3 -> +	happyIn92+		 (happy_var_1++[happy_var_2]++happy_var_3 {- ArgumentList2 -}+	)}}}++happyReduce_163 = happySpecReduce_1  86# happyReduction_163+happyReduction_163 happy_x_1+	 =  case happyOut89 happy_x_1 of { happy_var_1 -> +	happyIn93+		 (happy_var_1 {- LeftHandSideExpression1 -}+	)}++happyReduce_164 = happySpecReduce_1  86# happyReduction_164+happyReduction_164 happy_x_1+	 =  case happyOut90 happy_x_1 of { happy_var_1 -> +	happyIn93+		 (happy_var_1 {- LeftHandSideExpression12 -}+	)}++happyReduce_165 = happySpecReduce_1  87# happyReduction_165+happyReduction_165 happy_x_1+	 =  case happyOut93 happy_x_1 of { happy_var_1 -> +	happyIn94+		 (happy_var_1 {- PostfixExpression -}+	)}++happyReduce_166 = happySpecReduce_2  87# happyReduction_166+happyReduction_166 happy_x_2+	happy_x_1+	 =  case happyOut94 happy_x_1 of { happy_var_1 -> +	case happyOut18 happy_x_2 of { happy_var_2 -> +	happyIn94+		 ([fp (AST.NN (AST.JSExpressionPostfix "++" happy_var_1 happy_var_2))]+	)}}++happyReduce_167 = happySpecReduce_2  87# happyReduction_167+happyReduction_167 happy_x_2+	happy_x_1+	 =  case happyOut94 happy_x_1 of { happy_var_1 -> +	case happyOut19 happy_x_2 of { happy_var_2 -> +	happyIn94+		 ([fp (AST.NN (AST.JSExpressionPostfix "--" happy_var_1 happy_var_2))]+	)}}++happyReduce_168 = happySpecReduce_1  88# happyReduction_168+happyReduction_168 happy_x_1+	 =  case happyOut94 happy_x_1 of { happy_var_1 -> +	happyIn95+		 (happy_var_1 {- UnaryExpression -}+	)}++happyReduce_169 = happySpecReduce_2  88# happyReduction_169+happyReduction_169 happy_x_2+	happy_x_1+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> +	case happyOut95 happy_x_2 of { happy_var_2 -> +	happyIn95+		 (((fp (AST.NN (AST.JSUnary "delete " happy_var_1))):happy_var_2)+	)}}++happyReduce_170 = happySpecReduce_2  88# happyReduction_170+happyReduction_170 happy_x_2+	happy_x_1+	 =  case happyOut21 happy_x_1 of { happy_var_1 -> +	case happyOut95 happy_x_2 of { happy_var_2 -> +	happyIn95+		 (((fp (AST.NN (AST.JSUnary "void "   happy_var_1))):happy_var_2)+	)}}++happyReduce_171 = happySpecReduce_2  88# happyReduction_171+happyReduction_171 happy_x_2+	happy_x_1+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> +	case happyOut95 happy_x_2 of { happy_var_2 -> +	happyIn95+		 (((fp (AST.NN (AST.JSUnary "typeof " happy_var_1))):happy_var_2)+	)}}++happyReduce_172 = happySpecReduce_2  88# happyReduction_172+happyReduction_172 happy_x_2+	happy_x_1+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> +	case happyOut95 happy_x_2 of { happy_var_2 -> +	happyIn95+		 (((fp (AST.NN (AST.JSUnary "++"      happy_var_1))):happy_var_2)+	)}}++happyReduce_173 = happySpecReduce_2  88# happyReduction_173+happyReduction_173 happy_x_2+	happy_x_1+	 =  case happyOut19 happy_x_1 of { happy_var_1 -> +	case happyOut95 happy_x_2 of { happy_var_2 -> +	happyIn95+		 (((fp (AST.NN (AST.JSUnary "--"      happy_var_1))):happy_var_2)+	)}}++happyReduce_174 = happySpecReduce_2  88# happyReduction_174+happyReduction_174 happy_x_2+	happy_x_1+	 =  case happyOut23 happy_x_1 of { happy_var_1 -> +	case happyOut95 happy_x_2 of { happy_var_2 -> +	happyIn95+		 (((fp (AST.NN (AST.JSUnary "+"       happy_var_1))):happy_var_2)+	)}}++happyReduce_175 = happySpecReduce_2  88# happyReduction_175+happyReduction_175 happy_x_2+	happy_x_1+	 =  case happyOut24 happy_x_1 of { happy_var_1 -> +	case happyOut95 happy_x_2 of { happy_var_2 -> +	happyIn95+		 (((fp (AST.NN (AST.JSUnary "-"       happy_var_1))):happy_var_2)+	)}}++happyReduce_176 = happySpecReduce_2  88# happyReduction_176+happyReduction_176 happy_x_2+	happy_x_1+	 =  case happyOut25 happy_x_1 of { happy_var_1 -> +	case happyOut95 happy_x_2 of { happy_var_2 -> +	happyIn95+		 (((fp (AST.NN (AST.JSUnary "~"       happy_var_1))):happy_var_2)+	)}}++happyReduce_177 = happySpecReduce_2  88# happyReduction_177+happyReduction_177 happy_x_2+	happy_x_1+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> +	case happyOut95 happy_x_2 of { happy_var_2 -> +	happyIn95+		 (((fp (AST.NN (AST.JSUnary "!"       happy_var_1))):happy_var_2)+	)}}++happyReduce_178 = happySpecReduce_1  89# happyReduction_178+happyReduction_178 happy_x_1+	 =  case happyOut95 happy_x_1 of { happy_var_1 -> +	happyIn96+		 (happy_var_1 {- MultiplicativeExpression -}+	)}++happyReduce_179 = happySpecReduce_3  89# happyReduction_179+happyReduction_179 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut96 happy_x_1 of { happy_var_1 -> +	case happyOut27 happy_x_2 of { happy_var_2 -> +	case happyOut95 happy_x_3 of { happy_var_3 -> +	happyIn96+		 ([fp (AST.NN (AST.JSExpressionBinary "*" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_180 = happySpecReduce_3  89# happyReduction_180+happyReduction_180 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut96 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_2 of { happy_var_2 -> +	case happyOut95 happy_x_3 of { happy_var_3 -> +	happyIn96+		 ([fp (AST.NN (AST.JSExpressionBinary "/" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_181 = happySpecReduce_3  89# happyReduction_181+happyReduction_181 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut96 happy_x_1 of { happy_var_1 -> +	case happyOut29 happy_x_2 of { happy_var_2 -> +	case happyOut95 happy_x_3 of { happy_var_3 -> +	happyIn96+		 ([fp (AST.NN (AST.JSExpressionBinary "%" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_182 = happySpecReduce_3  90# happyReduction_182+happyReduction_182 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut97 happy_x_1 of { happy_var_1 -> +	case happyOut23 happy_x_2 of { happy_var_2 -> +	case happyOut96 happy_x_3 of { happy_var_3 -> +	happyIn97+		 ([fp (AST.NN (AST.JSExpressionBinary "+" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_183 = happySpecReduce_3  90# happyReduction_183+happyReduction_183 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut97 happy_x_1 of { happy_var_1 -> +	case happyOut24 happy_x_2 of { happy_var_2 -> +	case happyOut96 happy_x_3 of { happy_var_3 -> +	happyIn97+		 ([fp (AST.NN (AST.JSExpressionBinary "-" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_184 = happySpecReduce_1  90# happyReduction_184+happyReduction_184 happy_x_1+	 =  case happyOut96 happy_x_1 of { happy_var_1 -> +	happyIn97+		 (happy_var_1 {- (goRegExp happy_var_1)-} {- AdditiveExpression -}+	)}++happyReduce_185 = happySpecReduce_3  91# happyReduction_185+happyReduction_185 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut98 happy_x_1 of { happy_var_1 -> +	case happyOut30 happy_x_2 of { happy_var_2 -> +	case happyOut97 happy_x_3 of { happy_var_3 -> +	happyIn98+		 ([fp (AST.NN (AST.JSExpressionBinary "<<"  happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_186 = happySpecReduce_3  91# happyReduction_186+happyReduction_186 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut98 happy_x_1 of { happy_var_1 -> +	case happyOut31 happy_x_2 of { happy_var_2 -> +	case happyOut97 happy_x_3 of { happy_var_3 -> +	happyIn98+		 ([fp (AST.NN (AST.JSExpressionBinary ">>"  happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_187 = happySpecReduce_3  91# happyReduction_187+happyReduction_187 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut98 happy_x_1 of { happy_var_1 -> +	case happyOut32 happy_x_2 of { happy_var_2 -> +	case happyOut97 happy_x_3 of { happy_var_3 -> +	happyIn98+		 ([fp (AST.NN (AST.JSExpressionBinary ">>>" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_188 = happySpecReduce_1  91# happyReduction_188+happyReduction_188 happy_x_1+	 =  case happyOut97 happy_x_1 of { happy_var_1 -> +	happyIn98+		 (happy_var_1 {- ShiftExpression -}+	)}++happyReduce_189 = happySpecReduce_1  92# happyReduction_189+happyReduction_189 happy_x_1+	 =  case happyOut98 happy_x_1 of { happy_var_1 -> +	happyIn99+		 (happy_var_1 {- RelationalExpression -}+	)}++happyReduce_190 = happySpecReduce_3  92# happyReduction_190+happyReduction_190 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_2 of { happy_var_2 -> +	case happyOut98 happy_x_3 of { happy_var_3 -> +	happyIn99+		 ([fp (AST.NN (AST.JSExpressionBinary "<"  happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_191 = happySpecReduce_3  92# happyReduction_191+happyReduction_191 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_2 of { happy_var_2 -> +	case happyOut98 happy_x_3 of { happy_var_3 -> +	happyIn99+		 ([fp (AST.NN (AST.JSExpressionBinary ">"  happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_192 = happySpecReduce_3  92# happyReduction_192+happyReduction_192 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	case happyOut33 happy_x_2 of { happy_var_2 -> +	case happyOut98 happy_x_3 of { happy_var_3 -> +	happyIn99+		 ([fp (AST.NN (AST.JSExpressionBinary "<=" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_193 = happySpecReduce_3  92# happyReduction_193+happyReduction_193 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_2 of { happy_var_2 -> +	case happyOut98 happy_x_3 of { happy_var_3 -> +	happyIn99+		 ([fp (AST.NN (AST.JSExpressionBinary ">=" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_194 = happySpecReduce_3  92# happyReduction_194+happyReduction_194 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	case happyOut38 happy_x_2 of { happy_var_2 -> +	case happyOut98 happy_x_3 of { happy_var_3 -> +	happyIn99+		 ([fp (AST.NN (AST.JSExpressionBinary " instanceof " happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_195 = happySpecReduce_3  92# happyReduction_195+happyReduction_195 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	case happyOut37 happy_x_2 of { happy_var_2 -> +	case happyOut98 happy_x_3 of { happy_var_3 -> +	happyIn99+		 ([fp (AST.NN (AST.JSExpressionBinary " in "         happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_196 = happySpecReduce_1  93# happyReduction_196+happyReduction_196 happy_x_1+	 =  case happyOut98 happy_x_1 of { happy_var_1 -> +	happyIn100+		 (happy_var_1 {- RelationalExpressionNoIn -}+	)}++happyReduce_197 = happySpecReduce_3  93# happyReduction_197+happyReduction_197 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_2 of { happy_var_2 -> +	case happyOut98 happy_x_3 of { happy_var_3 -> +	happyIn100+		 ([fp (AST.NN (AST.JSExpressionBinary "<"  happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_198 = happySpecReduce_3  93# happyReduction_198+happyReduction_198 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_2 of { happy_var_2 -> +	case happyOut98 happy_x_3 of { happy_var_3 -> +	happyIn100+		 ([fp (AST.NN (AST.JSExpressionBinary ">"  happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_199 = happySpecReduce_3  93# happyReduction_199+happyReduction_199 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	case happyOut33 happy_x_2 of { happy_var_2 -> +	case happyOut98 happy_x_3 of { happy_var_3 -> +	happyIn100+		 ([fp (AST.NN (AST.JSExpressionBinary "<=" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_200 = happySpecReduce_3  93# happyReduction_200+happyReduction_200 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_2 of { happy_var_2 -> +	case happyOut98 happy_x_3 of { happy_var_3 -> +	happyIn100+		 ([fp (AST.NN (AST.JSExpressionBinary ">=" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_201 = happySpecReduce_3  93# happyReduction_201+happyReduction_201 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	case happyOut38 happy_x_2 of { happy_var_2 -> +	case happyOut98 happy_x_3 of { happy_var_3 -> +	happyIn100+		 ([fp (AST.NN (AST.JSExpressionBinary " instanceof " happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_202 = happySpecReduce_1  94# happyReduction_202+happyReduction_202 happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	happyIn101+		 (happy_var_1 {- EqualityExpression -}+	)}++happyReduce_203 = happySpecReduce_3  94# happyReduction_203+happyReduction_203 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> +	case happyOut40 happy_x_2 of { happy_var_2 -> +	case happyOut99 happy_x_3 of { happy_var_3 -> +	happyIn101+		 ([fp (AST.NN (AST.JSExpressionBinary "=="  happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_204 = happySpecReduce_3  94# happyReduction_204+happyReduction_204 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_2 of { happy_var_2 -> +	case happyOut99 happy_x_3 of { happy_var_3 -> +	happyIn101+		 ([fp (AST.NN (AST.JSExpressionBinary "!="  happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_205 = happySpecReduce_3  94# happyReduction_205+happyReduction_205 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> +	case happyOut39 happy_x_2 of { happy_var_2 -> +	case happyOut99 happy_x_3 of { happy_var_3 -> +	happyIn101+		 ([fp (AST.NN (AST.JSExpressionBinary "===" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_206 = happySpecReduce_3  94# happyReduction_206+happyReduction_206 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> +	case happyOut41 happy_x_2 of { happy_var_2 -> +	case happyOut99 happy_x_3 of { happy_var_3 -> +	happyIn101+		 ([fp (AST.NN (AST.JSExpressionBinary "!==" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_207 = happySpecReduce_1  95# happyReduction_207+happyReduction_207 happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	happyIn102+		 (happy_var_1 {- EqualityExpressionNoIn -}+	)}++happyReduce_208 = happySpecReduce_3  95# happyReduction_208+happyReduction_208 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut102 happy_x_1 of { happy_var_1 -> +	case happyOut40 happy_x_2 of { happy_var_2 -> +	case happyOut99 happy_x_3 of { happy_var_3 -> +	happyIn102+		 ([fp (AST.NN (AST.JSExpressionBinary "=="  happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_209 = happySpecReduce_3  95# happyReduction_209+happyReduction_209 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut102 happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_2 of { happy_var_2 -> +	case happyOut99 happy_x_3 of { happy_var_3 -> +	happyIn102+		 ([fp (AST.NN (AST.JSExpressionBinary "!="  happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_210 = happySpecReduce_3  95# happyReduction_210+happyReduction_210 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut102 happy_x_1 of { happy_var_1 -> +	case happyOut39 happy_x_2 of { happy_var_2 -> +	case happyOut99 happy_x_3 of { happy_var_3 -> +	happyIn102+		 ([fp (AST.NN (AST.JSExpressionBinary "===" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_211 = happySpecReduce_3  95# happyReduction_211+happyReduction_211 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut102 happy_x_1 of { happy_var_1 -> +	case happyOut41 happy_x_2 of { happy_var_2 -> +	case happyOut99 happy_x_3 of { happy_var_3 -> +	happyIn102+		 ([fp (AST.NN (AST.JSExpressionBinary "!==" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_212 = happySpecReduce_1  96# happyReduction_212+happyReduction_212 happy_x_1+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> +	happyIn103+		 (happy_var_1 {- BitwiseAndExpression -}+	)}++happyReduce_213 = happySpecReduce_3  96# happyReduction_213+happyReduction_213 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut103 happy_x_1 of { happy_var_1 -> +	case happyOut46 happy_x_2 of { happy_var_2 -> +	case happyOut101 happy_x_3 of { happy_var_3 -> +	happyIn103+		 ([fp (AST.NN (AST.JSExpressionBinary "&" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_214 = happySpecReduce_1  97# happyReduction_214+happyReduction_214 happy_x_1+	 =  case happyOut102 happy_x_1 of { happy_var_1 -> +	happyIn104+		 (happy_var_1 {- BitwiseAndExpression -}+	)}++happyReduce_215 = happySpecReduce_3  97# happyReduction_215+happyReduction_215 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut104 happy_x_1 of { happy_var_1 -> +	case happyOut46 happy_x_2 of { happy_var_2 -> +	case happyOut102 happy_x_3 of { happy_var_3 -> +	happyIn104+		 ([fp (AST.NN (AST.JSExpressionBinary "&" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_216 = happySpecReduce_1  98# happyReduction_216+happyReduction_216 happy_x_1+	 =  case happyOut103 happy_x_1 of { happy_var_1 -> +	happyIn105+		 (happy_var_1 {- BitwiseXOrExpression -}+	)}++happyReduce_217 = happySpecReduce_3  98# happyReduction_217+happyReduction_217 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut105 happy_x_1 of { happy_var_1 -> +	case happyOut47 happy_x_2 of { happy_var_2 -> +	case happyOut103 happy_x_3 of { happy_var_3 -> +	happyIn105+		 ([fp (AST.NN (AST.JSExpressionBinary "^" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_218 = happySpecReduce_1  99# happyReduction_218+happyReduction_218 happy_x_1+	 =  case happyOut104 happy_x_1 of { happy_var_1 -> +	happyIn106+		 (happy_var_1 {- BitwiseXOrExpression -}+	)}++happyReduce_219 = happySpecReduce_3  99# happyReduction_219+happyReduction_219 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut106 happy_x_1 of { happy_var_1 -> +	case happyOut47 happy_x_2 of { happy_var_2 -> +	case happyOut104 happy_x_3 of { happy_var_3 -> +	happyIn106+		 ([fp (AST.NN (AST.JSExpressionBinary "^" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_220 = happySpecReduce_1  100# happyReduction_220+happyReduction_220 happy_x_1+	 =  case happyOut105 happy_x_1 of { happy_var_1 -> +	happyIn107+		 (happy_var_1 {- BitwiseOrExpression -}+	)}++happyReduce_221 = happySpecReduce_3  100# happyReduction_221+happyReduction_221 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut107 happy_x_1 of { happy_var_1 -> +	case happyOut45 happy_x_2 of { happy_var_2 -> +	case happyOut105 happy_x_3 of { happy_var_3 -> +	happyIn107+		 ([fp (AST.NN (AST.JSExpressionBinary "|" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_222 = happySpecReduce_1  101# happyReduction_222+happyReduction_222 happy_x_1+	 =  case happyOut106 happy_x_1 of { happy_var_1 -> +	happyIn108+		 (happy_var_1 {- BitwiseOrExpression -}+	)}++happyReduce_223 = happySpecReduce_3  101# happyReduction_223+happyReduction_223 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> +	case happyOut45 happy_x_2 of { happy_var_2 -> +	case happyOut106 happy_x_3 of { happy_var_3 -> +	happyIn108+		 ([fp (AST.NN (AST.JSExpressionBinary "|" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_224 = happySpecReduce_1  102# happyReduction_224+happyReduction_224 happy_x_1+	 =  case happyOut107 happy_x_1 of { happy_var_1 -> +	happyIn109+		 (happy_var_1 {- LogicalAndExpression -}+	)}++happyReduce_225 = happySpecReduce_3  102# happyReduction_225+happyReduction_225 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut109 happy_x_1 of { happy_var_1 -> +	case happyOut44 happy_x_2 of { happy_var_2 -> +	case happyOut107 happy_x_3 of { happy_var_3 -> +	happyIn109+		 ([fp (AST.NN (AST.JSExpressionBinary "&&" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_226 = happySpecReduce_1  103# happyReduction_226+happyReduction_226 happy_x_1+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> +	happyIn110+		 (happy_var_1 {- LogicalAndExpression -}+	)}++happyReduce_227 = happySpecReduce_3  103# happyReduction_227+happyReduction_227 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut110 happy_x_1 of { happy_var_1 -> +	case happyOut44 happy_x_2 of { happy_var_2 -> +	case happyOut108 happy_x_3 of { happy_var_3 -> +	happyIn110+		 ([fp (AST.NN (AST.JSExpressionBinary "&&" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_228 = happySpecReduce_1  104# happyReduction_228+happyReduction_228 happy_x_1+	 =  case happyOut109 happy_x_1 of { happy_var_1 -> +	happyIn111+		 (happy_var_1 {- LogicalOrExpression -}+	)}++happyReduce_229 = happySpecReduce_3  104# happyReduction_229+happyReduction_229 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut111 happy_x_1 of { happy_var_1 -> +	case happyOut43 happy_x_2 of { happy_var_2 -> +	case happyOut109 happy_x_3 of { happy_var_3 -> +	happyIn111+		 ([fp (AST.NN (AST.JSExpressionBinary "||" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_230 = happySpecReduce_1  105# happyReduction_230+happyReduction_230 happy_x_1+	 =  case happyOut110 happy_x_1 of { happy_var_1 -> +	happyIn112+		 (happy_var_1 {- LogicalOrExpression -}+	)}++happyReduce_231 = happySpecReduce_3  105# happyReduction_231+happyReduction_231 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut112 happy_x_1 of { happy_var_1 -> +	case happyOut43 happy_x_2 of { happy_var_2 -> +	case happyOut110 happy_x_3 of { happy_var_3 -> +	happyIn112+		 ([fp (AST.NN (AST.JSExpressionBinary "||" happy_var_1 happy_var_2 happy_var_3))]+	)}}}++happyReduce_232 = happySpecReduce_1  106# happyReduction_232+happyReduction_232 happy_x_1+	 =  case happyOut111 happy_x_1 of { happy_var_1 -> +	happyIn113+		 (happy_var_1 {- ConditionalExpression -}+	)}++happyReduce_233 = happyReduce 5# 106# happyReduction_233+happyReduction_233 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut111 happy_x_1 of { happy_var_1 -> +	case happyOut48 happy_x_2 of { happy_var_2 -> +	case happyOut115 happy_x_3 of { happy_var_3 -> +	case happyOut15 happy_x_4 of { happy_var_4 -> +	case happyOut115 happy_x_5 of { happy_var_5 -> +	happyIn113+		 ([fp (AST.NN (AST.JSExpressionTernary happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5))]+	) `HappyStk` happyRest}}}}}++happyReduce_234 = happySpecReduce_1  107# happyReduction_234+happyReduction_234 happy_x_1+	 =  case happyOut112 happy_x_1 of { happy_var_1 -> +	happyIn114+		 (happy_var_1 {- ConditionalExpression -}+	)}++happyReduce_235 = happyReduce 5# 107# happyReduction_235+happyReduction_235 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut112 happy_x_1 of { happy_var_1 -> +	case happyOut48 happy_x_2 of { happy_var_2 -> +	case happyOut116 happy_x_3 of { happy_var_3 -> +	case happyOut15 happy_x_4 of { happy_var_4 -> +	case happyOut116 happy_x_5 of { happy_var_5 -> +	happyIn114+		 ([fp (AST.NN (AST.JSExpressionTernary happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5))]+	) `HappyStk` happyRest}}}}}++happyReduce_236 = happySpecReduce_1  108# happyReduction_236+happyReduction_236 happy_x_1+	 =  case happyOut113 happy_x_1 of { happy_var_1 -> +	happyIn115+		 (happy_var_1 {- AssignmentExpression -}+	)}++happyReduce_237 = happySpecReduce_3  108# happyReduction_237+happyReduction_237 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut93 happy_x_1 of { happy_var_1 -> +	case happyOut117 happy_x_2 of { happy_var_2 -> +	case happyOut115 happy_x_3 of { happy_var_3 -> +	happyIn115+		 ((happy_var_1++[happy_var_2]++happy_var_3)+	)}}}++happyReduce_238 = happySpecReduce_1  109# happyReduction_238+happyReduction_238 happy_x_1+	 =  case happyOut114 happy_x_1 of { happy_var_1 -> +	happyIn116+		 (happy_var_1 {- AssignmentExpression -}+	)}++happyReduce_239 = happySpecReduce_3  109# happyReduction_239+happyReduction_239 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut93 happy_x_1 of { happy_var_1 -> +	case happyOut117 happy_x_2 of { happy_var_2 -> +	case happyOut116 happy_x_3 of { happy_var_3 -> +	happyIn116+		 ((happy_var_1++[happy_var_2]++happy_var_3)+	)}}}++happyReduce_240 = happySpecReduce_1  110# happyReduction_240+happyReduction_240 happy_x_1+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> +	happyIn117+		 (fp (AST.NN (AST.JSOperator happy_var_1))+	)}++happyReduce_241 = happySpecReduce_1  110# happyReduction_241+happyReduction_241 happy_x_1+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> +	happyIn117+		 (fp (AST.NN (AST.JSOperator happy_var_1))+	)}++happyReduce_242 = happySpecReduce_1  111# happyReduction_242+happyReduction_242 happy_x_1+	 =  case happyOut115 happy_x_1 of { happy_var_1 -> +	happyIn118+		 (fp (AST.NN (AST.JSExpression happy_var_1)) {- Expression -}+	)}++happyReduce_243 = happySpecReduce_3  111# happyReduction_243+happyReduction_243 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut118 happy_x_1 of { happy_var_1 -> +	case happyOut14 happy_x_2 of { happy_var_2 -> +	case happyOut115 happy_x_3 of { happy_var_3 -> +	happyIn118+		 (fp (AST.NN (AST.JSExpression (happy_var_1:[happy_var_2]++happy_var_3))) {- Expression2 -}+	)}}}++happyReduce_244 = happySpecReduce_1  112# happyReduction_244+happyReduction_244 happy_x_1+	 =  case happyOut116 happy_x_1 of { happy_var_1 -> +	happyIn119+		 (fp (AST.NN (AST.JSExpression happy_var_1)) {- ExpressionNoIn -}+	)}++happyReduce_245 = happySpecReduce_3  112# happyReduction_245+happyReduction_245 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut119 happy_x_1 of { happy_var_1 -> +	case happyOut14 happy_x_2 of { happy_var_2 -> +	case happyOut116 happy_x_3 of { happy_var_3 -> +	happyIn119+		 (fp (AST.NN (AST.JSExpression (happy_var_1:[happy_var_2]++happy_var_3))) {- ExpressionNoIn2 -}+	)}}}++happyReduce_246 = happySpecReduce_1  113# happyReduction_246+happyReduction_246 happy_x_1+	 =  case happyOut118 happy_x_1 of { happy_var_1 -> +	happyIn120+		 ([happy_var_1] {- ExpressionOpt -}+	)}++happyReduce_247 = happySpecReduce_0  113# happyReduction_247+happyReduction_247  =  happyIn120+		 ([]   {- ExpressionOpt -}+	)++happyReduce_248 = happySpecReduce_1  114# happyReduction_248+happyReduction_248 happy_x_1+	 =  case happyOut119 happy_x_1 of { happy_var_1 -> +	happyIn121+		 ([happy_var_1] {- ExpressionOpt -}+	)}++happyReduce_249 = happySpecReduce_0  114# happyReduction_249+happyReduction_249  =  happyIn121+		 ([]   {- ExpressionOpt -}+	)++happyReduce_250 = happySpecReduce_1  115# happyReduction_250+happyReduction_250 happy_x_1+	 =  case happyOut123 happy_x_1 of { happy_var_1 -> +	happyIn122+		 (happy_var_1 {- Statement1 -}+	)}++happyReduce_251 = happySpecReduce_1  115# happyReduction_251+happyReduction_251 happy_x_1+	 =  case happyOut134 happy_x_1 of { happy_var_1 -> +	happyIn122+		 (happy_var_1 {- Statement3 -}+	)}++happyReduce_252 = happySpecReduce_1  116# happyReduction_252+happyReduction_252 happy_x_1+	 =  case happyOut124 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty1 -}+	)}++happyReduce_253 = happySpecReduce_1  116# happyReduction_253+happyReduction_253 happy_x_1+	 =  case happyOut127 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty2 -}+	)}++happyReduce_254 = happySpecReduce_1  116# happyReduction_254+happyReduction_254 happy_x_1+	 =  case happyOut135 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty4 -}+	)}++happyReduce_255 = happySpecReduce_1  116# happyReduction_255+happyReduction_255 happy_x_1+	 =  case happyOut136 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty5 -}+	)}++happyReduce_256 = happySpecReduce_1  116# happyReduction_256+happyReduction_256 happy_x_1+	 =  case happyOut139 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty6 -}+	)}++happyReduce_257 = happySpecReduce_1  116# happyReduction_257+happyReduction_257 happy_x_1+	 =  case happyOut140 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty7 -}+	)}++happyReduce_258 = happySpecReduce_1  116# happyReduction_258+happyReduction_258 happy_x_1+	 =  case happyOut141 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty8 -}+	)}++happyReduce_259 = happySpecReduce_1  116# happyReduction_259+happyReduction_259 happy_x_1+	 =  case happyOut142 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty9 -}+	)}++happyReduce_260 = happySpecReduce_1  116# happyReduction_260+happyReduction_260 happy_x_1+	 =  case happyOut143 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty10 -}+	)}++happyReduce_261 = happySpecReduce_1  116# happyReduction_261+happyReduction_261 happy_x_1+	 =  case happyOut149 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty11 -}+	)}++happyReduce_262 = happySpecReduce_1  116# happyReduction_262+happyReduction_262 happy_x_1+	 =  case happyOut144 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty12 -}+	)}++happyReduce_263 = happySpecReduce_1  116# happyReduction_263+happyReduction_263 happy_x_1+	 =  case happyOut150 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty13 -}+	)}++happyReduce_264 = happySpecReduce_1  116# happyReduction_264+happyReduction_264 happy_x_1+	 =  case happyOut151 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty14 -}+	)}++happyReduce_265 = happySpecReduce_1  116# happyReduction_265+happyReduction_265 happy_x_1+	 =  case happyOut155 happy_x_1 of { happy_var_1 -> +	happyIn123+		 (happy_var_1 {- StatementNoEmpty15 -}+	)}++happyReduce_266 = happySpecReduce_2  117# happyReduction_266+happyReduction_266 happy_x_2+	happy_x_1+	 =  case happyOut10 happy_x_1 of { happy_var_1 -> +	case happyOut11 happy_x_2 of { happy_var_2 -> +	happyIn124+		 (fp (AST.NN (AST.JSStatementBlock happy_var_1 (AST.NN (AST.JSStatementList [])) happy_var_2))+	)}}++happyReduce_267 = happySpecReduce_3  117# happyReduction_267+happyReduction_267 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut10 happy_x_1 of { happy_var_1 -> +	case happyOut126 happy_x_2 of { happy_var_2 -> +	case happyOut11 happy_x_3 of { happy_var_3 -> +	happyIn124+		 (fp (AST.NN (AST.JSStatementBlock happy_var_1 happy_var_2                                happy_var_3))+	)}}}++happyReduce_268 = happySpecReduce_2  118# happyReduction_268+happyReduction_268 happy_x_2+	happy_x_1+	 =  case happyOut10 happy_x_1 of { happy_var_1 -> +	case happyOut11 happy_x_2 of { happy_var_2 -> +	happyIn125+		 (fp (AST.NN (AST.JSBlock [happy_var_1] (AST.NN (AST.JSStatementList [])) [happy_var_2]))+	)}}++happyReduce_269 = happySpecReduce_3  118# happyReduction_269+happyReduction_269 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut10 happy_x_1 of { happy_var_1 -> +	case happyOut126 happy_x_2 of { happy_var_2 -> +	case happyOut11 happy_x_3 of { happy_var_3 -> +	happyIn125+		 (fp (AST.NN (AST.JSBlock [happy_var_1] happy_var_2                                [happy_var_3]))+	)}}}++happyReduce_270 = happySpecReduce_1  119# happyReduction_270+happyReduction_270 happy_x_1+	 =  case happyOut122 happy_x_1 of { happy_var_1 -> +	happyIn126+		 (fp (AST.NN (AST.JSStatementList [happy_var_1]))+	)}++happyReduce_271 = happySpecReduce_2  119# happyReduction_271+happyReduction_271 happy_x_2+	happy_x_1+	 =  case happyOut126 happy_x_1 of { happy_var_1 -> +	case happyOut122 happy_x_2 of { happy_var_2 -> +	happyIn126+		 ((combineStatements happy_var_1 happy_var_2)+	)}}++happyReduce_272 = happySpecReduce_3  120# happyReduction_272+happyReduction_272 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> +	case happyOut128 happy_x_2 of { happy_var_2 -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn127+		 (fp (AST.NN (AST.JSVariables happy_var_1 happy_var_2 happy_var_3))+	)}}}++happyReduce_273 = happySpecReduce_3  120# happyReduction_273+happyReduction_273 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut52 happy_x_1 of { happy_var_1 -> +	case happyOut128 happy_x_2 of { happy_var_2 -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn127+		 (fp (AST.NN (AST.JSVariables happy_var_1 happy_var_2 happy_var_3))+	)}}}++happyReduce_274 = happySpecReduce_1  121# happyReduction_274+happyReduction_274 happy_x_1+	 =  case happyOut130 happy_x_1 of { happy_var_1 -> +	happyIn128+		 ([happy_var_1] {- VariableDeclarationList -}+	)}++happyReduce_275 = happySpecReduce_3  121# happyReduction_275+happyReduction_275 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut128 happy_x_1 of { happy_var_1 -> +	case happyOut14 happy_x_2 of { happy_var_2 -> +	case happyOut130 happy_x_3 of { happy_var_3 -> +	happyIn128+		 ((happy_var_1++[happy_var_2]++[happy_var_3]) {- VariableDeclarationList -}+	)}}}++happyReduce_276 = happySpecReduce_1  122# happyReduction_276+happyReduction_276 happy_x_1+	 =  case happyOut131 happy_x_1 of { happy_var_1 -> +	happyIn129+		 ([happy_var_1] {- VariableDeclarationList -}+	)}++happyReduce_277 = happySpecReduce_3  122# happyReduction_277+happyReduction_277 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut129 happy_x_1 of { happy_var_1 -> +	case happyOut14 happy_x_2 of { happy_var_2 -> +	case happyOut131 happy_x_3 of { happy_var_3 -> +	happyIn129+		 ((happy_var_1++[happy_var_2]++[happy_var_3]) {- VariableDeclarationListNoIn -}+	)}}}++happyReduce_278 = happySpecReduce_1  123# happyReduction_278+happyReduction_278 happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	happyIn130+		 (fp (AST.NN (AST.JSVarDecl happy_var_1 []))+	)}++happyReduce_279 = happySpecReduce_2  123# happyReduction_279+happyReduction_279 happy_x_2+	happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	case happyOut132 happy_x_2 of { happy_var_2 -> +	happyIn130+		 (fp (AST.NN (AST.JSVarDecl happy_var_1 happy_var_2))+	)}}++happyReduce_280 = happySpecReduce_2  124# happyReduction_280+happyReduction_280 happy_x_2+	happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	case happyOut133 happy_x_2 of { happy_var_2 -> +	happyIn131+		 (fp (AST.NN (AST.JSVarDecl happy_var_1 happy_var_2))+	)}}++happyReduce_281 = happySpecReduce_1  124# happyReduction_281+happyReduction_281 happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	happyIn131+		 (fp (AST.NN (AST.JSVarDecl happy_var_1 []))+	)}++happyReduce_282 = happySpecReduce_2  125# happyReduction_282+happyReduction_282 happy_x_2+	happy_x_1+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> +	case happyOut115 happy_x_2 of { happy_var_2 -> +	happyIn132+		 (happy_var_1:happy_var_2 {- Initializer -}+	)}}++happyReduce_283 = happySpecReduce_2  126# happyReduction_283+happyReduction_283 happy_x_2+	happy_x_1+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> +	case happyOut116 happy_x_2 of { happy_var_2 -> +	happyIn133+		 (happy_var_1:happy_var_2 {- InitializerNoIn -}+	)}}++happyReduce_284 = happySpecReduce_1  127# happyReduction_284+happyReduction_284 happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	happyIn134+		 (happy_var_1+	)}++happyReduce_285 = happySpecReduce_1  128# happyReduction_285+happyReduction_285 happy_x_1+	 =  case happyOut118 happy_x_1 of { happy_var_1 -> +	happyIn135+		 (happy_var_1 {- ExpressionStatement -}+	)}++happyReduce_286 = happyReduce 6# 129# happyReduction_286+happyReduction_286 (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 happyOut53 happy_x_1 of { happy_var_1 -> +	case happyOut8 happy_x_2 of { happy_var_2 -> +	case happyOut118 happy_x_3 of { happy_var_3 -> +	case happyOut9 happy_x_4 of { happy_var_4 -> +	case happyOut138 happy_x_5 of { happy_var_5 -> +	case happyOut137 happy_x_6 of { happy_var_6 -> +	happyIn136+		 ((if (happy_var_6 /= []) then+                       (if (length happy_var_6 == 1)+                        then+                          (fp (AST.NN (AST.JSIf happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5 happy_var_6) ))+                        else+                          (fp (AST.NN+                             (AST.JSIf+                                happy_var_1 happy_var_2+                                happy_var_3+                                happy_var_4+                                (fp (AST.NN+                                   (AST.JSBlock [] (AST.NN (AST.JSStatementList [happy_var_5])) [] )+                                   ))+                                happy_var_6+                             )++                           ))+                       )+                     else (fp (AST.NN (AST.JSIf happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5 []) )) )+	) `HappyStk` happyRest}}}}}}++happyReduce_287 = happySpecReduce_2  130# happyReduction_287+happyReduction_287 happy_x_2+	happy_x_1+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> +	case happyOut122 happy_x_2 of { happy_var_2 -> +	happyIn137+		 ([happy_var_1,happy_var_2]+	)}}++happyReduce_288 = happySpecReduce_0  130# happyReduction_288+happyReduction_288  =  happyIn137+		 ([]+	)++happyReduce_289 = happySpecReduce_2  131# happyReduction_289+happyReduction_289 happy_x_2+	happy_x_1+	 =  case happyOut123 happy_x_1 of { happy_var_1 -> +	case happyOut16 happy_x_2 of { happy_var_2 -> +	happyIn138+		 (fp (AST.NN (AST.JSBlock [] (AST.NN (AST.JSStatementList [happy_var_1,happy_var_2])) []))+	)}}++happyReduce_290 = happySpecReduce_1  131# happyReduction_290+happyReduction_290 happy_x_1+	 =  case happyOut123 happy_x_1 of { happy_var_1 -> +	happyIn138+		 (happy_var_1 {- StatementSemi -}+	)}++happyReduce_291 = happySpecReduce_1  131# happyReduction_291+happyReduction_291 happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	happyIn138+		 (happy_var_1+	)}++happyReduce_292 = happyReduce 7# 132# happyReduction_292+happyReduction_292 (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 happyOut55 happy_x_1 of { happy_var_1 -> +	case happyOut122 happy_x_2 of { happy_var_2 -> +	case happyOut56 happy_x_3 of { happy_var_3 -> +	case happyOut8 happy_x_4 of { happy_var_4 -> +	case happyOut118 happy_x_5 of { happy_var_5 -> +	case happyOut9 happy_x_6 of { happy_var_6 -> +	case happyOut7 happy_x_7 of { happy_var_7 -> +	happyIn139+		 (fp (AST.NN (AST.JSDoWhile happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5 happy_var_6 happy_var_7))+	) `HappyStk` happyRest}}}}}}}++happyReduce_293 = happyReduce 5# 132# happyReduction_293+happyReduction_293 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut56 happy_x_1 of { happy_var_1 -> +	case happyOut8 happy_x_2 of { happy_var_2 -> +	case happyOut118 happy_x_3 of { happy_var_3 -> +	case happyOut9 happy_x_4 of { happy_var_4 -> +	case happyOut122 happy_x_5 of { happy_var_5 -> +	happyIn139+		 (fp (AST.NN (AST.JSWhile happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5))+	) `HappyStk` happyRest}}}}}++happyReduce_294 = happyReduce 9# 132# happyReduction_294+happyReduction_294 (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 happyOut57 happy_x_1 of { happy_var_1 -> +	case happyOut8 happy_x_2 of { happy_var_2 -> +	case happyOut121 happy_x_3 of { happy_var_3 -> +	case happyOut16 happy_x_4 of { happy_var_4 -> +	case happyOut120 happy_x_5 of { happy_var_5 -> +	case happyOut16 happy_x_6 of { happy_var_6 -> +	case happyOut120 happy_x_7 of { happy_var_7 -> +	case happyOut9 happy_x_8 of { happy_var_8 -> +	case happyOut122 happy_x_9 of { happy_var_9 -> +	happyIn139+		 (fp (AST.NN (AST.JSFor happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5 happy_var_6 happy_var_7 happy_var_8 happy_var_9))+	) `HappyStk` happyRest}}}}}}}}}++happyReduce_295 = happyReduce 10# 132# happyReduction_295+happyReduction_295 (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 happyOut57 happy_x_1 of { happy_var_1 -> +	case happyOut8 happy_x_2 of { happy_var_2 -> +	case happyOut51 happy_x_3 of { happy_var_3 -> +	case happyOut129 happy_x_4 of { happy_var_4 -> +	case happyOut16 happy_x_5 of { happy_var_5 -> +	case happyOut120 happy_x_6 of { happy_var_6 -> +	case happyOut16 happy_x_7 of { happy_var_7 -> +	case happyOut120 happy_x_8 of { happy_var_8 -> +	case happyOut9 happy_x_9 of { happy_var_9 -> +	case happyOut122 happy_x_10 of { happy_var_10 -> +	happyIn139+		 (fp (AST.NN (AST.JSForVar happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5 happy_var_6 happy_var_7 happy_var_8 happy_var_9 happy_var_10))+	) `HappyStk` happyRest}}}}}}}}}}++happyReduce_296 = happyReduce 7# 132# happyReduction_296+happyReduction_296 (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 happyOut57 happy_x_1 of { happy_var_1 -> +	case happyOut8 happy_x_2 of { happy_var_2 -> +	case happyOut93 happy_x_3 of { happy_var_3 -> +	case happyOut37 happy_x_4 of { happy_var_4 -> +	case happyOut118 happy_x_5 of { happy_var_5 -> +	case happyOut9 happy_x_6 of { happy_var_6 -> +	case happyOut122 happy_x_7 of { happy_var_7 -> +	happyIn139+		 (fp (AST.NN (AST.JSForIn happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5 happy_var_6 happy_var_7))+	) `HappyStk` happyRest}}}}}}}++happyReduce_297 = happyReduce 8# 132# happyReduction_297+happyReduction_297 (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 happyOut57 happy_x_1 of { happy_var_1 -> +	case happyOut8 happy_x_2 of { happy_var_2 -> +	case happyOut51 happy_x_3 of { happy_var_3 -> +	case happyOut131 happy_x_4 of { happy_var_4 -> +	case happyOut37 happy_x_5 of { happy_var_5 -> +	case happyOut118 happy_x_6 of { happy_var_6 -> +	case happyOut9 happy_x_7 of { happy_var_7 -> +	case happyOut122 happy_x_8 of { happy_var_8 -> +	happyIn139+		 (fp (AST.NN (AST.JSForVarIn happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5 happy_var_6 happy_var_7 happy_var_8))+	) `HappyStk` happyRest}}}}}}}}++happyReduce_298 = happySpecReduce_2  133# happyReduction_298+happyReduction_298 happy_x_2+	happy_x_1+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> +	case happyOut7 happy_x_2 of { happy_var_2 -> +	happyIn140+		 (fp (AST.NN (AST.JSContinue happy_var_1 []   happy_var_2))+	)}}++happyReduce_299 = happySpecReduce_3  133# happyReduction_299+happyReduction_299 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> +	case happyOut78 happy_x_2 of { happy_var_2 -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn140+		 (fp (AST.NN (AST.JSContinue happy_var_1 [happy_var_2] happy_var_3))+	)}}}++happyReduce_300 = happySpecReduce_2  134# happyReduction_300+happyReduction_300 happy_x_2+	happy_x_1+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> +	case happyOut7 happy_x_2 of { happy_var_2 -> +	happyIn141+		 (fp (AST.NN (AST.JSBreak happy_var_1 []   happy_var_2))+	)}}++happyReduce_301 = happySpecReduce_3  134# happyReduction_301+happyReduction_301 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> +	case happyOut78 happy_x_2 of { happy_var_2 -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn141+		 (fp (AST.NN (AST.JSBreak happy_var_1 [happy_var_2] happy_var_3))+	)}}}++happyReduce_302 = happySpecReduce_2  135# happyReduction_302+happyReduction_302 happy_x_2+	happy_x_1+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> +	case happyOut7 happy_x_2 of { happy_var_2 -> +	happyIn142+		 (fp (AST.NN (AST.JSReturn happy_var_1 []   happy_var_2))+	)}}++happyReduce_303 = happySpecReduce_3  135# happyReduction_303+happyReduction_303 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> +	case happyOut118 happy_x_2 of { happy_var_2 -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn142+		 (fp (AST.NN (AST.JSReturn happy_var_1 [happy_var_2] happy_var_3))+	)}}}++happyReduce_304 = happyReduce 6# 136# happyReduction_304+happyReduction_304 (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 happyOut61 happy_x_1 of { happy_var_1 -> +	case happyOut8 happy_x_2 of { happy_var_2 -> +	case happyOut118 happy_x_3 of { happy_var_3 -> +	case happyOut9 happy_x_4 of { happy_var_4 -> +	case happyOut122 happy_x_5 of { happy_var_5 -> +	case happyOut7 happy_x_6 of { happy_var_6 -> +	happyIn143+		 (fp (AST.NN (AST.JSWith happy_var_1 happy_var_2 happy_var_3 happy_var_4 [happy_var_5,happy_var_6]))+	) `HappyStk` happyRest}}}}}}++happyReduce_305 = happyReduce 5# 137# 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 happyOut62 happy_x_1 of { happy_var_1 -> +	case happyOut8 happy_x_2 of { happy_var_2 -> +	case happyOut118 happy_x_3 of { happy_var_3 -> +	case happyOut9 happy_x_4 of { happy_var_4 -> +	case happyOut145 happy_x_5 of { happy_var_5 -> +	happyIn144+		 ((AST.NN (AST.JSSwitch happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5))+	) `HappyStk` happyRest}}}}}++happyReduce_306 = happySpecReduce_3  138# happyReduction_306+happyReduction_306 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut10 happy_x_1 of { happy_var_1 -> +	case happyOut146 happy_x_2 of { happy_var_2 -> +	case happyOut11 happy_x_3 of { happy_var_3 -> +	happyIn145+		 ((happy_var_1:happy_var_2)++[happy_var_3]           {- CaseBlock1 -}+	)}}}++happyReduce_307 = happyReduce 5# 138# happyReduction_307+happyReduction_307 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut10 happy_x_1 of { happy_var_1 -> +	case happyOut146 happy_x_2 of { happy_var_2 -> +	case happyOut148 happy_x_3 of { happy_var_3 -> +	case happyOut146 happy_x_4 of { happy_var_4 -> +	case happyOut11 happy_x_5 of { happy_var_5 -> +	happyIn145+		 ((happy_var_1:happy_var_2)++[happy_var_3]++happy_var_4++[happy_var_5] {- CaseBlock2 -}+	) `HappyStk` happyRest}}}}}++happyReduce_308 = happySpecReduce_1  139# happyReduction_308+happyReduction_308 happy_x_1+	 =  case happyOut147 happy_x_1 of { happy_var_1 -> +	happyIn146+		 ([happy_var_1] {- CaseClauses1 -}+	)}++happyReduce_309 = happySpecReduce_2  139# happyReduction_309+happyReduction_309 happy_x_2+	happy_x_1+	 =  case happyOut146 happy_x_1 of { happy_var_1 -> +	case happyOut147 happy_x_2 of { happy_var_2 -> +	happyIn146+		 ((happy_var_1++[happy_var_2]) {- CaseClauses2 -}+	)}}++happyReduce_310 = happySpecReduce_0  139# happyReduction_310+happyReduction_310  =  happyIn146+		 ([fp (AST.NT (AST.JSLiteral "") tokenPosnEmpty []) ]+	)++happyReduce_311 = happyReduce 4# 140# happyReduction_311+happyReduction_311 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut63 happy_x_1 of { happy_var_1 -> +	case happyOut118 happy_x_2 of { happy_var_2 -> +	case happyOut15 happy_x_3 of { happy_var_3 -> +	case happyOut126 happy_x_4 of { happy_var_4 -> +	happyIn147+		 (fp (AST.NN (AST.JSCase happy_var_1 happy_var_2 happy_var_3 happy_var_4))+	) `HappyStk` happyRest}}}}++happyReduce_312 = happySpecReduce_3  140# happyReduction_312+happyReduction_312 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut63 happy_x_1 of { happy_var_1 -> +	case happyOut118 happy_x_2 of { happy_var_2 -> +	case happyOut15 happy_x_3 of { happy_var_3 -> +	happyIn147+		 (fp (AST.NN (AST.JSCase happy_var_1 happy_var_2 happy_var_3 (AST.NN (AST.JSStatementList []))))+	)}}}++happyReduce_313 = happySpecReduce_2  141# happyReduction_313+happyReduction_313 happy_x_2+	happy_x_1+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> +	case happyOut15 happy_x_2 of { happy_var_2 -> +	happyIn148+		 (fp (AST.NN (AST.JSDefault happy_var_1 happy_var_2 (AST.NN (AST.JSStatementList []))))+	)}}++happyReduce_314 = happySpecReduce_3  141# happyReduction_314+happyReduction_314 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> +	case happyOut15 happy_x_2 of { happy_var_2 -> +	case happyOut126 happy_x_3 of { happy_var_3 -> +	happyIn148+		 (fp (AST.NN (AST.JSDefault happy_var_1 happy_var_2 happy_var_3))+	)}}}++happyReduce_315 = happySpecReduce_3  142# happyReduction_315+happyReduction_315 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	case happyOut15 happy_x_2 of { happy_var_2 -> +	case happyOut122 happy_x_3 of { happy_var_3 -> +	happyIn149+		 (fp (AST.NN (AST.JSLabelled happy_var_1 happy_var_2 happy_var_3))+	)}}}++happyReduce_316 = happySpecReduce_2  143# happyReduction_316+happyReduction_316 happy_x_2+	happy_x_1+	 =  case happyOut65 happy_x_1 of { happy_var_1 -> +	case happyOut118 happy_x_2 of { happy_var_2 -> +	happyIn150+		 (fp (AST.NN (AST.JSThrow happy_var_1 happy_var_2))+	)}}++happyReduce_317 = happySpecReduce_3  144# happyReduction_317+happyReduction_317 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut66 happy_x_1 of { happy_var_1 -> +	case happyOut125 happy_x_2 of { happy_var_2 -> +	case happyOut152 happy_x_3 of { happy_var_3 -> +	happyIn151+		 (fp (AST.NN (AST.JSTry happy_var_1 happy_var_2 happy_var_3)         ) {- TryStatement1 -}+	)}}}++happyReduce_318 = happySpecReduce_3  144# happyReduction_318+happyReduction_318 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut66 happy_x_1 of { happy_var_1 -> +	case happyOut125 happy_x_2 of { happy_var_2 -> +	case happyOut154 happy_x_3 of { happy_var_3 -> +	happyIn151+		 (fp (AST.NN (AST.JSTry happy_var_1 happy_var_2 [happy_var_3])       ) {- TryStatement2 -}+	)}}}++happyReduce_319 = happyReduce 4# 144# happyReduction_319+happyReduction_319 (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 happyOut125 happy_x_2 of { happy_var_2 -> +	case happyOut152 happy_x_3 of { happy_var_3 -> +	case happyOut154 happy_x_4 of { happy_var_4 -> +	happyIn151+		 (fp (AST.NN (AST.JSTry happy_var_1 happy_var_2 (happy_var_3++[happy_var_4])) ) {- TryStatement3 -}+	) `HappyStk` happyRest}}}}++happyReduce_320 = happySpecReduce_1  145# happyReduction_320+happyReduction_320 happy_x_1+	 =  case happyOut153 happy_x_1 of { happy_var_1 -> +	happyIn152+		 ([happy_var_1]       {- Catches 1 -}+	)}++happyReduce_321 = happySpecReduce_2  145# happyReduction_321+happyReduction_321 happy_x_2+	happy_x_1+	 =  case happyOut152 happy_x_1 of { happy_var_1 -> +	case happyOut153 happy_x_2 of { happy_var_2 -> +	happyIn152+		 ((happy_var_1++[happy_var_2]) {- Catches 2 -}+	)}}++happyReduce_322 = happyReduce 5# 146# happyReduction_322+happyReduction_322 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut67 happy_x_1 of { happy_var_1 -> +	case happyOut8 happy_x_2 of { happy_var_2 -> +	case happyOut78 happy_x_3 of { happy_var_3 -> +	case happyOut9 happy_x_4 of { happy_var_4 -> +	case happyOut125 happy_x_5 of { happy_var_5 -> +	happyIn153+		 (fp (AST.NN (AST.JSCatch happy_var_1 happy_var_2 happy_var_3 [] happy_var_4 happy_var_5) )+	) `HappyStk` happyRest}}}}}++happyReduce_323 = happyReduce 7# 146# happyReduction_323+happyReduction_323 (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 happyOut67 happy_x_1 of { happy_var_1 -> +	case happyOut8 happy_x_2 of { happy_var_2 -> +	case happyOut78 happy_x_3 of { happy_var_3 -> +	case happyOut53 happy_x_4 of { happy_var_4 -> +	case happyOut113 happy_x_5 of { happy_var_5 -> +	case happyOut9 happy_x_6 of { happy_var_6 -> +	case happyOut125 happy_x_7 of { happy_var_7 -> +	happyIn153+		 (fp (AST.NN (AST.JSCatch happy_var_1 happy_var_2 happy_var_3 (happy_var_4:happy_var_5) happy_var_6 happy_var_7))+	) `HappyStk` happyRest}}}}}}}++happyReduce_324 = happySpecReduce_2  147# happyReduction_324+happyReduction_324 happy_x_2+	happy_x_1+	 =  case happyOut68 happy_x_1 of { happy_var_1 -> +	case happyOut125 happy_x_2 of { happy_var_2 -> +	happyIn154+		 (fp (AST.NN (AST.JSFinally happy_var_1 happy_var_2))+	)}}++happyReduce_325 = happySpecReduce_2  148# happyReduction_325+happyReduction_325 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn155+		 (fp (AST.NT (AST.JSLiteral "debugger") (ss happy_var_1) (gc happy_var_1))+	)}++happyReduce_326 = happyReduce 8# 149# happyReduction_326+happyReduction_326 (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 happyOut69 happy_x_1 of { happy_var_1 -> +	case happyOut78 happy_x_2 of { happy_var_2 -> +	case happyOut8 happy_x_3 of { happy_var_3 -> +	case happyOut159 happy_x_4 of { happy_var_4 -> +	case happyOut9 happy_x_5 of { happy_var_5 -> +	case happyOut10 happy_x_6 of { happy_var_6 -> +	case happyOut160 happy_x_7 of { happy_var_7 -> +	case happyOut11 happy_x_8 of { happy_var_8 -> +	happyIn156+		 (fp (AST.NN (AST.JSFunction happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5 happy_var_6 happy_var_7 happy_var_8) )+	) `HappyStk` happyRest}}}}}}}}++happyReduce_327 = happyReduce 7# 149# happyReduction_327+happyReduction_327 (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 happyOut69 happy_x_1 of { happy_var_1 -> +	case happyOut78 happy_x_2 of { happy_var_2 -> +	case happyOut8 happy_x_3 of { happy_var_3 -> +	case happyOut9 happy_x_4 of { happy_var_4 -> +	case happyOut10 happy_x_5 of { happy_var_5 -> +	case happyOut160 happy_x_6 of { happy_var_6 -> +	case happyOut11 happy_x_7 of { happy_var_7 -> +	happyIn156+		 (fp (AST.NN (AST.JSFunction happy_var_1 happy_var_2 happy_var_3 [] happy_var_4 happy_var_5 happy_var_6 happy_var_7) )+	) `HappyStk` happyRest}}}}}}}++happyReduce_328 = happyReduce 7# 150# happyReduction_328+happyReduction_328 (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 happyOut69 happy_x_1 of { happy_var_1 -> +	case happyOut158 happy_x_2 of { happy_var_2 -> +	case happyOut8 happy_x_3 of { happy_var_3 -> +	case happyOut9 happy_x_4 of { happy_var_4 -> +	case happyOut10 happy_x_5 of { happy_var_5 -> +	case happyOut160 happy_x_6 of { happy_var_6 -> +	case happyOut11 happy_x_7 of { happy_var_7 -> +	happyIn157+		 (fp (AST.NN (AST.JSFunctionExpression happy_var_1 happy_var_2 happy_var_3 [] happy_var_4 happy_var_5 happy_var_6 happy_var_7) )+	) `HappyStk` happyRest}}}}}}}++happyReduce_329 = happyReduce 8# 150# happyReduction_329+happyReduction_329 (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 happyOut69 happy_x_1 of { happy_var_1 -> +	case happyOut158 happy_x_2 of { happy_var_2 -> +	case happyOut8 happy_x_3 of { happy_var_3 -> +	case happyOut159 happy_x_4 of { happy_var_4 -> +	case happyOut9 happy_x_5 of { happy_var_5 -> +	case happyOut10 happy_x_6 of { happy_var_6 -> +	case happyOut160 happy_x_7 of { happy_var_7 -> +	case happyOut11 happy_x_8 of { happy_var_8 -> +	happyIn157+		 (fp (AST.NN (AST.JSFunctionExpression happy_var_1 happy_var_2 happy_var_3 happy_var_4 happy_var_5 happy_var_6 happy_var_7 happy_var_8) )+	) `HappyStk` happyRest}}}}}}}}++happyReduce_330 = happySpecReduce_1  151# happyReduction_330+happyReduction_330 happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	happyIn158+		 ([happy_var_1] {- IdentifierOpt -}+	)}++happyReduce_331 = happySpecReduce_0  151# happyReduction_331+happyReduction_331  =  happyIn158+		 ([]   {- IdentifierOpt -}+	)++happyReduce_332 = happySpecReduce_1  152# happyReduction_332+happyReduction_332 happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	happyIn159+		 ([happy_var_1] {- FormalParameterList -}+	)}++happyReduce_333 = happySpecReduce_3  152# happyReduction_333+happyReduction_333 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut159 happy_x_1 of { happy_var_1 -> +	case happyOut14 happy_x_2 of { happy_var_2 -> +	case happyOut78 happy_x_3 of { happy_var_3 -> +	happyIn159+		 ((happy_var_1++[happy_var_2]++[happy_var_3])+	)}}}++happyReduce_334 = happySpecReduce_1  153# happyReduction_334+happyReduction_334 happy_x_1+	 =  case happyOut165 happy_x_1 of { happy_var_1 -> +	happyIn160+		 ((AST.NN (AST.JSFunctionBody [happy_var_1]) )+	)}++happyReduce_335 = happySpecReduce_0  153# happyReduction_335+happyReduction_335  =  happyIn160+		 ((AST.NN (AST.JSFunctionBody []  ) )+	)++happyReduce_336 = happySpecReduce_2  154# happyReduction_336+happyReduction_336 happy_x_2+	happy_x_1+	 =  case happyOut166 happy_x_1 of { happy_var_1 -> +	case happyOut70 happy_x_2 of { happy_var_2 -> +	happyIn161+		 ((combineTop happy_var_1 happy_var_2) {- Program -}+	)}}++happyReduce_337 = happySpecReduce_2  155# happyReduction_337+happyReduction_337 happy_x_2+	happy_x_1+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> +	happyIn162+		 (happy_var_1+	)}++happyReduce_338 = happySpecReduce_2  156# happyReduction_338+happyReduction_338 happy_x_2+	happy_x_1+	 =  case happyOut77 happy_x_1 of { happy_var_1 -> +	happyIn163+		 (happy_var_1+	)}++happyReduce_339 = happySpecReduce_2  157# happyReduction_339+happyReduction_339 happy_x_2+	happy_x_1+	 =  case happyOut122 happy_x_1 of { happy_var_1 -> +	happyIn164+		 (happy_var_1+	)}++happyReduce_340 = happySpecReduce_1  158# happyReduction_340+happyReduction_340 happy_x_1+	 =  case happyOut167 happy_x_1 of { happy_var_1 -> +	happyIn165+		 (fp (AST.NN (AST.JSSourceElements [happy_var_1]) )+	)}++happyReduce_341 = happySpecReduce_2  158# happyReduction_341+happyReduction_341 happy_x_2+	happy_x_1+	 =  case happyOut165 happy_x_1 of { happy_var_1 -> +	case happyOut167 happy_x_2 of { happy_var_2 -> +	happyIn165+		 ((combineSourceElements happy_var_1 happy_var_2)+	)}}++happyReduce_342 = happySpecReduce_1  159# happyReduction_342+happyReduction_342 happy_x_1+	 =  case happyOut167 happy_x_1 of { happy_var_1 -> +	happyIn166+		 (fp (AST.NN (AST.JSSourceElementsTop [happy_var_1]) )+	)}++happyReduce_343 = happySpecReduce_2  159# happyReduction_343+happyReduction_343 happy_x_2+	happy_x_1+	 =  case happyOut166 happy_x_1 of { happy_var_1 -> +	case happyOut167 happy_x_2 of { happy_var_2 -> +	happyIn166+		 ((combineSourceElementsTop happy_var_1 happy_var_2)+	)}}++happyReduce_344 = happySpecReduce_1  160# happyReduction_344+happyReduction_344 happy_x_1+	 =  case happyOut122 happy_x_1 of { happy_var_1 -> +	happyIn167+		 (happy_var_1 {- SourceElement1 -}+	)}++happyReduce_345 = happySpecReduce_1  160# happyReduction_345+happyReduction_345 happy_x_1+	 =  case happyOut156 happy_x_1 of { happy_var_1 -> +	happyIn167+		 (happy_var_1 {- SourceElement2 -}+	)}++happyNewToken action sts stk+	= lexCont(\tk -> +	let cont i = happyDoAction i tk action sts stk in+	case tk of {+	EOFToken {} -> happyDoAction 81# tk action sts stk;+	SemiColonToken {} -> cont 1#;+	CommaToken {} -> cont 2#;+	HookToken {} -> cont 3#;+	ColonToken {} -> cont 4#;+	OrToken {} -> cont 5#;+	AndToken {} -> cont 6#;+	BitwiseOrToken {} -> cont 7#;+	BitwiseXorToken {} -> cont 8#;+	BitwiseAndToken {} -> cont 9#;+	StrictEqToken {} -> cont 10#;+	EqToken {} -> cont 11#;+	SimpleAssignToken {} -> cont 12#;+	StrictNeToken {} -> cont 13#;+	NeToken {} -> cont 14#;+	LshToken {} -> cont 15#;+	LeToken {} -> cont 16#;+	LtToken {} -> cont 17#;+	UrshToken {} -> cont 18#;+	RshToken {} -> cont 19#;+	GeToken {} -> cont 20#;+	GtToken {} -> cont 21#;+	IncrementToken {} -> cont 22#;+	DecrementToken {} -> cont 23#;+	PlusToken {} -> cont 24#;+	MinusToken {} -> cont 25#;+	MulToken {} -> cont 26#;+	DivToken {} -> cont 27#;+	ModToken {} -> cont 28#;+	NotToken {} -> cont 29#;+	BitwiseNotToken {} -> cont 30#;+	DotToken {} -> cont 31#;+	LeftBracketToken {} -> cont 32#;+	RightBracketToken {} -> cont 33#;+	LeftCurlyToken {} -> cont 34#;+	RightCurlyToken {} -> cont 35#;+	LeftParenToken {} -> cont 36#;+	RightParenToken {} -> cont 37#;+	CondcommentEndToken {} -> cont 38#;+	BreakToken {} -> cont 39#;+	CaseToken {} -> cont 40#;+	CatchToken {} -> cont 41#;+	ConstToken {} -> cont 42#;+	ContinueToken {} -> cont 43#;+	DebuggerToken {} -> cont 44#;+	DefaultToken {} -> cont 45#;+	DeleteToken {} -> cont 46#;+	DoToken {} -> cont 47#;+	ElseToken {} -> cont 48#;+	EnumToken {} -> cont 49#;+	FalseToken {} -> cont 50#;+	FinallyToken {} -> cont 51#;+	ForToken {} -> cont 52#;+	FunctionToken {} -> cont 53#;+	GetToken {} -> cont 54#;+	IfToken {} -> cont 55#;+	InToken {} -> cont 56#;+	InstanceofToken {} -> cont 57#;+	NewToken {} -> cont 58#;+	NullToken {} -> cont 59#;+	ReturnToken {} -> cont 60#;+	SetToken {} -> cont 61#;+	SwitchToken {} -> cont 62#;+	ThisToken {} -> cont 63#;+	ThrowToken {} -> cont 64#;+	TrueToken {} -> cont 65#;+	TryToken {} -> cont 66#;+	TypeofToken {} -> cont 67#;+	VarToken {} -> cont 68#;+	VoidToken {} -> cont 69#;+	WhileToken {} -> cont 70#;+	WithToken {} -> cont 71#;+	IdentifierToken {} -> cont 72#;+	DecimalToken {} -> cont 73#;+	HexIntegerToken {} -> cont 74#;+	StringToken {} -> cont 75#;+	RegExToken {} -> cont 76#;+	AssignToken {} -> cont 77#;+	FutureToken {} -> cont 78#;+	TailToken {} -> cont 79#;+	EOFToken {} -> cont 80#;+	_ -> happyError' tk+	})++happyError_ 81# tk = happyError' tk+happyError_ _ tk = happyError' tk++happyThen :: () => Alex a -> (a -> Alex b) -> Alex b+happyThen = (>>=)+happyReturn :: () => a -> Alex a+happyReturn = (return)+happyThen1 = happyThen+happyReturn1 :: () => a -> Alex a+happyReturn1 = happyReturn+happyError' :: () => (Token) -> Alex a+happyError' tk = parseError tk++parseProgram = happySomeParser where+  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut161 x))++parseLiteral = happySomeParser where+  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut162 x))++parsePrimaryExpression = happySomeParser where+  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut163 x))++parseStatement = happySomeParser where+  happySomeParser = happyThen (happyParse 3#) (\x -> happyReturn (happyOut164 x))++happySeq = happyDontSeq+++combineSourceElements :: AST.JSNode -> AST.JSNode -> AST.JSNode+combineSourceElements (AST.NN (AST.JSSourceElements xs)) x1 = fp (AST.NN (AST.JSSourceElements (xs++[x1])))++combineSourceElementsTop :: AST.JSNode -> AST.JSNode -> AST.JSNode+combineSourceElementsTop (AST.NN (AST.JSSourceElementsTop xs)) x1 = fp (AST.NN (AST.JSSourceElementsTop (xs++[x1])))++combineTop :: AST.JSNode -> AST.JSNode -> AST.JSNode+combineTop (AST.NN (AST.JSSourceElementsTop xs)) x1 = fp (AST.NN (AST.JSSourceElementsTop (xs++[x1])))++combineStatements :: AST.JSNode -> AST.JSNode -> AST.JSNode+combineStatements (AST.NN (AST.JSStatementList xs)) (AST.NN (AST.JSStatementList ys)) = fp (AST.NN (AST.JSStatementList (xs++ys) ))+combineStatements (AST.NN (AST.JSStatementList xs)) y = fp (AST.NN (AST.JSStatementList (xs++[y])))++parseError :: Token -> Alex a+-- parseError = throwError . UnexpectedToken+parseError tok = alexError (show tok)++-- --------------------------------++{-+mex :: [AST.JSNode] -> TokenPosn+mex [] = tokenPosnEmpty+mex xs = ex (head xs)++ex :: AST.JSNode -> TokenPosn+ex (AST.NN _node span _c) = span+-}++--ss token = toSrcSpan (token_span token)+ss :: Token -> TokenPosn+ss token = token_span token++-- ------------------------------++gc :: Token -> [CommentAnnotation]+gc token = token_comment token+mgc :: [Token] -> [CommentAnnotation]+mgc xs = concatMap gc xs++{-+-- Get node comment+gnc   (AST.NN _ _ ca)  = ca+mgnc [(AST.NN _ _ ca)] = ca++-- Prepend a comment+pc :: AST.JSNode -> [CommentAnnotation] -> AST.JSNode+pc (AST.NN node span cs2) cs1 = (AST.NN node span (cs1++cs2))++mpc :: [AST.JSNode] -> [CommentAnnotation] -> [AST.JSNode]+-- mpc [(AST.NN node span cs2)]    cs1 = [(AST.NN node span (cs1++cs2))]+mpc ((AST.NN node span cs2):xs) cs1 =  (AST.NN node span (cs1++cs2)):xs+-}++-- ---------------------------------------------------------------------++fp :: AST.JSNode -> AST.JSNode+fp (AST.NN x)      = (AST.NN x)+fp (AST.NT x p cs) = (AST.NT x p cs)+{-+fp (AST.NN x p cs) = (AST.NN x p' cs)+  where+    p' = case (filter (/= NoComment) cs) of+      [] -> p+      [(CommentA posn _)]    -> posn+      ((CommentA posn _):_)  -> posn -} {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-}
language-javascript.cabal view
@@ -1,7 +1,10 @@ Name:                language-javascript-Version:             0.4.10+Version:             0.5.0 Synopsis:            Parser for JavaScript Description:         Parses Javascript into an Abstract Syntax Tree (AST).  Initially intended as frontend to hjsmin.+                     .+                     Note: Version 0.5.0 breaks compatibility with prior versions, the AST has been reworked to allow+                     round trip processing of JavaScript. Homepage:            https://github.com/alanz/language-javascript License:             BSD3 License-file:        LICENSE@@ -29,15 +32,18 @@                    , mtl              >= 1.1     && < 2.9                    , containers       >= 0.2     && < 0.5                    , utf8-light       >= 0.4     && < 1.0+                   -- For the round trip output+                   , blaze-builder    >= 0.2     && < 1+                   , bytestring       >= 0.9.1   && < 1+                   , utf8-string      >= 0.3.7   && < 1   build-tools:       happy >= 1.18.5-                   -- , alex >= 3.0-   hs-source-dirs: src   Exposed-modules:     Language.JavaScript.Parser                        Language.JavaScript.Parser.Parser                        Language.JavaScript.Parser.Lexer                        Language.JavaScript.Parser.Grammar5                        Language.JavaScript.Parser.AST+                       Language.JavaScript.Pretty.Printer   Other-modules:       Language.JavaScript.Parser.LexerUtils                        Language.JavaScript.Parser.ParseError                        Language.JavaScript.Parser.ParserMonad@@ -45,7 +51,6 @@                        Language.JavaScript.Parser.StringEscape                        Language.JavaScript.Parser.Token   Build-tools:         happy-                      -- , alex   ghc-options:         -Wall  executable             runtests
runtests.hs view
@@ -1,4 +1,3 @@- import Test.Framework (defaultMain, testGroup, Test) import Test.Framework.Providers.HUnit import Test.HUnit hiding (Test)@@ -6,11 +5,12 @@  import Control.Monad (liftM) import Language.JavaScript.Parser.Parser+import Language.JavaScript.Parser --import Language.JavaScript.Parser.Grammar import Language.JavaScript.Parser.Grammar5  main :: IO ()-main = defaultMain [testSuite]+main = defaultMain [testSuite,{- ++AZ++temporary++ commentSuite ,-}commentPrintSuite]  one :: IO () one = defaultMain [oneSuite]@@ -61,28 +61,28 @@     , testCase "Identifier2"       (testPE "this_"   "Right (JSIdentifier \"this_\")")      , testCase "ArrayLiteral1"     (testPE "[]"      "Right (JSArrayLiteral [])")-    , testCase "ArrayLiteral2"     (testPE "[,]"     "Right (JSArrayLiteral [JSElision []])")-    , testCase "ArrayLiteral3"     (testPE "[,,]"    "Right (JSArrayLiteral [JSElision [],JSElision []])")-    , testCase "ArrayLiteral4"     (testPE "[,,x]"   "Right (JSArrayLiteral [JSElision [],JSElision [],JSIdentifier \"x\"])")-    , testCase "ArrayLiteral5"     (testPE "[,,x]"   "Right (JSArrayLiteral [JSElision [],JSElision [],JSIdentifier \"x\"])")-    , testCase "ArrayLiteral6"     (testPE "[,x,,x]" "Right (JSArrayLiteral [JSElision [],JSIdentifier \"x\",JSElision [],JSElision [],JSIdentifier \"x\"])")+    , testCase "ArrayLiteral2"     (testPE "[,]"     "Right (JSArrayLiteral [JSElision JSLiteral \",\"])")+    , testCase "ArrayLiteral3"     (testPE "[,,]"    "Right (JSArrayLiteral [JSElision JSLiteral \",\",JSElision JSLiteral \",\"])")+    , testCase "ArrayLiteral4"     (testPE "[,,x]"   "Right (JSArrayLiteral [JSElision JSLiteral \",\",JSElision JSLiteral \",\",JSIdentifier \"x\"])")+    , testCase "ArrayLiteral5"     (testPE "[,,x]"   "Right (JSArrayLiteral [JSElision JSLiteral \",\",JSElision JSLiteral \",\",JSIdentifier \"x\"])")+    , testCase "ArrayLiteral6"     (testPE "[,x,,x]" "Right (JSArrayLiteral [JSElision JSLiteral \",\",JSIdentifier \"x\",JSElision JSLiteral \",\",JSElision JSLiteral \",\",JSIdentifier \"x\"])")     , testCase "ArrayLiteral7"     (testPE "[x]"     "Right (JSArrayLiteral [JSIdentifier \"x\"])")     , testCase "ArrayLiteral8"     (testPE "[x,]"    "Right (JSArrayLiteral [JSIdentifier \"x\",JSLiteral \",\"])") -    , testCase "ObjectLiteral1"    (testPE "{}"       "Right (JSObjectLiteral [])")-    , testCase "ObjectLiteral2"    (testPE "{x:1}"    "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"x\") [JSDecimal \"1\"]])")-    , testCase "ObjectLiteral3"    (testPE "{x:1,y:2}"     "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"x\") [JSDecimal \"1\"],JSPropertyNameandValue (JSIdentifier \"y\") [JSDecimal \"2\"]])")+    , testCase "ObjectLiteral1"    (testPE "{}"        "Right (JSObjectLiteral [])")+    , testCase "ObjectLiteral2"    (testPE "{x:1}"     "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"x\") [JSDecimal \"1\"]])")+    , testCase "ObjectLiteral3"    (testPE "{x:1,y:2}" "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"x\") [JSDecimal \"1\"],JSLiteral \",\",JSPropertyNameandValue (JSIdentifier \"y\") [JSDecimal \"2\"]])") -    , testCase "ObjectLiteral4"    (testPE "{evaluate:evaluate,load:function load(s){if(x)return s;1}}" "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"evaluate\") [JSIdentifier \"evaluate\"],JSPropertyNameandValue (JSIdentifier \"load\") [JSFunctionExpression [JSIdentifier \"load\"] [JSIdentifier \"s\"] (JSFunctionBody [JSSourceElements [JSIf (JSExpression [JSIdentifier \"x\"]) (JSReturn [JSExpression [JSIdentifier \"s\"],JSLiteral \";\"]),JSExpression [JSDecimal \"1\"]]])]])")+    , testCase "ObjectLiteral4"    (testPE "{evaluate:evaluate,load:function load(s){if(x)return s;1}}" "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"evaluate\") [JSIdentifier \"evaluate\"],JSLiteral \",\",JSPropertyNameandValue (JSIdentifier \"load\") [JSFunctionExpression [JSIdentifier \"load\"] [JSIdentifier \"s\"] (JSFunctionBody [JSSourceElements [JSIf (JSExpression [JSIdentifier \"x\"]) (JSReturn [JSExpression [JSIdentifier \"s\"]] JSLiteral \";\") ([]),JSExpression [JSDecimal \"1\"]]])]])")      , testCase "ObjectLiteral5"    (testPE "{x:1,}"    "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"x\") [JSDecimal \"1\"],JSLiteral \",\"])") -    , testCase "ObjectLiteral6"    (testProg "a={\n  values: 7,\n}\n" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"a\",JSOperator \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"values\") [JSDecimal \"7\"],JSLiteral \",\"]]])")+    , testCase "ObjectLiteral6"    (testProg "a={\n  values: 7,\n}\n" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"a\",JSOperator JSLiteral \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"values\") [JSDecimal \"7\"],JSLiteral \",\"]],JSLiteral \"\"])")      -- Edition 5 extensions-    , testCase "ObjectLiteral7"    (testProg "x={get foo() {return 1},set foo(a) {x=a}}"  "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSObjectLiteral [JSPropertyAccessor \"get\" (JSIdentifier \"foo\") [] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSDecimal \"1\"],JSLiteral \"\"]]]),JSPropertyAccessor \"set\" (JSIdentifier \"foo\") [JSIdentifier \"a\"] (JSFunctionBody [JSSourceElements [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSIdentifier \"a\"]]])]]])")+    , testCase "ObjectLiteral7"    (testProg "x={get foo() {return 1},set foo(a) {x=a}}" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSObjectLiteral [JSPropertyAccessor NT (JSLiteral \"get\") (TokenPn 3 1 4) [NoComment] (JSIdentifier \"foo\") [] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSDecimal \"1\"]] JSLiteral \"\"]]),JSLiteral \",\",JSPropertyAccessor NT (JSLiteral \"set\") (TokenPn 24 1 25) [NoComment] (JSIdentifier \"foo\") [JSIdentifier \"a\"] (JSFunctionBody [JSSourceElements [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSIdentifier \"a\"]]])]],JSLiteral \"\"])") -    , testCase "ObjectLiteral8"    (testProg "a={if:1,interface:2}" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"a\",JSOperator \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"if\") [JSDecimal \"1\"],JSPropertyNameandValue (JSIdentifier \"interface\") [JSDecimal \"2\"]]]])")+    , testCase "ObjectLiteral8"    (testProg "a={if:1,interface:2}" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"a\",JSOperator JSLiteral \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"if\") [JSDecimal \"1\"],JSLiteral \",\",JSPropertyNameandValue (JSIdentifier \"interface\") [JSDecimal \"2\"]]],JSLiteral \"\"])")      , testCase "ExpressionParen"   (testPE "(56)"     "Right (JSExpressionParen (JSExpression [JSDecimal \"56\"]))") @@ -132,85 +132,85 @@     , testCase "Statement28"       (testStmt "y--"     "Right (JSExpression [JSExpressionPostfix \"--\" [JSIdentifier \"y\"]])")        -- Member Expressions-    , testCase "MemberExpression1" (testStmt "function(){}"    "Right (JSExpression [JSFunctionExpression [] [] (JSFunctionBody [])])")-    , testCase "MemberExpression1" (testStmt "function(a){}"    "Right (JSExpression [JSFunctionExpression [] [JSIdentifier \"a\"] (JSFunctionBody [])])")-    , testCase "MemberExpression1" (testStmt "function(a,b){}"  "Right (JSExpression [JSFunctionExpression [] [JSIdentifier \"a\",JSIdentifier \"b\"] (JSFunctionBody [])])")+    , testCase "MemberExpression1a" (testStmt "function(){}"    "Right (JSExpression [JSFunctionExpression [] [] (JSFunctionBody [])])")+    , testCase "MemberExpression1b" (testStmt "function(a){}"    "Right (JSExpression [JSFunctionExpression [] [JSIdentifier \"a\"] (JSFunctionBody [])])")+    , testCase "MemberExpression1c" (testStmt "function(a,b){}"  "Right (JSExpression [JSFunctionExpression [] [JSIdentifier \"a\",JSLiteral \",\",JSIdentifier \"b\"] (JSFunctionBody [])])") -    , testCase "MemberExpression1" (testStmt "x[y]"     "Right (JSExpression [JSMemberSquare [JSIdentifier \"x\"] (JSExpression [JSIdentifier \"y\"])])")-    , testCase "MemberExpression1" (testStmt "x[y][z]"  "Right (JSExpression [JSMemberSquare [JSMemberSquare [JSIdentifier \"x\"] (JSExpression [JSIdentifier \"y\"])] (JSExpression [JSIdentifier \"z\"])])")-    , testCase "MemberExpression1" (testStmt "x.y"      "Right (JSExpression [JSMemberDot [JSIdentifier \"x\"] (JSIdentifier \"y\")])")-    , testCase "MemberExpression1" (testStmt "x.y.z"    "Right (JSExpression [JSMemberDot [JSMemberDot [JSIdentifier \"x\"] (JSIdentifier \"y\")] (JSIdentifier \"z\")])")+    , testCase "MemberExpression1d" (testStmt "x[y]"     "Right (JSExpression [JSMemberSquare [JSIdentifier \"x\"] (JSExpression [JSIdentifier \"y\"])])")+    , testCase "MemberExpression1e" (testStmt "x[y][z]"  "Right (JSExpression [JSMemberSquare [JSMemberSquare [JSIdentifier \"x\"] (JSExpression [JSIdentifier \"y\"])] (JSExpression [JSIdentifier \"z\"])])")+    , testCase "MemberExpression1f" (testStmt "x.y"      "Right (JSExpression [JSMemberDot [JSIdentifier \"x\"] (JSIdentifier \"y\")])")+    , testCase "MemberExpression1g" (testStmt "x.y.z"    "Right (JSExpression [JSMemberDot [JSMemberDot [JSIdentifier \"x\"] (JSIdentifier \"y\")] (JSIdentifier \"z\")])") -    , testCase "MemberExpression1" (testStmt "new x()"  "Right (JSExpression [JSLiteral \"new \",JSIdentifier \"x\",JSArguments []])")+    , testCase "MemberExpression1h" (testStmt "new x()"  "Right (JSExpression [JSLiteral \"new\",JSIdentifier \"x\",JSArguments []])") -    , testCase "NewExpression1" (testStmt "new x.y"  "Right (JSExpression [JSLiteral \"new \",JSMemberDot [JSIdentifier \"x\"] (JSIdentifier \"y\")])")+    , testCase "NewExpression1" (testStmt "new x.y"  "Right (JSExpression [JSLiteral \"new\",JSMemberDot [JSIdentifier \"x\"] (JSIdentifier \"y\")])")      , testCase "CallExpression1" (testStmt "x()"     "Right (JSExpression [JSIdentifier \"x\",JSArguments []])")     , testCase "CallExpression2" (testStmt "x()()"   "Right (JSExpression [JSIdentifier \"x\",JSArguments [],JSCallExpression \"()\" [JSArguments []]])")     , testCase "CallExpression3" (testStmt "x()[4]"  "Right (JSExpression [JSIdentifier \"x\",JSArguments [],JSCallExpression \"[]\" [JSExpression [JSDecimal \"4\"]]])")     , testCase "CallExpression4" (testStmt "x().x"   "Right (JSExpression [JSIdentifier \"x\",JSArguments [],JSCallExpression \".\" [JSIdentifier \"x\"]])")-    , testCase "CallExpression5" (testStmt "x(a,b=2).x"   "Right (JSExpression [JSIdentifier \"x\",JSArguments [[JSIdentifier \"a\"],[JSIdentifier \"b\",JSOperator \"=\",JSDecimal \"2\"]],JSCallExpression \".\" [JSIdentifier \"x\"]])")+    , testCase "CallExpression5" (testStmt "x(a,b=2).x"  "Right (JSExpression [JSIdentifier \"x\",JSArguments [JSIdentifier \"a\",JSLiteral \",\",JSIdentifier \"b\",JSOperator JSLiteral \"=\",JSDecimal \"2\"],JSCallExpression \".\" [JSIdentifier \"x\"]])") -    , testCase "AssignExpression1" (testStmt "x=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"])")-    , testCase "AssignExpression1" (testStmt "x*=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \"*=\",JSDecimal \"1\"])")-    , testCase "AssignExpression1" (testStmt "x/=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \"/=\",JSDecimal \"1\"])")-    , testCase "AssignExpression1" (testStmt "x%=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \"%=\",JSDecimal \"1\"])")-    , testCase "AssignExpression1" (testStmt "x+=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \"+=\",JSDecimal \"1\"])")-    , testCase "AssignExpression1" (testStmt "x-=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \"-=\",JSDecimal \"1\"])")-    , testCase "AssignExpression1" (testStmt "x<<=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \"<<=\",JSDecimal \"1\"])")-    , testCase "AssignExpression1" (testStmt "x>>=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \">>=\",JSDecimal \"1\"])")-    , testCase "AssignExpression1" (testStmt "x>>>=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \">>>=\",JSDecimal \"1\"])")-    , testCase "AssignExpression1" (testStmt "x&=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \"&=\",JSDecimal \"1\"])")-    , testCase "AssignExpression1" (testStmt "x^=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \"^=\",JSDecimal \"1\"])")-    , testCase "AssignExpression1" (testStmt "x|=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator \"|=\",JSDecimal \"1\"])")+    , testCase "AssignExpression1"  (testStmt "x=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"])")+    , testCase "AssignExpression2"  (testStmt "x*=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"*=\",JSDecimal \"1\"])")+    , testCase "AssignExpression3"  (testStmt "x/=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"/=\",JSDecimal \"1\"])")+    , testCase "AssignExpression4"  (testStmt "x%=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"%=\",JSDecimal \"1\"])")+    , testCase "AssignExpression5"  (testStmt "x+=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"+=\",JSDecimal \"1\"])")+    , testCase "AssignExpression6"  (testStmt "x-=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"-=\",JSDecimal \"1\"])")+    , testCase "AssignExpression7"  (testStmt "x<<=1"  "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"<<=\",JSDecimal \"1\"])")+    , testCase "AssignExpression8"  (testStmt "x>>=1"  "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \">>=\",JSDecimal \"1\"])")+    , testCase "AssignExpression9"  (testStmt "x>>>=1" "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \">>>=\",JSDecimal \"1\"])")+    , testCase "AssignExpression10" (testStmt "x&=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"&=\",JSDecimal \"1\"])")+    , testCase "AssignExpression11" (testStmt "x^=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"^=\",JSDecimal \"1\"])")+    , testCase "AssignExpression12" (testStmt "x|=1"   "Right (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"|=\",JSDecimal \"1\"])")       , testCase "Block1" (testStmt "{}"     "Right (JSStatementBlock (JSStatementList []))")-    , testCase "Block2" (testStmt "{x=1}"  "Right (JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"]]))")-    , testCase "Block3" (testStmt "{x=1;y=2}"   "Right (JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"],JSLiteral \";\",JSExpression [JSIdentifier \"y\",JSOperator \"=\",JSDecimal \"2\"]]))")+    , testCase "Block2" (testStmt "{x=1}"  "Right (JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"]]))")+    , testCase "Block3" (testStmt "{x=1;y=2}" "Right (JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSExpression [JSIdentifier \"y\",JSOperator JSLiteral \"=\",JSDecimal \"2\"]]))")     , testCase "Block4" (testStmt "{{}}"     "Right (JSStatementBlock (JSStatementList [JSStatementBlock (JSStatementList [])]))")     , testCase "Block5" (testStmt "{{{}}}"   "Right (JSStatementBlock (JSStatementList [JSStatementBlock (JSStatementList [JSStatementBlock (JSStatementList [])])]))") -    , testCase "If1" (testStmt "if (1) {}"   "Right (JSIf (JSExpression [JSDecimal \"1\"]) (JSStatementBlock (JSStatementList [])))")+    , testCase "If1" (testStmt "if (1) {}"  "Right (JSIf (JSExpression [JSDecimal \"1\"]) (JSStatementBlock (JSStatementList [])) ([]))") -    , testCase "IfElse1" (testStmt "if (1) {} else {}"   "Right (JSIfElse (JSExpression [JSDecimal \"1\"]) (JSStatementBlock (JSStatementList [])) (JSStatementBlock (JSStatementList [])))")-    , testCase "IfElse2" (testStmt "if (1) x=1; else {}" "Right (JSIfElse (JSExpression [JSDecimal \"1\"]) (JSBlock (JSStatementList [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"]])) (JSStatementBlock (JSStatementList [])))")+    , testCase "IfElse1" (testStmt "if (1) {} else {}"   "Right (JSIf (JSExpression [JSDecimal \"1\"]) (JSBlock (JSStatementList [JSStatementBlock (JSStatementList [])])) ([JSLiteral \"else\",JSStatementBlock (JSStatementList [])]))")+    , testCase "IfElse2" (testStmt "if (1) x=1; else {}" "Right (JSIf (JSExpression [JSDecimal \"1\"]) (JSBlock (JSStatementList [JSBlock (JSStatementList [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\"])])) ([JSLiteral \"else\",JSStatementBlock (JSStatementList [])]))") -    , testCase "DoWhile1" (testStmt "do {x=1} while (true);"   "Right (JSDoWhile (JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"]])) (JSExpression [JSLiteral \"true\"]) (JSLiteral \";\"))")+    , testCase "DoWhile1" (testStmt "do {x=1} while (true);"   "Right (JSDoWhile (JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"]])) (JSExpression [JSLiteral \"true\"]) (JSLiteral \";\"))")     , testCase "While1"   (testStmt "while(true);"             "Right (JSWhile (JSExpression [JSLiteral \"true\"]) (JSLiteral \";\"))")      , testCase "For1"   (testStmt "for(;;);"             "Right (JSFor [] [] [] (JSLiteral \";\"))")-    , testCase "For2"   (testStmt "for(x=1;x<10;x++);"   "Right (JSFor [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"]] [JSExpression [JSExpressionBinary \"<\" [JSIdentifier \"x\"] [JSDecimal \"10\"]]] [JSExpression [JSExpressionPostfix \"++\" [JSIdentifier \"x\"]]] (JSLiteral \";\"))")+    , testCase "For2"   (testStmt "for(x=1;x<10;x++);"   "Right (JSFor [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"]] [JSExpression [JSExpressionBinary \"<\" [JSIdentifier \"x\"] [JSDecimal \"10\"]]] [JSExpression [JSExpressionPostfix \"++\" [JSIdentifier \"x\"]]] (JSLiteral \";\"))")      , testCase "ForVar1"   (testStmt "for(var x;;);"            "Right (JSForVar [JSVarDecl (JSIdentifier \"x\") []] [] [] (JSLiteral \";\"))")-    , testCase "ForVar2"   (testStmt "for(var x=1;;);"          "Right (JSForVar [JSVarDecl (JSIdentifier \"x\") [JSDecimal \"1\"]] [] [] (JSLiteral \";\"))")+    , testCase "ForVar2"   (testStmt "for(var x=1;;);"          "Right (JSForVar [JSVarDecl (JSIdentifier \"x\") [JSLiteral \"=\",JSDecimal \"1\"]] [] [] (JSLiteral \";\"))")     , testCase "ForVar2"   (testStmt "for(var x;y;z){}"         "Right (JSForVar [JSVarDecl (JSIdentifier \"x\") []] [JSExpression [JSIdentifier \"y\"]] [JSExpression [JSIdentifier \"z\"]] (JSStatementBlock (JSStatementList [])))")      , testCase "ForIn1"   (testStmt "for(x in 5){}"         "Right (JSForIn [JSIdentifier \"x\"] (JSExpression [JSDecimal \"5\"]) (JSStatementBlock (JSStatementList [])))")      , testCase "ForVarIn1" (testStmt "for(var x in 5){}"    "Right (JSForVarIn (JSVarDecl (JSIdentifier \"x\") []) (JSExpression [JSDecimal \"5\"]) (JSStatementBlock (JSStatementList [])))") -    , testCase "Var1" (testStmt "var x=1;"        "Right (JSVariables \"var\" [JSVarDecl (JSIdentifier \"x\") [JSDecimal \"1\"]])")-    , testCase "Var2" (testStmt "const x=1,y=2;"  "Right (JSVariables \"const\" [JSVarDecl (JSIdentifier \"x\") [JSDecimal \"1\"],JSVarDecl (JSIdentifier \"y\") [JSDecimal \"2\"]])")+    , testCase "Var1" (testStmt "var x=1;"        "Right (JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"x\") [JSLiteral \"=\",JSDecimal \"1\"]])")+    , testCase "Var2" (testStmt "const x=1,y=2;"  "Right (JSVariables JSLiteral \"const\" [JSVarDecl (JSIdentifier \"x\") [JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \",\",JSVarDecl (JSIdentifier \"y\") [JSLiteral \"=\",JSDecimal \"2\"]])") -    , testCase "Continue1" (testStmt "continue;"       "Right (JSContinue [JSLiteral \";\"])")-    , testCase "Continue2" (testStmt "continue x;"     "Right (JSContinue [JSIdentifier \"x\",JSLiteral \";\"])")+    , testCase "Continue1" (testStmt "continue;"       "Right (JSContinue [] JSLiteral \";\")")+    , testCase "Continue2" (testStmt "continue x;"     "Right (JSContinue [JSIdentifier \"x\"] JSLiteral \";\")") -    , testCase "Break1" (testStmt "break;"       "Right (JSBreak [] [JSLiteral \";\"])")-    , testCase "Break2" (testStmt "break x;"     "Right (JSBreak [JSIdentifier \"x\"] [JSLiteral \";\"])")+    , testCase "Break1" (testStmt "break;"       "Right (JSBreak [] JSLiteral \";\")")+    , testCase "Break2" (testStmt "break x;"     "Right (JSBreak [JSIdentifier \"x\"] JSLiteral \";\")") -    , testCase "Return1" (testStmt "return;"       "Right (JSReturn [JSLiteral \";\"])")-    , testCase "Return2" (testStmt "return x;"     "Right (JSReturn [JSExpression [JSIdentifier \"x\"],JSLiteral \";\"])")+    , testCase "Return1" (testStmt "return;"     "Right (JSReturn [] JSLiteral \";\")")+    , testCase "Return2" (testStmt "return x;"   "Right (JSReturn [JSExpression [JSIdentifier \"x\"]] JSLiteral \";\")") -    , testCase "With1" (testStmt "with (x) {};"    "Right (JSWith (JSExpression [JSIdentifier \"x\"]) [JSStatementBlock (JSStatementList []),JSLiteral \";\"])")+    , testCase "With1" (testStmt "with (x) {};"   "Right (JSWith (JSExpression [JSIdentifier \"x\"]) [JSStatementBlock (JSStatementList []),JSLiteral \";\"])") -    , testCase "Labelled1" (testStmt "abc:x=1"    "Right (JSLabelled (JSIdentifier \"abc\") (JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"]))")+    , testCase "Labelled1" (testStmt "abc:x=1"    "Right (JSLabelled (JSIdentifier \"abc\") (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"]))") -    , testCase "Switch1" (testStmt "switch (x) {}" "Right (JSSwitch (JSExpression [JSIdentifier \"x\"]) [])")-    , testCase "Switch2" (testStmt "switch (x) {case 1:break;}"          "Right (JSSwitch (JSExpression [JSIdentifier \"x\"]) [JSCase (JSExpression [JSDecimal \"1\"]) (JSStatementList [JSBreak [] [JSLiteral \";\"]])])")-    , testCase "Switch3" (testStmt "switch (x) {case 0:\ncase 1:break;}"  "Right (JSSwitch (JSExpression [JSIdentifier \"x\"]) [JSCase (JSExpression [JSDecimal \"0\"]) (JSStatementList []),JSCase (JSExpression [JSDecimal \"1\"]) (JSStatementList [JSBreak [] [JSLiteral \";\"]])])")-    , testCase "Switch4" (testStmt "switch (x) {default:break;}"          "Right (JSSwitch (JSExpression [JSIdentifier \"x\"]) [JSDefault (JSStatementList [JSBreak [] [JSLiteral \";\"]])])")-    , testCase "Switch5" (testStmt "switch (x) {default:\ncase 1:break;}"   "Right (JSSwitch (JSExpression [JSIdentifier \"x\"]) [JSDefault (JSStatementList []),JSCase (JSExpression [JSDecimal \"1\"]) (JSStatementList [JSBreak [] [JSLiteral \";\"]])])")+    , testCase "Switch1" (testStmt "switch (x) {}" "Right (JSSwitch (JSExpression [JSIdentifier \"x\"]) [JSLiteral \"{\",JSLiteral \"\",JSLiteral \"}\"])")+    , testCase "Switch2" (testStmt "switch (x) {case 1:break;}"  "Right (JSSwitch (JSExpression [JSIdentifier \"x\"]) [JSLiteral \"{\",JSCase (JSExpression [JSDecimal \"1\"]) (JSStatementList [JSBreak [] JSLiteral \";\"]),JSLiteral \"}\"])")+    , testCase "Switch3" (testStmt "switch (x) {case 0:\ncase 1:break;}"  "Right (JSSwitch (JSExpression [JSIdentifier \"x\"]) [JSLiteral \"{\",JSCase (JSExpression [JSDecimal \"0\"]) (JSStatementList []),JSCase (JSExpression [JSDecimal \"1\"]) (JSStatementList [JSBreak [] JSLiteral \";\"]),JSLiteral \"}\"])")+    , testCase "Switch4" (testStmt "switch (x) {default:break;}"         "Right (JSSwitch (JSExpression [JSIdentifier \"x\"]) [JSLiteral \"{\",JSLiteral \"\",JSDefault (JSStatementList [JSBreak [] JSLiteral \";\"]),JSLiteral \"\",JSLiteral \"}\"])")+    , testCase "Switch5" (testStmt "switch (x) {default:\ncase 1:break;}"  "Right (JSSwitch (JSExpression [JSIdentifier \"x\"]) [JSLiteral \"{\",JSLiteral \"\",JSDefault (JSStatementList []),JSCase (JSExpression [JSDecimal \"1\"]) (JSStatementList [JSBreak [] JSLiteral \";\"]),JSLiteral \"}\"])")      , testCase "Throw1" (testStmt "throw 1"   "Right (JSThrow (JSExpression [JSDecimal \"1\"]))") @@ -220,124 +220,521 @@      , testCase "Try4" (testStmt "try{}catch(a){}catch(b){}finally{}"   "Right (JSTry (JSBlock (JSStatementList [])) [JSCatch (JSIdentifier \"a\") [] (JSBlock (JSStatementList [])),JSCatch (JSIdentifier \"b\") [] (JSBlock (JSStatementList [])),JSFinally (JSBlock (JSStatementList []))])")     , testCase "Try5" (testStmt "try{}catch(a){}catch(b){}"            "Right (JSTry (JSBlock (JSStatementList [])) [JSCatch (JSIdentifier \"a\") [] (JSBlock (JSStatementList [])),JSCatch (JSIdentifier \"b\") [] (JSBlock (JSStatementList []))])")-    , testCase "Try6" (testStmt "try{}catch(a if true){}catch(b){}"     "Right (JSTry (JSBlock (JSStatementList [])) [JSCatch (JSIdentifier \"a\") [JSLiteral \"true\"] (JSBlock (JSStatementList [])),JSCatch (JSIdentifier \"b\") [] (JSBlock (JSStatementList []))])")+    , testCase "Try6" (testStmt "try{}catch(a if true){}catch(b){}"    "Right (JSTry (JSBlock (JSStatementList [])) [JSCatch (JSIdentifier \"a\") [JSLiteral \"if\",JSLiteral \"true\"] (JSBlock (JSStatementList [])),JSCatch (JSIdentifier \"b\") [] (JSBlock (JSStatementList []))])") -    , testCase "Function1" (testProg "function a(){}"      "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"a\") [] (JSFunctionBody [])])")-    , testCase "Function2" (testProg "function a(b,c){}"   "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"a\") [JSIdentifier \"b\",JSIdentifier \"c\"] (JSFunctionBody [])])")+    , testCase "Function1" (testProg "function a(){}"      "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"a\") [] (JSFunctionBody []),JSLiteral \"\"])")+    , testCase "Function2" (testProg "function a(b,c){}"  "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"a\") [JSIdentifier \"b\",JSLiteral \",\",JSIdentifier \"c\"] (JSFunctionBody []),JSLiteral \"\"])") -    , testCase "Comment1" (testProg "//blah\nx=1;//foo\na"   "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"],JSLiteral \";\",JSExpression [JSIdentifier \"a\"]])")+    , testCase "Comment1" (testProg "//blah\nx=1;//foo\na"   "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSExpression [JSIdentifier \"a\"],JSLiteral \"\"])") -    , testCase "Comment2" (testProg "/*x=1\ny=2\n*/z=2;//foo\na"   "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"z\",JSOperator \"=\",JSDecimal \"2\"],JSLiteral \";\",JSExpression [JSIdentifier \"a\"]])")+    , testCase "Comment2" (testProg "/*x=1\ny=2\n*/z=2;//foo\na"  "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"z\",JSOperator JSLiteral \"=\",JSDecimal \"2\"],JSLiteral \";\",JSExpression [JSIdentifier \"a\"],JSLiteral \"\"])") -    , testCase "min_100_animals1" (testProg "function Animal(name){if(!name)throw new Error('Must specify an animal name');this.name=name};Animal.prototype.toString=function(){return this.name};o=new Animal(\"bob\");o.toString()==\"bob\"" "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"Animal\") [JSIdentifier \"name\"] (JSFunctionBody [JSSourceElements [JSIf (JSExpression [JSUnary \"!\",JSIdentifier \"name\"]) (JSBlock (JSStatementList [JSThrow (JSExpression [JSLiteral \"new \",JSIdentifier \"Error\",JSArguments [[JSStringLiteral '\\'' \"Must specify an animal name\"]]])])),JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"name\"),JSOperator \"=\",JSIdentifier \"name\"]]]),JSLiteral \";\",JSExpression [JSMemberDot [JSMemberDot [JSIdentifier \"Animal\"] (JSIdentifier \"prototype\")] (JSIdentifier \"toString\"),JSOperator \"=\",JSFunctionExpression [] [] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"name\")],JSLiteral \"\"]]])],JSLiteral \";\",JSExpression [JSIdentifier \"o\",JSOperator \"=\",JSLiteral \"new \",JSIdentifier \"Animal\",JSArguments [[JSStringLiteral '\"' \"bob\"]]],JSLiteral \";\",JSExpression [JSExpressionBinary \"==\" [JSMemberDot [JSIdentifier \"o\"] (JSIdentifier \"toString\"),JSArguments []] [JSStringLiteral '\"' \"bob\"]]])")+    , testCase "min_100_animals1" (testProg "function Animal(name){if(!name)throw new Error('Must specify an animal name');this.name=name};Animal.prototype.toString=function(){return this.name};o=new Animal(\"bob\");o.toString()==\"bob\""+                                   "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"Animal\") [JSIdentifier \"name\"] (JSFunctionBody [JSSourceElements [JSIf (JSExpression [JSUnary \"!\",JSIdentifier \"name\"]) (JSBlock (JSStatementList [JSThrow (JSExpression [JSLiteral \"new\",JSIdentifier \"Error\",JSArguments [JSStringLiteral '\\'' \"Must specify an animal name\"]]),JSLiteral \";\"])) ([]),JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"name\"),JSOperator JSLiteral \"=\",JSIdentifier \"name\"]]]),JSLiteral \";\",JSExpression [JSMemberDot [JSMemberDot [JSIdentifier \"Animal\"] (JSIdentifier \"prototype\")] (JSIdentifier \"toString\"),JSOperator JSLiteral \"=\",JSFunctionExpression [] [] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"name\")]] JSLiteral \"\"]])],JSLiteral \";\",JSExpression [JSIdentifier \"o\",JSOperator JSLiteral \"=\",JSLiteral \"new\",JSIdentifier \"Animal\",JSArguments [JSStringLiteral '\"' \"bob\"]],JSLiteral \";\",JSExpression [JSExpressionBinary \"==\" [JSMemberDot [JSIdentifier \"o\"] (JSIdentifier \"toString\"),JSArguments []] [JSStringLiteral '\"' \"bob\"]],JSLiteral \"\"])") -    , testCase "min_100_animals2" (testProg "Animal=function(){return this.name};" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"Animal\",JSOperator \"=\",JSFunctionExpression [] [] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"name\")],JSLiteral \"\"]]])],JSLiteral \";\"])")+    , testCase "min_100_animals2" (testProg "Animal=function(){return this.name};" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"Animal\",JSOperator JSLiteral \"=\",JSFunctionExpression [] [] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSMemberDot [JSLiteral \"this\"] (JSIdentifier \"name\")]] JSLiteral \"\"]])],JSLiteral \";\",JSLiteral \"\"])") -    , testCase "min_100_animals3" (testProg "if(a)x=1;y=2" "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"a\"]) (JSBlock (JSStatementList [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"]])),JSExpression [JSIdentifier \"y\",JSOperator \"=\",JSDecimal \"2\"]])")+    , testCase "min_100_animals3" (testProg "if(a)x=1;y=2" "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"a\"]) (JSBlock (JSStatementList [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\"])) ([]),JSExpression [JSIdentifier \"y\",JSOperator JSLiteral \"=\",JSDecimal \"2\"],JSLiteral \"\"])") -    , testCase "min_100_animals4" (testProg "if(a)x=a()y=2" "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"a\"]) (JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSIdentifier \"a\",JSArguments []]),JSExpression [JSIdentifier \"y\",JSOperator \"=\",JSDecimal \"2\"]])")+    , testCase "min_100_animals4" (testProg "if(a)x=a()y=2" "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"a\"]) (JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSIdentifier \"a\",JSArguments []]) ([]),JSExpression [JSIdentifier \"y\",JSOperator JSLiteral \"=\",JSDecimal \"2\"],JSLiteral \"\"])") -    , testCase "05_regex"  (testProg "newlines=spaces.match(/\\n/g)" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"newlines\",JSOperator \"=\",JSMemberDot [JSIdentifier \"spaces\"] (JSIdentifier \"match\"),JSArguments [[JSRegEx \"/\\\\n/g\"]]]])")+    , testCase "05_regex"  (testProg "newlines=spaces.match(/\\n/g)" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"newlines\",JSOperator JSLiteral \"=\",JSMemberDot [JSIdentifier \"spaces\"] (JSIdentifier \"match\"),JSArguments [JSRegEx \"/\\\\n/g\"]],JSLiteral \"\"])") -    , testCase "05_regex2" (testProg "x=/\\n/g" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSRegEx \"/\\\\n/g\"]])")+    , testCase "05_regex2" (testProg "x=/\\n/g" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSRegEx \"/\\\\n/g\"],JSLiteral \"\"])") -    , testCase "05_regex3" (testProg "x=i(/[?|^&(){}\\[\\]+\\-*\\/\\.]/g,\"\\\\$&\")" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSIdentifier \"i\",JSArguments [[JSRegEx \"/[?|^&(){}\\\\[\\\\]+\\\\-*\\\\/\\\\.]/g\"],[JSStringLiteral '\"' \"\\\\\\\\$&\"]]]])")+    , testCase "05_regex3" (testProg "x=i(/[?|^&(){}\\[\\]+\\-*\\/\\.]/g,\"\\\\$&\")" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSIdentifier \"i\",JSArguments [JSRegEx \"/[?|^&(){}\\\\[\\\\]+\\\\-*\\\\/\\\\.]/g\",JSLiteral \",\",JSStringLiteral '\"' \"\\\\\\\\$&\"]],JSLiteral \"\"])") -    , testCase "05_regex4" (testProg "x=i(/^$/g,\"\\\\$&\")" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSIdentifier \"i\",JSArguments [[JSRegEx \"/^$/g\"],[JSStringLiteral '\"' \"\\\\\\\\$&\"]]]])")+    , testCase "05_regex4" (testProg "x=i(/^$/g,\"\\\\$&\")" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSIdentifier \"i\",JSArguments [JSRegEx \"/^$/g\",JSLiteral \",\",JSStringLiteral '\"' \"\\\\\\\\$&\"]],JSLiteral \"\"])") -   , testCase "05_regex5" (testProg "if(/^[a-z]/.test(t)){consts+=t.toUpperCase();keywords[t]=i}else consts+=(/^\\W/.test(t)?opTypeNames[t]:t);" "Right (JSSourceElementsTop [JSIfElse (JSExpression [JSMemberDot [JSRegEx \"/^[a-z]/\"] (JSIdentifier \"test\"),JSArguments [[JSIdentifier \"t\"]]]) (JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"consts\",JSOperator \"+=\",JSMemberDot [JSIdentifier \"t\"] (JSIdentifier \"toUpperCase\"),JSArguments []],JSLiteral \";\",JSExpression [JSMemberSquare [JSIdentifier \"keywords\"] (JSExpression [JSIdentifier \"t\"]),JSOperator \"=\",JSIdentifier \"i\"]])) (JSExpression [JSIdentifier \"consts\",JSOperator \"+=\",JSExpressionParen (JSExpression [JSExpressionTernary [JSMemberDot [JSRegEx \"/^\\\\W/\"] (JSIdentifier \"test\"),JSArguments [[JSIdentifier \"t\"]]] [JSMemberSquare [JSIdentifier \"opTypeNames\"] (JSExpression [JSIdentifier \"t\"])] [JSIdentifier \"t\"]])]),JSLiteral \";\"])")+   , testCase "05_regex5" (testProg "if(/^[a-z]/.test(t)){consts+=t.toUpperCase();keywords[t]=i}else consts+=(/^\\W/.test(t)?opTypeNames[t]:t);"+                           "Right (JSSourceElementsTop [JSIf (JSExpression [JSMemberDot [JSRegEx \"/^[a-z]/\"] (JSIdentifier \"test\"),JSArguments [JSIdentifier \"t\"]]) (JSBlock (JSStatementList [JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"consts\",JSOperator JSLiteral \"+=\",JSMemberDot [JSIdentifier \"t\"] (JSIdentifier \"toUpperCase\"),JSArguments []],JSLiteral \";\",JSExpression [JSMemberSquare [JSIdentifier \"keywords\"] (JSExpression [JSIdentifier \"t\"]),JSOperator JSLiteral \"=\",JSIdentifier \"i\"]])])) ([JSLiteral \"else\",JSExpression [JSIdentifier \"consts\",JSOperator JSLiteral \"+=\",JSExpressionParen (JSExpression [JSExpressionTernary [JSMemberDot [JSRegEx \"/^\\\\W/\"] (JSIdentifier \"test\"),JSArguments [JSIdentifier \"t\"]] [JSMemberSquare [JSIdentifier \"opTypeNames\"] (JSExpression [JSIdentifier \"t\"])] [JSIdentifier \"t\"]])]]),JSLiteral \";\",JSLiteral \"\"])") -   , testCase "if_semi" (testProg "if(x);x=1" "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"x\"]) (JSLiteral \";\"),JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"]])")+   , testCase "if_semi" (testProg "if(x);x=1" "Right (JSSourceElementsTop [JSIf (JSExpression [JSIdentifier \"x\"]) (JSLiteral \";\") ([]),JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \"\"])") -   , testCase "67_bob" (testProg "(match = /^\"(?:\\\\.|[^\"])*\"|^'(?:[^']|\\\\.)*'/(input))" "Right (JSSourceElementsTop [JSExpression [JSExpressionParen (JSExpression [JSIdentifier \"match\",JSOperator \"=\",JSRegEx \"/^\\\"(?:\\\\\\\\.|[^\\\"])*\\\"|^'(?:[^']|\\\\\\\\.)*'/\",JSArguments [[JSIdentifier \"input\"]]])]])")+   , testCase "67_bob" (testProg "(match = /^\"(?:\\\\.|[^\"])*\"|^'(?:[^']|\\\\.)*'/(input))" "Right (JSSourceElementsTop [JSExpression [JSExpressionParen (JSExpression [JSIdentifier \"match\",JSOperator JSLiteral \"=\",JSRegEx \"/^\\\"(?:\\\\\\\\.|[^\\\"])*\\\"|^'(?:[^']|\\\\\\\\.)*'/\",JSArguments [JSIdentifier \"input\"]])],JSLiteral \"\"])") -   , testCase "122_jsexec" (testProg "v = getValue(execute(n[0], x)) in getValue(execute(n[1], x));" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"v\",JSOperator \"=\",JSExpressionBinary \" in \" [JSIdentifier \"getValue\",JSArguments [[JSIdentifier \"execute\",JSArguments [[JSMemberSquare [JSIdentifier \"n\"] (JSExpression [JSDecimal \"0\"])],[JSIdentifier \"x\"]]]]] [JSIdentifier \"getValue\",JSArguments [[JSIdentifier \"execute\",JSArguments [[JSMemberSquare [JSIdentifier \"n\"] (JSExpression [JSDecimal \"1\"])],[JSIdentifier \"x\"]]]]]],JSLiteral \";\"])")+   , testCase "122_jsexec" (testProg "v = getValue(execute(n[0], x)) in getValue(execute(n[1], x));" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"v\",JSOperator JSLiteral \"=\",JSExpressionBinary \" in \" [JSIdentifier \"getValue\",JSArguments [JSIdentifier \"execute\",JSArguments [JSMemberSquare [JSIdentifier \"n\"] (JSExpression [JSDecimal \"0\"]),JSLiteral \",\",JSIdentifier \"x\"]]] [JSIdentifier \"getValue\",JSArguments [JSIdentifier \"execute\",JSArguments [JSMemberSquare [JSIdentifier \"n\"] (JSExpression [JSDecimal \"1\"]),JSLiteral \",\",JSIdentifier \"x\"]]]],JSLiteral \";\",JSLiteral \"\"])") -   , testCase "bug1" (testProg "/* */\nfunction f() {\n/*  */\n}\n" "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"f\") [] (JSFunctionBody [])])")-   , testCase "bug1" (testProg "/* **/\nfunction f() {\n/*  */\n}\n" "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"f\") [] (JSFunctionBody [])])")+   , testCase "bug1a" (testProg "/* */\nfunction f() {\n/*  */\n}\n" "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"f\") [] (JSFunctionBody []),JSLiteral \"\"])")+   , testCase "bug1b" (testProg "/* **/\nfunction f() {\n/*  */\n}\n" "Right (JSSourceElementsTop [JSFunction (JSIdentifier \"f\") [] (JSFunctionBody []),JSLiteral \"\"])") -   , testCase "unicode1-ws" (testProg "a \f\v\t\r\n=\x00a0\x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2009\x200a\x2028\x2029\x202f\x205f\x3000\&1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"a\",JSOperator \"=\",JSDecimal \"1\"],JSLiteral \";\"])")+   , testCase "unicode1-ws" (testProg "a \f\v\t\r\n=\x00a0\x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2009\x200a\x2028\x2029\x202f\x205f\x3000\&1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"a\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSLiteral \"\"])") -   , testCase "unicode2-lt" (testProg "//comment\x000Ax=1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"],JSLiteral \";\"])")-   , testCase "unicode3-lt" (testProg "//comment\x000Dx=1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"],JSLiteral \";\"])")-   , testCase "unicode4-lt" (testProg "//comment\x2028x=1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"],JSLiteral \";\"])")-   , testCase "unicode5-lt" (testProg "//comment\x2029x=1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"],JSLiteral \";\"])")+   , testCase "unicode2-lt" (testProg "//comment\x000Ax=1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSLiteral \"\"])")+   , testCase "unicode3-lt" (testProg "//comment\x000Dx=1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSLiteral \"\"])")+   , testCase "unicode4-lt" (testProg "//comment\x2028x=1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSLiteral \"\"])")+   , testCase "unicode5-lt" (testProg "//comment\x2029x=1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSLiteral \"\"])") -   , testCase "unicode2" (testProg "àáâãäå = 1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"\\224\\225\\226\\227\\228\\229\",JSOperator \"=\",JSDecimal \"1\"],JSLiteral \";\"])")+   , testCase "unicode2" (testProg "àáâãäå = 1;" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"\\224\\225\\226\\227\\228\\229\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSLiteral \"\"])") -   , testCase "unicode3" (testProg "$aà = 1;_b=2;\0065a=2"  "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"$a\\224\",JSOperator \"=\",JSDecimal \"1\"],JSLiteral \";\",JSExpression [JSIdentifier \"_b\",JSOperator \"=\",JSDecimal \"2\"],JSLiteral \";\",JSExpression [JSIdentifier \"Aa\",JSOperator \"=\",JSDecimal \"2\"]])")+   , testCase "unicode3" (testProg "$aà = 1;_b=2;\0065a=2"  "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"$a\\224\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSExpression [JSIdentifier \"_b\",JSOperator JSLiteral \"=\",JSDecimal \"2\"],JSLiteral \";\",JSExpression [JSIdentifier \"Aa\",JSOperator JSLiteral \"=\",JSDecimal \"2\"],JSLiteral \"\"])") -   , testCase "unicode4" (testProg "x=\"àáâãäå\";y='\3012a\0068'" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSStringLiteral '\"' \"\\224\\225\\226\\227\\228\\229\"],JSLiteral \";\",JSExpression [JSIdentifier \"y\",JSOperator \"=\",JSStringLiteral '\\'' \"\\3012aD\"]])")+   , testCase "unicode4" (testProg "x=\"àáâãäå\";y='\3012a\0068'" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSStringLiteral '\"' \"\\224\\225\\226\\227\\228\\229\"],JSLiteral \";\",JSExpression [JSIdentifier \"y\",JSOperator JSLiteral \"=\",JSStringLiteral '\\'' \"\\3012aD\"],JSLiteral \"\"])") -   , testCase "unicode5" (testFile "./test/Unicode.js" "JSSourceElementsTop [JSExpression [JSIdentifier \"\\224\\225\\226\\227\\228\\229\",JSOperator \"=\",JSDecimal \"1\"],JSLiteral \";\"]")+   , testCase "unicode5" (testFile "./test/Unicode.js" "JSSourceElementsTop [JSExpression [JSIdentifier \"\\224\\225\\226\\227\\228\\229\",JSOperator JSLiteral \"=\",JSDecimal \"1\"],JSLiteral \";\",JSLiteral \"\"]") -   , testCase "bug2.a" (testProg "function() {\nz = function /*z*/(o) {\nreturn r;\n};}" "Right (JSSourceElementsTop [JSExpression [JSFunctionExpression [] [] (JSFunctionBody [JSSourceElements [JSExpression [JSIdentifier \"z\",JSOperator \"=\",JSFunctionExpression [] [JSIdentifier \"o\"] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSIdentifier \"r\"],JSLiteral \";\"]]])],JSLiteral \";\"]])]])")+   , testCase "bug2.a" (testProg "function() {\nz = function /*z*/(o) {\nreturn r;\n};}" "Right (JSSourceElementsTop [JSExpression [JSFunctionExpression [] [] (JSFunctionBody [JSSourceElements [JSExpression [JSIdentifier \"z\",JSOperator JSLiteral \"=\",JSFunctionExpression [] [JSIdentifier \"o\"] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSIdentifier \"r\"]] JSLiteral \";\"]])],JSLiteral \";\"]])],JSLiteral \"\"])") -   , testCase "bug2.b" (testProg "function() {\nz = function z(o) {\nreturn r;\n};}" "Right (JSSourceElementsTop [JSExpression [JSFunctionExpression [] [] (JSFunctionBody [JSSourceElements [JSExpression [JSIdentifier \"z\",JSOperator \"=\",JSFunctionExpression [JSIdentifier \"z\"] [JSIdentifier \"o\"] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSIdentifier \"r\"],JSLiteral \";\"]]])],JSLiteral \";\"]])]])")+   , testCase "bug2.b" (testProg "function() {\nz = function z(o) {\nreturn r;\n};}" "Right (JSSourceElementsTop [JSExpression [JSFunctionExpression [] [] (JSFunctionBody [JSSourceElements [JSExpression [JSIdentifier \"z\",JSOperator JSLiteral \"=\",JSFunctionExpression [JSIdentifier \"z\"] [JSIdentifier \"o\"] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSIdentifier \"r\"]] JSLiteral \";\"]])],JSLiteral \";\"]])],JSLiteral \"\"])")     -- https://github.com/alanz/hjsmin/issues/#issue/3-   , testCase "bug3" (testProg "var myLatlng = new google.maps.LatLng(56.8379100, 60.5806664);" "Right (JSSourceElementsTop [JSVariables \"var\" [JSVarDecl (JSIdentifier \"myLatlng\") [JSLiteral \"new \",JSMemberDot [JSMemberDot [JSIdentifier \"google\"] (JSIdentifier \"maps\")] (JSIdentifier \"LatLng\"),JSArguments [[JSDecimal \"56.8379100\"],[JSDecimal \"60.5806664\"]]]]])")+   , testCase "bug3" (testProg "var myLatlng = new google.maps.LatLng(56.8379100, 60.5806664);" "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"myLatlng\") [JSLiteral \"=\",JSLiteral \"new\",JSMemberDot [JSMemberDot [JSIdentifier \"google\"] (JSIdentifier \"maps\")] (JSIdentifier \"LatLng\"),JSArguments [JSDecimal \"56.8379100\",JSLiteral \",\",JSDecimal \"60.5806664\"]]],JSLiteral \"\"])")     -- https://github.com/alanz/hjsmin/issues/#issue/4-   , testCase "bug4" (testProg "/* * geolocation. пытаемся определить свое местоположение * если не получается то используем defaultLocation * @Param {object} map экземпляр карты * @Param {object LatLng} defaultLocation Координаты центра по умолчанию * @Param {function} callbackAfterLocation Фу-ия которая вызывается после * геолокации. Т.к запрос геолокации асинхронен */x" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\"]])")+   , testCase "bug4" (testProg "/* * geolocation. пытаемся определить свое местоположение * если не получается то используем defaultLocation * @Param {object} map экземпляр карты * @Param {object LatLng} defaultLocation Координаты центра по умолчанию * @Param {function} callbackAfterLocation Фу-ия которая вызывается после * геолокации. Т.к запрос геолокации асинхронен */x" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\"],JSLiteral \"\"])")   -   , testCase "02_sm.js"   (testProg "{zero}\none1;two\n{three\nfour;five;\n{\nsix;{seven;}\n}\n}" "Right (JSSourceElementsTop [JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"zero\"]]),JSExpression [JSIdentifier \"one1\"],JSLiteral \";\",JSExpression [JSIdentifier \"two\"],JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"three\"],JSExpression [JSIdentifier \"four\"],JSLiteral \";\",JSExpression [JSIdentifier \"five\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"six\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"seven\"],JSLiteral \";\"])])])])")+   , testCase "02_sm.js"   (testProg "{zero}\none1;two\n{three\nfour;five;\n{\nsix;{seven;}\n}\n}" "Right (JSSourceElementsTop [JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"zero\"]]),JSExpression [JSIdentifier \"one1\"],JSLiteral \";\",JSExpression [JSIdentifier \"two\"],JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"three\"],JSExpression [JSIdentifier \"four\"],JSLiteral \";\",JSExpression [JSIdentifier \"five\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"six\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"seven\"],JSLiteral \";\"])])]),JSLiteral \"\"])") -   , testCase "02_sm.js.2" (testProg "{zero}\nget;two\n{three\nfour;set;\n{\nsix;{seven;}\n}\n}" "Right (JSSourceElementsTop [JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"zero\"]]),JSExpression [JSIdentifier \"get\"],JSLiteral \";\",JSExpression [JSIdentifier \"two\"],JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"three\"],JSExpression [JSIdentifier \"four\"],JSLiteral \";\",JSExpression [JSIdentifier \"set\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"six\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"seven\"],JSLiteral \";\"])])])])")+   , testCase "02_sm.js.2" (testProg "{zero}\nget;two\n{three\nfour;set;\n{\nsix;{seven;}\n}\n}" "Right (JSSourceElementsTop [JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"zero\"]]),JSExpression [JSIdentifier \"get\"],JSLiteral \";\",JSExpression [JSIdentifier \"two\"],JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"three\"],JSExpression [JSIdentifier \"four\"],JSLiteral \";\",JSExpression [JSIdentifier \"set\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"six\"],JSLiteral \";\",JSStatementBlock (JSStatementList [JSExpression [JSIdentifier \"seven\"],JSLiteral \";\"])])]),JSLiteral \"\"])") -   , testCase "loc1" (testProgUn "x = 1\n  y=2;" "Right (NS (JSSourceElementsTop [NS (JSExpression [NS (JSIdentifier \"x\") (SpanPoint {span_filename = \"\", span_row = 1, span_column = 1}),NS (JSOperator \"=\") (SpanPoint {span_filename = \"\", span_row = 1, span_column = 3}),NS (JSDecimal \"1\") (SpanPoint {span_filename = \"\", span_row = 1, span_column = 5})]) (SpanPoint {span_filename = \"\", span_row = 1, span_column = 1}),NS (JSExpression [NS (JSIdentifier \"y\") (SpanPoint {span_filename = \"\", span_row = 2, span_column = 3}),NS (JSOperator \"=\") (SpanPoint {span_filename = \"\", span_row = 2, span_column = 4}),NS (JSDecimal \"2\") (SpanPoint {span_filename = \"\", span_row = 2, span_column = 5})]) (SpanPoint {span_filename = \"\", span_row = 2, span_column = 3}),NS (JSLiteral \";\") (SpanPoint {span_filename = \"\", span_row = 2, span_column = 6})]) (SpanPoint {span_filename = \"\", span_row = 1, span_column = 1}))")+   , testCase "loc1" (testProgUn "x = 1\n  y=2;" "Right (NN (JSSourceElementsTop [NN (JSExpression [NT (JSIdentifier \"x\") (TokenPn 0 1 1) [NoComment],NN (JSOperator (NT (JSLiteral \"=\") (TokenPn 2 1 3) [WhiteSpace (TokenPn 1 1 2) \" \"])),NT (JSDecimal \"1\") (TokenPn 4 1 5) [WhiteSpace (TokenPn 3 1 4) \" \"]]),NN (JSExpression [NT (JSIdentifier \"y\") (TokenPn 8 2 3) [WhiteSpace (TokenPn 5 1 6) \"\\n  \"],NN (JSOperator (NT (JSLiteral \"=\") (TokenPn 9 2 4) [NoComment])),NT (JSDecimal \"2\") (TokenPn 10 2 5) [NoComment]]),NT (JSLiteral \";\") (TokenPn 11 2 6) [NoComment],NT (JSLiteral \"\") (TokenPn 0 0 0) [NoComment]]))")     -- https://github.com/alanz/language-javascript/issues/2-   , testCase "issue2" (testProg "var img = document.createElement('img');\nimg.src = \"mylogo.jpg\";\n$(img).click(function() {\n   alert('clicked!');\n});" "Right (JSSourceElementsTop [JSVariables \"var\" [JSVarDecl (JSIdentifier \"img\") [JSMemberDot [JSIdentifier \"document\"] (JSIdentifier \"createElement\"),JSArguments [[JSStringLiteral '\\'' \"img\"]]]],JSExpression [JSMemberDot [JSIdentifier \"img\"] (JSIdentifier \"src\"),JSOperator \"=\",JSStringLiteral '\"' \"mylogo.jpg\"],JSLiteral \";\",JSExpression [JSIdentifier \"$\",JSArguments [[JSIdentifier \"img\"]],JSCallExpression \".\" [JSIdentifier \"click\"],JSCallExpression \"()\" [JSArguments [[JSFunctionExpression [] [] (JSFunctionBody [JSSourceElements [JSExpression [JSIdentifier \"alert\",JSArguments [[JSStringLiteral '\\'' \"clicked!\"]]],JSLiteral \";\"]])]]]],JSLiteral \";\"])")+   , testCase "issue2" (testProg "var img = document.createElement('img');\nimg.src = \"mylogo.jpg\";\n$(img).click(function() {\n   alert('clicked!');\n});" "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"img\") [JSLiteral \"=\",JSMemberDot [JSIdentifier \"document\"] (JSIdentifier \"createElement\"),JSArguments [JSStringLiteral '\\'' \"img\"]]],JSExpression [JSMemberDot [JSIdentifier \"img\"] (JSIdentifier \"src\"),JSOperator JSLiteral \"=\",JSStringLiteral '\"' \"mylogo.jpg\"],JSLiteral \";\",JSExpression [JSIdentifier \"$\",JSArguments [JSIdentifier \"img\"],JSCallExpression \".\" [JSIdentifier \"click\"],JSCallExpression \"()\" [JSArguments [JSFunctionExpression [] [] (JSFunctionBody [JSSourceElements [JSExpression [JSIdentifier \"alert\",JSArguments [JSStringLiteral '\\'' \"clicked!\"]],JSLiteral \";\"]])]]],JSLiteral \";\",JSLiteral \"\"])")      -- Working in ECMASCRIPT 5.1 changes-   , testCase "lineTerminatorInString1" (testProg "x='abc\\\ndef';"    "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSStringLiteral '\\'' \"abcdef\"],JSLiteral \";\"])")-   , testCase "lineTerminatorInString2" (testProg "x=\"abc\\\ndef\";" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSStringLiteral '\"' \"abcdef\"],JSLiteral \";\"])")-   , testCase "lineTerminatorInString3" (testProg "x=\"abc\\\rdef\";" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSStringLiteral '\"' \"abcdef\"],JSLiteral \";\"])")-   , testCase "lineTerminatorInString4" (testProg "x=\"abc\\\x2028 def\";" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSStringLiteral '\"' \"abc def\"],JSLiteral \";\"])")-   , testCase "lineTerminatorInString5" (testProg "x=\"abc\\\x2029 def\";" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSStringLiteral '\"' \"abc def\"],JSLiteral \";\"])")-   , testCase "lineTerminatorInString6" (testProg "x=\"abc\\\r\ndef\";" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSStringLiteral '\"' \"abcdef\"],JSLiteral \";\"])")+   , testCase "lineTerminatorInString1" (testProg "x='abc\\\ndef';"   "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSStringLiteral '\\'' \"abc\\\\\\ndef\"],JSLiteral \";\",JSLiteral \"\"])")+   , testCase "lineTerminatorInString2" (testProg "x=\"abc\\\ndef\";" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSStringLiteral '\"' \"abc\\\\\\ndef\"],JSLiteral \";\",JSLiteral \"\"])")+   , testCase "lineTerminatorInString3" (testProg "x=\"abc\\\rdef\";" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSStringLiteral '\"' \"abc\\\\\\rdef\"],JSLiteral \";\",JSLiteral \"\"])")+   , testCase "lineTerminatorInString4" (testProg "x=\"abc\\\x2028 def\";" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSStringLiteral '\"' \"abc\\\\\\8232 def\"],JSLiteral \";\",JSLiteral \"\"])")+   , testCase "lineTerminatorInString5" (testProg "x=\"abc\\\x2029 def\";" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSStringLiteral '\"' \"abc\\\\\\8233 def\"],JSLiteral \";\",JSLiteral \"\"])")+   , testCase "lineTerminatorInString6" (testProg "x=\"abc\\\r\ndef\";" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSStringLiteral '\"' \"abc\\\\\\r\\ndef\"],JSLiteral \";\",JSLiteral \"\"])")        -- https://github.com/alanz/language-javascript/issues/4-   , testCase "issue4ok"   (testProg "var k = {\ny: somename\n}" "Right (JSSourceElementsTop [JSVariables \"var\" [JSVarDecl (JSIdentifier \"k\") [JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"y\") [JSIdentifier \"somename\"]]]]])")-   , testCase "issue4bug1" (testProg "var k = {\ny: code\n}" "Right (JSSourceElementsTop [JSVariables \"var\" [JSVarDecl (JSIdentifier \"k\") [JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"y\") [JSIdentifier \"code\"]]]]])")-   , testCase "issue4bug2" (testProg "var k = {\ny: mode\n}" "Right (JSSourceElementsTop [JSVariables \"var\" [JSVarDecl (JSIdentifier \"k\") [JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"y\") [JSIdentifier \"mode\"]]]]])")+   , testCase "issue4ok"   (testProg "var k = {\ny: somename\n}" "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"k\") [JSLiteral \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"y\") [JSIdentifier \"somename\"]]]],JSLiteral \"\"])")+   , testCase "issue4bug1" (testProg "var k = {\ny: code\n}" "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"k\") [JSLiteral \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"y\") [JSIdentifier \"code\"]]]],JSLiteral \"\"])")+   , testCase "issue4bug2" (testProg "var k = {\ny: mode\n}" "Right (JSSourceElementsTop [JSVariables JSLiteral \"var\" [JSVarDecl (JSIdentifier \"k\") [JSLiteral \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"y\") [JSIdentifier \"mode\"]]]],JSLiteral \"\"])")       -- https://github.com/alanz/language-javascript/issues/5-   , testCase "issue5bug1" (testProg "x = { y: 1e8 }" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"y\") [JSDecimal \"1e8\"]]]])")-   , testCase "issue5ok2" (testProg "{ y: 1e8 }" "Right (JSSourceElementsTop [JSStatementBlock (JSStatementList [JSLabelled (JSIdentifier \"y\") (JSExpression [JSDecimal \"1e8\"])])])")-   , testCase "issue5ok3" (testProg "{ y: 18 }" "Right (JSSourceElementsTop [JSStatementBlock (JSStatementList [JSLabelled (JSIdentifier \"y\") (JSExpression [JSDecimal \"18\"])])])")-   , testCase "issue5ok4" (testProg "x = { y: 18 }" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"y\") [JSDecimal \"18\"]]]])")+   , testCase "issue5bug1" (testProg "x = { y: 1e8 }" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"y\") [JSDecimal \"1e8\"]]],JSLiteral \"\"])")+   , testCase "issue5ok2" (testProg "{ y: 1e8 }" "Right (JSSourceElementsTop [JSStatementBlock (JSStatementList [JSLabelled (JSIdentifier \"y\") (JSExpression [JSDecimal \"1e8\"])]),JSLiteral \"\"])")+   , testCase "issue5ok3" (testProg "{ y: 18 }" "Right (JSSourceElementsTop [JSStatementBlock (JSStatementList [JSLabelled (JSIdentifier \"y\") (JSExpression [JSDecimal \"18\"])]),JSLiteral \"\"])")+   , testCase "issue5ok4" (testProg "x = { y: 18 }" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator JSLiteral \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"y\") [JSDecimal \"18\"]]],JSLiteral \"\"])")       ]  srcHelloWorld = "Hello" caseHelloWorld =-  "JSSourceElementsTop [JSExpression [JSIdentifier \"Hello\"]]"+  "JSSourceElementsTop [JSExpression [JSIdentifier \"Hello\"],JSLiteral \"\"]"   -- @=? (show $ parse srcHelloWorld "src")   @=? (showStripped $ readJs srcHelloWorld)   -- ---------------------------------------------------------------------++commentSuite :: Test+commentSuite = testGroup "Comments"+    [+      testCase "helloWorld"        caseHelloWorld+    , testCase "LiteralNull"       (testLiteralC "/*a*/null"     "Right (NS (JSLiteral \"null\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"])")+    , testCase "LiteralFalse"      (testLiteralC "/*b*/false"    "Right (NS (JSLiteral \"false\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*b*/\"])")+    , testCase "LiteralTrue"       (testLiteralC "true"          "Right (NS (JSLiteral \"true\") (TokenPn 0 1 1) [NoComment])")+    , testCase "LiteralTrue"       (testLiteralC "/*c*/true"     "Right (NS (JSLiteral \"true\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*c*/\"])")++    , testCase "LiteralHexInteger" (testLiteralC "/*d*/0x1234fF" "Right (NS (JSHexInteger \"0x1234fF\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*d*/\"])")+    , testCase "LiteralDecimal"    (testLiteralC "/*e*/1.0e4"    "Right (NS (JSDecimal \"1.0e4\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*e*/\"])")+    , testCase "LiteralString1"    (testLiteralC "/*f*/\"hello\\nworld\"" "Right (NS (JSStringLiteral '\"' \"hello\\\\nworld\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*f*/\"])")+    , testCase "LiteralString2"    (testLiteralC "/*g*/'hello\\nworld'"   "Right (NS (JSStringLiteral '\\'' \"hello\\\\nworld\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*g*/\"])")+++    , testCase "LiteralThis"       (testPEC "/*h*/this"  "Right (NS (JSLiteral \"this\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*h*/\"])")++    , testCase "LiteralRegex1"     (testPEC "/*i*//blah/"  "Right (NS (JSRegEx \"/blah/\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*i*/\"])")++    , testCase "Identifier2"       (testPEC "//j\nthis_"   "Right (NS (JSIdentifier \"this_\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"//j\"])")++    , testCase "ArrayLiteral1"     (testPEC "/*a*/[/*b*/]"      "Right (NS (JSArrayLiteral []) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 6 1 7) \"/*b*/\"])")+    , testCase "ArrayLiteral2"     (testPEC "/*a*/[/*b*/,/*c*/]"     "Right (NS (JSArrayLiteral [NS (JSElision []) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 12 1 13) \"/*c*/\"])")+    , testCase "ArrayLiteral3"     (testPEC "/*a*/[/*b*/,/*c*/,/*d*/]"    "Right (NS (JSArrayLiteral [NS (JSElision []) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"],NS (JSElision []) (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\"]]) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 18 1 19) \"/*d*/\"])")+    , testCase "ArrayLiteral4"     (testPEC "/*a*/[/*b/*,/*c*/,/*d*/x/*e*/]"   "Right (NS (JSArrayLiteral [NS (JSElision []) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b/*,/*c*/\"],NS (JSIdentifier \"x\") (TokenPn 18 1 19) [CommentA (TokenPn 18 1 19) \"/*d*/\"]]) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 24 1 25) \"/*e*/\"])")+    , testCase "ArrayLiteral5"     (testPEC "/*a*/[/*b*/,/*c*/,/*d*/x/*e*/]"   "Right (NS (JSArrayLiteral [NS (JSElision []) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"],NS (JSElision []) (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\"],NS (JSIdentifier \"x\") (TokenPn 18 1 19) [CommentA (TokenPn 18 1 19) \"/*d*/\"]]) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 24 1 25) \"/*e*/\"])")+    , testCase "ArrayLiteral6"     (testPEC "/*a*/[/*b*/,/*c*/x/*d*/,/*e*/,/*f*/x/*g*/]" "Right (NS (JSArrayLiteral [NS (JSElision []) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"],NS (JSIdentifier \"x\") (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\"],NS (JSElision []) (TokenPn 18 1 19) [CommentA (TokenPn 18 1 19) \"/*d*/\"],NS (JSElision []) (TokenPn 24 1 25) [CommentA (TokenPn 24 1 25) \"/*e*/\"],NS (JSIdentifier \"x\") (TokenPn 30 1 31) [CommentA (TokenPn 30 1 31) \"/*f*/\"]]) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 36 1 37) \"/*g*/\"])")+    , testCase "ArrayLiteral7"     (testPEC "/*a*/[/*b*/x/*c*/]"     "Right (NS (JSArrayLiteral [NS (JSIdentifier \"x\") (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 12 1 13) \"/*c*/\"])")+    , testCase "ArrayLiteral8"     (testPEC "/*a*/[/*b*/x/*c*/,/*d*/]"    "Right (NS (JSArrayLiteral [NS (JSIdentifier \"x\") (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"],NS (JSLiteral \",\") (TokenPn 17 1 18) [CommentA (TokenPn 12 1 13) \"/*c*/\"]]) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 18 1 19) \"/*d*/\"])")++    , testCase "ObjectLiteral1"    (testPEC "/*a*/{/*b*/}"       "Right (NS (JSObjectLiteral []) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 6 1 7) \"/*b*/\"])")+    , testCase "ObjectLiteral2"    (testPEC "/*a*/{/*b*/x/*c*/:/*d*/1/*e*/}"    "Right (NS (JSObjectLiteral [NS (JSPropertyNameandValue (NS (JSIdentifier \"x\") (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]) [NS (JSDecimal \"1\") (TokenPn 18 1 19) [CommentA (TokenPn 18 1 19) \"/*d*/\"]]) (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\"]]) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 24 1 25) \"/*e*/\"])")+    , testCase "ObjectLiteral3"    (testPEC "/*a*/{/*b*/x/*c*/:/*d*/1/*e*/,/*f*/y/*g*/:/*h*/2/*i*/}"     "Right (NS (JSObjectLiteral [NS (JSPropertyNameandValue (NS (JSIdentifier \"x\") (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]) [NS (JSDecimal \"1\") (TokenPn 18 1 19) [CommentA (TokenPn 18 1 19) \"/*d*/\"]]) (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\"],NS (JSPropertyNameandValue (NS (JSIdentifier \"y\") (TokenPn 30 1 31) [CommentA (TokenPn 30 1 31) \"/*f*/\"]) [NS (JSDecimal \"2\") (TokenPn 42 1 43) [CommentA (TokenPn 42 1 43) \"/*h*/\"]]) (TokenPn 36 1 37) [CommentA (TokenPn 24 1 25) \"/*e*/\",CommentA (TokenPn 36 1 37) \"/*g*/\"]]) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 48 1 49) \"/*i*/\"])")++    , testCase "ObjectLiteral5"    (testPEC "/*a*/{/*b*/x/*c*/:/*d*/1/*e*/,/*f*/}"    "Right (NS (JSObjectLiteral [NS (JSPropertyNameandValue (NS (JSIdentifier \"x\") (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]) [NS (JSDecimal \"1\") (TokenPn 18 1 19) [CommentA (TokenPn 18 1 19) \"/*d*/\"]]) (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\"],NS (JSLiteral \",\") (TokenPn 29 1 30) [CommentA (TokenPn 24 1 25) \"/*e*/\"]]) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 30 1 31) \"/*f*/\"])")++    -- Edition 5 extensions+    , testCase "ObjectLiteral7"    (testProgC "/*a*/x/*b*/=/*c*/{/*d*/get/*e*/ foo/*f*/(/*g*/)/*h*/ {/*i*/return/*j*/ 1/*k*/}/*l*/,/*m*/set/*n*/ foo/*o*/(/*p*/a/*q*/) /*r*/{/*s*/x/*t*/=/*u*/a/*v*/}/*w*/}"  "Right (NS (JSSourceElementsTop [NS (JSExpression [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"],NS (JSOperator \"=\") (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"],NS (JSObjectLiteral [NS (JSPropertyAccessor \"get\" (NS (JSIdentifier \"foo\") (TokenPn 26 1 27) [CommentA (TokenPn 26 1 27) \"/*e*/\"]) [] (NS (JSFunctionBody [NS (JSSourceElements [NS (JSReturn [NS (JSExpression [NS (JSDecimal \"1\") (TokenPn 65 1 66) [CommentA (TokenPn 65 1 66) \"/*j*/\"]]) (TokenPn 65 1 66) [],NS (JSLiteral \"\") (TokenPn 0 0 0) []]) (TokenPn 54 1 55) [CommentA (TokenPn 54 1 55) \"/*i*/\"]]) (TokenPn 54 1 55) []]) (TokenPn 54 1 55) [])) (TokenPn 18 1 19) [CommentA (TokenPn 18 1 19) \"/*d*/\",CommentA (TokenPn 35 1 36) \"/*f*/\",CommentA (TokenPn 41 1 42) \"/*g*/\",CommentA (TokenPn 47 1 48) \"/*h*/\",CommentA (TokenPn 72 1 73) \"/*k*/\"],NS (JSPropertyAccessor \"set\" (NS (JSIdentifier \"foo\") (TokenPn 92 1 93) [CommentA (TokenPn 92 1 93) \"/*n*/\"]) [NS (JSIdentifier \"a\") (TokenPn 107 1 108) [CommentA (TokenPn 107 1 108) \"/*p*/\"]] (NS (JSFunctionBody [NS (JSSourceElements [NS (JSExpression [NS (JSIdentifier \"x\") (TokenPn 126 1 127) [CommentA (TokenPn 126 1 127) \"/*s*/\"],NS (JSOperator \"=\") (TokenPn 132 1 133) [CommentA (TokenPn 132 1 133) \"/*t*/\"],NS (JSIdentifier \"a\") (TokenPn 138 1 139) [CommentA (TokenPn 138 1 139) \"/*u*/\"]]) (TokenPn 126 1 127) []]) (TokenPn 126 1 127) []]) (TokenPn 126 1 127) [])) (TokenPn 84 1 85) [CommentA (TokenPn 78 1 79) \"/*l*/\",CommentA (TokenPn 84 1 85) \"/*m*/\",CommentA (TokenPn 101 1 102) \"/*o*/\",CommentA (TokenPn 113 1 114) \"/*q*/\",CommentA (TokenPn 120 1 121) \"/*r*/\",CommentA (TokenPn 144 1 145) \"/*v*/\"]]) (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\",CommentA (TokenPn 150 1 151) \"/*w*/\"]]) (TokenPn 0 1 1) []]) (TokenPn 0 1 1) [])")++    , testCase "ExpressionParen"   (testPEC "/*a*/(/*b*/56/*c*/)"     "Right (NS (JSExpressionParen (NS (JSExpression [NS (JSDecimal \"56\") (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])) (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\",CommentA (TokenPn 13 1 14) \"/*c*/\"])")++    , testCase "Statement1"        (testStmtC "/*a*/x"        "Right (NS (JSExpression [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]]) (TokenPn 0 1 1) [])")++    , testCase "Statement2"        (testStmtC "/*a*/null"     "Right (NS (JSExpression [NS (JSLiteral \"null\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]]) (TokenPn 0 1 1) [])")++    , testCase "Statement3"        (testStmtC "/*a*/true/*b*/?/*c*/1/*d*/:/*e*/2" "Right (NS (JSExpression [NS (JSExpressionTernary [NS (JSLiteral \"true\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSDecimal \"1\") (TokenPn 15 1 16) [CommentA (TokenPn 15 1 16) \"/*c*/\"]] [NS (JSDecimal \"2\") (TokenPn 27 1 28) [CommentA (TokenPn 27 1 28) \"/*e*/\"]]) (TokenPn 9 1 10) [CommentA (TokenPn 9 1 10) \"/*b*/\",CommentA (TokenPn 21 1 22) \"/*d*/\"]]) (TokenPn 9 1 10) [])")++    , testCase "Statement4"        (testStmtC "/*a*/x/*b*/||/*c*/y"    "Right (NS (JSExpression [NS (JSExpressionBinary \"||\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 13 1 14) [CommentA (TokenPn 13 1 14) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement5"        (testStmtC "/*a*/x/*b*/&&/*c*/y"    "Right (NS (JSExpression [NS (JSExpressionBinary \"&&\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 13 1 14) [CommentA (TokenPn 13 1 14) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement6a"       (testStmtC "/*a*/x/*b*/|/*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \"|\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement6b"       (testStmtC "/*a*/x/*b*/^/*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \"^\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement7"        (testStmtC "/*a*/x/*b*/&/*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \"&\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement8"        (testStmtC "/*a*/x/*b*/==/*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \"==\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 13 1 14) [CommentA (TokenPn 13 1 14) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement9"        (testStmtC "/*a*/x/*b*/!=/*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \"!=\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 13 1 14) [CommentA (TokenPn 13 1 14) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement10"       (testStmtC "/*a*/x/*b*/===/*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \"===\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 14 1 15) [CommentA (TokenPn 14 1 15) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement11"       (testStmtC "/*a*/x/*b*/!==/*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \"!==\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 14 1 15) [CommentA (TokenPn 14 1 15) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement12a"       (testStmtC "/*a*/x/*b*/</*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \"<\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement12b"       (testStmtC "/*a*/x/*b*/>/*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \">\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 12 1 13) [CommentA (TokenPn 12 1 13) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement12c"       (testStmtC "/*a*/x/*b*/<=/*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \"<=\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 13 1 14) [CommentA (TokenPn 13 1 14) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement12d"       (testStmtC "/*a*/x/*b*/>=/*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \">=\" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 13 1 14) [CommentA (TokenPn 13 1 14) \"/*c*/\"]]) (TokenPn 6 1 7) [CommentA (TokenPn 6 1 7) \"/*b*/\"]]) (TokenPn 6 1 7) [])")++    , testCase "Statement12e"       (testStmtC "/*a*/x /*b*/instanceof /*c*/y"     "Right (NS (JSExpression [NS (JSExpressionBinary \" instanceof \" [NS (JSIdentifier \"x\") (TokenPn 0 1 1) [CommentA (TokenPn 0 1 1) \"/*a*/\"]] [NS (JSIdentifier \"y\") (TokenPn 23 1 24) [CommentA (TokenPn 23 1 24) \"/*c*/\"]]) (TokenPn 7 1 8) [CommentA (TokenPn 7 1 8) \"/*b*/\"]]) (TokenPn 7 1 8) [])")++    ]++-- ---------------------------------------------------------------------++commentPrintSuite :: Test+commentPrintSuite = testGroup "Comments"+    [+      testCase "Multi-comment"     (testRoundTrip "/*a*/\n//foo\nnull")+++    , testCase "LiteralNull"       (testRoundTrip "/*a*/null")+    , testCase "LiteralFalse"      (testRoundTrip "/*b*/false")+    , testCase "LiteralTrue"       (testRoundTrip "true")+    , testCase "LiteralTrue"       (testRoundTrip "/*c*/true")++    , testCase "LiteralHexInteger" (testRoundTrip "/*d*/0x1234fF")+    , testCase "LiteralDecimal"    (testRoundTrip "/*e*/1.0e4")+    , testCase "LiteralString1"    (testRoundTrip "/*f*/\"hello\\nworld\"")+    , testCase "LiteralString2"    (testRoundTrip "/*g*/'hello\\nworld'")+++    , testCase "LiteralThis"       (testRoundTrip "/*h*/this")++    , testCase "LiteralRegex1"     (testRoundTrip "/*i*//blah/")++    , testCase "Identifier2"       (testRoundTrip "//j\nthis_")++    , testCase "ArrayLiteral1"     (testRoundTrip "/*a*/[/*b*/]")+    , testCase "ArrayLiteral2"     (testRoundTrip "/*a*/[/*b*/,/*c*/]")+    , testCase "ArrayLiteral3"     (testRoundTrip "/*a*/[/*b*/,/*c*/,/*d*/]")+    , testCase "ArrayLiteral4"     (testRoundTrip "/*a*/[/*b/*,/*c*/,/*d*/x/*e*/]")+    , testCase "ArrayLiteral5"     (testRoundTrip "/*a*/[/*b*/,/*c*/,/*d*/x/*e*/]")+    , testCase "ArrayLiteral6"     (testRoundTrip "/*a*/[/*b*/,/*c*/x/*d*/,/*e*/,/*f*/x/*g*/]")+    , testCase "ArrayLiteral7"     (testRoundTrip "/*a*/[/*b*/x/*c*/]")+    , testCase "ArrayLiteral8"     (testRoundTrip "/*a*/[/*b*/x/*c*/,/*d*/]")++    , testCase "ObjectLiteral1"    (testRoundTrip "/*a*/{/*b*/}")+    , testCase "ObjectLiteral2"    (testRoundTrip "/*a*/{/*b*/x/*c*/:/*d*/1/*e*/}")+    , testCase "ObjectLiteral3"    (testRoundTrip "x=/*a*/{/*b*/x/*c*/:/*d*/1/*e*/,/*f*/y/*g*/:/*h*/2/*i*/}")+    , testCase "ObjectLiteral3a"   (testRoundTrip "x=/*a*/{/*b*/x/*c*/:/*d*/1/*e*/,/*f*/y/*g*/:/*h*/2/*i*/,/*j*/z/*k*/:/*l*/3/*m*/}")++    , testCase "ObjectLiteral5"    (testRoundTrip "a=/*a*/{/*b*/x/*c*/:/*d*/1/*e*/,/*f*/}")++    -- Edition 5 extensions+    , testCase "ObjectLiteral7"    (testRoundTrip "/*a*/x/*b*/=/*c*/{/*d*/get/*e*/ foo/*f*/(/*g*/)/*h*/ {/*i*/return/*j*/ 1/*k*/}/*l*/,/*m*/set/*n*/ foo/*o*/(/*p*/a/*q*/) /*r*/{/*s*/x/*t*/=/*u*/a/*v*/}/*w*/}")++    , testCase "ExpressionParen"   (testRoundTrip "/*a*/(/*b*/56/*c*/)")++    , testCase "Statement1"        (testRoundTrip "/*a*/x")++    , testCase "Statement2"        (testRoundTrip "/*a*/null")++    , testCase "Statement3"        (testRoundTrip "/*a*/true/*b*/?/*c*/1/*d*/:/*e*/2")++    , testCase "Statement4"        (testRoundTrip "/*a*/x/*b*/||/*c*/y")++    , testCase "Statement5"        (testRoundTrip "/*a*/x/*b*/&&/*c*/y")++    , testCase "Statement6a"       (testRoundTrip "/*a*/x/*b*/|/*c*/y")++    , testCase "Statement6b"       (testRoundTrip "/*a*/x/*b*/^/*c*/y")++    , testCase "Statement7"        (testRoundTrip "/*a*/x/*b*/&/*c*/y")++    , testCase "Statement8"        (testRoundTrip "/*a*/x/*b*/==/*c*/y")++    , testCase "Statement9"        (testRoundTrip "/*a*/x/*b*/!=/*c*/y")++    , testCase "Statement10"       (testRoundTrip "/*a*/x/*b*/===/*c*/y")++    , testCase "Statement11"       (testRoundTrip "/*a*/x/*b*/!==/*c*/y")++    , testCase "Statement12a"       (testRoundTrip "/*a*/x/*b*/</*c*/y")++    , testCase "Statement12b"       (testRoundTrip "/*a*/x/*b*/>/*c*/y")++    , testCase "Statement12c"       (testRoundTrip "/*a*/x/*b*/<=/*c*/y")++    , testCase "Statement12d"       (testRoundTrip "/*a*/x/*b*/>=/*c*/y")++    , testCase "Statement12e"       (testRoundTrip "/*a*/x /*b*/instanceof /*c*/y")++++    , testCase "Statement13"       (testRoundTrip "x<<y")+    , testCase "Statement13"       (testRoundTrip "x>>y")+    , testCase "Statement13"       (testRoundTrip "x>>>y")++    , testCase "Statement14"       (testRoundTrip "x+y")+    , testCase "Statement14"       (testRoundTrip "x-y")++    , testCase "Statement15"       (testRoundTrip "x*y")+    , testCase "Statement16"       (testRoundTrip "x/y")+    , testCase "Statement17"       (testRoundTrip "x%y")++    , testCase "Statement18"       (testRoundTrip "delete y")+    , testCase "Statement19"       (testRoundTrip "void y")+    , testCase "Statement20"       (testRoundTrip "typeof y")+    , testCase "Statement21"       (testRoundTrip "++y")+    , testCase "Statement22"       (testRoundTrip "--y")+    , testCase "Statement23"       (testRoundTrip "+y")+    , testCase "Statement24"       (testRoundTrip "-y")+    , testCase "Statement25"       (testRoundTrip "~y")+    , testCase "Statement26"       (testRoundTrip "!y")++    , testCase "Statement27"       (testRoundTrip "y++")+    , testCase "Statement28"       (testRoundTrip "y--")++      -- Member Expressions+    , testCase "MemberExpression1a" (testRoundTrip "function(){}")+    , testCase "MemberExpression1b" (testRoundTrip "function(a){}")+    , testCase "MemberExpression1c" (testRoundTrip "function(a,b){}")++    , testCase "MemberExpression1d" (testRoundTrip "x[y]")+    , testCase "MemberExpression1e" (testRoundTrip "x[y][z]")+    , testCase "MemberExpression1f" (testRoundTrip "x.y")+    , testCase "MemberExpression1g" (testRoundTrip "x.y.z")++    , testCase "MemberExpression1h" (testRoundTrip "new x()")++    , testCase "NewExpression1" (testRoundTrip "new x.y")++    , testCase "CallExpression1" (testRoundTrip "x()")+    , testCase "CallExpression2" (testRoundTrip "x()()")+    , testCase "CallExpression3" (testRoundTrip "x()[4]")+    , testCase "CallExpression4" (testRoundTrip "x().x")+    , testCase "CallExpression5" (testRoundTrip "x(a,b=2).x")++    , testCase "AssignExpression1" (testRoundTrip "x=1")+    , testCase "AssignExpression1" (testRoundTrip "x*=1")+    , testCase "AssignExpression1" (testRoundTrip "x/=1")+    , testCase "AssignExpression1" (testRoundTrip "x%=1")+    , testCase "AssignExpression1" (testRoundTrip "x+=1")+    , testCase "AssignExpression1" (testRoundTrip "x-=1")+    , testCase "AssignExpression1" (testRoundTrip "x<<=1")+    , testCase "AssignExpression1" (testRoundTrip "x>>=1")+    , testCase "AssignExpression1" (testRoundTrip "x>>>=1")+    , testCase "AssignExpression1" (testRoundTrip "x&=1")+    , testCase "AssignExpression1" (testRoundTrip "x^=1")+    , testCase "AssignExpression1" (testRoundTrip "x|=1")+++    , testCase "Block1" (testRoundTrip "{}")+    , testCase "Block2" (testRoundTrip "{x=1}")+    , testCase "Block3" (testRoundTrip "{x=1;y=2}")+    , testCase "Block4" (testRoundTrip "{{}}")+    , testCase "Block5" (testRoundTrip "{{{}}}")+++    , testCase "If1" (testRoundTrip "if (1) {}")++    , testCase "IfElse1" (testRoundTrip "if (1) {} else {}")+    , testCase "IfElse2" (testRoundTrip "if (1) x=1; else {}")++    , testCase "DoWhile1" (testRoundTrip "do {x=1} while (true);")+    , testCase "While1"   (testRoundTrip "while(true);")++    , testCase "For1"   (testRoundTrip "for(;;);")+    , testCase "For2"   (testRoundTrip "for(x=1;x<10;x++);")++    , testCase "ForVar1"   (testRoundTrip "for(var x;;);")+    , testCase "ForVar2"   (testRoundTrip "for(var x=1;;);")+    , testCase "ForVar2"   (testRoundTrip "for(var x;y;z){}")++    , testCase "ForIn1"   (testRoundTrip "for(x in 5){}")++    , testCase "ForVarIn1" (testRoundTrip "for(var x in 5){}")++    , testCase "Var1" (testRoundTrip "var x=1;")+    , testCase "Var2" (testRoundTrip "const x=1,y=2;")+++    , testCase "Continue1" (testRoundTrip "continue;")+    , testCase "Continue2" (testRoundTrip "continue x;")++    , testCase "Break1" (testRoundTrip "break;")+    , testCase "Break2" (testRoundTrip "break x;")++    , testCase "Return1" (testRoundTrip "return;")+    , testCase "Return2" (testRoundTrip "return x;")++    , testCase "With1" (testRoundTrip "with (x) {};")++    , testCase "Labelled1" (testRoundTrip "abc:x=1")++    , testCase "Switch1" (testRoundTrip "switch (x) {}")+    , testCase "Switch2" (testRoundTrip "switch (x) {case 1:break;}")+    , testCase "Switch3" (testRoundTrip "switch (x) {case 0:\ncase 1:break;}")+    , testCase "Switch4" (testRoundTrip "switch (x) {default:break;}")+    , testCase "Switch5" (testRoundTrip "switch (x) {default:\ncase 1:break;}")++    , testCase "Throw1" (testRoundTrip "throw 1")++    , testCase "Try1" (testRoundTrip "try{}catch(a){}")+    , testCase "Try2" (testRoundTrip "try{}finally{}")+    , testCase "Try3" (testRoundTrip "try{}catch(a){}finally{}")++    , testCase "Try4" (testRoundTrip "try{}catch(a){}catch(b){}finally{}")+    , testCase "Try5" (testRoundTrip "try{}catch(a){}catch(b){}")+    , testCase "Try6" (testRoundTrip "try{}catch(a if true){}catch(b){}")++    , testCase "Function1" (testRoundTrip "function a(){}")+    , testCase "Function2" (testRoundTrip "function a(b,c){}")+++    , testCase "Comment1" (testRoundTrip "//blah\nx=1;//foo\na")++    , testCase "Comment2" (testRoundTrip "/*x=1\ny=2\n*/z=2;//foo\na")++    , testCase "min_100_animals1" (testRoundTrip "function Animal(name){if(!name)throw new Error('Must specify an animal name');this.name=name};Animal.prototype.toString=function(){return this.name};o=new Animal(\"bob\");o.toString()==\"bob\"")++    , testCase "min_100_animals2" (testRoundTrip "Animal=function(){return this.name};")++    , testCase "min_100_animals3" (testRoundTrip "if(a)x=1;y=2")++    , testCase "min_100_animals4" (testRoundTrip "if(a)x=a()y=2")++    , testCase "05_regex"  (testRoundTrip "newlines=spaces.match(/\\n/g)")++    , testCase "05_regex2" (testRoundTrip "x=/\\n/g")++    , testCase "05_regex3" (testRoundTrip "x=i(/[?|^&(){}\\[\\]+\\-*\\/\\.]/g,\"\\\\$&\")")++    , testCase "05_regex4" (testRoundTrip "x=i(/^$/g,\"\\\\$&\")")++   , testCase "05_regex5" (testRoundTrip "if(/^[a-z]/.test(t)){consts+=t.toUpperCase();keywords[t]=i}else consts+=(/^\\W/.test(t)?opTypeNames[t]:t);")++   , testCase "if_semi" (testRoundTrip "if(x);x=1")++   , testCase "67_bob" (testRoundTrip "(match = /^\"(?:\\\\.|[^\"])*\"|^'(?:[^']|\\\\.)*'/(input))")++   , testCase "122_jsexec" (testRoundTrip "v = getValue(execute(n[0], x)) in getValue(execute(n[1], x));")++   , testCase "bug1a" (testRoundTrip "/* */\nfunction f() {\n/*  */\n}")+   , testCase "bug1b" (testRoundTrip "/* **/\nfunction f() {\n/*  */\n}")++   , testCase "unicode1-ws" (testRoundTrip "a \f\v\t\r\n=\x00a0\x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2009\x200a\x2028\x2029\x202f\x205f\x3000\&1;")++   , testCase "unicode2-lt" (testRoundTrip "//comment\x000Ax=1;")+   , testCase "unicode3-lt" (testRoundTrip "//comment\x000Dx=1;")+   , testCase "unicode4-lt" (testRoundTrip "//comment\x2028x=1;")+   , testCase "unicode5-lt" (testRoundTrip "//comment\x2029x=1;")++   , testCase "unicode2" (testRoundTrip "àáâãäå = 1;")++   , testCase "unicode3" (testRoundTrip "$aà = 1;_b=2;\0065a=2")++   , testCase "unicode4" (testRoundTrip "x=\"àáâãäå\";y='\3012a\0068'")++   -- , testCase "unicode5" (testFile "./test/Unicode.js")++   , testCase "bug2.a" (testRoundTrip "function() {\nz = function /*z*/(o) {\nreturn r;\n};}")++   , testCase "bug2.b" (testRoundTrip "function() {\nz = function z(o) {\nreturn r;\n};}")++   -- https://github.com/alanz/hjsmin/issues/#issue/3+   , testCase "bug3" (testRoundTrip "var myLatlng = new google.maps.LatLng(56.8379100, 60.5806664);")++   -- https://github.com/alanz/hjsmin/issues/#issue/4+   , testCase "bug4" (testRoundTrip "/* * geolocation. пытаемся определить свое местоположение * если не получается то используем defaultLocation * @Param {object} map экземпляр карты * @Param {object LatLng} defaultLocation Координаты центра по умолчанию * @Param {function} callbackAfterLocation Фу-ия которая вызывается после * геолокации. Т.к запрос геолокации асинхронен */x")++   , testCase "02_sm.js"   (testRoundTrip "{zero}\none1;two\n{three\nfour;five;\n{\nsix;{seven;}\n}\n}")++   , testCase "02_sm.js.2" (testRoundTrip "{zero}\nget;two\n{three\nfour;set;\n{\nsix;{seven;}\n}\n}")++   , testCase "loc1" (testRoundTrip "x = 1\n  y=2;")++   -- https://github.com/alanz/language-javascript/issues/2+   , testCase "issue2" (testRoundTrip "var img = document.createElement('img');\nimg.src = \"mylogo.jpg\";\n$(img).click(function() {\n   alert('clicked!');\n});")+++   -- Working in ECMASCRIPT 5.1 changes+   , testCase "lineTerminatorInString1" (testRoundTrip "x='abc\\\ndef';")+   , testCase "lineTerminatorInString2" (testRoundTrip "x=\"abc\\\ndef\";")+   , testCase "lineTerminatorInString3" (testRoundTrip "x=\"abc\\\rdef\";")+   , testCase "lineTerminatorInString4" (testRoundTrip "x=\"abc\\\x2028 def\";")+   , testCase "lineTerminatorInString5" (testRoundTrip "x=\"abc\\\x2029 def\";")+   , testCase "lineTerminatorInString6" (testRoundTrip "x=\"abc\\\r\ndef\";")+++     -- https://github.com/alanz/language-javascript/issues/4+   , testCase "issue4ok"   (testRoundTrip "var k = {\ny: somename\n}")+   , testCase "issue4bug1" (testRoundTrip "var k = {\ny: code\n}")+   , testCase "issue4bug2" (testRoundTrip "var k = {\ny: mode\n}")++     -- https://github.com/alanz/language-javascript/issues/5+   , testCase "issue5bug1" (testRoundTrip "x = { y: 1e8 }")+   , testCase "issue5ok2" (testRoundTrip "{ y: 1e8 }")+   , testCase "issue5ok3" (testRoundTrip "{ y: 18 }")+   , testCase "issue5ok4" (testRoundTrip "x = { y: 18 }")++   -- function body+   , testCase "functionbody"        (testRoundTrip "function foo(a,b,c)\n{x=1;}")+   , testCase "functionexpression" (testRoundTrip "function foo(a,b,c)\n{x=1;}")++   , testCase "fn1" (testRoundTrip "function foo() { return 5; }")+   , testCase "fn2" (testRoundTrip "var foo = function() { return 5; }")+   , testCase "fn3" (testRoundTrip "var foo = function foo() { return 5; }")++    ]++-- --------------------------------------------------------------------- -- Test utilities -testLiteral literal expected = expected @=? (showStrippedMaybe $ parseUsing parseLiteral literal "src")+testRoundTrip str = str @=? (renderToString $ readJs str) -testPE str expected = expected @=? (showStrippedMaybe $ parseUsing parsePrimaryExpression str "src")+testLiteral :: String -> String -> Assertion+testLiteral  literal expected = expected @=? (showStrippedMaybe $ parseUsing parseLiteral literal "src")+testLiteralC :: String -> String -> Assertion+testLiteralC literal expected = expected @=? (show              $ parseUsing parseLiteral literal "src") -testStmt str expected = expected @=? (showStrippedMaybe $ parseUsing parseStatement str "src") +testPE :: String -> String -> Assertion+testPE  str expected = expected @=? (showStrippedMaybe $ parseUsing parsePrimaryExpression str "src")+testPEC :: String -> String -> Assertion+testPEC str expected = expected @=? (show              $ parseUsing parsePrimaryExpression str "src")++testStmt :: String -> String -> Assertion+testStmt  str expected = expected @=? (showStrippedMaybe $ parseUsing parseStatement str "src")+testStmtC :: String -> String -> Assertion+testStmtC str expected = expected @=? (show              $ parseUsing parseStatement str "src")+ --testProg str expected = expected @=? (show $ parseUsing parseProgram str "src")-testProg str expected = expected @=? (showStrippedMaybe $ parseUsing parseProgram str "src")+testProg :: String -> String -> Assertion+testProg  str expected = expected @=? (showStrippedMaybe $ parseUsing parseProgram str "src")+testProgC :: String -> String -> Assertion+testProgC str expected = expected @=? (show              $ parseUsing parseProgram str "src") +testProgUn :: String -> String -> Assertion testProgUn str expected = expected @=? (show $ parseUsing parseProgram str "src")  +testFile :: FilePath -> String -> IO () testFile fileName expected = do   res <- parseFile fileName   -- expected @=? (liftM show $ parseFile fileName)
src/Language/JavaScript/Parser.hs view
@@ -6,23 +6,23 @@        , PA.showStripped        , PA.showStrippedMaybe        , JSNode(..)-       , SrcSpan(..)-       , AlexSpan(..)        , Node(..)-       , ParseError(..)+       -- , ParseError(..)        -- Source locations-       , AlexPosn(..)-       -- ParserMonad-       , P-       , ParseState (..)+       , TokenPosn(..)+       , tokenPosnEmpty+       -- * Pretty Printing+       , renderJS+       , renderToString        ) where   import Language.JavaScript.Parser.AST import Language.JavaScript.Parser.ParseError import qualified Language.JavaScript.Parser.Parser as PA-import Language.JavaScript.Parser.ParserMonad+--import Language.JavaScript.Parser.ParserMonad import Language.JavaScript.Parser.SrcLocation+import Language.JavaScript.Pretty.Printer  -- EOF 
src/Language/JavaScript/Parser/AST.hs view
@@ -3,73 +3,82 @@        (            Node (..)          , JSNode(..)-         , SrcSpan (..)-         , AlexPosn(..)+         -- , TokenPosn (..)          , showStripped        ) where  import Data.Data import Data.List-import Language.JavaScript.Parser.SrcLocation (SrcSpan(..), AlexPosn(..))+import Language.JavaScript.Parser.SrcLocation (TokenPosn(..))+import Language.JavaScript.Parser.Token  -- --------------------------------------------------------------------- -data JSNode = NS Node SrcSpan+-- |The JSNode is the building block of the AST.+-- Each has a syntactic part 'Node'. In addition, the leaf elements+-- (terminals) have a position 'TokenPosn', as well as an array of comments+-- and/or whitespace that was collected while parsing.++data JSNode = NN Node -- ^Non Terminal node, does not have any position or comment information+            | NT Node TokenPosn [CommentAnnotation] -- ^Terminal node, including position and comment/whitespace information     deriving (Show, Eq, Read, Data, Typeable) -data Node = JSArguments [[JSNode]]-              | JSArrayLiteral [JSNode]-              | JSBlock JSNode-              | JSBreak [JSNode] [JSNode]-              | JSCallExpression String [JSNode]  -- type : ., (), []; rest-              | JSCase JSNode JSNode-              | JSCatch JSNode [JSNode] JSNode-              | JSContinue [JSNode]-              | JSDecimal String  -- Was Integer-              | JSDefault JSNode-              | JSDoWhile JSNode JSNode JSNode-              | JSElision [JSNode]-              | JSEmpty JSNode-              | JSExpression [JSNode]-              | JSExpressionBinary String [JSNode] [JSNode]-              | JSExpressionParen JSNode-              | JSExpressionPostfix String [JSNode]-              | JSExpressionTernary [JSNode] [JSNode] [JSNode]-              | JSFinally JSNode-              | JSFor [JSNode] [JSNode] [JSNode] JSNode-              | JSForIn [JSNode] JSNode JSNode-              | JSForVar [JSNode] [JSNode] [JSNode] JSNode-              | JSForVarIn JSNode JSNode JSNode-              | JSFunction JSNode [JSNode] JSNode  -- name, parameter list, body-              | JSFunctionBody [JSNode]-              | JSFunctionExpression [JSNode] [JSNode] JSNode  -- name, parameter list, body-              | JSHexInteger String  -- Was Integer-              | JSIdentifier String-              | JSIf JSNode JSNode-              | JSIfElse JSNode JSNode JSNode-              | JSLabelled JSNode JSNode+data Node =+              -- | Terminals+                JSIdentifier String+              | JSDecimal String               | JSLiteral String-              | JSMemberDot [JSNode] JSNode-              | JSMemberSquare [JSNode] JSNode-              | JSObjectLiteral [JSNode]-              | JSOperator String-              | JSPropertyNameandValue JSNode [JSNode]-              | JSPropertyAccessor String JSNode [JSNode] JSNode-              | JSRegEx String-              | JSReturn [JSNode]-              | JSSourceElements [JSNode]-              | JSSourceElementsTop [JSNode]-              | JSStatementBlock JSNode-              | JSStatementList [JSNode]+              | JSHexInteger String               | JSStringLiteral Char [Char]-              | JSSwitch JSNode [JSNode]-              | JSThrow JSNode-              | JSTry JSNode [JSNode]-              | JSUnary String-              | JSVarDecl JSNode [JSNode]-              | JSVariables String [JSNode]-              | JSWhile JSNode JSNode-              | JSWith JSNode [JSNode]+              | JSRegEx String++              -- | Non Terminals++              | JSArguments JSNode [JSNode] JSNode    -- ^lb, args, rb+              | JSArrayLiteral JSNode [JSNode] JSNode -- ^lb, contents, rb+              | JSBlock [JSNode] JSNode [JSNode]      -- ^optional lb,block,optional rb+              | JSBreak JSNode [JSNode] JSNode        -- ^break, optional identifier, autosemi+              | JSCallExpression String [JSNode] [JSNode] [JSNode]  -- ^type : ., (), []; opening [ or ., contents, closing+              | JSCase JSNode JSNode JSNode JSNode    -- ^case,expr,colon,stmtlist+              | JSCatch JSNode JSNode JSNode [JSNode] JSNode JSNode -- ^ catch,lb,ident,[if,expr],rb,block+              | JSContinue JSNode [JSNode] JSNode     -- ^continue,optional identifier,autosemi+              | JSDefault JSNode JSNode JSNode -- ^default,colon,stmtlist+              | JSDoWhile JSNode JSNode JSNode JSNode JSNode JSNode JSNode -- ^do,stmt,while,lb,expr,rb,autosemi+              | JSElision JSNode               -- ^comma+              | JSExpression [JSNode]          -- ^expression components+              | JSExpressionBinary String [JSNode] JSNode [JSNode] -- ^what, lhs, op, rhs+              | JSExpressionParen JSNode JSNode JSNode -- ^lb,expression,rb+              | JSExpressionPostfix String [JSNode] JSNode -- ^type, expression, operator+              | JSExpressionTernary [JSNode] JSNode [JSNode] JSNode [JSNode] -- ^cond, ?, trueval, :, falseval+              | JSFinally JSNode JSNode -- ^finally,block+              | JSFor JSNode JSNode [JSNode] JSNode [JSNode] JSNode [JSNode] JSNode JSNode -- ^for,lb,expr,semi,expr,semi,expr,rb.stmt+              | JSForIn JSNode JSNode [JSNode] JSNode JSNode JSNode JSNode -- ^for,lb,expr,in,expr,rb,stmt+              | JSForVar JSNode JSNode JSNode [JSNode] JSNode [JSNode] JSNode [JSNode] JSNode JSNode -- ^for,lb,var,vardecl,semi,expr,semi,expr,rb,stmt+              | JSForVarIn JSNode JSNode JSNode JSNode JSNode JSNode JSNode JSNode -- ^for,lb,var,vardecl,in,expr,rb,stmt+              | JSFunction JSNode JSNode JSNode [JSNode] JSNode JSNode JSNode JSNode  -- ^fn,name, lb,parameter list,rb,lb,body,rb+              | JSFunctionBody [JSNode] -- ^body+              | JSFunctionExpression JSNode [JSNode] JSNode [JSNode] JSNode JSNode JSNode JSNode  -- ^fn,[name],lb, parameter list,rb,lb, body,rb+              | JSIf JSNode JSNode JSNode JSNode JSNode [JSNode] -- ^if,(,expr,),stmt,optional rest+              | JSLabelled JSNode JSNode JSNode -- ^identifier,colon,stmt+              | JSMemberDot [JSNode] JSNode JSNode -- ^firstpart, dot, name+              | JSMemberSquare [JSNode] JSNode JSNode JSNode -- ^firstpart, lb, expr, rb+              | JSObjectLiteral JSNode [JSNode] JSNode -- ^lbrace contents rbrace+              | JSOperator JSNode -- ^opnode+              | JSPropertyAccessor JSNode JSNode JSNode [JSNode] JSNode JSNode JSNode JSNode -- ^(get|set), name, lb, params, rb, lb, functionbody, rb+              | JSPropertyNameandValue JSNode JSNode [JSNode] -- ^name, colon, value+              | JSReturn JSNode [JSNode] JSNode -- ^return,optional expression,autosemi+              | JSSourceElements [JSNode] -- ^source elements+              | JSSourceElementsTop [JSNode] -- ^source elements+              | JSStatementBlock JSNode JSNode JSNode -- ^lb,block,rb+              | JSStatementList [JSNode] -- ^statements+              | JSSwitch JSNode JSNode JSNode JSNode [JSNode] -- ^switch,lb,expr,rb,stmt+              | JSThrow JSNode JSNode -- ^throw val+              | JSTry JSNode JSNode [JSNode] -- ^try,block,rest+              | JSUnary String JSNode -- ^type, operator+              | JSVarDecl JSNode [JSNode] -- ^identifier, optional initializer+              | JSVariables JSNode [JSNode] JSNode -- ^var|const, decl, autosemi+              | JSWhile JSNode JSNode JSNode JSNode JSNode -- ^while,lb,expr,rb,stmt+              | JSWith JSNode JSNode JSNode JSNode [JSNode] -- ^with,lb,expr,rb,stmt list     deriving (Show, Eq, Read, Data, Typeable)  -- Strip out the location info, leaving the original JSNode text representation@@ -78,69 +87,64 @@  -- Alias for internal use ss :: JSNode -> String-ss (NS node _) = showStrippedNode node+ss (NN node    ) = showStrippedNode node+ss (NT node _ _) = showStrippedNode node  sss :: [JSNode] -> String --sss xs = "[" ++ (concatMap ss xs) ++ "]" sss xs = "[" ++ (concat (intersperse "," $ map ss xs)) ++ "]" -ssss :: [[JSNode]] -> String---ssss xss = "[" ++ (concatMap sss xss) ++ "]"-ssss xss = "[" ++ (concat (intersperse "," $ map sss xss)) ++ "]"- showStrippedNode :: Node -> String-showStrippedNode (JSArguments xss) = "JSArguments " ++ ssss xss-showStrippedNode (JSArrayLiteral xs) = "JSArrayLiteral " ++ sss xs-showStrippedNode (JSBlock x) = "JSBlock (" ++ ss x ++ ")"-showStrippedNode (JSBreak x1s x2s) = "JSBreak " ++ sss x1s ++ " " ++ sss x2s-showStrippedNode (JSCallExpression s xs) = "JSCallExpression " ++ show s ++ " " ++ sss xs-showStrippedNode (JSCase x1 x2) = "JSCase (" ++ ss x1 ++ ") (" ++ ss x2 ++ ")"-showStrippedNode (JSCatch x1 x2s x3) = "JSCatch (" ++ ss x1 ++ ") " ++ sss x2s ++ " (" ++ ss x3 ++ ")"-showStrippedNode (JSContinue xs) = "JSContinue " ++ sss xs+showStrippedNode (JSArguments _lb xs _rb) = "JSArguments " ++ sss xs+showStrippedNode (JSArrayLiteral _lb xs _rb) = "JSArrayLiteral " ++ sss xs+showStrippedNode (JSBlock _lb x _rb) = "JSBlock (" ++ ss x ++ ")"+showStrippedNode (JSBreak _b x1s as) = "JSBreak " ++ sss x1s ++ " " ++ ss as+showStrippedNode (JSCallExpression s _os xs _cs) = "JSCallExpression " ++ show s ++ " " ++ sss xs+showStrippedNode (JSCase _ca x1 _c x2) = "JSCase (" ++ ss x1 ++ ") (" ++ ss x2 ++ ")"+showStrippedNode (JSCatch _c _lb x1 x2s _rb x3) = "JSCatch (" ++ ss x1 ++ ") " ++ sss x2s ++ " (" ++ ss x3 ++ ")"+showStrippedNode (JSContinue _c xs as) = "JSContinue " ++ sss xs ++ " " ++ ss as showStrippedNode (JSDecimal s) = "JSDecimal " ++ show s-showStrippedNode (JSDefault x) = "JSDefault (" ++ ss x ++ ")"-showStrippedNode (JSDoWhile x1 x2 x3) = "JSDoWhile (" ++ ss x1 ++ ") (" ++ ss x2 ++ ") (" ++ ss x3 ++ ")"-showStrippedNode (JSElision xs) = "JSElision " ++ sss xs-showStrippedNode (JSEmpty x) = "JSEmpty (" ++ ss x ++ ")"+showStrippedNode (JSDefault _d _c x) = "JSDefault (" ++ ss x ++ ")"+showStrippedNode (JSDoWhile _d x1 _w _lb x2 _rb x3) = "JSDoWhile (" ++ ss x1 ++ ") (" ++ ss x2 ++ ") (" ++ ss x3 ++ ")"+showStrippedNode (JSElision c) = "JSElision " ++ ss c showStrippedNode (JSExpression xs) = "JSExpression " ++ sss xs-showStrippedNode (JSExpressionBinary s x2s x3s) = "JSExpressionBinary " ++ show s ++ " " ++ sss x2s ++ " " ++ sss x3s-showStrippedNode (JSExpressionParen x) = "JSExpressionParen (" ++ ss x ++ ")"-showStrippedNode (JSExpressionPostfix s xs) = "JSExpressionPostfix " ++ show s ++ " " ++ sss xs-showStrippedNode (JSExpressionTernary x1s x2s x3s) = "JSExpressionTernary " ++ sss x1s ++ " " ++ sss x2s ++ " " ++ sss x3s-showStrippedNode (JSFinally x) = "JSFinally (" ++ ss x ++ ")"-showStrippedNode (JSFor x1s x2s x3s x4) = "JSFor " ++ sss x1s ++ " " ++ sss x2s ++ " " ++ sss x3s ++ " (" ++ ss x4 ++ ")"-showStrippedNode (JSForIn x1s x2 x3) = "JSForIn " ++ sss x1s ++ " (" ++ ss x2 ++ ") (" ++ ss x3 ++ ")"-showStrippedNode (JSForVar x1s x2s x3s x4) = "JSForVar " ++ sss x1s ++ " " ++ sss x2s ++ " " ++ sss x3s ++ " (" ++ ss x4 ++ ")"-showStrippedNode (JSForVarIn x1 x2 x3) = "JSForVarIn (" ++ ss x1 ++ ") (" ++ ss x2 ++ ") (" ++ ss x3 ++ ")"-showStrippedNode (JSFunction x1 x2s x3) = "JSFunction (" ++ ss x1 ++ ") " ++ sss x2s ++ " (" ++ ss x3 ++ ")"+showStrippedNode (JSExpressionBinary s x2s _op x3s) = "JSExpressionBinary " ++ show s ++ " " ++ sss x2s ++ " " ++ sss x3s+showStrippedNode (JSExpressionParen _lp x _rp) = "JSExpressionParen (" ++ ss x ++ ")"+showStrippedNode (JSExpressionPostfix s xs _op) = "JSExpressionPostfix " ++ show s ++ " " ++ sss xs+showStrippedNode (JSExpressionTernary x1s _q x2s _c x3s) = "JSExpressionTernary " ++ sss x1s ++ " " ++ sss x2s ++ " " ++ sss x3s+showStrippedNode (JSFinally _f x) = "JSFinally (" ++ ss x ++ ")"+showStrippedNode (JSFor _f _lb x1s _s1 x2s _s2 x3s _rb x4) = "JSFor " ++ sss x1s ++ " " ++ sss x2s ++ " " ++ sss x3s ++ " (" ++ ss x4 ++ ")"+showStrippedNode (JSForIn _f _lb x1s _i x2 _rb x3) = "JSForIn " ++ sss x1s ++ " (" ++ ss x2 ++ ") (" ++ ss x3 ++ ")"+showStrippedNode (JSForVar _f _lb _v x1s _s1 x2s _s2 x3s _rb x4) = "JSForVar " ++ sss x1s ++ " " ++ sss x2s ++ " " ++ sss x3s ++ " (" ++ ss x4 ++ ")"+showStrippedNode (JSForVarIn _f _lb _v x1 _i x2 _rb x3) = "JSForVarIn (" ++ ss x1 ++ ") (" ++ ss x2 ++ ") (" ++ ss x3 ++ ")"+showStrippedNode (JSFunction _f x1 _lb x2s _rb _lb2 x3 _rb2) = "JSFunction (" ++ ss x1 ++ ") " ++ sss x2s ++ " (" ++ ss x3 ++ ")" showStrippedNode (JSFunctionBody xs) = "JSFunctionBody " ++ sss xs-showStrippedNode (JSFunctionExpression x1s x2s x3) = "JSFunctionExpression " ++ sss x1s ++ " " ++ sss x2s ++ " (" ++ ss x3 ++ ")"+showStrippedNode (JSFunctionExpression _f x1s _lb x2s _rb _lb2 x3 _rb2) = "JSFunctionExpression " ++ sss x1s ++ " " ++ sss x2s ++ " (" ++ ss x3 ++ ")" showStrippedNode (JSHexInteger s) = "JSHexInteger " ++ show s showStrippedNode (JSIdentifier s) = "JSIdentifier " ++ show s-showStrippedNode (JSIf x1 x2) = "JSIf (" ++ ss x1 ++ ") (" ++ ss x2 ++ ")"-showStrippedNode (JSIfElse x1 x2 x3) = "JSIfElse (" ++ ss x1 ++ ") (" ++ ss x2 ++ ") (" ++ ss x3 ++ ")"-showStrippedNode (JSLabelled x1 x2) = "JSLabelled (" ++ ss x1 ++ ") (" ++ ss x2 ++ ")"+showStrippedNode (JSIf _i _lb x1 _rb x2 x3s) = "JSIf (" ++ ss x1 ++ ") (" ++ ss x2 ++ ") (" ++ sss x3s ++ ")"+showStrippedNode (JSLabelled x1 _c x2) = "JSLabelled (" ++ ss x1 ++ ") (" ++ ss x2 ++ ")" showStrippedNode (JSLiteral s) = "JSLiteral " ++ show s-showStrippedNode (JSMemberDot x1s x2) = "JSMemberDot " ++ sss x1s ++ " (" ++ ss x2 ++ ")"-showStrippedNode (JSMemberSquare x1s x2) = "JSMemberSquare " ++ sss x1s ++ " (" ++ ss x2 ++ ")"-showStrippedNode (JSObjectLiteral xs) = "JSObjectLiteral " ++ sss xs-showStrippedNode (JSOperator s) = "JSOperator " ++ show s-showStrippedNode (JSPropertyNameandValue x1 x2s) = "JSPropertyNameandValue (" ++ ss x1 ++ ") " ++ sss x2s-showStrippedNode (JSPropertyAccessor s x1 x2s x3) = "JSPropertyAccessor " ++ show s ++ " (" ++ ss x1 ++ ") " ++ sss x2s ++ " (" ++ ss x3 ++ ")"+showStrippedNode (JSMemberDot x1s _d x2 ) = "JSMemberDot " ++ sss x1s ++ " (" ++ ss x2 ++ ")"+showStrippedNode (JSMemberSquare x1s _lb x2 _rb) = "JSMemberSquare " ++ sss x1s ++ " (" ++ ss x2 ++ ")"+showStrippedNode (JSObjectLiteral _lb xs _rb) = "JSObjectLiteral " ++ sss xs+showStrippedNode (JSOperator n) = "JSOperator " ++ ss n+showStrippedNode (JSPropertyNameandValue x1 _colon x2s) = "JSPropertyNameandValue (" ++ ss x1 ++ ") " ++ sss x2s+showStrippedNode (JSPropertyAccessor s x1 _lb1 x2s _rb1 _lb2 x3 _rb2) = "JSPropertyAccessor " ++ show s ++ " (" ++ ss x1 ++ ") " ++ sss x2s ++ " (" ++ ss x3 ++ ")" showStrippedNode (JSRegEx s) = "JSRegEx " ++ show s-showStrippedNode (JSReturn xs) = "JSReturn " ++ sss xs+showStrippedNode (JSReturn _r xs as) = "JSReturn " ++ sss xs ++ " " ++ ss as showStrippedNode (JSSourceElements xs) = "JSSourceElements " ++ sss xs showStrippedNode (JSSourceElementsTop xs) = "JSSourceElementsTop " ++ sss xs-showStrippedNode (JSStatementBlock x) = "JSStatementBlock (" ++ ss x ++ ")"+showStrippedNode (JSStatementBlock _lb x _rb) = "JSStatementBlock (" ++ ss x ++ ")" showStrippedNode (JSStatementList xs) = "JSStatementList " ++ sss xs showStrippedNode (JSStringLiteral c s) = "JSStringLiteral " ++ show c ++ " " ++ show s-showStrippedNode (JSSwitch x x2s) = "JSSwitch (" ++ ss x ++ ") " ++ sss x2s-showStrippedNode (JSThrow x) = "JSThrow (" ++ ss x ++ ")"-showStrippedNode (JSTry x1 x2s) = "JSTry (" ++ ss x1 ++ ") " ++ sss x2s-showStrippedNode (JSUnary s) = "JSUnary " ++ show s+showStrippedNode (JSSwitch _s _lb x _rb x2s) = "JSSwitch (" ++ ss x ++ ") " ++ sss x2s+showStrippedNode (JSThrow _t x) = "JSThrow (" ++ ss x ++ ")"+showStrippedNode (JSTry _t x1 x2s) = "JSTry (" ++ ss x1 ++ ") " ++ sss x2s+showStrippedNode (JSUnary s _x) = "JSUnary " ++ show s showStrippedNode (JSVarDecl x1 x2s) = "JSVarDecl (" ++ ss x1 ++ ") " ++ sss x2s-showStrippedNode (JSVariables s xs) = "JSVariables " ++ show s ++ " " ++ sss xs-showStrippedNode (JSWhile x1 x2) = "JSWhile (" ++ ss x1 ++ ") (" ++ ss x2 ++ ")"-showStrippedNode (JSWith x1 x2s) = "JSWith (" ++ ss x1 ++ ") " ++ sss x2s+showStrippedNode (JSVariables n xs _as) = "JSVariables " ++ ss n ++ " " ++ sss xs+showStrippedNode (JSWhile _w _lb x1 _rb x2) = "JSWhile (" ++ ss x1 ++ ") (" ++ ss x2 ++ ")"+showStrippedNode (JSWith _w _lb x1 _rb x2s) = "JSWith (" ++ ss x1 ++ ") " ++ sss x2s  -- EOF
src/Language/JavaScript/Parser/Grammar5.y view
@@ -4,30 +4,34 @@   , parseLiteral   , parsePrimaryExpression   , parseStatement+  -- debug+  , fp   ) where -import Control.Monad.Error.Class (throwError)+-- import Control.Monad.Error.Class (throwError) import Data.Char import Language.JavaScript.Parser.Lexer+import Language.JavaScript.Parser.ParseError import Language.JavaScript.Parser.ParserMonad import Language.JavaScript.Parser.SrcLocation+import Language.JavaScript.Parser.Token import qualified Language.JavaScript.Parser.AST as AST  }  -- The name of the generated function to be exported from the module %name parseProgram           Program-%name parseLiteral           Literal-%name parsePrimaryExpression PrimaryExpression-%name parseStatement         Statement+%name parseLiteral           LiteralMain+%name parsePrimaryExpression PrimaryExpressionMain+%name parseStatement         StatementMain  %tokentype { Token } %error { parseError }-%monad { P } { thenP } { returnP }+%monad { Alex } { >>= } { return } %lexer { lexCont } { EOFToken {} }  -%token +%token       ';'	{ SemiColonToken {} }      ','	{ CommaToken {} }@@ -67,7 +71,7 @@      '('	{ LeftParenToken {} }      ')'	{ RightParenToken {} }      '@*/'	{ CondcommentEndToken {} }-  +      'break'      { BreakToken {} }      'case'       { CaseToken {} }      'catch'      { CatchToken {} }@@ -101,8 +105,8 @@      'void'       { VoidToken {} }      'while'      { WhileToken {} }      'with'       { WithToken {} }-     -     ++      'ident'      { IdentifierToken {} }      'decimal'    { DecimalToken {} }      'hexinteger' { HexIntegerToken {} }@@ -112,61 +116,214 @@       'future'     { FutureToken {} } +     'tail'       { TailToken {} }+     'eof'        { EOFToken {} } + %% +-- ---------------------------------------------------------------------+-- Sort out automatically inserted semi-colons --- ----------------------------------------------------------------------- Start of GOLD Grammar for Javascript, used as a base--- --------------------------------------------------------------------+AutoSemi :: { AST.JSNode }+AutoSemi : ';' { AST.NT (AST.JSLiteral ";") (ss $1) (gc $1)}+         |     { AST.NT (AST.JSLiteral "") tokenPosnEmpty []} --- "Name"     = 'JavaScript Grammar'--- "Author"   = 'M.Schnoor-Matriciani'--- "Version"  = '0.9'--- "About"    = 'JavaScript Grammar, Subset of ECMA Edition 3'+-- --------------------------------------------------------------------- --- "Start Symbol" = <Program>--- "Case Sensitive" = 'True'- --- ! ------------------------------------------------- Sets+-- Helpers --- {ID Head}      = {Letter} + [_] + [$]--- {ID Tail}      = {Alphanumeric} + [_] + [$]--- {String Chars1} = {Printable} + {HT} - ["\] --- {String Chars2} = {Printable} + {HT} - [\''] --- {Hex Digit}    = {Digit} + [ABCDEF] + [abcdef]--- {RegExp Chars} = {Letter}+{Digit}+['^']+['$']+['*']+['+']+['?']+['{']+['}']+['|']+['-']+['.']+[',']+['#']+['[']+[']']+['_']+['<']+['>']--- {Non Terminator} = {String Chars1} - {CR} - {LF}--- {Non Zero Digits}={Digit}-[0]+LParen :: { AST.JSNode }+LParen : '(' { fp (AST.NT (AST.JSLiteral "(") (ss $1) (gc $1))} --- ! ------------------------------------------------- Terminals+RParen :: { AST.JSNode }+RParen : ')' { fp (AST.NT (AST.JSLiteral ")") (ss $1) (gc $1))} --- Identifier    = {ID Head}{ID Tail}*--- StringLiteral = '"' ( {String Chars1} | '\' {Printable} )* '"' | '' ( {String Chars2} | '\' {Printable} )* '' --- HexIntegerLiteral = '0x' {Hex Digit}++LBrace :: { AST.JSNode }+LBrace : '{' { fp (AST.NT (AST.JSLiteral "{") (ss $1) (gc $1))} --- RegExp         = '/' ({RegExp Chars} | '\' {Non Terminator})+ '/' ( 'g' | 'i' | 'm' )*--- DecimalLiteral= {Non Zero Digits}+ '.' {Digit}* ('e' | 'E' ) {Non Zero Digits}+ {Digit}* |  {Non Zero Digits}+ '.' {Digit}* | '0' '.' {Digit}+ ('e' | 'E' ) {Non Zero Digits}+ {Digit}* | {Non Zero Digits}+ {Digit}* | '0' | '0' '.' {Digit}++RBrace :: { AST.JSNode }+RBrace : '}' { fp (AST.NT (AST.JSLiteral "}") (ss $1) (gc $1))} --- Comment Start = '/*'--- Comment End   = '*/'--- Comment Line  = '//' +LSquare :: { AST.JSNode }+LSquare : '[' { fp (AST.NT (AST.JSLiteral "[") (ss $1) (gc $1))} --- ! ------------------------------------------------- Rules+RSquare :: { AST.JSNode }+RSquare : ']' { fp (AST.NT (AST.JSLiteral "]") (ss $1) (gc $1))} +Comma :: { AST.JSNode }+Comma : ',' { fp (AST.NT (AST.JSLiteral ",") (ss $1) (gc $1))} +Colon :: { AST.JSNode }+Colon : ':' { fp (AST.NT (AST.JSLiteral ":") (ss $1) (gc $1))} --- ------------------------------------------------------------------------ Sort out automatically inserted semi-colons+Semi :: { AST.JSNode }+Semi : ';' { fp (AST.NT (AST.JSLiteral ";") (ss $1) (gc $1))} -AutoSemi :: { AST.JSNode }-AutoSemi : ';' { AST.NS (AST.JSLiteral ";") (ss $1)}-         |     { AST.NS (AST.JSLiteral "") SpanEmpty }-           --- ---------------------------------------------------------------------+Dot :: { AST.JSNode }+Dot : '.' { fp (AST.NT (AST.JSLiteral ".") (ss $1) (gc $1))} +Increment :: { AST.JSNode }+Increment : '++' { fp (AST.NT (AST.JSLiteral "++") (ss $1) (gc $1))}++Decrement :: { AST.JSNode }+Decrement : '--' { fp (AST.NT (AST.JSLiteral "--") (ss $1) (gc $1))}++Delete :: { AST.JSNode }+Delete : 'delete' { fp (AST.NT (AST.JSLiteral "delete") (ss $1) (gc $1))}++Void :: { AST.JSNode }+Void : 'void' { fp (AST.NT (AST.JSLiteral "void") (ss $1) (gc $1))}++Typeof :: { AST.JSNode }+Typeof : 'typeof' { fp (AST.NT (AST.JSLiteral "typeof") (ss $1) (gc $1))}++Plus :: { AST.JSNode }+Plus : '+' { fp (AST.NT (AST.JSLiteral "+") (ss $1) (gc $1))}++Minus :: { AST.JSNode }+Minus : '-' { fp (AST.NT (AST.JSLiteral "-") (ss $1) (gc $1))}++Tilde :: { AST.JSNode }+Tilde : '~' { fp (AST.NT (AST.JSLiteral "~") (ss $1) (gc $1))}++Not :: { AST.JSNode }+Not : '!' { fp (AST.NT (AST.JSLiteral "!") (ss $1) (gc $1))}++Mul :: { AST.JSNode }+Mul : '*' { fp (AST.NT (AST.JSLiteral "*") (ss $1) (gc $1))}++Div :: { AST.JSNode }+Div : '/' { fp (AST.NT (AST.JSLiteral "/") (ss $1) (gc $1))}++Mod :: { AST.JSNode }+Mod : '%' { fp (AST.NT (AST.JSLiteral "%") (ss $1) (gc $1))}++Lsh :: { AST.JSNode }+Lsh : '<<' { fp (AST.NT (AST.JSLiteral "<<") (ss $1) (gc $1))}++Rsh :: { AST.JSNode }+Rsh : '>>' { fp (AST.NT (AST.JSLiteral ">>") (ss $1) (gc $1))}++Ursh :: { AST.JSNode }+Ursh : '>>>' { fp (AST.NT (AST.JSLiteral ">>>") (ss $1) (gc $1))}++Le :: { AST.JSNode }+Le : '<=' { fp (AST.NT (AST.JSLiteral "<=") (ss $1) (gc $1))}++Lt :: { AST.JSNode }+Lt : '<' { fp (AST.NT (AST.JSLiteral "<") (ss $1) (gc $1))}++Ge :: { AST.JSNode }+Ge : '>=' { fp (AST.NT (AST.JSLiteral ">=") (ss $1) (gc $1))}++Gt :: { AST.JSNode }+Gt : '>' { fp (AST.NT (AST.JSLiteral ">") (ss $1) (gc $1))}++In :: { AST.JSNode }+In : 'in' { fp (AST.NT (AST.JSLiteral "in") (ss $1) (gc $1))}++Instanceof :: { AST.JSNode }+Instanceof : 'instanceof' { fp (AST.NT (AST.JSLiteral "instanceof") (ss $1) (gc $1))}++StrictEq :: { AST.JSNode }+StrictEq : '===' { fp (AST.NT (AST.JSLiteral "===") (ss $1) (gc $1))}++Equal :: { AST.JSNode }+Equal : '==' { fp (AST.NT (AST.JSLiteral "==") (ss $1) (gc $1))}++StrictNe :: { AST.JSNode }+StrictNe : '!==' { fp (AST.NT (AST.JSLiteral "!==") (ss $1) (gc $1))}++Ne :: { AST.JSNode }+Ne : '!=' { fp (AST.NT (AST.JSLiteral "!=") (ss $1) (gc $1))}++Or :: { AST.JSNode }+Or : '||' { fp (AST.NT (AST.JSLiteral "||") (ss $1) (gc $1))}++And :: { AST.JSNode }+And : '&&' { fp (AST.NT (AST.JSLiteral "&&") (ss $1) (gc $1))}++BitOr :: { AST.JSNode }+BitOr : '|' { fp (AST.NT (AST.JSLiteral "|") (ss $1) (gc $1))}++BitAnd :: { AST.JSNode }+BitAnd : '&' { fp (AST.NT (AST.JSLiteral "&") (ss $1) (gc $1))}++BitXor :: { AST.JSNode }+BitXor : '^' { fp (AST.NT (AST.JSLiteral "^") (ss $1) (gc $1))}++Hook :: { AST.JSNode }+Hook : '?' { fp (AST.NT (AST.JSLiteral "?") (ss $1) (gc $1))}++SimpleAssign :: { AST.JSNode }+SimpleAssign : '=' { fp (AST.NT (AST.JSLiteral "=") (ss $1) (gc $1))}++Assign :: { AST.JSNode }+Assign : 'assign' { fp (AST.NT (AST.JSLiteral (token_literal $1)) (ss $1) (gc $1))}++Var :: { AST.JSNode }+Var : 'var' { fp (AST.NT (AST.JSLiteral "var") (ss $1) (gc $1))}++Const :: { AST.JSNode }+Const : 'const' { fp (AST.NT (AST.JSLiteral "const") (ss $1) (gc $1))}++If :: { AST.JSNode }+If : 'if' { fp (AST.NT (AST.JSLiteral "if") (ss $1) (gc $1))}++Else :: { AST.JSNode }+Else : 'else' { fp (AST.NT (AST.JSLiteral "else") (ss $1) (gc $1))}++Do :: { AST.JSNode }+Do : 'do' { fp (AST.NT (AST.JSLiteral "do") (ss $1) (gc $1))}++While :: { AST.JSNode }+While : 'while' { fp (AST.NT (AST.JSLiteral "while") (ss $1) (gc $1))}++For :: { AST.JSNode }+For : 'for' { fp (AST.NT (AST.JSLiteral "for") (ss $1) (gc $1))}++Continue :: { AST.JSNode }+Continue : 'continue' { fp (AST.NT (AST.JSLiteral "continue") (ss $1) (gc $1))}++Break :: { AST.JSNode }+Break : 'break' { fp (AST.NT (AST.JSLiteral "break") (ss $1) (gc $1))}++Return :: { AST.JSNode }+Return : 'return' { fp (AST.NT (AST.JSLiteral "return") (ss $1) (gc $1))}++With :: { AST.JSNode }+With : 'with' { fp (AST.NT (AST.JSLiteral "with") (ss $1) (gc $1))}++Switch :: { AST.JSNode }+Switch : 'switch' { fp (AST.NT (AST.JSLiteral "switch") (ss $1) (gc $1))}++Case :: { AST.JSNode }+Case : 'case' { fp (AST.NT (AST.JSLiteral "case") (ss $1) (gc $1))}++Default :: { AST.JSNode }+Default : 'default' { fp (AST.NT (AST.JSLiteral "default") (ss $1) (gc $1))}++Throw :: { AST.JSNode }+Throw : 'throw' { fp (AST.NT (AST.JSLiteral "throw") (ss $1) (gc $1))}++Try :: { AST.JSNode }+Try : 'try' { fp (AST.NT (AST.JSLiteral "try") (ss $1) (gc $1))}++CatchL :: { AST.JSNode }+CatchL : 'catch' { fp (AST.NT (AST.JSLiteral "catch") (ss $1) (gc $1))}++FinallyL :: { AST.JSNode }+FinallyL : 'finally' { fp (AST.NT (AST.JSLiteral "finally") (ss $1) (gc $1))}++Function :: { AST.JSNode }+Function : 'function' { fp (AST.NT (AST.JSLiteral "function") (ss $1) (gc $1))}++Eof :: { AST.JSNode }+Eof : 'tail' { fp (AST.NT (AST.JSLiteral "") (ss $1) (gc $1))}+ -- Literal ::                                                                See 7.8 --         NullLiteral --         BooleanLiteral@@ -177,27 +334,27 @@         | BooleanLiteral  {$1}         | NumericLiteral  {$1}         | StringLiteral   {$1}-        | RegularExpressionLiteral {$1}  +        | RegularExpressionLiteral {$1}  NullLiteral :: { AST.JSNode }-NullLiteral : 'null' { AST.NS (AST.JSLiteral "null") (ss $1) }+NullLiteral : 'null' { fp (AST.NT (AST.JSLiteral "null") (ss $1) (gc $1))}  BooleanLiteral :: { AST.JSNode }-BooleanLiteral : 'true'  { AST.NS (AST.JSLiteral "true")  (ss $1)}-               | 'false' { AST.NS (AST.JSLiteral "false") (ss $1)}+BooleanLiteral : 'true'  { fp (AST.NT (AST.JSLiteral "true")  (ss $1) (gc $1)) }+               | 'false' { fp (AST.NT (AST.JSLiteral "false") (ss $1) (gc $1)) }  -- <Numeric Literal> ::= DecimalLiteral --                     | HexIntegerLiteral NumericLiteral :: { AST.JSNode }-NumericLiteral : 'decimal'    { AST.NS (AST.JSDecimal (token_literal $1)) (ss $1)}-               | 'hexinteger' { AST.NS (AST.JSHexInteger (token_literal $1)) (ss $1)}+NumericLiteral : 'decimal'    { fp (AST.NT (AST.JSDecimal (token_literal $1)) (ss $1) (gc $1))}+               | 'hexinteger' { fp (AST.NT (AST.JSHexInteger (token_literal $1)) (ss $1) (gc $1)) }  StringLiteral :: { AST.JSNode }-StringLiteral : 'string'  { AST.NS (AST.JSStringLiteral (token_delimiter $1) (token_literal $1)) (ss $1)}+StringLiteral : 'string'  { fp (AST.NT (AST.JSStringLiteral (token_delimiter $1) (token_literal $1)) (ss $1) (gc $1)) } --- <Regular Expression Literal> ::= RegExp +-- <Regular Expression Literal> ::= RegExp RegularExpressionLiteral :: { AST.JSNode }-RegularExpressionLiteral : 'regex' { AST.NS (AST.JSRegEx (token_literal $1)) (ss $1)}+RegularExpressionLiteral : 'regex' { fp (AST.NT (AST.JSRegEx (token_literal $1)) (ss $1) (gc $1)) }  -- PrimaryExpression :                                                   See 11.1 --        this@@ -207,60 +364,60 @@ --        ObjectLiteral --        ( Expression ) PrimaryExpression :: { AST.JSNode }-PrimaryExpression : 'this'                   { AST.NS (AST.JSLiteral "this") (ss $1) }+PrimaryExpression : 'this'                   { fp (AST.NT (AST.JSLiteral "this") (ss $1) (gc $1))}                   | Identifier               { $1 {- PrimaryExpression1 -}}                   | Literal                  { $1 {- PrimaryExpression2 -}}                   | ArrayLiteral             { $1 {- PrimaryExpression3 -}}                   | ObjectLiteral            { $1 {- PrimaryExpression4 -}}-                  | '(' Expression ')'       { AST.NS (AST.JSExpressionParen $2) (ss $1) }-                  +                  | LParen Expression RParen  { fp (AST.NN (AST.JSExpressionParen $1 $2 $3)) }+ -- Identifier ::                                                            See 7.6 --         IdentifierName but not ReservedWord -- IdentifierName ::                                                        See 7.6 --         IdentifierStart --         IdentifierName IdentifierPart Identifier :: { AST.JSNode }-Identifier : 'ident' { AST.NS (AST.JSIdentifier (token_literal $1)) (ss $1) }-           | 'get'   { AST.NS (AST.JSIdentifier "get") (ss $1) }  -           | 'set'   { AST.NS (AST.JSIdentifier "set") (ss $1) }  +Identifier : 'ident' {  (AST.NT (AST.JSIdentifier (token_literal $1)) (ss $1) (gc $1))}+           | 'get'   {  (AST.NT (AST.JSIdentifier "get") (ss $1) (gc $1))}+           | 'set'   {  (AST.NT (AST.JSIdentifier "set") (ss $1) (gc $1))}  -- TODO: make this include any reserved word too, including future ones IdentifierName :: { AST.JSNode } IdentifierName : Identifier {$1}-             | 'break'      { AST.NS (AST.JSIdentifier "break") (ss $1) }  -             | 'case'       { AST.NS (AST.JSIdentifier "case") (ss $1) }-             | 'catch'      { AST.NS (AST.JSIdentifier "catch") (ss $1) }-             | 'const'      { AST.NS (AST.JSIdentifier "const") (ss $1) }-             | 'continue'   { AST.NS (AST.JSIdentifier "continue") (ss $1) }-             | 'debugger'   { AST.NS (AST.JSIdentifier "debugger") (ss $1) }-             | 'default'    { AST.NS (AST.JSIdentifier "default") (ss $1) }-             | 'delete'     { AST.NS (AST.JSIdentifier "delete") (ss $1) }-             | 'do'         { AST.NS (AST.JSIdentifier "do") (ss $1) }-             | 'else'       { AST.NS (AST.JSIdentifier "else") (ss $1) }-             | 'enum'       { AST.NS (AST.JSIdentifier "enum") (ss $1) }-             | 'false'      { AST.NS (AST.JSIdentifier "false") (ss $1) }-             | 'finally'    { AST.NS (AST.JSIdentifier "finally") (ss $1) }-             | 'for'        { AST.NS (AST.JSIdentifier "for")  (ss $1)}-             | 'function'   { AST.NS (AST.JSIdentifier "function") (ss $1) }-             | 'get'        { AST.NS (AST.JSIdentifier "get") (ss $1) }-             | 'if'         { AST.NS (AST.JSIdentifier "if") (ss $1) }-             | 'in'         { AST.NS (AST.JSIdentifier "in") (ss $1) }-             | 'instanceof' { AST.NS (AST.JSIdentifier "instanceof") (ss $1) }-             | 'new'        { AST.NS (AST.JSIdentifier "new") (ss $1) }-             | 'null'       { AST.NS (AST.JSIdentifier "null") (ss $1) }-             | 'return'     { AST.NS (AST.JSIdentifier "return") (ss $1) }-             | 'set'        { AST.NS (AST.JSIdentifier "set") (ss $1) }-             | 'switch'     { AST.NS (AST.JSIdentifier "switch") (ss $1) }-             | 'this'       { AST.NS (AST.JSIdentifier "this") (ss $1) }-             | 'throw'      { AST.NS (AST.JSIdentifier "throw") (ss $1) }-             | 'true'       { AST.NS (AST.JSIdentifier "true") (ss $1) }-             | 'try'        { AST.NS (AST.JSIdentifier "try") (ss $1) }-             | 'typeof'     { AST.NS (AST.JSIdentifier "typeof") (ss $1) }-             | 'var'        { AST.NS (AST.JSIdentifier "var") (ss $1) }-             | 'void'       { AST.NS (AST.JSIdentifier "void") (ss $1) }-             | 'while'      { AST.NS (AST.JSIdentifier "while") (ss $1) }-             | 'with'       { AST.NS (AST.JSIdentifier "with") (ss $1) }-             | 'future'     { AST.NS (AST.JSIdentifier (token_literal $1)) (ss $1) }  +             | 'break'      { fp (AST.NT (AST.JSIdentifier "break") (ss $1) (gc $1))}+             | 'case'       { fp (AST.NT (AST.JSIdentifier "case") (ss $1) (gc $1))}+             | 'catch'      { fp (AST.NT (AST.JSIdentifier "catch") (ss $1) (gc $1))}+             | 'const'      { fp (AST.NT (AST.JSIdentifier "const") (ss $1) (gc $1))}+             | 'continue'   { fp (AST.NT (AST.JSIdentifier "continue") (ss $1) (gc $1))}+             | 'debugger'   { fp (AST.NT (AST.JSIdentifier "debugger") (ss $1) (gc $1))}+             | 'default'    { fp (AST.NT (AST.JSIdentifier "default") (ss $1) (gc $1))}+             | 'delete'     { fp (AST.NT (AST.JSIdentifier "delete") (ss $1) (gc $1))}+             | 'do'         { fp (AST.NT (AST.JSIdentifier "do") (ss $1) (gc $1))}+             | 'else'       { fp (AST.NT (AST.JSIdentifier "else") (ss $1) (gc $1))}+             | 'enum'       { fp (AST.NT (AST.JSIdentifier "enum") (ss $1) (gc $1))}+             | 'false'      { fp (AST.NT (AST.JSIdentifier "false") (ss $1) (gc $1))}+             | 'finally'    { fp (AST.NT (AST.JSIdentifier "finally") (ss $1) (gc $1))}+             | 'for'        { fp (AST.NT (AST.JSIdentifier "for")  (ss $1) (gc $1))}+             | 'function'   { fp (AST.NT (AST.JSIdentifier "function") (ss $1) (gc $1))}+             | 'get'        { fp (AST.NT (AST.JSIdentifier "get") (ss $1) (gc $1))}+             | 'if'         { fp (AST.NT (AST.JSIdentifier "if") (ss $1) (gc $1))}+             | 'in'         { fp (AST.NT (AST.JSIdentifier "in") (ss $1) (gc $1))}+             | 'instanceof' { fp (AST.NT (AST.JSIdentifier "instanceof") (ss $1) (gc $1))}+             | 'new'        { fp (AST.NT (AST.JSIdentifier "new") (ss $1) (gc $1))}+             | 'null'       { fp (AST.NT (AST.JSIdentifier "null") (ss $1) (gc $1))}+             | 'return'     { fp (AST.NT (AST.JSIdentifier "return") (ss $1) (gc $1))}+             | 'set'        { fp (AST.NT (AST.JSIdentifier "set") (ss $1) (gc $1))}+             | 'switch'     { fp (AST.NT (AST.JSIdentifier "switch") (ss $1) (gc $1))}+             | 'this'       { fp (AST.NT (AST.JSIdentifier "this") (ss $1) (gc $1))}+             | 'throw'      { fp (AST.NT (AST.JSIdentifier "throw") (ss $1) (gc $1))}+             | 'true'       { fp (AST.NT (AST.JSIdentifier "true") (ss $1) (gc $1))}+             | 'try'        { fp (AST.NT (AST.JSIdentifier "try") (ss $1) (gc $1))}+             | 'typeof'     { fp (AST.NT (AST.JSIdentifier "typeof") (ss $1) (gc $1))}+             | 'var'        { fp (AST.NT (AST.JSIdentifier "var") (ss $1) (gc $1))}+             | 'void'       { fp (AST.NT (AST.JSIdentifier "void") (ss $1) (gc $1))}+             | 'while'      { fp (AST.NT (AST.JSIdentifier "while") (ss $1) (gc $1))}+             | 'with'       { fp (AST.NT (AST.JSIdentifier "with") (ss $1) (gc $1))}+             | 'future'     { fp (AST.NT (AST.JSIdentifier (token_literal $1)) (ss $1) (gc $1))}   @@ -269,47 +426,51 @@ --        [ ElementList ] --        [ ElementList , Elisionopt ] ArrayLiteral :: { AST.JSNode }-ArrayLiteral : '[' ']'                         { AST.NS (AST.JSArrayLiteral []) (ss $1) }-             | '[' Elision ']'                 { AST.NS (AST.JSArrayLiteral $2) (ss $1) }-             | '[' ElementList ']'             { AST.NS (AST.JSArrayLiteral $2) (ss $1) }-             | '[' ElementList ',' Elision ']' { AST.NS (AST.JSArrayLiteral ($2++$4)) (ss $1) }-             | '[' ElementList ',' ']'         { AST.NS (AST.JSArrayLiteral ($2++[AST.NS (AST.JSLiteral ",") (ss $3)])) (ss $1) }+ArrayLiteral : LSquare RSquare                           { fp (AST.NN (AST.JSArrayLiteral $1 [] $2))}+             | LSquare Elision RSquare                   { fp (AST.NN (AST.JSArrayLiteral $1 $2 $3))}+             | LSquare ElementList RSquare               { fp (AST.NN (AST.JSArrayLiteral $1 $2 $3))}+             | LSquare ElementList Comma Elision RSquare { fp (AST.NN (AST.JSArrayLiteral $1 ($2++[$3]++$4) $5))}+             | LSquare ElementList Comma RSquare         { fp (AST.NN (AST.JSArrayLiteral $1 ($2++[$3])     $4))} ++ -- ElementList :                                                         See 11.1.4 --        Elisionopt AssignmentExpression --        ElementList , Elisionopt AssignmentExpression ElementList :: { [AST.JSNode] } ElementList : Elision AssignmentExpression                 { (($1)++($2)) {- ElementList -}}-            | AssignmentExpression                         { $1 {- ElementList -}}-            | ElementList ',' Elision AssignmentExpression { (($1)++[(AST.NS (AST.JSElision []) (ss $2))]++($3)++($4)) {- ElementList -}}-            | ElementList ',' AssignmentExpression         { (($1)++[(AST.NS (AST.JSElision []) (ss $2))]++($3)) {- ElementList -}}+            | AssignmentExpression                         { $1           {- ElementList -}}+            | ElementList Comma Elision AssignmentExpression { (($1)++[fp (AST.NN (AST.JSElision $2))]++($3)++($4)) {- ElementList -}}+            | ElementList Comma AssignmentExpression         { (($1)++[fp (AST.NN (AST.JSElision $2))]++($3)) {- ElementList -}} + -- Elision :                                                             See 11.1.4 --        , --        Elision , Elision :: { [AST.JSNode] }-Elision :  ','        { [AST.NS (AST.JSElision []) SpanEmpty] }-        | Elision ',' { ($1 ++ [(AST.NS (AST.JSElision []) SpanEmpty)]) }+Elision : Comma        { [        fp (AST.NN (AST.JSElision $1))] }+        | Elision Comma { ($1 ++ [fp (AST.NN (AST.JSElision $2))]) }  -- ObjectLiteral :                                                       See 11.1.5 --        { } --        { PropertyNameAndValueList } --        { PropertyNameAndValueList , } ObjectLiteral :: { AST.JSNode }-ObjectLiteral : '{' '}'                          { AST.NS (AST.JSObjectLiteral []) (ss $1)}-              | '{' PropertyNameandValueList '}' { AST.NS (AST.JSObjectLiteral $2) (ss $1)} -              | '{' PropertyNameandValueList ',' '}' { AST.NS (AST.JSObjectLiteral ($2++[AST.NS (AST.JSLiteral ",") (ss $3)])) (ss $1)} +ObjectLiteral : LBrace RBrace                                { fp (AST.NN (AST.JSObjectLiteral $1 [] $2)         )}+              | LBrace PropertyNameandValueList RBrace       { fp (AST.NN (AST.JSObjectLiteral $1 $2 $3)         )}+              | LBrace PropertyNameandValueList Comma RBrace { fp (AST.NN (AST.JSObjectLiteral $1 ($2++[$3]) $4) )}  -- <Property Name and Value List> ::= <Property Name> ':' <Assignment Expression> --                                  | <Property Name and Value List> ',' <Property Name> ':' <Assignment Expression> --- Seems we can have function declarations in the value part too                           +-- Seems we can have function declarations in the value part too -- PropertyNameAndValueList :                                            See 11.1.5 --        PropertyAssignment --        PropertyNameAndValueList , PropertyAssignment PropertyNameandValueList :: { [ AST.JSNode ] } PropertyNameandValueList : PropertyAssignment                              { [$1] {- PropertyNameandValueList1 -} }-                         | PropertyNameandValueList ',' PropertyAssignment { ($1 ++ [$3]) {- PropertyNameandValueList2 -} }+                         -- | PropertyNameandValueList ',' PropertyAssignment { ($1 ++ [(AST.NT (AST.JSLiteral ",") (ss $2) (gc $2))] ++ [$3]) {- PropertyNameandValueList2 -} }+                         | PropertyNameandValueList Comma PropertyAssignment { ($1++[$2]++[$3]) {- PropertyNameandValueList2 -} }  -- PropertyAssignment :                                                  See 11.1.5 --        PropertyName : AssignmentExpression@@ -317,12 +478,13 @@ --        set PropertyName( PropertySetParameterList ) { FunctionBody } -- TODO: not clear if get/set are keywords, or just used in a specific context. Puzzling. PropertyAssignment :: { AST.JSNode }-PropertyAssignment : PropertyName ':' AssignmentExpression { (AST.NS (AST.JSPropertyNameandValue $1 $3) (ex $1)) }+PropertyAssignment : PropertyName Colon AssignmentExpression { fp (AST.NN (AST.JSPropertyNameandValue $1 $2 $3)) }                    -- Should be "get" in next, but is not a Token-                   | 'get' PropertyName '(' ')' '{' FunctionBody '}' { (AST.NS (AST.JSPropertyAccessor "get" $2 [] $6) (ss $1)) }+                   | 'get' PropertyName LParen RParen LBrace FunctionBody RBrace+                       { fp (AST.NN (AST.JSPropertyAccessor (AST.NT (AST.JSLiteral "get") (ss $1) (gc $1)) $2 $3 [] $4 $5 $6 $7)) }                    -- Should be "set" in next, but is not a Token-                   | 'set' PropertyName '(' PropertySetParameterList ')' '{' FunctionBody '}' -                       { (AST.NS (AST.JSPropertyAccessor "set" $2 [$4] $7) (ss $1)) }+                   | 'set' PropertyName LParen PropertySetParameterList RParen LBrace FunctionBody RBrace+                       { fp (AST.NN (AST.JSPropertyAccessor (AST.NT (AST.JSLiteral "set") (ss $1) (gc $1)) $2 $3 [$4] $5 $6 $7 $8)) }  -- PropertyName :                                                        See 11.1.5 --        IdentifierName@@ -345,18 +507,18 @@ --        MemberExpression . IdentifierName --        new MemberExpression Arguments MemberExpression :: { [AST.JSNode] }-MemberExpression : PrimaryExpression   { [$1] {- MemberExpression -}} +MemberExpression : PrimaryExpression   { [$1] {- MemberExpression -}}                  | FunctionExpression  { [$1] {- MemberExpression -}}-                 | MemberExpression '[' Expression ']' { [AST.NS (AST.JSMemberSquare $1 $3) (mex $1)] }-                 | MemberExpression '.' IdentifierName { [AST.NS (AST.JSMemberDot $1 $3) (mex $1)] } -                 | 'new' MemberExpression Arguments    { (((AST.NS (AST.JSLiteral "new ") (ss $1)):$2)++[$3])}+                 | MemberExpression LSquare Expression RSquare { [fp (AST.NN (AST.JSMemberSquare $1 $2 $3 $4))] }+                 | MemberExpression Dot IdentifierName { [fp (AST.NN (AST.JSMemberDot $1 $2 $3))] }+                 | 'new' MemberExpression Arguments    { (((fp (AST.NT (AST.JSLiteral "new") (ss $1) (gc $1))):$2)++[$3])}  -- NewExpression :                                              See 11.2 --        MemberExpression --        new NewExpression NewExpression :: { [AST.JSNode] }-NewExpression : MemberExpression {$1 {- NewExpression -}} -              | 'new' NewExpression { (AST.NS (AST.JSLiteral "new ") (ss $1)):$2 }+NewExpression : MemberExpression {$1 {- NewExpression -}}+              | 'new' NewExpression { (fp (AST.NT (AST.JSLiteral "new") (ss $1) (gc $1))):$2 }  -- CallExpression :                                             See 11.2 --        MemberExpression Arguments@@ -364,31 +526,31 @@ --        CallExpression [ Expression ] --        CallExpression . IdentifierName CallExpression :: { [AST.JSNode] }-CallExpression : MemberExpression Arguments        { $1++[$2] {- CallExpression -} } -               | CallExpression Arguments          { ($1++[(AST.NS (AST.JSCallExpression "()" [$2]) (mex $1))]) }-               | CallExpression '[' Expression ']' { ($1++[(AST.NS (AST.JSCallExpression "[]" [$3]) (mex $1))]) }-               | CallExpression '.' IdentifierName { ($1++[(AST.NS (AST.JSCallExpression "."  [$3]) (mex $1))]) }+CallExpression : MemberExpression Arguments        { $1++[$2] {- CallExpression -} }+               | CallExpression Arguments          { ($1++[fp (AST.NN (AST.JSCallExpression "()" [] [$2] []))]) }+               | CallExpression LSquare Expression RSquare { ($1++[fp (AST.NN (AST.JSCallExpression "[]" [$2] [$3] [$4]))]) }+               | CallExpression Dot IdentifierName { ($1++[fp (AST.NN (AST.JSCallExpression "."  [$2] [$3] []))]) }  -- Arguments :                                                  See 11.2 --        () --        ( ArgumentList ) Arguments :: { AST.JSNode }-Arguments : '(' ')'               { (AST.NS (AST.JSArguments []) (ss $1)) } -          | '(' ArgumentList ')'  { (AST.NS (AST.JSArguments $2) (ss $1)) }+Arguments : LParen RParen               { fp (AST.NN (AST.JSArguments $1 [] $2)) }+          | LParen ArgumentList RParen  { fp (AST.NN (AST.JSArguments $1 $2 $3)) }  -- ArgumentList :                                               See 11.2 --        AssignmentExpression --        ArgumentList , AssignmentExpression-ArgumentList :: { [[AST.JSNode]] }-ArgumentList : AssignmentExpression { [$1] {- ArgumentList -}}-             | ArgumentList ',' AssignmentExpression { $1++[$3] {- ArgumentList2 -} }+ArgumentList :: { [AST.JSNode] }+ArgumentList : AssignmentExpression { $1 {- ArgumentList -}}+             | ArgumentList Comma AssignmentExpression { $1++[$2]++$3 {- ArgumentList2 -} }  -- LeftHandSideExpression :                                     See 11.2 --        NewExpression --        CallExpression LeftHandSideExpression :: { [AST.JSNode] } LeftHandSideExpression : NewExpression  { $1 {- LeftHandSideExpression1 -}}-                       | CallExpression { $1 {- LeftHandSideExpression12 -}} +                       | CallExpression { $1 {- LeftHandSideExpression12 -}}  -- PostfixExpression :                                          See 11.3 --        LeftHandSideExpression@@ -397,9 +559,9 @@ --                                  [no LineTerminator here] --        LeftHandSideExpression                             -- PostfixExpression :: { [AST.JSNode] }-PostfixExpression : LeftHandSideExpression { $1 {- PostfixExpression -} } -                  | PostfixExpression '++' {[(AST.NS (AST.JSExpressionPostfix "++" $1) (mex $1))]}-                  | PostfixExpression '--' {[(AST.NS (AST.JSExpressionPostfix "--" $1) (mex $1))]}+PostfixExpression : LeftHandSideExpression { $1 {- PostfixExpression -} }+                  | PostfixExpression Increment {[fp (AST.NN (AST.JSExpressionPostfix "++" $1 $2))]}+                  | PostfixExpression Decrement {[fp (AST.NN (AST.JSExpressionPostfix "--" $1 $2))]}  -- UnaryExpression :                                            See 11.4 --        PostfixExpression@@ -413,16 +575,16 @@ --        ~ UnaryExpression --        ! UnaryExpression UnaryExpression :: { [AST.JSNode] }-UnaryExpression : PostfixExpression { $1 {- UnaryExpression -} } -                | 'delete' UnaryExpression { ((AST.NS (AST.JSUnary "delete ") (ss $1)):$2)}-                | 'void'   UnaryExpression { ((AST.NS (AST.JSUnary "void ") (ss $1)):$2)}-                | 'typeof' UnaryExpression { ((AST.NS (AST.JSUnary "typeof ") (ss $1)):$2)}-                | '++'     UnaryExpression { ((AST.NS (AST.JSUnary "++") (ss $1)):$2) } -                | '--'     UnaryExpression { ((AST.NS (AST.JSUnary "--") (ss $1)):$2)}-                | '+'      UnaryExpression { ((AST.NS (AST.JSUnary "+") (ss $1)):$2)}-                | '-'      UnaryExpression { ((AST.NS (AST.JSUnary "-") (ss $1)):$2)}-                | '~'      UnaryExpression { ((AST.NS (AST.JSUnary "~") (ss $1)):$2)}-                | '!'      UnaryExpression { ((AST.NS (AST.JSUnary "!") (ss $1)):$2)}+UnaryExpression : PostfixExpression { $1 {- UnaryExpression -} }+                | Delete    UnaryExpression { ((fp (AST.NN (AST.JSUnary "delete " $1))):$2)}+                | Void      UnaryExpression { ((fp (AST.NN (AST.JSUnary "void "   $1))):$2)}+                | Typeof    UnaryExpression { ((fp (AST.NN (AST.JSUnary "typeof " $1))):$2)}+                | Increment UnaryExpression { ((fp (AST.NN (AST.JSUnary "++"      $1))):$2) }+                | Decrement UnaryExpression { ((fp (AST.NN (AST.JSUnary "--"      $1))):$2)}+                | Plus      UnaryExpression { ((fp (AST.NN (AST.JSUnary "+"       $1))):$2)}+                | Minus     UnaryExpression { ((fp (AST.NN (AST.JSUnary "-"       $1))):$2)}+                | Tilde     UnaryExpression { ((fp (AST.NN (AST.JSUnary "~"       $1))):$2)}+                | Not       UnaryExpression { ((fp (AST.NN (AST.JSUnary "!"       $1))):$2)}  -- MultiplicativeExpression :                                   See 11.5 --        UnaryExpression@@ -430,19 +592,19 @@ --        MultiplicativeExpression / UnaryExpression --        MultiplicativeExpression % UnaryExpression MultiplicativeExpression :: { [AST.JSNode] }-MultiplicativeExpression : UnaryExpression { $1 {- MultiplicativeExpression -}} -                         | MultiplicativeExpression '*' UnaryExpression { [(AST.NS (AST.JSExpressionBinary "*" $1 $3) (mex $1))]}-                         | MultiplicativeExpression '/' UnaryExpression { [(AST.NS (AST.JSExpressionBinary "/" $1 $3) (mex $1))]}-                         | MultiplicativeExpression '%' UnaryExpression { [(AST.NS (AST.JSExpressionBinary "%" $1 $3) (mex $1))]}+MultiplicativeExpression : UnaryExpression { $1 {- MultiplicativeExpression -}}+                         | MultiplicativeExpression Mul UnaryExpression { [fp (AST.NN (AST.JSExpressionBinary "*" $1 $2 $3))]}+                         | MultiplicativeExpression Div UnaryExpression { [fp (AST.NN (AST.JSExpressionBinary "/" $1 $2 $3))]}+                         | MultiplicativeExpression Mod UnaryExpression { [fp (AST.NN (AST.JSExpressionBinary "%" $1 $2 $3))]}  -- AdditiveExpression :                                        See 11.6 --        MultiplicativeExpression --        AdditiveExpression + MultiplicativeExpression --        AdditiveExpression - MultiplicativeExpression AdditiveExpression :: { [AST.JSNode] }-AdditiveExpression : AdditiveExpression '+' MultiplicativeExpression { [(AST.NS (AST.JSExpressionBinary "+" $1 $3) (mex $1))]}-                   | AdditiveExpression '-' MultiplicativeExpression { [(AST.NS (AST.JSExpressionBinary "-" $1 $3) (mex $1))]}-                   | MultiplicativeExpression { $1 {- (goRegExp $1)-} {- AdditiveExpression -} } +AdditiveExpression : AdditiveExpression Plus  MultiplicativeExpression { [fp (AST.NN (AST.JSExpressionBinary "+" $1 $2 $3))]}+                   | AdditiveExpression Minus MultiplicativeExpression { [fp (AST.NN (AST.JSExpressionBinary "-" $1 $2 $3))]}+                   | MultiplicativeExpression { $1 {- (goRegExp $1)-} {- AdditiveExpression -} }  -- ShiftExpression :                                           See 11.7 --        AdditiveExpression@@ -450,10 +612,10 @@ --        ShiftExpression >> AdditiveExpression --        ShiftExpression >>> AdditiveExpression ShiftExpression :: { [AST.JSNode] }-ShiftExpression : ShiftExpression '<<'  AdditiveExpression { [(AST.NS (AST.JSExpressionBinary "<<" $1 $3) (mex $1))]}-                | ShiftExpression '>>'  AdditiveExpression { [(AST.NS (AST.JSExpressionBinary ">>" $1 $3) (mex $1))]}-                | ShiftExpression '>>>' AdditiveExpression { [(AST.NS (AST.JSExpressionBinary ">>>" $1 $3) (mex $1))]}-                | AdditiveExpression { $1 {- ShiftExpression -}} +ShiftExpression : ShiftExpression Lsh  AdditiveExpression { [fp (AST.NN (AST.JSExpressionBinary "<<"  $1 $2 $3))]}+                | ShiftExpression Rsh  AdditiveExpression { [fp (AST.NN (AST.JSExpressionBinary ">>"  $1 $2 $3))]}+                | ShiftExpression Ursh AdditiveExpression { [fp (AST.NN (AST.JSExpressionBinary ">>>" $1 $2 $3))]}+                | AdditiveExpression { $1 {- ShiftExpression -}}  -- RelationalExpression :                                      See 11.8 --        ShiftExpression@@ -464,13 +626,13 @@ --        RelationalExpression instanceof ShiftExpression --        RelationalExpression in ShiftExpression RelationalExpression :: { [AST.JSNode] }-RelationalExpression : ShiftExpression { $1 {- RelationalExpression -}} -                     | RelationalExpression '<'  ShiftExpression { [(AST.NS (AST.JSExpressionBinary "<" $1 $3) (mex $1))]}-                     | RelationalExpression '>'  ShiftExpression { [(AST.NS (AST.JSExpressionBinary ">" $1 $3) (mex $1))]}-                     | RelationalExpression '<=' ShiftExpression { [(AST.NS (AST.JSExpressionBinary "<=" $1 $3) (mex $1))]}-                     | RelationalExpression '>=' ShiftExpression { [(AST.NS (AST.JSExpressionBinary ">=" $1 $3) (mex $1))]}-                     | RelationalExpression 'instanceof' ShiftExpression { [(AST.NS (AST.JSExpressionBinary " instanceof " $1 $3) (mex $1))]}-                     | RelationalExpression 'in' ShiftExpression { [(AST.NS (AST.JSExpressionBinary " in " $1 $3) (mex $1))]}+RelationalExpression : ShiftExpression { $1 {- RelationalExpression -}}+                     | RelationalExpression Lt  ShiftExpression { [fp (AST.NN (AST.JSExpressionBinary "<"  $1 $2 $3))]}+                     | RelationalExpression Gt  ShiftExpression { [fp (AST.NN (AST.JSExpressionBinary ">"  $1 $2 $3))]}+                     | RelationalExpression Le  ShiftExpression { [fp (AST.NN (AST.JSExpressionBinary "<=" $1 $2 $3))]}+                     | RelationalExpression Ge  ShiftExpression { [fp (AST.NN (AST.JSExpressionBinary ">=" $1 $2 $3))]}+                     | RelationalExpression Instanceof ShiftExpression { [fp (AST.NN (AST.JSExpressionBinary " instanceof " $1 $2 $3))]}+                     | RelationalExpression In         ShiftExpression { [fp (AST.NN (AST.JSExpressionBinary " in "         $1 $2 $3))]}  -- RelationalExpressionNoIn :                                  See 11.8 --        ShiftExpression@@ -480,12 +642,12 @@ --        RelationalExpressionNoIn >= ShiftExpression --        RelationalExpressionNoIn instanceof ShiftExpression RelationalExpressionNoIn :: { [AST.JSNode] }-RelationalExpressionNoIn : ShiftExpression { $1 {- RelationalExpressionNoIn -}} -                     | RelationalExpressionNoIn '<'  ShiftExpression { [(AST.NS (AST.JSExpressionBinary "<" $1 $3) (mex $1))]}-                     | RelationalExpressionNoIn '>'  ShiftExpression { [(AST.NS (AST.JSExpressionBinary ">" $1 $3) (mex $1))]}-                     | RelationalExpressionNoIn '<=' ShiftExpression { [(AST.NS (AST.JSExpressionBinary "<=" $1 $3) (mex $1))]}-                     | RelationalExpressionNoIn '>=' ShiftExpression { [(AST.NS (AST.JSExpressionBinary ">=" $1 $3) (mex $1))]}-                     | RelationalExpressionNoIn 'instanceof' ShiftExpression { [(AST.NS (AST.JSExpressionBinary " instanceof " $1 $3) (mex $1))]}+RelationalExpressionNoIn : ShiftExpression { $1 {- RelationalExpressionNoIn -}}+                     | RelationalExpressionNoIn Lt  ShiftExpression { [fp (AST.NN (AST.JSExpressionBinary "<"  $1 $2 $3))]}+                     | RelationalExpressionNoIn Gt  ShiftExpression { [fp (AST.NN (AST.JSExpressionBinary ">"  $1 $2 $3))]}+                     | RelationalExpressionNoIn Le  ShiftExpression { [fp (AST.NN (AST.JSExpressionBinary "<=" $1 $2 $3))]}+                     | RelationalExpressionNoIn Ge  ShiftExpression { [fp (AST.NN (AST.JSExpressionBinary ">=" $1 $2 $3))]}+                     | RelationalExpressionNoIn Instanceof ShiftExpression { [fp (AST.NN (AST.JSExpressionBinary " instanceof " $1 $2 $3))]}  -- EqualityExpression :                                        See 11.9 --        RelationalExpression@@ -494,11 +656,11 @@ --        EqualityExpression === RelationalExpression --        EqualityExpression !== RelationalExpression EqualityExpression :: { [AST.JSNode] }-EqualityExpression : RelationalExpression { $1 {- EqualityExpression -} } -                   | EqualityExpression '=='  RelationalExpression { [(AST.NS (AST.JSExpressionBinary "==" $1 $3) (mex $1))]}-                   | EqualityExpression '!='  RelationalExpression { [(AST.NS (AST.JSExpressionBinary "!=" $1 $3) (mex $1))]}-                   | EqualityExpression '===' RelationalExpression { [(AST.NS (AST.JSExpressionBinary "===" $1 $3) (mex $1))]}-                   | EqualityExpression '!==' RelationalExpression { [(AST.NS (AST.JSExpressionBinary "!==" $1 $3) (mex $1))]}+EqualityExpression : RelationalExpression { $1 {- EqualityExpression -} }+                   | EqualityExpression Equal    RelationalExpression { [fp (AST.NN (AST.JSExpressionBinary "=="  $1 $2 $3))]}+                   | EqualityExpression Ne       RelationalExpression { [fp (AST.NN (AST.JSExpressionBinary "!="  $1 $2 $3))]}+                   | EqualityExpression StrictEq RelationalExpression { [fp (AST.NN (AST.JSExpressionBinary "===" $1 $2 $3))]}+                   | EqualityExpression StrictNe RelationalExpression { [fp (AST.NN (AST.JSExpressionBinary "!==" $1 $2 $3))]}  -- EqualityExpressionNoIn :                                    See 11.9 --        RelationalExpressionNoIn@@ -507,133 +669,133 @@ --        EqualityExpressionNoIn === RelationalExpressionNoIn --        EqualityExpressionNoIn !== RelationalExpressionNoIn EqualityExpressionNoIn :: { [AST.JSNode] }-EqualityExpressionNoIn : RelationalExpressionNoIn { $1 {- EqualityExpressionNoIn -} } -                       | EqualityExpressionNoIn '=='  RelationalExpression { [(AST.NS (AST.JSExpressionBinary "==" $1 $3) (mex $1))]}-                       | EqualityExpressionNoIn '!='  RelationalExpression { [(AST.NS (AST.JSExpressionBinary "!=" $1 $3) (mex $1))]}-                       | EqualityExpressionNoIn '===' RelationalExpression { [(AST.NS (AST.JSExpressionBinary "===" $1 $3) (mex $1))]}-                       | EqualityExpressionNoIn '!==' RelationalExpression { [(AST.NS (AST.JSExpressionBinary "!==" $1 $3) (mex $1))]}+EqualityExpressionNoIn : RelationalExpressionNoIn { $1 {- EqualityExpressionNoIn -} }+                       | EqualityExpressionNoIn Equal    RelationalExpression { [fp (AST.NN (AST.JSExpressionBinary "=="  $1 $2 $3))]}+                       | EqualityExpressionNoIn Ne       RelationalExpression { [fp (AST.NN (AST.JSExpressionBinary "!="  $1 $2 $3))]}+                       | EqualityExpressionNoIn StrictEq RelationalExpression { [fp (AST.NN (AST.JSExpressionBinary "===" $1 $2 $3))]}+                       | EqualityExpressionNoIn StrictNe RelationalExpression { [fp (AST.NN (AST.JSExpressionBinary "!==" $1 $2 $3))]}  -- BitwiseANDExpression :                                      See 11.10 --        EqualityExpression --        BitwiseANDExpression & EqualityExpression BitwiseAndExpression :: { [AST.JSNode] }-BitwiseAndExpression : EqualityExpression { $1 {- BitwiseAndExpression -} } -                     | BitwiseAndExpression '&' EqualityExpression { [(AST.NS (AST.JSExpressionBinary "&" $1 $3) (mex $1))]}+BitwiseAndExpression : EqualityExpression { $1 {- BitwiseAndExpression -} }+                     | BitwiseAndExpression BitAnd EqualityExpression { [fp (AST.NN (AST.JSExpressionBinary "&" $1 $2 $3))]}  -- BitwiseANDExpressionNoIn :                                  See 11.10 --        EqualityExpressionNoIn --        BitwiseANDExpressionNoIn & EqualityExpressionNoIn BitwiseAndExpressionNoIn :: { [AST.JSNode] }-BitwiseAndExpressionNoIn : EqualityExpressionNoIn { $1 {- BitwiseAndExpression -} } -                     | BitwiseAndExpressionNoIn '&' EqualityExpressionNoIn { [(AST.NS (AST.JSExpressionBinary "&" $1 $3) (mex $1))]}+BitwiseAndExpressionNoIn : EqualityExpressionNoIn { $1 {- BitwiseAndExpression -} }+                     | BitwiseAndExpressionNoIn BitAnd EqualityExpressionNoIn { [fp (AST.NN (AST.JSExpressionBinary "&" $1 $2 $3))]}  -- BitwiseXORExpression :                                                                See 11.10 --        BitwiseANDExpression --        BitwiseXORExpression ^ BitwiseANDExpression BitwiseXOrExpression :: { [AST.JSNode] }-BitwiseXOrExpression : BitwiseAndExpression { $1 {- BitwiseXOrExpression -} } -                     | BitwiseXOrExpression '^' BitwiseAndExpression { [(AST.NS (AST.JSExpressionBinary "^" $1 $3) (mex $1))]}+BitwiseXOrExpression : BitwiseAndExpression { $1 {- BitwiseXOrExpression -} }+                     | BitwiseXOrExpression BitXor BitwiseAndExpression { [fp (AST.NN (AST.JSExpressionBinary "^" $1 $2 $3))]}  -- BitwiseXORExpressionNoIn :                                                            See 11.10 --        BitwiseANDExpressionNoIn --        BitwiseXORExpressionNoIn ^ BitwiseANDExpressionNoIn BitwiseXOrExpressionNoIn :: { [AST.JSNode] }-BitwiseXOrExpressionNoIn : BitwiseAndExpressionNoIn { $1 {- BitwiseXOrExpression -} } -                         | BitwiseXOrExpressionNoIn '^' BitwiseAndExpressionNoIn { [(AST.NS (AST.JSExpressionBinary "^" $1 $3) (mex $1))]}+BitwiseXOrExpressionNoIn : BitwiseAndExpressionNoIn { $1 {- BitwiseXOrExpression -} }+                         | BitwiseXOrExpressionNoIn BitXor BitwiseAndExpressionNoIn { [fp (AST.NN (AST.JSExpressionBinary "^" $1 $2 $3))]}  -- BitwiseORExpression :                                                                 See 11.10 --        BitwiseXORExpression --        BitwiseORExpression | BitwiseXORExpression BitwiseOrExpression :: { [AST.JSNode] }-BitwiseOrExpression : BitwiseXOrExpression { $1 {- BitwiseOrExpression -} } -                    | BitwiseOrExpression '|' BitwiseXOrExpression { [(AST.NS (AST.JSExpressionBinary "|" $1 $3) (mex $1))]}+BitwiseOrExpression : BitwiseXOrExpression { $1 {- BitwiseOrExpression -} }+                    | BitwiseOrExpression BitOr BitwiseXOrExpression { [fp (AST.NN (AST.JSExpressionBinary "|" $1 $2 $3))]}  -- BitwiseORExpressionNoIn :                                                             See 11.10 --        BitwiseXORExpressionNoIn --        BitwiseORExpressionNoIn | BitwiseXORExpressionNoIn BitwiseOrExpressionNoIn :: { [AST.JSNode] }-BitwiseOrExpressionNoIn : BitwiseXOrExpressionNoIn { $1 {- BitwiseOrExpression -} } -                        | BitwiseOrExpressionNoIn '|' BitwiseXOrExpressionNoIn { [(AST.NS (AST.JSExpressionBinary "|" $1 $3) (mex $1))]}+BitwiseOrExpressionNoIn : BitwiseXOrExpressionNoIn { $1 {- BitwiseOrExpression -} }+                        | BitwiseOrExpressionNoIn BitOr BitwiseXOrExpressionNoIn { [fp (AST.NN (AST.JSExpressionBinary "|" $1 $2 $3))]}  -- LogicalANDExpression :                                                                See 11.11 --        BitwiseORExpression --        LogicalANDExpression && BitwiseORExpression LogicalAndExpression :: { [AST.JSNode] }-LogicalAndExpression : BitwiseOrExpression { $1 {- LogicalAndExpression -} } -                     | LogicalAndExpression '&&' BitwiseOrExpression { [(AST.NS (AST.JSExpressionBinary "&&" $1 $3) (mex $1))]}+LogicalAndExpression : BitwiseOrExpression { $1 {- LogicalAndExpression -} }+                     | LogicalAndExpression And BitwiseOrExpression { [fp (AST.NN (AST.JSExpressionBinary "&&" $1 $2 $3))]}  -- LogicalANDExpressionNoIn :                                                            See 11.11 --        BitwiseORExpressionNoIn --        LogicalANDExpressionNoIn && BitwiseORExpressionNoIn LogicalAndExpressionNoIn :: { [AST.JSNode] }-LogicalAndExpressionNoIn : BitwiseOrExpressionNoIn { $1 {- LogicalAndExpression -} } -                         | LogicalAndExpressionNoIn '&&' BitwiseOrExpressionNoIn { [(AST.NS (AST.JSExpressionBinary "&&" $1 $3) (mex $1))]}+LogicalAndExpressionNoIn : BitwiseOrExpressionNoIn { $1 {- LogicalAndExpression -} }+                         | LogicalAndExpressionNoIn And BitwiseOrExpressionNoIn { [fp (AST.NN (AST.JSExpressionBinary "&&" $1 $2 $3))]}  -- LogicalORExpression :                                                                 See 11.11 --        LogicalANDExpression --        LogicalORExpression || LogicalANDExpression LogicalOrExpression :: { [AST.JSNode] }-LogicalOrExpression : LogicalAndExpression { $1 {- LogicalOrExpression -} } -                    | LogicalOrExpression '||' LogicalAndExpression { [(AST.NS (AST.JSExpressionBinary "||" $1 $3) (mex $1))]}+LogicalOrExpression : LogicalAndExpression { $1 {- LogicalOrExpression -} }+                    | LogicalOrExpression Or LogicalAndExpression { [fp (AST.NN (AST.JSExpressionBinary "||" $1 $2 $3))]}  -- LogicalORExpressionNoIn :                                                             See 11.11 --        LogicalANDExpressionNoIn --        LogicalORExpressionNoIn || LogicalANDExpressionNoIn LogicalOrExpressionNoIn :: { [AST.JSNode] }-LogicalOrExpressionNoIn : LogicalAndExpressionNoIn { $1 {- LogicalOrExpression -} } -                        | LogicalOrExpressionNoIn '||' LogicalAndExpressionNoIn { [(AST.NS (AST.JSExpressionBinary "||" $1 $3) (mex $1))]}+LogicalOrExpressionNoIn : LogicalAndExpressionNoIn { $1 {- LogicalOrExpression -} }+                        | LogicalOrExpressionNoIn Or LogicalAndExpressionNoIn { [fp (AST.NN (AST.JSExpressionBinary "||" $1 $2 $3))]}  -- ConditionalExpression :                                                               See 11.12 --        LogicalORExpression --        LogicalORExpression ? AssignmentExpression : AssignmentExpression ConditionalExpression :: { [AST.JSNode] } ConditionalExpression : LogicalOrExpression { $1 {- ConditionalExpression -} }-                      | LogicalOrExpression '?' AssignmentExpression ':' AssignmentExpression -                        { [AST.NS (AST.JSExpressionTernary $1 $3 $5) (mex $1)] } -                    +                      | LogicalOrExpression Hook AssignmentExpression Colon AssignmentExpression+                        { [fp (AST.NN (AST.JSExpressionTernary $1 $2 $3 $4 $5))] }+ -- ConditionalExpressionNoIn :                                                           See 11.12 --        LogicalORExpressionNoIn --        LogicalORExpressionNoIn ? AssignmentExpressionNoIn : AssignmentExpressionNoIn ConditionalExpressionNoIn :: { [AST.JSNode] } ConditionalExpressionNoIn : LogicalOrExpressionNoIn { $1 {- ConditionalExpression -} }-                          | LogicalOrExpressionNoIn '?' AssignmentExpressionNoIn ':' AssignmentExpressionNoIn-                            { [AST.NS (AST.JSExpressionTernary $1 $3 $5) (mex $1)] } -  +                          | LogicalOrExpressionNoIn Hook AssignmentExpressionNoIn Colon AssignmentExpressionNoIn+                            { [fp (AST.NN (AST.JSExpressionTernary $1 $2 $3 $4 $5))] }+ -- AssignmentExpression :                                                                See 11.13 --        ConditionalExpression --        LeftHandSideExpression AssignmentOperator AssignmentExpression AssignmentExpression :: { [AST.JSNode] }-AssignmentExpression : ConditionalExpression { $1 {- AssignmentExpression -}} -                     | LeftHandSideExpression AssignmentOperator AssignmentExpression +AssignmentExpression : ConditionalExpression { $1 {- AssignmentExpression -}}+                     | LeftHandSideExpression AssignmentOperator AssignmentExpression                        { ($1++[$2]++$3) }-                       + -- AssignmentExpressionNoIn :                                                            See 11.13 --        ConditionalExpressionNoIn --        LeftHandSideExpression AssignmentOperator AssignmentExpressionNoIn AssignmentExpressionNoIn :: { [AST.JSNode] }-AssignmentExpressionNoIn : ConditionalExpressionNoIn { $1 {- AssignmentExpression -}} -                         | LeftHandSideExpression AssignmentOperator AssignmentExpressionNoIn +AssignmentExpressionNoIn : ConditionalExpressionNoIn { $1 {- AssignmentExpression -}}+                         | LeftHandSideExpression AssignmentOperator AssignmentExpressionNoIn                            { ($1++[$2]++$3) }  -- AssignmentOperator : one of                                                           See 11.13 --     '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '>>>=' | '&=' | '^=' | '|=' AssignmentOperator :: { AST.JSNode }-AssignmentOperator : 'assign' { AST.NS (AST.JSOperator (token_literal $1)) (ss $1) }-                   | '='      { AST.NS (AST.JSOperator "=") (ss $1)}+AssignmentOperator : Assign       { fp (AST.NN (AST.JSOperator $1))}+                   | SimpleAssign { fp (AST.NN (AST.JSOperator $1))}  -- Expression :                                                   See 11.14 --         AssignmentExpression --         Expression , AssignmentExpression Expression :: { AST.JSNode }-Expression : AssignmentExpression { AST.NS (AST.JSExpression $1) (mex $1) {- Expression -} } -           | Expression ',' AssignmentExpression  { flattenExpression $1 $3 }+Expression : AssignmentExpression { fp (AST.NN (AST.JSExpression $1)) {- Expression -} }+           | Expression Comma AssignmentExpression  { fp (AST.NN (AST.JSExpression ($1:[$2]++$3))) {- Expression2 -} }  -- ExpressionNoIn :                                               See 11.14 --         AssignmentExpressionNoIn --         ExpressionNoIn , AssignmentExpressionNoIn ExpressionNoIn :: { AST.JSNode }-ExpressionNoIn : AssignmentExpressionNoIn { AST.NS (AST.JSExpression $1) (mex $1) {- Expression -} } -               | ExpressionNoIn ',' AssignmentExpressionNoIn  { flattenExpression $1 $3 }+ExpressionNoIn : AssignmentExpressionNoIn { fp (AST.NN (AST.JSExpression $1)) {- ExpressionNoIn -} }+               | ExpressionNoIn Comma AssignmentExpressionNoIn  { fp (AST.NN (AST.JSExpression ($1:[$2]++$3))) {- ExpressionNoIn2 -} }  -- TODO: still required? ExpressionOpt :: { [AST.JSNode] }@@ -643,8 +805,8 @@ ExpressionNoInOpt :: { [AST.JSNode] } ExpressionNoInOpt : ExpressionNoIn { [$1] {- ExpressionOpt -}}                   |            { []   {- ExpressionOpt -}}-                                + -- Statement :                                                    See clause 12 --         Block --         VariableStatement@@ -682,76 +844,70 @@                  | TryStatement       { $1 {- StatementNoEmpty14 -}}                  | DebuggerStatement  { $1 {- StatementNoEmpty15 -}} --- FIXME: not producing true reflection of parse, doing minimisation transformationsa  in place--- StatementBlock :: { AST.JSNode }--- StatementBlock : '{' '}'               { (AST.NS (AST.JSLiteral ";") (ss $1)) }---                | '{' StatementList '}' { (if ($2 == AST.JSStatementList [AST.JSLiteral ";"]) ---                                             then (AST.NS (AST.JSLiteral ";") (ss $1)) ---                                             else (AST.NS (AST.JSBlock $2   ) (ss $1))) ---                                        }+ StatementBlock :: { AST.JSNode }-StatementBlock : '{' '}'               { (AST.NS (AST.JSStatementBlock (AST.NS (AST.JSStatementList []) (ss $1))) (ss $1)) }-               | '{' StatementList '}' { (AST.NS (AST.JSStatementBlock $2) (ss $1)) }+StatementBlock : LBrace RBrace               { fp (AST.NN (AST.JSStatementBlock $1 (AST.NN (AST.JSStatementList [])) $2)) }+               | LBrace StatementList RBrace { fp (AST.NN (AST.JSStatementBlock $1 $2                                $3)) }  -- Block :                                                        See 12.1 --         { StatementListopt } Block :: { AST.JSNode }-Block : '{' '}'               { (AST.NS (AST.JSBlock (AST.NS (AST.JSStatementList []) (ss $1))) (ss $1)) }-      | '{' StatementList '}' { (AST.NS (AST.JSBlock $2) (ss $1)) }+Block : LBrace RBrace               { fp (AST.NN (AST.JSBlock [$1] (AST.NN (AST.JSStatementList [])) [$2])) }+      | LBrace StatementList RBrace { fp (AST.NN (AST.JSBlock [$1] $2                                [$3])) }  -- StatementList :                                                See 12.1 --         Statement --         StatementList Statement StatementList :: { AST.JSNode }-StatementList : Statement               { (AST.NS (AST.JSStatementList [$1]) (ex $1)) }+StatementList : Statement               { fp (AST.NN (AST.JSStatementList [$1])) }               | StatementList Statement { (combineStatements $1 $2) }  -- VariableStatement :                                            See 12.2 --         var VariableDeclarationList ; VariableStatement :: { AST.JSNode }-VariableStatement : 'var'   VariableDeclarationList AutoSemi { AST.NS (AST.JSVariables "var" $2) (ss $1)}-                  | 'const' VariableDeclarationList AutoSemi { AST.NS (AST.JSVariables "const" $2) (ss $1)}+VariableStatement : Var   VariableDeclarationList AutoSemi { fp (AST.NN (AST.JSVariables $1 $2 $3))}+                  | Const VariableDeclarationList AutoSemi { fp (AST.NN (AST.JSVariables $1 $2 $3))}  -- VariableDeclarationList :                                      See 12.2 --         VariableDeclaration --         VariableDeclarationList , VariableDeclaration VariableDeclarationList :: { [AST.JSNode] } VariableDeclarationList : VariableDeclaration { [$1] {- VariableDeclarationList -}}-                        | VariableDeclarationList ',' VariableDeclaration { ($1 ++ [$3]) {- VariableDeclarationList -}}+                        | VariableDeclarationList Comma VariableDeclaration { ($1++[$2]++[$3]) {- VariableDeclarationList -}}  -- VariableDeclarationListNoIn :                                  See 12.2 --         VariableDeclarationNoIn --         VariableDeclarationListNoIn , VariableDeclarationNoIn VariableDeclarationListNoIn :: { [AST.JSNode] } VariableDeclarationListNoIn : VariableDeclarationNoIn { [$1] {- VariableDeclarationList -}}-                            | VariableDeclarationListNoIn ',' VariableDeclarationNoIn { ($1 ++ [$3]) {- VariableDeclarationList -}}+                            | VariableDeclarationListNoIn Comma VariableDeclarationNoIn { ($1++[$2]++[$3]) {- VariableDeclarationListNoIn -}}  -- VariableDeclaration :                                          See 12.2 --         Identifier Initialiseropt VariableDeclaration :: { AST.JSNode }-VariableDeclaration : Identifier              { (AST.NS (AST.JSVarDecl $1 []) (ex $1) )}-                    | Identifier Initializer  { (AST.NS (AST.JSVarDecl $1 $2) (ex $1))}+VariableDeclaration : Identifier              { fp (AST.NN (AST.JSVarDecl $1 []))}+                    | Identifier Initializer  { fp (AST.NN (AST.JSVarDecl $1 $2))}  -- VariableDeclarationNoIn :                                      See 12.2 --         Identifier InitialiserNoInopt VariableDeclarationNoIn :: { AST.JSNode }-VariableDeclarationNoIn : Identifier InitializerNoIn { (AST.NS (AST.JSVarDecl $1 $2) (ex $1)) }-                        | Identifier                 { (AST.NS (AST.JSVarDecl $1 []) (ex $1)) }+VariableDeclarationNoIn : Identifier InitializerNoIn { fp (AST.NN (AST.JSVarDecl $1 $2)) }+                        | Identifier                 { fp (AST.NN (AST.JSVarDecl $1 [])) }  -- Initialiser :                                                                            See 12.2 --         = AssignmentExpression Initializer :: { [AST.JSNode] }-Initializer : '=' AssignmentExpression { $2 {- Initializer -} }+Initializer : SimpleAssign AssignmentExpression { $1:$2 {- Initializer -} }  -- InitialiserNoIn :                                                                        See 12.2 --         = AssignmentExpressionNoIn InitializerNoIn :: { [AST.JSNode] }-InitializerNoIn : '=' AssignmentExpressionNoIn { $2 {- InitializerNoIn -}}+InitializerNoIn : SimpleAssign AssignmentExpressionNoIn { $1:$2 {- InitializerNoIn -}}  -- EmptyStatement :                                                                         See 12.3 --         ; EmptyStatement :: { AST.JSNode }-EmptyStatement : ';' { (AST.NS (AST.JSLiteral ";") (ss $1)) }+EmptyStatement : Semi { $1 }  -- ExpressionStatement :                                                                    See 12.4 --         [lookahead ∉ {{, function}] Expression  ;@@ -765,35 +921,36 @@ -- IfStatement :                                                                            See 12.5 --         if ( Expression ) Statement else Statement --         if ( Expression ) Statement-IfStatement :: { AST.JSNode }-IfStatement : 'if' '(' Expression ')' StatementSemi  IfElseRest -                  { (if ($6 /= []) then  -                       (if (length $6 == 1) -                        then -                          (AST.NS (AST.JSIfElse $3 $5 (head $6)) (ss $1)) -                        else -                          (AST.NS -                             (AST.JSIfElse -                                $3 -                                (AST.NS -                                   (AST.JSBlock (AST.NS (AST.JSStatementList [$5]) (ss $1)) ) -                                   (ss $1) -                                   )-                                (last $6)-                             ) -                             (ss $1)-                           ) -                       )   -                     else (AST.NS (AST.JSIf $3 $5) (ss $1))) }-                  -IfElseRest :: { [AST.JSNode] }                  -IfElseRest : 'else' Statement     { [$2] }-           |                      { [] } +IfStatement :: { AST.JSNode } -- +++XXXX+++IfStatement : If LParen Expression RParen StatementSemi  IfElseRest+                  { (if ($6 /= []) then+                       (if (length $6 == 1)+                        then+                          (fp (AST.NN (AST.JSIf $1 $2 $3 $4 $5 $6) ))+                        else+                          (fp (AST.NN+                             (AST.JSIf+                                $1 $2+                                $3+                                $4+                                (fp (AST.NN+                                   (AST.JSBlock [] (AST.NN (AST.JSStatementList [$5])) [] )+                                   ))+                                $6+                             ) +                           ))+                       )+                     else (fp (AST.NN (AST.JSIf $1 $2 $3 $4 $5 []) )) ) }++IfElseRest :: { [AST.JSNode] }+IfElseRest : Else Statement     { [$1,$2] }+           |                    { [] }+ StatementSemi :: { AST.JSNode }-StatementSemi : StatementNoEmpty ';' { (AST.NS (AST.JSBlock (AST.NS (AST.JSStatementList [$1]) (ex $1))) (ex $1)) } -              | StatementNoEmpty     { $1 {- StatementSemi -}}-              | ';'                  { AST.NS (AST.JSLiteral ";") (ss $1)  }  +StatementSemi : StatementNoEmpty Semi { fp (AST.NN (AST.JSBlock [] (AST.NN (AST.JSStatementList [$1,$2])) [])) }+              | StatementNoEmpty      { $1 {- StatementSemi -}}+              | Semi                  { $1 }   -- IterationStatement :                                                                     See 12.6@@ -804,56 +961,56 @@ --         for ( LeftHandSideExpression in Expression ) Statement --         for ( var VariableDeclarationNoIn in Expression ) Statement IterationStatement :: { AST.JSNode }-IterationStatement : 'do' Statement 'while' '(' Expression ')' AutoSemi -                     { (AST.NS (AST.JSDoWhile $2 $5 $7) (ss $1)) } -                   | 'while' '(' Expression ')' Statement -                     { (AST.NS (AST.JSWhile $3 $5) (ss $1)) }-                   | 'for' '(' ExpressionNoInOpt ';' ExpressionOpt ';' ExpressionOpt ')' Statement -                     { (AST.NS (AST.JSFor $3 $5 $7 $9) (ss $1)) }-                   | 'for' '(' 'var' VariableDeclarationListNoIn ';' ExpressionOpt ';' ExpressionOpt ')' Statement -                     { (AST.NS (AST.JSForVar $4 $6 $8 $10) (ss $1)) }-                   | 'for' '(' LeftHandSideExpression 'in' Expression ')' Statement -                     { (AST.NS (AST.JSForIn $3 $5 $7) (ss $1)) }-                   | 'for' '(' 'var' VariableDeclarationNoIn 'in' Expression ')' Statement-                     { (AST.NS (AST.JSForVarIn $4 $6 $8) (ss $1)) }+IterationStatement : Do Statement While LParen Expression RParen AutoSemi+                     { fp (AST.NN (AST.JSDoWhile $1 $2 $3 $4 $5 $6 $7)) }+                   | While LParen Expression RParen Statement+                     { fp (AST.NN (AST.JSWhile $1 $2 $3 $4 $5)) }+                   | For LParen ExpressionNoInOpt Semi ExpressionOpt Semi ExpressionOpt RParen Statement+                     { fp (AST.NN (AST.JSFor $1 $2 $3 $4 $5 $6 $7 $8 $9)) }+                   | For LParen Var VariableDeclarationListNoIn Semi ExpressionOpt Semi ExpressionOpt RParen Statement+                     { fp (AST.NN (AST.JSForVar $1 $2 $3 $4 $5 $6 $7 $8 $9 $10)) }+                   | For LParen LeftHandSideExpression In Expression RParen Statement+                     { fp (AST.NN (AST.JSForIn $1 $2 $3 $4 $5 $6 $7)) }+                   | For LParen Var VariableDeclarationNoIn In Expression RParen Statement+                     { fp (AST.NN (AST.JSForVarIn $1 $2 $3 $4 $5 $6 $7 $8)) }  -- ContinueStatement :                                                                      See 12.7 --         continue [no LineTerminator here] Identifieropt ; -- TODO: deal with [no LineTerminator here] ContinueStatement :: { AST.JSNode }-ContinueStatement : 'continue' AutoSemi             { (AST.NS (AST.JSContinue [$2]) (ss $1)) } -                  | 'continue' Identifier AutoSemi  { (AST.NS (AST.JSContinue [$2,$3]) (ss $1)) } +ContinueStatement : Continue AutoSemi             { fp (AST.NN (AST.JSContinue $1 []   $2)) }+                  | Continue Identifier AutoSemi  { fp (AST.NN (AST.JSContinue $1 [$2] $3)) }  -- BreakStatement :                                                                         See 12.8 --         break [no LineTerminator here] Identifieropt ; -- TODO: deal with [no LineTerminator here] BreakStatement :: { AST.JSNode }-BreakStatement : 'break' AutoSemi             { (AST.NS (AST.JSBreak []   [$2]) (ss $1)) } -               | 'break' Identifier AutoSemi  { (AST.NS (AST.JSBreak [$2] [$3]) (ss $1)) } +BreakStatement : Break AutoSemi             { fp (AST.NN (AST.JSBreak $1 []   $2)) }+               | Break Identifier AutoSemi  { fp (AST.NN (AST.JSBreak $1 [$2] $3)) }  -- ReturnStatement :                                                                        See 12.9 --         return [no LineTerminator here] Expressionopt ; -- TODO: deal with [no LineTerminator here] ReturnStatement :: { AST.JSNode }-ReturnStatement : 'return' AutoSemi             { (AST.NS (AST.JSReturn [$2])    (ss $1)) } -                | 'return' Expression AutoSemi  { (AST.NS (AST.JSReturn [$2,$3]) (ss $1)) } +ReturnStatement : Return AutoSemi             { fp (AST.NN (AST.JSReturn $1 []   $2)) }+                | Return Expression AutoSemi  { fp (AST.NN (AST.JSReturn $1 [$2] $3)) }  -- WithStatement :                                                                          See 12.10 --         with ( Expression ) Statement WithStatement :: { AST.JSNode }-WithStatement : 'with' '(' Expression ')' Statement AutoSemi  { (AST.NS (AST.JSWith $3 [$5,$6]) (ss $1)) }+WithStatement : With LParen Expression RParen Statement AutoSemi  { fp (AST.NN (AST.JSWith $1 $2 $3 $4 [$5,$6])) }  -- SwitchStatement :                                                                        See 12.11 --         switch ( Expression ) CaseBlock SwitchStatement :: { AST.JSNode }-SwitchStatement : 'switch' '(' Expression ')' CaseBlock { (AST.NS (AST.JSSwitch $3 $5) (ss $1)) } +SwitchStatement : Switch LParen Expression RParen CaseBlock { (AST.NN (AST.JSSwitch $1 $2 $3 $4 $5)) }  -- CaseBlock :                                                                              See 12.11 --         { CaseClausesopt } --         { CaseClausesopt DefaultClause CaseClausesopt } CaseBlock :: { [AST.JSNode] }-CaseBlock : '{' CaseClausesOpt '}'                              { $2            {- CaseBlock1 -}}-          | '{' CaseClausesOpt DefaultClause CaseClausesOpt '}' { ($2++($3:$4)) {- CaseBlock2 -}}+CaseBlock : LBrace CaseClausesOpt RBrace                              { ($1:$2)++[$3]           {- CaseBlock1 -}}+          | LBrace CaseClausesOpt DefaultClause CaseClausesOpt RBrace { ($1:$2)++[$3]++$4++[$5] {- CaseBlock2 -}}  -- CaseClauses :                                                                            See 12.11 --         CaseClause@@ -861,31 +1018,31 @@ CaseClausesOpt :: { [AST.JSNode] } CaseClausesOpt : CaseClause                { [$1] {- CaseClauses1 -}}                | CaseClausesOpt CaseClause { ($1++[$2]) {- CaseClauses2 -}}-               |                           { [] }  +               |                           { [fp (AST.NT (AST.JSLiteral "") tokenPosnEmpty []) ] } -- { [] }  -- CaseClause :                                                               See 12.11 --        case Expression : StatementListopt CaseClause :: { AST.JSNode }-CaseClause : 'case' Expression ':' StatementList  { (AST.NS (AST.JSCase $2 $4) (ss $1)) }-           | 'case' Expression ':'                { (AST.NS (AST.JSCase $2 (AST.NS (AST.JSStatementList []) (ss $1))) (ss $1)) }+CaseClause : Case Expression Colon StatementList  { fp (AST.NN (AST.JSCase $1 $2 $3 $4)) }+           | Case Expression Colon                { fp (AST.NN (AST.JSCase $1 $2 $3 (AST.NN (AST.JSStatementList [])))) }  -- DefaultClause :                                                            See 12.11 --        default : StatementListopt DefaultClause :: { AST.JSNode }-DefaultClause : 'default' ':'                { (AST.NS (AST.JSDefault (AST.NS (AST.JSStatementList []) (ss $1))) (ss $1)) }-              | 'default' ':' StatementList  { (AST.NS (AST.JSDefault $3) (ss $1)) }+DefaultClause : Default Colon                { fp (AST.NN (AST.JSDefault $1 $2 (AST.NN (AST.JSStatementList [])))) }+              | Default Colon StatementList  { fp (AST.NN (AST.JSDefault $1 $2 $3)) }  -- LabelledStatement :                                                        See 12.12 --        Identifier : Statement LabelledStatement :: { AST.JSNode }-LabelledStatement : Identifier ':' Statement { (AST.NS (AST.JSLabelled $1 $3) (ex $1)) }+LabelledStatement : Identifier Colon Statement { fp (AST.NN (AST.JSLabelled $1 $2 $3)) }  -- ThrowStatement :                                                           See 12.13 --        throw [no LineTerminator here] Expression ; -- TODO : sort out no LineTerminator here --        Does it need a semi at the end? ThrowStatement :: { AST.JSNode }-ThrowStatement : 'throw' Expression { (AST.NS (AST.JSThrow $2) (ss $1)) }+ThrowStatement : Throw Expression { fp (AST.NN (AST.JSThrow $1 $2)) }  -- Note: worked in updated syntax as per https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch --   i.e., 0 or more catches, then an optional finally@@ -894,9 +1051,9 @@ --        try Block Finally --        try Block Catch Finally TryStatement :: { AST.JSNode }-TryStatement : 'try' Block Catches         { (AST.NS (AST.JSTry $2 $3) (ss $1))         {- TryStatement1 -} }-             | 'try' Block Finally         { (AST.NS (AST.JSTry $2 [$3]) (ss $1))       {- TryStatement2 -} }-             | 'try' Block Catches Finally { (AST.NS (AST.JSTry $2 ($3++[$4])) (ss $1)) {- TryStatement3 -} }+TryStatement : Try Block Catches         { fp (AST.NN (AST.JSTry $1 $2 $3)         ) {- TryStatement1 -} }+             | Try Block Finally         { fp (AST.NN (AST.JSTry $1 $2 [$3])       ) {- TryStatement2 -} }+             | Try Block Catches Finally { fp (AST.NN (AST.JSTry $1 $2 ($3++[$4])) ) {- TryStatement3 -} }  Catches :: { [AST.JSNode] } Catches : Catch         { [$1]       {- Catches 1 -} }@@ -908,34 +1065,34 @@ -- <Catch> ::= 'catch' '(' Identifier ')' <Block> --           | 'catch' '(' Identifier 'if' ConditionalExpression ')' <Block> Catch :: { AST.JSNode }-Catch : 'catch' '(' Identifier ')' Block                 { (AST.NS (AST.JSCatch $3 [] $5) (ss $1)) }-      | 'catch' '(' Identifier 'if' ConditionalExpression ')' Block  { (AST.NS (AST.JSCatch $3 $5 $7) (ss $1)) }+Catch : CatchL LParen Identifier RParen Block                 { fp (AST.NN (AST.JSCatch $1 $2 $3 [] $4 $5) ) }+      | CatchL LParen Identifier If ConditionalExpression RParen Block { fp (AST.NN (AST.JSCatch $1 $2 $3 ($4:$5) $6 $7)) }  -- Finally :                                                                  See 12.14 --        finally Block Finally :: { AST.JSNode }-Finally : 'finally' Block { (AST.NS (AST.JSFinally $2) (ss $1)) }+Finally : FinallyL Block { fp (AST.NN (AST.JSFinally $1 $2)) }  -- DebuggerStatement :                                                        See 12.15 --        debugger ; DebuggerStatement :: { AST.JSNode }-DebuggerStatement : 'debugger' AutoSemi { (AST.NS (AST.JSLiteral "debugger") (ss $1)) }+DebuggerStatement : 'debugger' AutoSemi { fp (AST.NT (AST.JSLiteral "debugger") (ss $1) (gc $1)) }  -- FunctionDeclaration :                                                      See clause 13 --        function Identifier ( FormalParameterListopt ) { FunctionBody } FunctionDeclaration :: { AST.JSNode }-FunctionDeclaration : 'function' Identifier '(' FormalParameterList ')' '{' FunctionBody '}'-                      { (AST.NS (AST.JSFunction $2 $4 $7) (ss $1)) }-                    | 'function' Identifier '(' ')' '{' FunctionBody '}'-                      { (AST.NS (AST.JSFunction $2 [] $6) (ss $1)) }+FunctionDeclaration : Function Identifier LParen FormalParameterList RParen LBrace FunctionBody RBrace+                      { fp (AST.NN (AST.JSFunction $1 $2 $3 $4 $5 $6 $7 $8) ) }+                    | Function Identifier LParen RParen LBrace FunctionBody RBrace+                      { fp (AST.NN (AST.JSFunction $1 $2 $3 [] $4 $5 $6 $7) ) }  -- FunctionExpression :                                                       See clause 13 --        function Identifieropt ( FormalParameterListopt ) { FunctionBody } FunctionExpression :: { AST.JSNode }-FunctionExpression : 'function' IdentifierOpt '(' ')' '{' FunctionBody '}'                      -                     { (AST.NS (AST.JSFunctionExpression $2 [] $6) (ss $1)) }-                   | 'function' IdentifierOpt '(' FormalParameterList ')' '{' FunctionBody '}'  -                     { (AST.NS (AST.JSFunctionExpression $2 $4 $7) (ss $1)) }+FunctionExpression : Function IdentifierOpt LParen RParen LBrace FunctionBody RBrace+                     { fp (AST.NN (AST.JSFunctionExpression $1 $2 $3 [] $4 $5 $6 $7) ) }+                   | Function IdentifierOpt LParen FormalParameterList RParen LBrace FunctionBody RBrace+                     { fp (AST.NN (AST.JSFunctionExpression $1 $2 $3 $4 $5 $6 $7 $8) ) }  IdentifierOpt :: { [AST.JSNode] } IdentifierOpt : Identifier { [$1] {- IdentifierOpt -}}@@ -946,29 +1103,40 @@ --        FormalParameterList , Identifier FormalParameterList :: { [AST.JSNode] } FormalParameterList : Identifier                          { [$1] {- FormalParameterList -}}-                    | FormalParameterList ',' Identifier  { ($1++[$3]) }+                    | FormalParameterList Comma Identifier  { ($1++[$2]++[$3]) }  -- FunctionBody :                                                             See clause 13 --        SourceElementsopt FunctionBody :: { AST.JSNode }-FunctionBody : SourceElements { (AST.NS (AST.JSFunctionBody [$1]) (ex $1)) }-             |                { (AST.NS (AST.JSFunctionBody [])   SpanEmpty) } +FunctionBody : SourceElements { (AST.NN (AST.JSFunctionBody [$1]) ) }+             |                { (AST.NN (AST.JSFunctionBody []  ) ) }  -- Program :                                                                  See clause 14 --        SourceElementsopt  Program :: { AST.JSNode }-Program : SourceElementsTop { $1 {- Program -}}+Program : SourceElementsTop Eof { (combineTop $1 $2) {- Program -}} +-- For debugging/other entry points+LiteralMain :: { AST.JSNode }+LiteralMain : Literal Eof { $1 }++PrimaryExpressionMain :: { AST.JSNode }+PrimaryExpressionMain : PrimaryExpression Eof { $1 }++StatementMain :: { AST.JSNode }+StatementMain : Statement Eof { $1 }++ -- SourceElements :                                                           See clause 14 --        SourceElement --        SourceElements SourceElement SourceElements :: { AST.JSNode }-SourceElements : SourceElement                { (AST.NS (AST.JSSourceElements [$1]) (ex $1)) }+SourceElements : SourceElement                { fp (AST.NN (AST.JSSourceElements [$1]) ) }                | SourceElements SourceElement { (combineSourceElements $1 $2) }  SourceElementsTop :: { AST.JSNode }-SourceElementsTop : SourceElement                   { (AST.NS (AST.JSSourceElementsTop [$1]) (ex $1)) }+SourceElementsTop : SourceElement                   { fp (AST.NN (AST.JSSourceElementsTop [$1]) ) }                   | SourceElementsTop SourceElement { (combineSourceElementsTop $1 $2) }  -- SourceElement :@@ -976,67 +1144,80 @@ --       FunctionDeclaration SourceElement :: { AST.JSNode } SourceElement : Statement            { $1 {- SourceElement1 -} }-              | FunctionDeclaration  { $1 {- SourceElement2 -} } +              | FunctionDeclaration  { $1 {- SourceElement2 -} }  { --- combineSourceElements :: AST.JSNode -> AST.JSNode -> AST.JSNode--- combineSourceElements (AST.JSSourceElements xs) x = (AST.JSSourceElements (xs++[x] (ss $1)) ) combineSourceElements :: AST.JSNode -> AST.JSNode -> AST.JSNode-combineSourceElements (AST.NS (AST.JSSourceElements xs) s1) x1@(AST.NS x s2) = (AST.NS (AST.JSSourceElements (xs++[x1])) s1) +combineSourceElements (AST.NN (AST.JSSourceElements xs)) x1 = fp (AST.NN (AST.JSSourceElements (xs++[x1]))) --- combineSourceElementsTop :: AST.JSNode -> AST.JSNode -> AST.JSNode--- combineSourceElementsTop (AST.JSSourceElementsTop xs) x = (AST.JSSourceElementsTop (xs++[x] (ss $1)) ) combineSourceElementsTop :: AST.JSNode -> AST.JSNode -> AST.JSNode-combineSourceElementsTop (AST.NS (AST.JSSourceElementsTop xs) s1) x1@(AST.NS x s2) = (AST.NS (AST.JSSourceElementsTop (xs++[x1])) s1)+combineSourceElementsTop (AST.NN (AST.JSSourceElementsTop xs)) x1 = fp (AST.NN (AST.JSSourceElementsTop (xs++[x1]))) --- combineStatements :: AST.JSNode -> AST.JSNode -> AST.JSNode--- combineStatements (AST.JSStatementList xs) (AST.JSStatementList ys) = (AST.JSStatementList (xs++ys) )--- combineStatements (AST.JSStatementList xs) y = (AST.JSStatementList (xs++[y]) )+combineTop :: AST.JSNode -> AST.JSNode -> AST.JSNode+combineTop (AST.NN (AST.JSSourceElementsTop xs)) x1 = fp (AST.NN (AST.JSSourceElementsTop (xs++[x1])))+ combineStatements :: AST.JSNode -> AST.JSNode -> AST.JSNode-combineStatements (AST.NS (AST.JSStatementList xs) s1) (AST.NS (AST.JSStatementList ys) s2) = (AST.NS (AST.JSStatementList (xs++ys) ) s1)-combineStatements (AST.NS (AST.JSStatementList xs) s1) y = (AST.NS (AST.JSStatementList (xs++[y])) s1)+combineStatements (AST.NN (AST.JSStatementList xs)) (AST.NN (AST.JSStatementList ys)) = fp (AST.NN (AST.JSStatementList (xs++ys) ))+combineStatements (AST.NN (AST.JSStatementList xs)) y = fp (AST.NN (AST.JSStatementList (xs++[y]))) -parseError :: Token -> P a -parseError = throwError . UnexpectedToken +parseError :: Token -> Alex a+-- parseError = throwError . UnexpectedToken+parseError tok = alexError (show tok) --- flattenExpression :: AST.JSNode -> [AST.JSNode] -> AST.JSNode--- flattenExpression (AST.JSExpression xs) e = AST.JSExpression (xs++litComma++e)---                         where---                           litComma :: [AST.JSNode]---                           litComma = [(AST.JSLiteral ",")]-flattenExpression :: AST.JSNode -> [AST.JSNode] -> AST.JSNode-flattenExpression (AST.NS (AST.JSExpression xs) s1) e = (AST.NS (AST.JSExpression (xs++litComma++e)) s1)-                        where-                          litComma :: [AST.JSNode]-                          litComma = [AST.NS (AST.JSLiteral ",") SpanEmpty]+-- -------------------------------- -mex :: [AST.JSNode] -> SrcSpan-mex [] = SpanEmpty+{-+mex :: [AST.JSNode] -> TokenPosn+mex [] = tokenPosnEmpty mex xs = ex (head xs) -ex :: AST.JSNode -> SrcSpan-ex (AST.NS _node span) = span+ex :: AST.JSNode -> TokenPosn+ex (AST.NN _node span _c) = span+-} -ss token = toSrcSpan (token_span token) +--ss token = toSrcSpan (token_span token)+ss :: Token -> TokenPosn+ss token = token_span token +-- ------------------------------++gc :: Token -> [CommentAnnotation]+gc token = token_comment token+mgc :: [Token] -> [CommentAnnotation]+mgc xs = concatMap gc xs+ {--ex :: AST.JSNode -> AST.JSNode-ex (AST.NS node span) = node+-- Get node comment+gnc   (AST.NN _ _ ca)  = ca+mgnc [(AST.NN _ _ ca)] = ca -mex :: [AST.JSNode] -> [AST.JSNode]-mex xs = map ex xs+-- Prepend a comment+pc :: AST.JSNode -> [CommentAnnotation] -> AST.JSNode+pc (AST.NN node span cs2) cs1 = (AST.NN node span (cs1++cs2)) -combine :: [AST.JSNode] -> AST.JSNode-combine [] = AST.NSS [] SpanEmpty-combine xs = AST.NSS (mex xs) span+mpc :: [AST.JSNode] -> [CommentAnnotation] -> [AST.JSNode]+-- mpc [(AST.NN node span cs2)]    cs1 = [(AST.NN node span (cs1++cs2))]+mpc ((AST.NN node span cs2):xs) cs1 =  (AST.NN node span (cs1++cs2)):xs+-}++-- ---------------------------------------------------------------------++fp :: AST.JSNode -> AST.JSNode+fp (AST.NN x)      = (AST.NN x)+fp (AST.NT x p cs) = (AST.NT x p cs)+{-+fp (AST.NN x p cs) = (AST.NN x p' cs)   where-    (AST.NS _ span) = head xs+    p' = case (filter (/= NoComment) cs) of+      [] -> p+      [(CommentA posn _)]    -> posn+      ((CommentA posn _):_)  -> posn -}-    + }  -- Set emacs mode--- Local Variables: +-- Local Variables: -- mode:haskell--- End:             +-- End:
src/Language/JavaScript/Parser/Lexer.hs view
@@ -4,7 +4,11 @@  module Language.JavaScript.Parser.Lexer (     Token(..)+    , AlexPosn(..)+    , Alex     , lexCont+    , alexError+    , runAlex     ) where  --import Control.Monad@@ -36,6 +40,228 @@ #else import GlaExts #endif+{-# LINE 1 "templates/wrappers.hs" #-}+{-# LINE 1 "templates/wrappers.hs" #-}+{-# LINE 1 "<built-in>" #-}+{-# LINE 1 "<command-line>" #-}+{-# LINE 1 "templates/wrappers.hs" #-}+-- -----------------------------------------------------------------------------+-- Alex wrapper code.+--+-- This code is in the PUBLIC DOMAIN; you may copy it freely and use+-- it for any purpose whatsoever.++import Data.Word (Word8)+{-# LINE 22 "templates/wrappers.hs" #-}++import qualified Data.Bits++-- | Encode a Haskell String to a list of Word8 values, in UTF8 format.+utf8Encode :: Char -> [Word8]+utf8Encode = map fromIntegral . go . ord+ where+  go oc+   | oc <= 0x7f       = [oc]++   | oc <= 0x7ff      = [ 0xc0 + (oc `Data.Bits.shiftR` 6)+                        , 0x80 + oc Data.Bits..&. 0x3f+                        ]++   | oc <= 0xffff     = [ 0xe0 + (oc `Data.Bits.shiftR` 12)+                        , 0x80 + ((oc `Data.Bits.shiftR` 6) Data.Bits..&. 0x3f)+                        , 0x80 + oc Data.Bits..&. 0x3f+                        ]+   | otherwise        = [ 0xf0 + (oc `Data.Bits.shiftR` 18)+                        , 0x80 + ((oc `Data.Bits.shiftR` 12) Data.Bits..&. 0x3f)+                        , 0x80 + ((oc `Data.Bits.shiftR` 6) Data.Bits..&. 0x3f)+                        , 0x80 + oc Data.Bits..&. 0x3f+                        ]++++type Byte = Word8++-- -----------------------------------------------------------------------------+-- The input type+++type AlexInput = (AlexPosn,     -- current position,+                  Char,         -- previous char+                  [Byte],       -- pending bytes on current char+                  String)       -- current input string++ignorePendingBytes (p,c,ps,s) = (p,c,s)++alexInputPrevChar :: AlexInput -> Char+alexInputPrevChar (p,c,bs,s) = c++alexGetByte :: AlexInput -> Maybe (Byte,AlexInput)+alexGetByte (p,c,(b:bs),s) = Just (b,(p,c,bs,s))+alexGetByte (p,c,[],[]) = Nothing+alexGetByte (p,_,[],(c:s))  = let p' = alexMove p c +                                  (b:bs) = utf8Encode c+                              in p' `seq`  Just (b, (p', c, bs, s))+++{-# LINE 88 "templates/wrappers.hs" #-}++{-# LINE 102 "templates/wrappers.hs" #-}++{-# LINE 117 "templates/wrappers.hs" #-}++-- -----------------------------------------------------------------------------+-- Token positions++-- `Posn' records the location of a token in the input text.  It has three+-- fields: the address (number of chacaters preceding the token), line number+-- and column of a token within the file. `start_pos' gives the position of the+-- start of the file and `eof_pos' a standard encoding for the end of file.+-- `move_pos' calculates the new position after traversing a given character,+-- assuming the usual eight character tab stops.+++data AlexPosn = AlexPn !Int !Int !Int+        deriving (Eq,Show)++alexStartPos :: AlexPosn+alexStartPos = AlexPn 0 1 1++alexMove :: AlexPosn -> Char -> AlexPosn+alexMove (AlexPn a l c) '\t' = AlexPn (a+1)  l     (((c+7) `div` 8)*8+1)+alexMove (AlexPn a l c) '\n' = AlexPn (a+1) (l+1)   1+alexMove (AlexPn a l c) _    = AlexPn (a+1)  l     (c+1)+++-- -----------------------------------------------------------------------------+-- Default monad+++data AlexState = AlexState {+        alex_pos :: !AlexPosn,  -- position at current input location+        alex_inp :: String,     -- the current input+        alex_chr :: !Char,      -- the character before the input+        alex_bytes :: [Byte],+        alex_scd :: !Int        -- the current startcode++      , alex_ust :: AlexUserState -- AlexUserState will be defined in the user program++    }++-- Compile with -funbox-strict-fields for best results!++runAlex :: String -> Alex a -> Either String a+runAlex input (Alex f) +   = case f (AlexState {alex_pos = alexStartPos,+                        alex_inp = input,       +                        alex_chr = '\n',+                        alex_bytes = [],++                        alex_ust = alexInitUserState,++                        alex_scd = 0}) of Left msg -> Left msg+                                          Right ( _, a ) -> Right a++newtype Alex a = Alex { unAlex :: AlexState -> Either String (AlexState, a) }++instance Monad Alex where+  m >>= k  = Alex $ \s -> case unAlex m s of +                                Left msg -> Left msg+                                Right (s',a) -> unAlex (k a) s'+  return a = Alex $ \s -> Right (s,a)++alexGetInput :: Alex AlexInput+alexGetInput+ = Alex $ \s@AlexState{alex_pos=pos,alex_chr=c,alex_bytes=bs,alex_inp=inp} -> +        Right (s, (pos,c,bs,inp))++alexSetInput :: AlexInput -> Alex ()+alexSetInput (pos,c,bs,inp)+ = Alex $ \s -> case s{alex_pos=pos,alex_chr=c,alex_bytes=bs,alex_inp=inp} of+                  s@(AlexState{}) -> Right (s, ())++alexError :: String -> Alex a+alexError message = Alex $ \s -> Left message++alexGetStartCode :: Alex Int+alexGetStartCode = Alex $ \s@AlexState{alex_scd=sc} -> Right (s, sc)++alexSetStartCode :: Int -> Alex ()+alexSetStartCode sc = Alex $ \s -> Right (s{alex_scd=sc}, ())++alexMonadScan = do+  inp <- alexGetInput+  sc <- alexGetStartCode+  case alexScan inp sc of+    AlexEOF -> alexEOF+    AlexError inp' -> alexError "lexical error"+    AlexSkip  inp' len -> do+        alexSetInput inp'+        alexMonadScan+    AlexToken inp' len action -> do+        alexSetInput inp'+        action (ignorePendingBytes inp) len++-- -----------------------------------------------------------------------------+-- Useful token actions++type AlexAction result = AlexInput -> Int -> Alex result++-- just ignore this token and scan another one+-- skip :: AlexAction result+skip input len = alexMonadScan++-- ignore this token, but set the start code to a new value+-- begin :: Int -> AlexAction result+begin code input len = do alexSetStartCode code; alexMonadScan++-- perform an action for this token, and set the start code to a new value+andBegin :: AlexAction result -> Int -> AlexAction result+(action `andBegin` code) input len = do alexSetStartCode code; action input len++token :: (AlexInput -> Int -> token) -> AlexAction token+token t input len = return (t input len)++++-- -----------------------------------------------------------------------------+-- Monad (with ByteString input)++{-# LINE 319 "templates/wrappers.hs" #-}+++-- -----------------------------------------------------------------------------+-- Basic wrapper++{-# LINE 345 "templates/wrappers.hs" #-}+++-- -----------------------------------------------------------------------------+-- Basic wrapper, ByteString version++{-# LINE 363 "templates/wrappers.hs" #-}++{-# LINE 376 "templates/wrappers.hs" #-}+++-- -----------------------------------------------------------------------------+-- Posn wrapper++-- Adds text positions to the basic model.++{-# LINE 393 "templates/wrappers.hs" #-}+++-- -----------------------------------------------------------------------------+-- Posn wrapper, ByteString version++{-# LINE 408 "templates/wrappers.hs" #-}+++-- -----------------------------------------------------------------------------+-- GScan wrapper++-- For compatibility with previous versions of Alex, and because we can.+ alex_base :: AlexAddr alex_base = AlexA# "\x00\x00\x00\x00\xf7\xff\xff\xff\xfc\xff\xff\xff\xe4\x00\x00\x00\xdc\xff\xff\xff\x63\xff\xff\xff\x44\xff\xff\xff\xa6\x00\x00\x00\xb5\x01\x00\x00\x2a\x02\x00\x00\xa9\x02\x00\x00\x28\x03\x00\x00\xa7\x03\x00\x00\x26\x04\x00\x00\xa5\x04\x00\x00\x89\xff\xff\xff\x24\x05\x00\x00\xa3\x05\x00\x00\xdd\x05\x00\x00\x10\x06\x00\x00\x8f\x06\x00\x00\xfd\xff\xff\xff\x0e\x07\x00\x00\x40\x07\x00\x00\x7d\x07\x00\x00\xb2\x01\x00\x00\xb8\x07\x00\x00\xe5\x07\x00\x00\x1a\x08\x00\x00\x36\x08\x00\x00\x6e\x08\x00\x00\x8c\xff\xff\xff\xe9\x08\x00\x00\x22\x09\x00\x00\x9d\x09\x00\x00\xcc\x09\x00\x00\x05\x0a\x00\x00\x3e\x0a\x00\x00\x77\x0a\x00\x00\xb0\x0a\x00\x00\xe9\x0a\x00\x00\x8d\xff\xff\xff\x18\x0b\x00\x00\x8b\x0b\x00\x00\xbc\x0b\x00\x00\x8a\xff\xff\xff\x29\x0c\x00\x00\x83\xff\xff\xff\x92\x0c\x00\x00\xfb\xff\xff\xff\x7e\xff\xff\xff\xf1\x0c\x00\x00\x09\x0d\x00\x00\x64\x0d\x00\x00\xb5\xff\xff\xff\x07\x00\x00\x00\xcd\xff\xff\xff\xdb\xff\xff\xff\xc8\xff\xff\xff\xc7\xff\xff\xff\x5b\x0e\x00\x00\x47\x0f\x00\x00\x1c\x10\x00\x00\xc7\x00\x00\x00\x3b\x02\x00\x00\x56\x00\x00\x00\x37\x0e\x00\x00\xdd\xff\xff\xff\x91\x10\x00\x00\x7d\x08\x00\x00\x48\x0f\x00\x00\x1d\x10\x00\x00\xe5\x0d\x00\x00\x3e\x08\x00\x00\x11\x11\x00\x00\x35\x00\x00\x00\x51\x11\x00\x00\x83\x11\x00\x00\x0b\x06\x00\x00\x91\x07\x00\x00\x53\x0e\x00\x00\x91\x11\x00\x00\x43\x00\x00\x00\x75\x00\x00\x00\xb1\x11\x00\x00\x47\x00\x00\x00\xe5\xff\xff\xff\xf0\x11\x00\x00\x60\x12\x00\x00\x71\x12\x00\x00\xa1\x12\x00\x00\x21\x13\x00\x00\xa1\x13\x00\x00\x21\x14\x00\x00\xa1\x14\x00\x00\x21\x15\x00\x00\xa1\x15\x00\x00\x27\x00\x00\x00\x00\x00\x00\x00\x12\x16\x00\x00\x00\x00\x00\x00\x83\x16\x00\x00\x00\x00\x00\x00\xf4\x16\x00\x00\xc4\x17\x00\x00\x00\x00\x00\x00\x6c\x17\x00\x00\x00\x00\x00\x00\xad\x17\x00\x00\x00\x00\x00\x00\xee\x17\x00\x00\x00\x00\x00\x00\x2f\x18\x00\x00\xff\x18\x00\x00\x0c\x00\x00\x00\x66\x19\x00\x00\x26\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x19\x00\x00\x8a\x00\x00\x00\x97\x1a\x00\x00\xf7\x1a\x00\x00\xb7\x1a\x00\x00\x00\x00\x00\x00\xec\x1b\x00\x00\x62\x1c\x00\x00\x22\x1c\x00\x00\x00\x00\x00\x00\x57\x1d\x00\x00\xcd\x1d\x00\x00\x8d\x1d\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x4b\x00\x00\x00\x2e\x01\x00\x00\x3d\x00\x00\x00\x48\x00\x00\x00\x92\x1e\x00\x00\x66\x11\x00\x00\x7b\x17\x00\x00\xc2\x0e\x00\x00\xa2\x1e\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\xe3\x1e\x00\x00\x32\x01\x00\x00\x82\x00\x00\x00\xc6\x18\x00\x00\x63\x1f\x00\x00\x59\x1e\x00\x00\x4f\x01\x00\x00\xfd\x00\x00\x00\xb8\x1e\x00\x00\x05\x20\x00\x00\xf1\x20\x00\x00\x2c\x21\x00\x00\x90\x00\x00\x00\x69\x0b\x00\x00\x49\x0f\x00\x00\x1e\x10\x00\x00\x7c\x21\x00\x00\x93\x01\x00\x00\xdc\x21\x00\x00\xe5\x1f\x00\x00\x57\x12\x00\x00\x2f\x07\x00\x00\x32\x08\x00\x00\x1a\x01\x00\x00\x4c\x22\x00\x00\x12\x20\x00\x00\xe1\x20\x00\x00\xbc\x22\x00\x00\x2c\x23\x00\x00\x4f\x23\x00\x00\xe0\x1b\x00\x00\x70\x23\x00\x00\xe0\x23\x00\x00\x3b\x01\x00\x00\x48\x07\x00\x00\x03\x24\x00\x00\x33\x24\x00\x00\x55\x24\x00\x00\x64\x1e\x00\x00\xbd\x01\x00\x00\x8b\x24\x00\x00\x01\x25\x00\x00\xa2\x06\x00\x00\x36\x25\x00\x00\xb0\x01\x00\x00\x65\x25\x00\x00\xe1\x25\x00\x00\x1b\x26\x00\x00\x4c\x26\x00\x00\x88\x26\x00\x00\x06\x27\x00\x00\x84\x27\x00\x00\x65\x24\x00\x00\x02\x28\x00\x00\xdb\x01\x00\x00\x34\x28\x00\x00\x6f\x28\x00\x00\xaf\x28\x00\x00\xbe\x01\x00\x00\x2f\x29\x00\x00\x6f\x29\x00\x00\xef\x29\x00\x00\x6f\x2a\x00\x00\x9c\x2a\x00\x00\xda\x2a\x00\x00\xf4\x2a\x00\x00\x74\x2b\x00\x00\xf4\x2b\x00\x00\x5b\x1d\x00\x00\x30\x2c\x00\x00\xb0\x2c\x00\x00\xe1\x2c\x00\x00\x15\x2d\x00\x00\x4f\x2d\x00\x00\x82\x2d\x00\x00\xab\x2d\x00\x00\xc7\x2d\x00\x00\x47\x2e\x00\x00\xc7\x2e\x00\x00\xeb\x2e\x00\x00\x11\x2f\x00\x00\x91\x2f\x00\x00\xbd\x2f\x00\x00\x3d\x30\x00\x00\x6b\x30\x00\x00\xeb\x30\x00\x00\x29\x31\x00\x00\xa9\x31\x00\x00\xdd\x31\x00\x00\x5d\x32\x00\x00\x93\x32\x00\x00\xce\x32\x00\x00\x06\x33\x00\x00\xc6\x33\x00\x00\xc7\x33\x00\x00\x02\x34\x00\x00\x39\x34\x00\x00\x6e\x34\x00\x00\xad\x34\x00\x00\x2d\x35\x00\x00\xad\x35\x00\x00\xed\x35\x00\x00\x6d\x36\x00\x00\xa7\x36\x00\x00\xe1\x36\x00\x00\x0a\x37\x00\x00\x8a\x37\x00\x00\xca\x37\x00\x00\xed\x37\x00\x00\x6d\x38\x00\x00\x8a\x38\x00\x00\xc6\x38\x00\x00\x46\x39\x00\x00\x5f\x39\x00\x00\xdf\x39\x00\x00\x1e\x3a\x00\x00\x9e\x3a\x00\x00\xb8\x3a\x00\x00\xea\x3a\x00\x00\x1f\x3b\x00\x00\x5e\x3b\x00\x00\x16\x07\x00\x00\x9d\x3b\x00\x00\xd1\x3b\x00\x00\xf0\x3b\x00\x00\x14\x24\x00\x00\x30\x3c\x00\x00\xb0\x3c\x00\x00\xbc\x18\x00\x00\xce\x3c\x00\x00\xc3\x01\x00\x00\xed\x3c\x00\x00\x1d\x3d\x00\x00\x51\x3d\x00\x00\x7a\x12\x00\x00\x21\x3e\x00\x00\xe6\x3d\x00\x00\xdb\x02\x00\x00\x64\x3e\x00\x00\x2b\x0d\x00\x00\x82\x3e\x00\x00\xcb\x01\x00\x00\xfe\x3e\x00\x00\x78\x3f\x00\x00\xf2\x3f\x00\x00\x6c\x40\x00\x00\xe6\x40\x00\x00\x5e\x41\x00\x00\xd6\x41\x00\x00\x4e\x42\x00\x00\xc4\x42\x00\x00\x38\x43\x00\x00\xaa\x43\x00\x00\xc2\x01\x00\x00\x16\x44\x00\x00\x82\x44\x00\x00\xee\x44\x00\x00\x5a\x45\x00\x00\xc4\x45\x00\x00\x5b\x0a\x00\x00\x7f\x0d\x00\x00\x2a\x46\x00\x00\x8c\x46\x00\x00\xee\x46\x00\x00\xb9\x01\x00\x00\x4a\x47\x00\x00\xa4\x47\x00\x00\xfe\x47\x00\x00\x58\x48\x00\x00\xcf\x01\x00\x00\x6b\x0e\x00\x00\xb0\x48\x00\x00\x86\x04\x00\x00\x07\x03\x00\x00\x00\x49\x00\x00\x4e\x49\x00\x00\x77\x02\x00\x00\x98\x49\x00\x00\xe0\x49\x00\x00\x22\x4a\x00\x00\x62\x4a\x00\x00\x00\x00\x00\x00\xa3\x4a\x00\x00\xe6\x4a\x00\x00\x2b\x4b\x00\x00\x70\x4b\x00\x00\xb7\x4b\x00\x00\x02\x4c\x00\x00\x4d\x4c\x00\x00\x9e\x4c\x00\x00\xf1\x4c\x00\x00\x46\x4d\x00\x00\xa1\x4d\x00\x00\xfc\x4d\x00\x00\x59\x4e\x00\x00\x98\x02\x00\x00\xba\x4e\x00\x00\xe5\x3f\x00\x00\x1f\x4f\x00\x00\x84\x4f\x00\x00\x84\x17\x00\x00\x35\x08\x00\x00\x65\x20\x00\x00\xef\x4f\x00\x00\xa6\x02\x00\x00\x24\x03\x00\x00\x5e\x50\x00\x00\xcb\x03\x00\x00\xcf\x50\x00\x00\xa9\x03\x00\x00\x42\x51\x00\x00\xb5\x51\x00\x00\x28\x52\x00\x00\x57\x03\x00\x00\x9d\x52\x00\x00\x71\x40\x00\x00\x14\x53\x00\x00\x8b\x53\x00\x00\x02\x54\x00\x00\xe0\x3d\x00\x00\xad\x04\x00\x00\x7b\x54\x00\x00\xf4\x54\x00\x00\x6d\x55\x00\x00\xe8\x55\x00\x00\x63\x56\x00\x00\xde\x56\x00\x00\x59\x57\x00\x00\xd4\x57\x00\x00\x4f\x58\x00\x00\xca\x58\x00\x00\x47\x59\x00\x00\xc4\x59\x00\x00\x41\x5a\x00\x00\xbe\x5a\x00\x00\x3b\x5b\x00\x00\xba\x5b\x00\x00\x51\x07\x00\x00\xba\x5c\x00\x00\x8c\x03\x00\x00\x7a\x5c\x00\x00\x00\x00\x00\x00\xb2\x02\x00\x00\x16\x0a\x00\x00\xcc\x02\x00\x00\xec\x5c\x00\x00\xff\x3a\x00\x00\x6c\x5d\x00\x00\xec\x5d\x00\x00\x2c\x03\x00\x00\x6b\x5e\x00\x00\xdb\x5e\x00\x00\x00\x00\x00\x00\xb7\x5f\x00\x00\x00\x00\x00\x00\x79\x5e\x00\x00\x5c\x07\x00\x00\xaf\x57\x00\x00\xd6\x20\x00\x00\x5e\x5e\x00\x00\x94\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\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\x57\x07\x00\x00\x7d\x03\x00\x00\x13\x04\x00\x00\x00\x00\x00\x00\x94\x03\x00\x00\x00\x00\x00\x00\x9f\x03\x00\x00\x00\x00\x00\x00\xee\x03\x00\x00\x1d\x04\x00\x00\x00\x00\x00\x00\xa4\x04\x00\x00\x1e\x04\x00\x00\x22\x05\x00\x00\x00\x00\x00\x00\x77\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x07\x00\x00\x99\x08\x00\x00\x6d\x04\x00\x00\x76\x04\x00\x00\x7a\x04\x00\x00\x00\x00\x00\x00\x6f\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"# @@ -48,8 +274,8 @@ alex_deflt :: AlexAddr alex_deflt = AlexA# "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x01\xff\xff\x8e\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\x6b\x00\x6b\x00\x6d\x00\x6d\x00\x6f\x00\x6f\x00\xff\xff\x75\x00\x75\x00\x7c\x00\x7c\x00\x80\x00\x80\x00\x84\x00\x84\x00\xff\xff\xff\xff\x8e\x00\x8e\x00\x8e\x00\x90\x00\x90\x00\xff\xff\x3e\x00\xff\xff\x3e\x00\x3e\x00\x3c\x00\xff\xff\x3c\x00\x3c\x00\x9a\x00\xff\xff\x9a\x00\x9a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x82\x01\x82\x01\x82\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\x8e\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\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8e\x01\x8c\x01\x8c\x01\x8c\x01\x8c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8c\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"# -alex_accept = listArray (0::Int,446) [[(AlexAccSkip)],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_6))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_8))],[(AlexAcc (alex_action_8))],[(AlexAcc (alex_action_8))],[(AlexAcc (alex_action_8))],[(AlexAccSkip)],[(AlexAcc (alex_action_10))],[(AlexAcc (alex_action_11))],[(AlexAcc (alex_action_12))],[(AlexAcc (alex_action_13))],[(AlexAcc (alex_action_14))],[(AlexAcc (alex_action_15))],[(AlexAcc (alex_action_16))],[(AlexAcc (alex_action_17))],[(AlexAcc (alex_action_18))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_21))],[(AlexAcc (alex_action_22))],[(AlexAcc (alex_action_23))],[(AlexAcc (alex_action_24))],[(AlexAcc (alex_action_25))],[(AlexAcc (alex_action_26))],[(AlexAcc (alex_action_27))],[(AlexAcc (alex_action_28))],[(AlexAcc (alex_action_29))],[(AlexAcc (alex_action_30))],[(AlexAcc (alex_action_31))],[(AlexAcc (alex_action_32))],[(AlexAcc (alex_action_33))],[(AlexAcc (alex_action_34))],[(AlexAcc (alex_action_35))],[(AlexAcc (alex_action_36))],[(AlexAcc (alex_action_37))],[(AlexAcc (alex_action_38))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_40))],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_42))],[(AlexAcc (alex_action_43))],[(AlexAcc (alex_action_44))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_46))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_49))]]-{-# LINE 308 "src-dev/Language/JavaScript/Parser/Lexer.x" #-}+alex_accept = listArray (0::Int,446) [[(AlexAccSkip)],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[(AlexAcc (alex_action_1))],[(AlexAcc (alex_action_2))],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_6))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_8))],[(AlexAcc (alex_action_8))],[(AlexAcc (alex_action_8))],[(AlexAcc (alex_action_8))],[(AlexAccSkip)],[(AlexAcc (alex_action_10))],[(AlexAcc (alex_action_11))],[(AlexAcc (alex_action_12))],[(AlexAcc (alex_action_13))],[(AlexAcc (alex_action_14))],[(AlexAcc (alex_action_15))],[(AlexAcc (alex_action_16))],[(AlexAcc (alex_action_17))],[(AlexAcc (alex_action_18))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_21))],[(AlexAcc (alex_action_22))],[(AlexAcc (alex_action_23))],[(AlexAcc (alex_action_24))],[(AlexAcc (alex_action_25))],[(AlexAcc (alex_action_26))],[(AlexAcc (alex_action_27))],[(AlexAcc (alex_action_28))],[(AlexAcc (alex_action_29))],[(AlexAcc (alex_action_30))],[(AlexAcc (alex_action_31))],[(AlexAcc (alex_action_32))],[(AlexAcc (alex_action_33))],[(AlexAcc (alex_action_34))],[(AlexAcc (alex_action_35))],[(AlexAcc (alex_action_36))],[(AlexAcc (alex_action_37))],[(AlexAcc (alex_action_38))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_40))],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_42))],[(AlexAcc (alex_action_43))],[(AlexAcc (alex_action_44))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_46))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_49))]]+{-# LINE 313 "src-dev/Language/JavaScript/Parser/Lexer.x" #-}   {-@@ -60,8 +286,8 @@  -} classifyToken :: Token -> Int-classifyToken token =-   case token of+classifyToken aToken =+   case aToken of       IdentifierToken {} -> divide       NullToken {} -> divide       TrueToken {} -> divide@@ -76,90 +302,142 @@       _other      -> reg  --- Each right-hand side has type :: String -> Token--lexToken :: P Token+{-+--lexToken :: Alex Token lexToken = do-  -- location <- getLocation-  -- input <- getInput-  input@(_,_,_,inp) <- alexGetInput-  -- startCode <- getStartCode-  lt <- getLastToken-  -- case alexScan (location, input) (classifyToken lt) of-  case alexScan input (classifyToken lt) of-    AlexEOF -> return endOfFileToken-    AlexError _ -> lexicalError-    AlexSkip rest _len -> do-       -- setLocation nextLocation-       -- setInput rest-       alexSetInput rest+  inp <- alexGetInput+  lt  <- getLastToken+  case alexScan inp (classifyToken lt) of+    AlexEOF        -> alexEOF+    AlexError inp'@(pos,_,_,_) -> alexError ("lexical error @ line " ++ show (getLineNum(pos)) +++                                             " and column " ++ show (getColumnNum(pos)))+    AlexSkip inp' _len -> do+       alexSetInput inp'        lexToken-    AlexToken rest len action -> do-       --setLocation nextLocation-       --setInput rest-       alexSetInput rest-       --token <- action (mkSrcSpan location $ decColumn 1 nextLocation) len input-       token <- action (ignorePendingBytes input) len inp+    AlexToken inp' len action -> do+       alexSetInput inp'+       token <- action (ignorePendingBytes inp) len        setLastToken token        return token+-} +--lexToken :: Alex Token+lexToken = do+  inp <- alexGetInput+  lt  <- getLastToken+  case lt of+    TailToken {} -> alexEOF+    _other ->+      case alexScan inp (classifyToken lt) of+        AlexEOF        -> do+          token <- tailToken+          setLastToken token+          return token+        AlexError inp'@(pos,_,_,_) -> alexError ("lexical error @ line " ++ show (getLineNum(pos)) +++                                                 " and column " ++ show (getColumnNum(pos)))+        AlexSkip inp' _len -> do+          alexSetInput inp'+          lexToken+        AlexToken inp' len action -> do+          alexSetInput inp'+          token <- action (ignorePendingBytes inp) len+          setLastToken token+          return token++ -- This is called by the Happy parser.-lexCont :: (Token -> P a) -> P a+--lexCont :: (Token -> P a) -> P a+--lexCont :: (Token -> Alex Token) -> Alex Token lexCont cont = do    lexLoop    where    -- lexLoop :: P a    lexLoop = do       tok <- lexToken-      --tok <- alexMonadScan       case tok of-         {-          CommentToken {} -> do             addComment tok             lexLoop-         LineJoinToken {} -> lexLoop-         -}-         _other -> cont tok+         WsToken {} -> do+            addComment tok+            lexLoop+         _other -> do+            cs <- getComment+            let tok' = tok{ token_comment=(toCommentAnnotation cs) }+            setComment []+            cont tok' +toCommentAnnotation []    = [NoComment]+--toCommentAnnotation xs =  reverse $ map (\tok -> (CommentA (token_span tok) (token_literal tok))) xs -utf8Encode :: Char -> [Byte]-utf8Encode c = head (UTF8.encodeUTF8' [UTF8.c2w c])+toCommentAnnotation xs =  reverse $ map go xs+  where+    go tok@(CommentToken {}) = (CommentA (token_span tok) (token_literal tok))+    go tok@(WsToken      {}) = (WhiteSpace (token_span tok) (token_literal tok)) ---alexEOF = EOFToken alexSpanEmpty+-- --------------------------------------------------------------------- --- ignorePendingBytes :: forall t t1 t2 t3. (t, t1, t2, t3) -> (t, t1, t3)-ignorePendingBytes (p,c,_ps,s) = (p,c,s)+getLineNum :: AlexPosn -> Int+getLineNum (AlexPn _offset lineNum _colNum) = lineNum +getColumnNum :: AlexPosn -> Int+getColumnNum (AlexPn _offset _lineNum colNum) = colNum -alexInputPrevChar :: AlexInput -> Char-alexInputPrevChar (p,c,bs,s) = c+-- --------------------------------------------------------------------- -alexGetByte :: AlexInput -> Maybe (Byte,AlexInput)-alexGetByte (p,c,(b:bs),s) = Just (b,(p,c,bs,s))-alexGetByte (_p,_c,[],[]) = Nothing-alexGetByte (p,_,[],(c:s))  = let p' = alexMove p c-                                  (b:bs) = utf8Encode c-                              in p' `seq`  Just (b, (p', c, bs, s))+getLastToken :: Alex Token+getLastToken = Alex $ \s@AlexState{alex_ust=ust} -> Right (s, previousToken ust) -alexMove :: AlexPosn -> Char -> AlexPosn-alexMove (AlexPn a l c) '\t' = AlexPn (a+1)  l     (((c+7) `div` 8)*8+1)-alexMove (AlexPn a l _c) '\n' = AlexPn (a+1) (l+1)   1-alexMove (AlexPn a l c) _    = AlexPn (a+1)  l     (c+1)+setLastToken :: Token -> Alex ()+setLastToken tok = Alex $ \s -> Right (s{alex_ust=(alex_ust s){previousToken=tok}}, ()) +getComment :: Alex [Token]+--getComments = reverse <$> Alex $ \s@AlexState{alex_ust=ust} -> Right (s, comments ust)+getComment = Alex $ \s@AlexState{alex_ust=ust} -> Right (s, comment ust)+++addComment :: Token -> Alex ()+addComment c = Alex $ \s ->  Right (s{alex_ust=(alex_ust s){comment=c:(  comment (alex_ust s)  )}}, ())+++setComment :: [Token] -> Alex ()+setComment cs = Alex $ \s -> Right (s{alex_ust=(alex_ust s){comment=cs }}, ())++alexEOF :: Alex Token+alexEOF = do return (EOFToken tokenPosnEmpty [])++tailToken :: Alex Token+tailToken = do return (TailToken tokenPosnEmpty [])++adapt :: (TokenPosn -> Int -> String -> Alex Token) -> (AlexPosn,Char,String) -> Int -> Alex Token+adapt f loc@(p@(AlexPn offset line col),_,inp) len =+  (f (TokenPn offset line col) len inp)++{-+mkComment :: (AlexPosn,Char,String) -> Int -> Alex Token+mkComment loc@(p@(AlexPn offset line col),_,inp) len = do+  return (CommentToken (TokenPn offset line col) (take len inp))+-}++toTokenPosn :: AlexPosn -> TokenPosn+toTokenPosn (AlexPn offset line col) = (TokenPn offset line col)+ -- ---------------------------------------------------------------------  -- a keyword or an identifier (the syntax overlaps)-keywordOrIdent :: String -> AlexSpan -> P Token+keywordOrIdent :: String -> TokenPosn -> Alex Token keywordOrIdent str location    = return $ case Map.lookup str keywords of-         Just symbol -> symbol location str-         Nothing -> IdentifierToken location str+         Just symbol -> symbol location str []+         Nothing -> IdentifierToken location str []  -- mapping from strings to keywords-keywords :: Map.Map String (AlexSpan -> String -> Token)+--keywords :: Map.Map String (TokenPosn -> String -> Token)+keywords :: Map.Map String (TokenPosn -> String -> [CommentAnnotation] -> Token) keywords = Map.fromList keywordNames -keywordNames :: [(String, AlexSpan -> String -> Token)]+--keywordNames :: [(String, TokenPosn -> String -> Token)]+keywordNames :: [(String, TokenPosn -> String -> [CommentAnnotation] -> Token)] keywordNames =    [     ("break",BreakToken),@@ -250,51 +528,54 @@ bof = 1 divide = 2 reg = 3-alex_action_4 =  \loc len str -> keywordOrIdent (take len str) loc -alex_action_5 =  mkString stringToken -alex_action_6 =  mkString hexIntegerToken -alex_action_7 =  mkString regExToken -alex_action_8 =  mkString decimalToken -alex_action_10 =  mkString assignToken-alex_action_11 =  symbolToken  DivToken-alex_action_12 =  symbolToken  SemiColonToken-alex_action_13 =  symbolToken  CommaToken-alex_action_14 =  symbolToken  HookToken-alex_action_15 =  symbolToken  ColonToken-alex_action_16 =  symbolToken  OrToken-alex_action_17 =  symbolToken  AndToken-alex_action_18 =  symbolToken  BitwiseOrToken-alex_action_19 =  symbolToken  BitwiseXorToken-alex_action_20 =  symbolToken  BitwiseAndToken-alex_action_21 =  symbolToken  StrictEqToken-alex_action_22 =  symbolToken  EqToken-alex_action_23 =  mkString assignToken-alex_action_24 =  symbolToken  SimpleAssignToken-alex_action_25 =  symbolToken  StrictNeToken-alex_action_26 =  symbolToken  NeToken-alex_action_27 =  symbolToken  LshToken-alex_action_28 =  symbolToken  LeToken-alex_action_29 =  symbolToken  LtToken-alex_action_30 =  symbolToken  UrshToken-alex_action_31 =  symbolToken  RshToken-alex_action_32 =  symbolToken  GeToken-alex_action_33 =  symbolToken  GtToken-alex_action_34 =  symbolToken  IncrementToken-alex_action_35 =  symbolToken  DecrementToken-alex_action_36 =  symbolToken  PlusToken-alex_action_37 =  symbolToken  MinusToken-alex_action_38 =  symbolToken  MulToken-alex_action_39 =  symbolToken  ModToken-alex_action_40 =  symbolToken  NotToken-alex_action_41 =  symbolToken  BitwiseNotToken-alex_action_42 =  symbolToken  DotToken-alex_action_43 =  symbolToken  LeftBracketToken-alex_action_44 =  symbolToken  RightBracketToken-alex_action_45 =  symbolToken  LeftCurlyToken-alex_action_46 =  symbolToken  RightCurlyToken-alex_action_47 =  symbolToken  LeftParenToken-alex_action_48 =  symbolToken  RightParenToken-alex_action_49 =  symbolToken  CondcommentEndToken+alex_action_1 =  adapt (mkString wsToken) +alex_action_2 =  adapt (mkString commentToken) +alex_action_3 =  adapt (mkString commentToken) +alex_action_4 =  \ap@(loc,_,str) len -> keywordOrIdent (take len str) (toTokenPosn loc) +alex_action_5 =  adapt (mkString stringToken) +alex_action_6 =  adapt (mkString hexIntegerToken) +alex_action_7 =  adapt (mkString regExToken) +alex_action_8 =  adapt (mkString decimalToken) +alex_action_10 =  adapt (mkString assignToken)+alex_action_11 =  adapt (symbolToken DivToken)+alex_action_12 =  adapt (symbolToken  SemiColonToken)+alex_action_13 =  adapt (symbolToken  CommaToken)+alex_action_14 =  adapt (symbolToken  HookToken)+alex_action_15 =  adapt (symbolToken  ColonToken)+alex_action_16 =  adapt (symbolToken  OrToken)+alex_action_17 =  adapt (symbolToken  AndToken)+alex_action_18 =  adapt (symbolToken  BitwiseOrToken)+alex_action_19 =  adapt (symbolToken  BitwiseXorToken)+alex_action_20 =  adapt (symbolToken  BitwiseAndToken)+alex_action_21 =  adapt (symbolToken  StrictEqToken)+alex_action_22 =  adapt (symbolToken  EqToken)+alex_action_23 =  adapt (mkString assignToken)+alex_action_24 =  adapt (symbolToken  SimpleAssignToken)+alex_action_25 =  adapt (symbolToken  StrictNeToken)+alex_action_26 =  adapt (symbolToken  NeToken)+alex_action_27 =  adapt (symbolToken  LshToken)+alex_action_28 =  adapt (symbolToken  LeToken)+alex_action_29 =  adapt (symbolToken  LtToken)+alex_action_30 =  adapt (symbolToken  UrshToken)+alex_action_31 =  adapt (symbolToken  RshToken)+alex_action_32 =  adapt (symbolToken  GeToken)+alex_action_33 =  adapt (symbolToken  GtToken)+alex_action_34 =  adapt (symbolToken  IncrementToken)+alex_action_35 =  adapt (symbolToken  DecrementToken)+alex_action_36 =  adapt (symbolToken  PlusToken)+alex_action_37 =  adapt (symbolToken  MinusToken)+alex_action_38 =  adapt (symbolToken  MulToken)+alex_action_39 =  adapt (symbolToken  ModToken)+alex_action_40 =  adapt (symbolToken  NotToken)+alex_action_41 =  adapt (symbolToken  BitwiseNotToken)+alex_action_42 =  adapt (symbolToken  DotToken)+alex_action_43 =  adapt (symbolToken  LeftBracketToken)+alex_action_44 =  adapt (symbolToken  RightBracketToken)+alex_action_45 =  adapt (symbolToken  LeftCurlyToken)+alex_action_46 =  adapt (symbolToken  RightCurlyToken)+alex_action_47 =  adapt (symbolToken  LeftParenToken)+alex_action_48 =  adapt (symbolToken  RightParenToken)+alex_action_49 =  adapt (symbolToken  CondcommentEndToken) {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "<built-in>" #-}
src/Language/JavaScript/Parser/LexerUtils.hs view
@@ -12,12 +12,13 @@  module Language.JavaScript.Parser.LexerUtils (   StartCode-  , Action   -- , AlexInput   -- , alexGetChar   -- , alexInputPrevChar   , symbolToken   , mkString+  , commentToken+  , wsToken   , regExToken   , decimalToken   -- , endOfLine@@ -25,79 +26,62 @@   , assignToken   , hexIntegerToken   , stringToken-  , lexicalError+  --, lexicalError   ) where -import Control.Monad (liftM)-import Control.Monad.Error.Class (throwError)+--import Control.Monad.Error.Class (throwError) import Language.JavaScript.Parser.Token as Token-import Language.JavaScript.Parser.ParserMonad import Language.JavaScript.Parser.SrcLocation import Prelude hiding (span)  -- Functions for building tokens  type StartCode = Int---type Action = AlexSpan -> Int -> String -> P Token-type Action result = AlexInput -> Int -> result---type Action = AlexInput -> Int -{--endOfLine :: P Token -> Action-endOfLine lexToken span _len _str = do-   setLastEOL $ spanStartPoint span-   lexToken--}----symbolToken :: (AlexSpan -> Token) -> Action-symbolToken :: (Monad m) => (t -> a) -> t -> t1 -> t2 -> m a---symbolToken :: (Monad m) => (AlexSpan -> Token) -> t -> t1 -> t2 -> m Token-symbolToken mkToken location _ _ = return (mkToken location)---symbolToken mkToken location = return (mkToken location)+symbolToken :: Monad m => (TokenPosn -> [CommentAnnotation] -> Token) -> TokenPosn -> Int -> String -> m Token+symbolToken mkToken location _ _ = return (mkToken location [])  -- special tokens for the end of file and end of line endOfFileToken :: Token-endOfFileToken = EOFToken alexSpanEmpty--- dedentToken = DedentToken SpanEmpty-+endOfFileToken = EOFToken tokenPosnEmpty [] ---mkString :: (AlexSpan -> String -> Token) -> Action mkString-  :: (Monad m) => (t -> [a1] -> a) -> t -> Int -> [a1] -> m a-mkString toToken loc len str = do-   return $ toToken loc (take len str)--mkStringRemoveContinuation-  :: (Monad m) => (t -> [a1] -> a) -> t -> Int -> [a1] -> m a-mkStringRemoveContinuation toToken loc len str = do-   -- token <- toToken loc (take len str)-   return $ toToken loc (take len str)+  :: (Monad m) => (TokenPosn -> String -> Token) -> TokenPosn -> Int -> String -> m Token+mkString toToken loc len str = do return (toToken loc (take len str)) -decimalToken :: AlexSpan -> String -> Token-decimalToken loc str = DecimalToken loc str+decimalToken :: TokenPosn -> String -> Token+decimalToken loc str = DecimalToken loc str [] -hexIntegerToken :: AlexSpan -> String -> Token-hexIntegerToken loc str = HexIntegerToken loc str+hexIntegerToken :: TokenPosn -> String -> Token+hexIntegerToken loc str = HexIntegerToken loc str [] -assignToken :: AlexSpan -> String -> Token-assignToken loc str = AssignToken loc str+assignToken :: TokenPosn -> String -> Token+assignToken loc str = AssignToken loc str [] -regExToken :: AlexSpan -> String -> Token-regExToken loc str = RegExToken loc str+regExToken :: TokenPosn -> String -> Token+regExToken loc str = RegExToken loc str [] -stringToken :: AlexSpan -> String -> Token-stringToken loc str = StringToken loc str1 delimiter+stringToken :: TokenPosn -> String -> Token+stringToken loc str = StringToken loc str1 delimiter []   where-    -- str1 = init $ tail str-    str1 = stripLineContinuations $ init $ tail str+    str1 = init $ tail str+    -- str1 = stripLineContinuations $ init $ tail str     delimiter = head str +commentToken :: TokenPosn -> String -> Token+commentToken loc str = CommentToken loc str []++wsToken :: TokenPosn -> String -> Token+wsToken loc str = WsToken loc str []+ -- --------------------------------------------------------------------- -- Strip out any embedded line continuations -- Recognise by \ followed by $lf | $cr | $ls | $ps | $cr $lf -- $ls = \x2028, $ps = \x2029+stripLineContinuations :: String -> String stripLineContinuations xs = doStripLineContinuations [] [] xs +doStripLineContinuations :: String -> String -> String -> String doStripLineContinuations acc matched xs   | xs == []      = acc -- Assume we are passed well-formed strings, should not be a dangling match   | matched == [] = if (head xs == '\\')@@ -111,38 +95,12 @@  -- ----------------------------------------------------------------------------- -- Functionality required by Alex---- type AlexInput = (SrcLocation, String) {--alexInputPrevChar :: AlexInput -> Char-alexInputPrevChar _ = error "alexInputPrevChar not used"--alexGetChar :: AlexInput -> Maybe (Char, AlexInput)-alexGetChar (loc, input)-   | null input  = Nothing-   | otherwise = Just (nextChar, (nextLoc, rest))-   where-   nextChar = head input-   rest = tail input-   nextLoc = moveChar nextChar loc--moveChar :: Char -> SrcLocation -> SrcLocation-moveChar '\n' = incLine 1-moveChar '\t' = incTab-moveChar '\r' = id-moveChar _    = incColumn 1--}- lexicalError :: P a lexicalError = do   location <- getLocation   c <- liftM head getInput   -- (_,c,_,_) <- getInput   throwError $ UnexpectedChar c location--{--readOctNoO :: String -> Integer-readOctNoO (zero:rest) = read (zero:'O':rest) -}- -- EOF
src/Language/JavaScript/Parser/ParseError.hs view
@@ -2,32 +2,33 @@ -- | -- Module      : Language.JavaScript.ParseError -- Based on language-python version by Bernie Pope--- Copyright   : (c) 2009 Bernie Pope +-- Copyright   : (c) 2009 Bernie Pope -- License     : BSD-style -- Stability   : experimental -- Portability : ghc ----- Error values for the lexer and parser. +-- Error values for the lexer and parser. -----------------------------------------------------------------------------  module Language.JavaScript.Parser.ParseError ( ParseError (..) ) where  --import Language.JavaScript.Parser.Pretty-import Language.JavaScript.Parser.SrcLocation (AlexPosn)-import Language.JavaScript.Parser.Token (Token) import Control.Monad.Error.Class+import Language.JavaScript.Parser.Lexer+import Language.JavaScript.Parser.SrcLocation (TokenPosn)+-- import Language.JavaScript.Parser.Token (Token) -data ParseError  -   = UnexpectedToken Token           -     -- ^ An error from the parser. Token found where it should not be. +data ParseError+   = UnexpectedToken Token+     -- ^ An error from the parser. Token found where it should not be.      --   Note: tokens contain their own source span.-   | UnexpectedChar Char AlexPosn +   | UnexpectedChar Char TokenPosn      -- ^ An error from the lexer. Character found where it should not be.-   | StrError String                 +   | StrError String      -- ^ A generic error containing a string message. No source location.    deriving (Eq, {- Ord,-} Show)  instance Error ParseError where    noMsg = StrError ""-   strMsg = StrError +   strMsg = StrError 
src/Language/JavaScript/Parser/Parser.hs view
@@ -1,77 +1,64 @@ module Language.JavaScript.Parser.Parser (-   -- * Parsing +   -- * Parsing      parse    , readJs-   , parseFile  +   -- , readJsKeepComments+   , parseFile    -- * Parsing expressions    -- parseExpr    , parseUsing-   , showStripped  -   , showStrippedMaybe  +   , showStripped+   , showStrippedMaybe    ) where  import Language.JavaScript.Parser.ParseError---import Language.JavaScript.Parser.Grammar import Language.JavaScript.Parser.Grammar5 import Language.JavaScript.Parser.Lexer-import Language.JavaScript.Parser.ParserMonad import qualified Language.JavaScript.Parser.AST as AST --- | Parse one compound statement, or a sequence of simple statements. --- Generally used for interactive input, such as from the command line of an interpreter. --- Return comments in addition to the parsed statements.-parseStmtKeepComments :: String -- ^ The input stream (Javascript source code). -      -> String -- ^ The name of the Javascript source (filename or input device). -      -> Either ParseError (AST.JSNode, [Token]) -         -- ^ An error or maybe the abstract syntax tree (AST) of zero or more Javascript statements, plus comments.-parseStmtKeepComments input _srcName = -   execParserKeepComments parseProgram state -   where-     state = initialState input  ---- | Parse one compound statement, or a sequence of simple statements. --- Generally used for interactive input, such as from the command line of an interpreter. +-- | Parse one compound statement, or a sequence of simple statements.+-- Generally used for interactive input, such as from the command line of an interpreter. -- Return comments in addition to the parsed statements.-parse :: String -- ^ The input stream (Javascript source code). -      -> String -- ^ The name of the Javascript source (filename or input device). -      -> Either ParseError AST.JSNode -         -- ^ An error or maybe the abstract syntax tree (AST) of zero or more Javascript statements, plus comments.-parse input _srcName = -   execParser parseProgram state -   where-     state = initialState input +parse :: String -- ^ The input stream (Javascript source code).+      -> String -- ^ The name of the Javascript source (filename or input device).+      -> Either String  AST.JSNode+         -- ^ An error or maybe the abstract syntax tree (AST) of zero+         -- or more Javascript statements, plus comments.+parse input _srcName = runAlex input parseProgram + readJs :: String -> AST.JSNode readJs input = do   case (parse input "src") of     Left msg -> error (show msg)-    Right p -> p  +    Right p -> p  parseFile :: FilePath -> IO AST.JSNode parseFile filename =-  do +  do      x <- readFile (filename)      return $ readJs x -showStripped ast = AST.showStripped ast +showStripped :: AST.JSNode -> String+showStripped ast = AST.showStripped ast +showStrippedMaybe :: Show a => Either a AST.JSNode -> String showStrippedMaybe maybeAst = do   case maybeAst of     Left msg -> "Left (" ++ show msg ++ ")"     Right p -> "Right (" ++ AST.showStripped p ++ ")" --- | Parse one compound statement, or a sequence of simple statements. --- Generally used for interactive input, such as from the command line of an interpreter. +-- | Parse one compound statement, or a sequence of simple statements.+-- Generally used for interactive input, such as from the command line of an interpreter. -- Return comments in addition to the parsed statements.-parseUsing :: -      P AST.JSNode-      -> String -- ^ The input stream (Javascript source code). -      -> String -- ^ The name of the Javascript source (filename or input device). -      -> Either ParseError AST.JSNode -         -- ^ An error or maybe the abstract syntax tree (AST) of zero or more Javascript statements, plus comments.-parseUsing p input _srcName = -   execParser p state -   where-     state = initialState input+parseUsing ::+      Alex AST.JSNode -- ^ The parser to be used+      -> String -- ^ The input stream (Javascript source code).+      -> String -- ^ The name of the Javascript source (filename or input device).+      -> Either String AST.JSNode+         -- ^ An error or maybe the abstract syntax tree (AST) of zero+         -- or more Javascript statements, plus comments.++parseUsing p input _srcName = runAlex input p 
src/Language/JavaScript/Parser/ParserMonad.hs view
@@ -1,181 +1,37 @@ {-# OPTIONS  #-} ----------------------------------------------------------------------------- -- |--- Module      : Language.JavaScript.ParserMonad --- Based on language-python version by Bernie Pope--- Copyright   : (c) 2009 Bernie Pope +-- Module      : Language.JavaScript.ParserMonad+-- Copyright   : (c) 2012 Alan Zimmerman -- License     : BSD-style -- Stability   : experimental -- Portability : ghc ----- Monad support for JavaScript parser and lexer. +-- Monad support for JavaScript parser and lexer. ----------------------------------------------------------------------------- -module Language.JavaScript.Parser.ParserMonad -   ( P-   , execParser-   , execParserKeepComments-   , runParser-   , thenP-   , returnP-   , alexSetInput  -   , alexGetInput  -   , setLocation-   , getLocation-   , getInput-   , setInput-   , getLastToken-   , setLastToken-   -- , setLastEOL-   -- , getLastEOL-   , ParseError (..)-   , ParseState (..)-   , initialState-   , addComment-   , getComments-   , spanError-   , AlexInput -   , Byte  -   ) where--import Control.Applicative ((<$>))-import Control.Monad.Error as Error-import Control.Monad.State.Class-import Control.Monad.State.Strict as State-import Language.JavaScript.Parser.ParseError (ParseError (..))-import Language.JavaScript.Parser.SrcLocation (AlexPosn (..), alexStartPos, alexSpanEmpty, Span (..))-import Language.JavaScript.Parser.Token (Token (..))-import Prelude hiding (span)-import Data.Word (Word8)--internalError :: String -> P a -internalError = throwError . StrError --spanError :: Span a => a -> String -> P b ---spanError x str = throwError $ StrError $ unwords [prettyText $ getSpan x, str]-spanError x str = throwError $ StrError $ show ([show (getSpan x), str])--type Byte = Word8--type AlexInput = (AlexPosn,     -- current position,-                  Char,         -- previous char-                  [Byte],       -- pending bytes on current char-                  String)       -- current input string+module Language.JavaScript.Parser.ParserMonad+       (+         AlexUserState(..)+       , alexInitUserState+       ) where +import Language.JavaScript.Parser.Token+import Language.JavaScript.Parser.SrcLocation -data ParseState = ParseState {-        alex_pos :: !AlexPosn,  -- position at current input location-        alex_inp :: String,     -- the current input-        alex_chr :: !Char,      -- the character before the input-        alex_bytes :: [Byte],-        alex_scd :: !Int        -- the current startcode-        -    , previousToken :: !Token  -- the previous token-    , comments :: [Token]      -- accumulated comments -    }+data AlexUserState = AlexUserState+  {+    previousToken :: !Token  -- ^the previous token+  , comment :: [Token]       -- ^the previous comment, if any+  } -initialState :: String -> ParseState-initialState inp -   = ParseState -   { alex_pos = alexStartPos-   , alex_inp = inp-   , alex_chr = '\n'          -   , alex_bytes = []             -   , alex_scd = 0               -   , previousToken = initToken-   , comments = []-   }-{--data ParseState = -   ParseState -   { location :: !SrcLocation -- position at current input location-   -- , input :: !String         -- the current input-   , input :: !AlexInput      -- the current input     -   , previousToken :: !Token  -- the previous token-   -- , lastEOL :: !SrcSpan      -- location of the most recent end-of-line encountered-   , comments :: [Token]      -- accumulated comments +alexInitUserState :: AlexUserState+alexInitUserState = AlexUserState+   {+     previousToken = initToken+   , comment = []    }-   deriving Show--}  initToken :: Token---initToken = NewlineToken SpanEmpty -initToken = CommentToken alexSpanEmpty ""----type P a = StateT ParseState (Either ParseError) a--execParser :: P a -> ParseState -> Either ParseError a-execParser = evalStateT --execParserKeepComments :: P a -> ParseState -> Either ParseError (a, [Token])-execParserKeepComments parser astate = -   evalStateT (parser >>= \x -> getComments >>= \c -> return (x, c)) astate--runParser :: P a -> ParseState -> Either ParseError (a, ParseState)-runParser = runStateT --{-# INLINE returnP #-}-returnP :: a -> P a-returnP = return --{-# INLINE thenP #-}-thenP :: P a -> (a -> P b) -> P b-thenP = (>>=)--{--failP :: SrcSpan -> [String] -> P a-failP span strs = throwError (prettyText span ++ ": " ++ unwords strs) --}-{--setLastEOL :: SrcSpan -> P ()-setLastEOL span = modify $ \s -> s { lastEOL = span }--getLastEOL :: P SrcSpan-getLastEOL = gets lastEOL--}--alexGetInput :: P AlexInput-alexGetInput- -- = P $ \s@ParseState{alex_pos=pos,alex_chr=c,alex_bytes=bs,alex_inp=inp} -> - --        Right (s, (pos,c,bs,inp))- = do-   pos <- gets alex_pos-   c   <- gets alex_chr-   bs  <- gets alex_bytes-   inp <- gets alex_inp-   return (pos,c,bs,inp)--alexSetInput :: AlexInput -> P ()-alexSetInput (pos,c,bs,inp)- -- = P $ \s -> case s{alex_pos=pos,alex_chr=c,alex_bytes=bs,alex_inp=inp} of- --                  s@(ParseState{}) -> Right (s, ())- = modify $ \s -> s{alex_pos=pos,alex_chr=c,alex_bytes=bs,alex_inp=inp}---setLocation :: AlexPosn -> P ()-setLocation loc = modify $ \s -> s { alex_pos = loc } --getLocation :: P AlexPosn-getLocation = gets alex_pos --getInput :: P String -getInput = gets alex_inp --setInput :: String -> P ()-setInput inp = modify $ \s -> s { alex_inp = inp }--getLastToken :: P Token-getLastToken = gets previousToken --setLastToken :: Token -> P ()-setLastToken tok = modify $ \s -> s { previousToken = tok } --addComment :: Token -> P ()-addComment c = do-   oldComments <- gets comments-   modify $ \s -> s { comments = c : oldComments }+initToken = CommentToken tokenPosnEmpty "" [] -getComments :: P [Token]-getComments = reverse <$> gets comments
src/Language/JavaScript/Parser/SrcLocation.hs view
@@ -1,297 +1,21 @@-{-# LANGUAGE CPP, DeriveDataTypeable #-}--------------------------------------------------------------------------------- |--- Module      : Language.Python.Common.SrcLocation--- Copyright   : (c) 2009 Bernie Pope--- License     : BSD-style--- Maintainer  : bjpop@csse.unimelb.edu.au--- Stability   : experimental--- Portability : ghc------ Source location information for the Python lexer and parser. This module--- provides single-point locations and spans, and conversions between them.-------------------------------------------------------------------------------+{-# LANGUAGE DeriveDataTypeable #-} module Language.JavaScript.Parser.SrcLocation (-  -- * Construction-  AlexPosn (..),-  AlexSpan (..),-  alexStartPos,-  alexSpanEmpty,-  SrcLocation (..),-  SrcSpan (..),-  Span (..),-  toSrcSpan,-  spanning,-  mkSrcSpan,-  combineSrcSpans,-  initialSrcLocation,-  spanStartPoint,-  -- * Modification-  incColumn,-  decColumn,-  incLine,-  incTab,-  -- endCol,-  -- * Projection of components of a span-  -- endRow,-  -- startCol,-  -- startRow-) where+  TokenPosn(..)+  , tokenPosnEmpty+  ) where  import Data.Data-import Prelude hiding (span) --- | `Posn' records the location of a token in the input text.  It has three+-- | `TokenPosn' records the location of a token in the input text.  It has three -- fields: the address (number of characters preceding the token), line number--- and column of a token within the file. `start_pos' gives the position of the--- start of the file and `eof_pos' a standard encoding for the end of file.--- `move_pos' calculates the new position after traversing a given character,--- assuming the usual eight character tab stops.--data AlexPosn = AlexPn !Int -- address (number of characters preceding the token)-                       !Int -- line number-                       !Int -- column-        deriving (Eq,Show)--alexStartPos :: AlexPosn-alexStartPos = AlexPn 0 1 1---- AZ bringing this in as SrcSpan replacement.-type AlexSpan = (AlexPosn, Char, String)-alexSpanEmpty :: AlexSpan-alexSpanEmpty = (alexStartPos, '\n', "")---- | A location for a syntactic entity from the source code.--- The location is specified by its filename, and starting row--- and column.-data SrcLocation =-   Sloc { sloc_filename :: !String-        , sloc_address :: {-# UNPACK #-} !Int  -- address (number of characters preceding the token)-        , sloc_row :: {-# UNPACK #-} !Int-        , sloc_column :: {-# UNPACK #-} !Int-        }-   | NoLocation-   deriving (Eq,Ord,Show,Typeable,Data)-{--instance Pretty SrcLocation where-   pretty = pretty . getSpan--}---- | Types which have a span.-class Span a where-   getSpan :: a -> SrcSpan-   getSpan _x = SpanEmpty---- | Create a new span which encloses two spanned things.-spanning :: (Span a, Span b) => a -> b -> SrcSpan-spanning x y = combineSrcSpans (getSpan x) (getSpan y)--instance Span a => Span [a] where-   getSpan [] = SpanEmpty-   getSpan [x] = getSpan x-   getSpan list@(x:_xs) = combineSrcSpans (getSpan x) (getSpan (last list))--instance Span a => Span (Maybe a) where-   getSpan Nothing = SpanEmpty-   getSpan (Just x) = getSpan x--instance (Span a, Span b) => Span (Either a b) where-   getSpan (Left x) = getSpan x-   getSpan (Right x) = getSpan x--instance (Span a, Span b) => Span (a, b) where-   getSpan (x,y) = spanning x y--instance Span SrcSpan where-   getSpan = id---- ++AZ++ adding this-instance Span AlexPosn where-  getSpan ap = toSrcSpan (ap,'\n',"")--toSrcSpan :: AlexSpan -> SrcSpan-toSrcSpan ((AlexPn _addr line col),_,_) = SpanPoint { span_filename = "", span_row = line, span_column = col}--- ++AZ++ end---- | Construct the initial source location for a file.-initialSrcLocation :: String -> SrcLocation-initialSrcLocation filename-    = Sloc-      { sloc_filename = filename-      , sloc_address = 1-      , sloc_row = 1-      , sloc_column = 1-      }---- | Decrement the column of a location, only if they are on the same row.-decColumn :: Int -> SrcLocation -> SrcLocation-decColumn n loc-   | n < col = loc { sloc_column = col - n }-   | otherwise = loc-   where-   col = sloc_column loc---- | Increment the column of a location.-incColumn :: Int -> SrcLocation -> SrcLocation-incColumn n loc@(Sloc { sloc_column = col })-   = loc { sloc_column = col + n }-incColumn _ NoLocation = NoLocation---- | Increment the column of a location by one tab stop.-incTab :: SrcLocation -> SrcLocation-incTab loc@(Sloc { sloc_column = col })-   = loc { sloc_column = newCol }-   where-   newCol = col + 8 - (col - 1) `mod` 8-incTab NoLocation = NoLocation---- | Increment the line number (row) of a location by one.-incLine :: Int -> SrcLocation -> SrcLocation-incLine n loc@(Sloc { sloc_row = row })-   = loc { sloc_column = 1, sloc_row = row + n }-incLine _ NoLocation = NoLocation-{--Inspired heavily by compiler/basicTypes/SrcLoc.lhs-A SrcSpan delimits a portion of a text file.--}---- | Source location spanning a contiguous section of a file.-data SrcSpan-    -- | A span which starts and ends on the same line.-  = SpanCoLinear-    { span_filename     :: !String-    , span_row          :: {-# UNPACK #-} !Int-    , span_start_column :: {-# UNPACK #-} !Int-    , span_end_column   :: {-# UNPACK #-} !Int-    }-    -- | A span which starts and ends on different lines.-  | SpanMultiLine-    { span_filename     :: !String-    , span_start_row    :: {-# UNPACK #-} !Int-    , span_start_column :: {-# UNPACK #-} !Int-    , span_end_row      :: {-# UNPACK #-} !Int-    , span_end_column   :: {-# UNPACK #-} !Int-    }-    -- | A span which is actually just one point in the file.-  | SpanPoint-    { span_filename :: !String-    , span_row      :: {-# UNPACK #-} !Int-    , span_column   :: {-# UNPACK #-} !Int-    }-    -- | No span information.-  | SpanEmpty-   deriving (Eq,Ord,Show,Read,Typeable,Data)--{--instance Show SrcSpan where-  show (s@(SpanCoLinear filename row start end)) =-    -- showChar '('.showString filename.shows row.shows start.shows end.showChar ')'      -- ("foo.txt" 12 4 5)-    showChar '(' . showChar ')'       -- ("foo.txt" 12 4 5)--  show (s@(SpanMultiLine filename sr sc er ec)) =-    showChar '('.showString filename.shows sr.shows sc.shows er.shows ec.showChar ')'  -- ("foo.txt" 12 4 13 5)-  show (s@(SpanPoint filename r c)) =-    showChar '('.showString filename.shows r.shows c.showChar ')'                      -- ("foo.txt" 12 4)-  show (SpanEmpty) = showString "()"                                                   -- ()- -}----instance Read SrcSpan where---  readsPrec _ str = [--{--instance Read a => Read Tree a where-  readsPrec _ str = [(Leave x, t’) | ("Leave", t) <- reads str,-                                     (x, t’)      <- reads t] ++-                    [((Node i r d), t’’’) |-                               ("Node", t) <- reads str,-                               (i, t’)       <- reads t,-                               (r, t’’)      <- reads t’,-                               (d, t’’’)     <- reads t’’]--}--instance Span SrcLocation where-   getSpan loc@(Sloc {})-      = SpanPoint-        { span_filename = sloc_filename loc-        , span_row = sloc_row loc-        , span_column = sloc_column loc-        }-   getSpan NoLocation = SpanEmpty---- | Make a point span from the start of a span-spanStartPoint :: SrcSpan -> SrcSpan-spanStartPoint SpanEmpty = SpanEmpty-spanStartPoint span =-   SpanPoint-   { span_filename = span_filename span-   , span_row = startRow span-   , span_column = startCol span-   }---- | Make a span from two locations. Assumption: either the--- arguments are the same, or the left one preceeds the right one.-mkSrcSpan :: SrcLocation -> SrcLocation -> SrcSpan-mkSrcSpan NoLocation _ = SpanEmpty-mkSrcSpan _ NoLocation = SpanEmpty-mkSrcSpan loc1 loc2-  | line1 == line2 =-       if col2 <= col1-          then SpanPoint file line1 col1-          else SpanCoLinear file line1 col1 col2-  | otherwise =-       SpanMultiLine file line1 col1 line2 col2-  where-  line1 = sloc_row loc1-  line2 = sloc_row loc2-  col1 = sloc_column loc1-  col2 = sloc_column loc2-  file = sloc_filename loc1---- | Combines two 'SrcSpan' into one that spans at least all the characters--- within both spans. Assumes the "file" part is the same in both inputs-combineSrcSpans :: SrcSpan -> SrcSpan -> SrcSpan-combineSrcSpans SpanEmpty r = r -- this seems more useful-combineSrcSpans l SpanEmpty = l-combineSrcSpans start end- = case row1 `compare` row2 of-     EQ -> case col1 `compare` col2 of-                EQ -> SpanPoint file row1 col1-                LT -> SpanCoLinear file row1 col1 col2-                GT -> SpanCoLinear file row1 col2 col1-     LT -> SpanMultiLine file row1 col1 row2 col2-     GT -> SpanMultiLine file row2 col2 row1 col1-  where-  row1 = startRow start-  col1 = startCol start-  row2 = endRow end-  col2 = endCol end-  file = span_filename start---- | Get the row of the start of a span.-startRow :: SrcSpan -> Int-startRow (SpanCoLinear { span_row = row }) = row-startRow (SpanMultiLine { span_start_row = row }) = row-startRow (SpanPoint { span_row = row }) = row-startRow SpanEmpty = error "startRow called on empty span"+-- and column of a token within the file.+-- Note: The lexer assumes the usual eight character tab stops. --- | Get the row of the end of a span.-endRow :: SrcSpan -> Int-endRow (SpanCoLinear { span_row = row }) = row-endRow (SpanMultiLine { span_end_row = row }) = row-endRow (SpanPoint { span_row = row }) = row-endRow SpanEmpty = error "endRow called on empty span"+data TokenPosn = TokenPn !Int -- address (number of characters preceding the token)+                         !Int -- line number+                         !Int -- column+        deriving (Eq,Show, Read, Data, Typeable) --- | Get the column of the start of a span.-startCol :: SrcSpan -> Int-startCol (SpanCoLinear { span_start_column = col }) = col-startCol (SpanMultiLine { span_start_column = col }) = col-startCol (SpanPoint { span_column = col }) = col-startCol SpanEmpty = error "startCol called on empty span"+tokenPosnEmpty :: TokenPosn+tokenPosnEmpty = TokenPn 0 0 0 --- | Get the column of the end of a span.-endCol :: SrcSpan -> Int-endCol (SpanCoLinear { span_end_column = col }) = col-endCol (SpanMultiLine { span_end_column = col }) = col-endCol (SpanPoint { span_column = col }) = col-endCol SpanEmpty = error "endCol called on empty span"
src/Language/JavaScript/Parser/Token.hs view
@@ -1,8 +1,8 @@ {-# LANGUAGE CPP, DeriveDataTypeable #-} ----------------------------------------------------------------------------- -- |--- Module      : Language.Python.Common.Token --- Copyright   : (c) 2009 Bernie Pope +-- Module      : Language.Python.Common.Token+-- Copyright   : (c) 2009 Bernie Pope -- License     : BSD-style -- Maintainer  : bjpop@csse.unimelb.edu.au -- Stability   : experimental@@ -12,151 +12,139 @@ -- version 2 and version 3 of Python (they are mostly the same). ----------------------------------------------------------------------------- -module Language.JavaScript.Parser.Token ( -   -- * The tokens -   Token (..),+module Language.JavaScript.Parser.Token (+   -- * The tokens+   Token (..)+   , CommentAnnotation(..)    -- * String conversion-   debugTokenString,-   -- tokenString,+   , debugTokenString    -- * Classification    -- TokenClass (..),    ) where ---import Language.JavaScript.Parser.Pretty-import Language.JavaScript.Parser.SrcLocation (AlexSpan) import Data.Data+import Language.JavaScript.Parser.SrcLocation +data CommentAnnotation = CommentA TokenPosn String+                       | WhiteSpace TokenPosn String+                       | NoComment+   deriving (Eq,{-Ord,-}Show,Typeable,Data,Read)+ -- | Lexical tokens.-data Token +-- Each may be annotated with any comment occuring between the prior token and this one+data Token    -- Comment-   = CommentToken { token_span :: !AlexSpan, token_literal :: !String } -- ^ Single line comment.+   = CommentToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation] } -- ^ Single line comment.+   | WsToken      { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation] } -- ^ White space, for preservation. -   -- Identifiers -   | IdentifierToken { token_span :: !AlexSpan, token_literal :: !String }            -- ^ Identifier.+   -- Identifiers+   | IdentifierToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }            -- ^ Identifier. -   -- Javascript Literals  -     -   | DecimalToken { token_span :: !AlexSpan, token_literal :: !String  }-     -- ^ Literal: Decimal -   | HexIntegerToken { token_span :: !AlexSpan, token_literal :: !String  }+   -- Javascript Literals++   | DecimalToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]   }+     -- ^ Literal: Decimal+   | HexIntegerToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]   }      -- ^ Literal: Hexadecimal Integer-   | StringToken { token_span :: !AlexSpan, token_literal :: !String, token_delimiter :: !Char }                   +   | StringToken { token_span :: !TokenPosn, token_literal :: !String, token_delimiter :: !Char, token_comment :: ![CommentAnnotation]  }      -- ^ Literal: string, delimited by either single or double quotes-   | RegExToken { token_span :: !AlexSpan, token_literal :: !String  }+   | RegExToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]   }      -- ^ Literal: Regular Expression     -- Keywords-   | BreakToken { token_span :: !AlexSpan, token_literal :: !String }-   | CaseToken { token_span :: !AlexSpan, token_literal :: !String }-   | CatchToken { token_span :: !AlexSpan, token_literal :: !String }-   | ConstToken { token_span :: !AlexSpan, token_literal :: !String }-   | ContinueToken { token_span :: !AlexSpan, token_literal :: !String }-   | DebuggerToken { token_span :: !AlexSpan, token_literal :: !String }-   | DefaultToken { token_span :: !AlexSpan, token_literal :: !String }-   | DeleteToken { token_span :: !AlexSpan, token_literal :: !String }-   | DoToken { token_span :: !AlexSpan, token_literal :: !String }-   | ElseToken { token_span :: !AlexSpan, token_literal :: !String }-   | EnumToken { token_span :: !AlexSpan, token_literal :: !String }-   | FalseToken { token_span :: !AlexSpan, token_literal :: !String }-   | FinallyToken { token_span :: !AlexSpan, token_literal :: !String }-   | ForToken { token_span :: !AlexSpan, token_literal :: !String }-   | FunctionToken { token_span :: !AlexSpan, token_literal :: !String }-   | IfToken { token_span :: !AlexSpan, token_literal :: !String }-   | InToken { token_span :: !AlexSpan, token_literal :: !String }-   | InstanceofToken { token_span :: !AlexSpan, token_literal :: !String }-   | NewToken { token_span :: !AlexSpan, token_literal :: !String }-   | NullToken { token_span :: !AlexSpan, token_literal :: !String }-   | ReturnToken { token_span :: !AlexSpan, token_literal :: !String }-   | SwitchToken { token_span :: !AlexSpan, token_literal :: !String }-   | ThisToken { token_span :: !AlexSpan, token_literal :: !String }-   | ThrowToken { token_span :: !AlexSpan, token_literal :: !String }-   | TrueToken { token_span :: !AlexSpan, token_literal :: !String }-   | TryToken { token_span :: !AlexSpan, token_literal :: !String }-   | TypeofToken { token_span :: !AlexSpan, token_literal :: !String }-   | VarToken { token_span :: !AlexSpan, token_literal :: !String }-   | VoidToken { token_span :: !AlexSpan, token_literal :: !String }-   | WhileToken { token_span :: !AlexSpan, token_literal :: !String }-   | WithToken { token_span :: !AlexSpan, token_literal :: !String }-   -- Future reserved words  -   | FutureToken { token_span :: !AlexSpan, token_literal :: !String }-   -- Needed, not sure what they are though.  -   | GetToken { token_span :: !AlexSpan, token_literal :: !String }-   | SetToken { token_span :: !AlexSpan, token_literal :: !String }-   +   | BreakToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | CaseToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | CatchToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | ConstToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | ContinueToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | DebuggerToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | DefaultToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | DeleteToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | DoToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | ElseToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | EnumToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | FalseToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | FinallyToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | ForToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | FunctionToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | IfToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | InToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | InstanceofToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | NewToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | NullToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | ReturnToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | SwitchToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | ThisToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | ThrowToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | TrueToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | TryToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | TypeofToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | VarToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | VoidToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | WhileToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | WithToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   -- Future reserved words+   | FutureToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   -- Needed, not sure what they are though.+   | GetToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | SetToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+    -- Delimiters    -- Operators-   | SemiColonToken { token_span :: !AlexSpan }-   | CommaToken { token_span :: !AlexSpan }-   | HookToken { token_span :: !AlexSpan }-   | ColonToken { token_span :: !AlexSpan }-   | OrToken { token_span :: !AlexSpan }-   | AndToken { token_span :: !AlexSpan }-   | BitwiseOrToken { token_span :: !AlexSpan }-   | BitwiseXorToken { token_span :: !AlexSpan }-   | BitwiseAndToken { token_span :: !AlexSpan }-   | StrictEqToken { token_span :: !AlexSpan }-   | EqToken { token_span :: !AlexSpan }-   | AssignToken { token_span :: !AlexSpan, token_literal :: !String }-   | SimpleAssignToken { token_span :: !AlexSpan }-   | StrictNeToken { token_span :: !AlexSpan }-   | NeToken { token_span :: !AlexSpan }-   | LshToken { token_span :: !AlexSpan }-   | LeToken { token_span :: !AlexSpan }-   | LtToken { token_span :: !AlexSpan }-   | UrshToken { token_span :: !AlexSpan }-   | RshToken { token_span :: !AlexSpan }-   | GeToken { token_span :: !AlexSpan }-   | GtToken { token_span :: !AlexSpan }-   | IncrementToken { token_span :: !AlexSpan }-   | DecrementToken { token_span :: !AlexSpan }-   | PlusToken { token_span :: !AlexSpan }-   | MinusToken { token_span :: !AlexSpan }-   | MulToken { token_span :: !AlexSpan }-   | DivToken { token_span :: !AlexSpan }-   | ModToken { token_span :: !AlexSpan }-   | NotToken { token_span :: !AlexSpan }-   | BitwiseNotToken { token_span :: !AlexSpan }-   | DotToken { token_span :: !AlexSpan }-   | LeftBracketToken { token_span :: !AlexSpan }-   | RightBracketToken { token_span :: !AlexSpan }-   | LeftCurlyToken { token_span :: !AlexSpan }-   | RightCurlyToken { token_span :: !AlexSpan }-   | LeftParenToken { token_span :: !AlexSpan }-   | RightParenToken { token_span :: !AlexSpan }-   | CondcommentEndToken { token_span :: !AlexSpan }+   | SemiColonToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | CommaToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | HookToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | ColonToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | OrToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | AndToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | BitwiseOrToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | BitwiseXorToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | BitwiseAndToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | StrictEqToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | EqToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | AssignToken { token_span :: !TokenPosn, token_literal :: !String, token_comment :: ![CommentAnnotation]  }+   | SimpleAssignToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | StrictNeToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | NeToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | LshToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | LeToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | LtToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | UrshToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | RshToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | GeToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | GtToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | IncrementToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | DecrementToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | PlusToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | MinusToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | MulToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | DivToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | ModToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | NotToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | BitwiseNotToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | DotToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | LeftBracketToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | RightBracketToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | LeftCurlyToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | RightCurlyToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | LeftParenToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | RightParenToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }+   | CondcommentEndToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }     -- Special cases-   | EOFToken { token_span :: !AlexSpan }                          -- ^ End of file +   | TailToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  } -- ^ Stuff between last JS and EOF+   | EOFToken { token_span :: !TokenPosn, token_comment :: ![CommentAnnotation]  }  -- ^ End of file    deriving (Eq,{-Ord,-}Show,Typeable{-,Data-}) -{--instance Span Token where-  getSpan = token_span --}    --- | Produce a string from a token containing detailed information. Mainly intended for debugging. +-- | Produce a string from a token containing detailed information. Mainly intended for debugging. debugTokenString :: Token -> String-debugTokenString token = +debugTokenString _token =   "blah"   {-    render (text (show $ toConstr token) <+> pretty (token_span token) <+>           if hasLiteral token then text (token_literal token) else empty)    -} -{---- | Classification of tokens-data TokenClass-   = Comment-   | Number-   | Identifier-   | Punctuation-   | Bracket-   | Layout -   | Keyword-   | String-   | Operator-   | Assignment-   deriving (Show, Eq, Ord)--}  -- EOF
+ src/Language/JavaScript/Pretty/Printer.hs view
@@ -0,0 +1,221 @@+module Language.JavaScript.Pretty.Printer (+  -- * Printing+  renderJS+  , renderToString+  ) where++import Data.Char+import Data.List+import Data.Monoid (Monoid, mappend, mempty, mconcat)+import Language.JavaScript.Parser.AST+import Language.JavaScript.Parser.Parser+import Language.JavaScript.Parser.SrcLocation+import Language.JavaScript.Parser.Token+import qualified Blaze.ByteString.Builder as BB+import qualified Blaze.ByteString.Builder.Char.Utf8 as BS+import qualified Data.ByteString.Lazy as LB+import qualified Codec.Binary.UTF8.String as US++import Debug.Trace++-- ---------------------------------------------------------------------++data Foo = Foo (Int,Int) BB.Builder++-- ---------------------------------------------------------------------+-- Pretty printer stuff via blaze-builder++(<>) :: BB.Builder -> BB.Builder -> BB.Builder+(<>) a b = mappend a b++(<+>) :: BB.Builder -> BB.Builder -> BB.Builder+(<+>) a b = mconcat [a, (text " "), b]++--() ((Int, Int), BB.Builder) -> ((Int, Int), BB.Builder) -> ((Int, Int), BB.Builder)+--() a b =++hcat :: (Monoid a) => [a] -> a+hcat xs = mconcat xs++empty :: BB.Builder+empty = mempty++text :: String -> BB.Builder+text s = BS.fromString s++char :: Char -> BB.Builder+char c = BS.fromChar c++comma :: BB.Builder+comma = BS.fromChar ','++punctuate :: a -> [a] -> [a]+punctuate p xs = intersperse p xs++-- ---------------------------------------------------------------------++(<!>) :: Foo -> Foo -> Foo+(<!>) (Foo _ bb1) (Foo (r,c) bb2) = Foo (r,c) (mappend bb1 bb2)+--(<!>) a b = mappend a b++-- ---------------------------------------------------------------------++renderJS :: JSNode -> BB.Builder+renderJS node = bb+  where+    Foo _ bb = rn node (Foo (1,1) empty)++-- Take in the current+-- rn :: (Int, Int) -> JSNode -> ((Int, Int), BB.Builder)+rn :: JSNode -> Foo -> Foo++-- Terminals+rn (NT (JSIdentifier s     ) p cs) foo = rcs cs p s  foo+rn (NT (JSDecimal i        ) p cs) foo = rcs cs p i foo+rn (NT (JSLiteral l        ) p cs) foo = rcs cs p l foo+rn (NT (JSHexInteger i     ) p cs) foo = rcs cs p i foo+rn (NT (JSStringLiteral s l) p cs) foo = rcs cs p ((s:l)++[s]) foo+rn (NT (JSRegEx s          ) p cs) foo = rcs cs p s foo++-- Non-Terminals+rn (NN (JSArguments lb xs rb))                    foo = rJS ([lb] ++ xs ++ [rb]) foo+rn (NN (JSArrayLiteral lb xs rb))                 foo = rJS ([lb] ++ xs ++ [rb]) foo+rn (NN (JSBlock lb x rb))                         foo = rJS (lb ++ [x] ++ rb) foo+rn (NN (JSBreak b x1s as))                        foo = rJS ([b]++x1s++[as]) foo+rn (NN (JSCallExpression s os xs cs))             foo = rJS (os ++ xs ++ cs) foo+rn (NN (JSCase ca x1 c x2))                       foo = rJS [ca,x1,c,x2] foo+rn (NN (JSCatch c lb x1 x2s rb x3))               foo = rJS ([c,lb,x1]++x2s++[rb,x3]) foo+rn (NN (JSContinue c xs as))                      foo = rJS ([c]++xs++[as]) foo+rn (NN (JSDefault d c x))                         foo = rJS [d,c,x] foo+rn (NN (JSDoWhile d x1 w lb x2 rb x3))            foo = rJS ([d,x1,w,lb,x2,rb,x3]) foo+rn (NN (JSElision c))                             foo = rJS [c] foo+rn (NN (JSExpression xs))                         foo = rJS xs foo+rn (NN (JSExpressionBinary s lhs op rhs))         foo = rJS (lhs ++ [op] ++ rhs) foo+rn (NN (JSExpressionParen lb e rb))               foo = rJS ([lb,e,rb]) foo+rn (NN (JSExpressionPostfix s xs op))             foo = rJS (xs ++ [op]) foo+rn (NN (JSExpressionTernary cond h v1 c v2))      foo = rJS (cond ++[h] ++ v1 ++ [c] ++ v2) foo+rn (NN (JSFinally f x))                           foo = rJS [f,x] foo+rn (NN (JSFor f lb x1s s1 x2s s2 x3s rb x4))      foo = rJS ([f,lb]++x1s++[s1]++x2s++[s2]++x3s++[rb,x4]) foo+rn (NN (JSForIn f lb x1s i x2 rb x3))             foo = rJS ([f,lb]++x1s++[i,x2,rb,x3]) foo+rn (NN (JSForVar f lb v x1s s1 x2s s2 x3s rb x4)) foo = rJS ([f,lb,v]++x1s++[s1]++x2s++[s2]++x3s++[rb,x4]) foo+rn (NN (JSForVarIn f lb v x1 i x2 rb x3))         foo = rJS [f,lb,v,x1,i,x2,rb,x3] foo+rn (NN (JSFunction f x1 lb x2s rb lb2 x3 rb2))    foo = rJS ([f,x1,lb]++x2s++[rb,lb2,x3,rb2]) foo+rn (NN (JSFunctionBody xs))                       foo = rJS xs foo+rn (NN (JSFunctionExpression f x1s lb x2s rb lb2 x3 rb2)) foo = rJS ([f] ++ x1s ++ [lb] ++ x2s ++ [rb,lb2,x3,rb2]) foo+rn (NN (JSIf i lb x1 rb x2 x3s))                  foo = rJS ([i,lb,x1,rb,x2]++x3s) foo+rn (NN (JSLabelled l c v))                        foo = rJS [l,c,v] foo+rn (NN (JSMemberDot xs dot n))                    foo = rJS (xs ++ [dot,n]) foo+rn (NN (JSMemberSquare xs lb e rb))               foo = rJS (xs ++ [lb,e,rb]) foo+rn (NN (JSObjectLiteral lb xs rb))                foo = rJS ([lb] ++ xs ++ [rb]) foo+rn (NN (JSOperator n))                            foo = rJS [n] foo+rn (NN (JSPropertyAccessor s n lb1 ps rb1 lb2 b rb2)) foo = rJS ([s,n,lb1] ++ ps ++ [rb1,lb2,b,rb2]) foo+rn (NN (JSPropertyNameandValue n colon vs))       foo = rJS ([n,colon] ++ vs) foo+rn (NN (JSReturn r xs as))                        foo = rJS ([r] ++ xs ++ [as]) foo+rn (NN (JSSourceElements    xs))                  foo = rJS xs foo+rn (NN (JSSourceElementsTop xs))                  foo = rJS xs foo+rn (NN (JSStatementBlock lb x rb))                foo = rJS [lb,x,rb] foo+rn (NN (JSStatementList xs))                      foo = rJS xs foo+rn (NN (JSSwitch s lb x rb x2s))                  foo = rJS ([s,lb,x,rb]++x2s) foo+rn (NN (JSThrow t x))                             foo = rJS [t,x] foo+rn (NN (JSTry t x1 x2s))                          foo = rJS ([t,x1]++x2s) foo+rn (NN (JSUnary l n))                             foo = rJS [n] foo+rn (NN (JSVarDecl x1 x2s))                        foo = rJS ([x1]++x2s) foo+rn (NN (JSVariables n xs as))                     foo = rJS ([n]++xs++[as]) foo+rn (NN (JSWhile w lb x1 rb x2))                   foo = rJS [w,lb,x1,rb,x2] foo+rn (NN (JSWith w lb x1 rb x2s))                   foo = rJS ([w,lb,x1,rb]++x2s) foo++-- Debug helper+rn what foo = rs (show what) foo++--rn _ _ = undefined++-- ---------------------------------------------------------------------+-- Helper functions++-- ---------------------------------------------------------------------+-- Need a function that+-- a) renders all comments, according to their positions+-- b) advances to the position of the required string+-- c) renders the string, advancing the position+rcs :: [CommentAnnotation] -> TokenPosn -> String -> Foo -> Foo+rcs cs p s foo = rps p s (rc cs foo)++rc :: [CommentAnnotation] -> Foo -> Foo+rc cs foo = foldl' go foo cs+  where+    go :: Foo -> CommentAnnotation -> Foo+    go foo NoComment = foo+    go foo (CommentA   p s) = rps p s foo+    go foo (WhiteSpace p s) = rps p s foo++-- Render a string at the given position+rps :: TokenPosn -> String -> Foo -> Foo+rps p s foo = (rs s foo')+  where+    foo' = (goto p foo)++-- Render a string+rs :: String -> Foo -> Foo+rs s (Foo (r,c) bb) = (Foo (r',c') (bb <> (text s)))+  where+    (r',c') = foldl' (\(row,col) char -> go (row,col) char) (r,c) s++    go (r,c) '\n' = (r+1,1)+    go (r,c) _    = (r,c+1)+++goto :: TokenPosn -> Foo -> Foo+goto (TokenPn _ ltgt ctgt) (Foo (lcur,ccur) bb) = (Foo (lnew,cnew) (bb <> bb'))+-- goto (TokenPn _ ltgt ctgt) (Foo (lcur,ccur) bb) = trace ("goto " ++ (show $ (ltgt,ctgt)) ++ "," ++ (show $ (lcur,ccur)) ++ "," ++ (show $ (lnew,cnew)) ) $  (Foo (lnew,cnew) (bb <> bb'))+  where+    (bbline,ccur') = if (lcur < ltgt) then (text $ (take (ltgt - lcur) $ repeat '\n'),1) else (mempty,ccur)+    bbcol  = if (ccur' < ctgt) then (text $ take (ctgt - ccur') $ repeat ' ' ) else mempty+    bb' = bbline <> bbcol+    lnew = if (lcur < ltgt) then ltgt else lcur+    cnew = if (ccur' < ctgt) then ctgt else ccur'+++rJS :: [JSNode] -> Foo -> Foo+rJS xs foo = foldl' (flip rn) foo xs++renderToString :: JSNode -> String+-- need to be careful to not lose the unicode encoding on output+renderToString js = US.decode $ LB.unpack $ BB.toLazyByteString $ renderJS js+++-- ---------------------------------------------------------------------+-- Test stuff++_r :: JSNode -> String+_r js = map (\x -> chr (fromIntegral x)) $ LB.unpack $ BB.toLazyByteString $ renderJS js++_t :: String -> String+_t str = _r $ readJs str+++-- readJs "/*a*/x"+_ax = (NN+     (JSExpression+       [NT+        (JSIdentifier "x")+        (TokenPn 5 1 6)+        [CommentA (TokenPn 0 1 1) "/*a*/"]])+      )+++-- readJs "//j\nthis_"+-- NS (JSSourceElementsTop [NS (JSExpression [NS (JSIdentifier "this_") (TokenPn 4 2 1) [CommentA (TokenPn 0 1 1) "//j"]]) (TokenPn 4 2 1) []]) (TokenPn 4 2 1) []++_r1 = NN+      (+        JSExpression+          [+            NT+              (JSIdentifier "this_")+              (TokenPn 4 2 1)+              [CommentA (TokenPn 0 1 1) "//j"]+          ])+++-- EOF+