diff --git a/Tokens.hs b/Tokens.hs new file mode 100644 index 0000000000000000000000000000000000000000..59fe0afa7a6bb7c16b152147c82aebe53d04d358 --- /dev/null +++ b/Tokens.hs @@ -0,0 +1,20012 @@ +{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-missing-signatures #-} +{-# LANGUAGE CPP #-} +{-# LINE 1 "Tokens.x" #-} +module Tokens where +#if __GLASGOW_HASKELL__ >= 603 +#include "ghcconfig.h" +#elif defined(__GLASGOW_HASKELL__) +#include "config.h" +#endif +#if __GLASGOW_HASKELL__ >= 503 +import Data.Array +#else +import Array +#endif +#define ALEX_POSN 1 +-- ----------------------------------------------------------------------------- +-- Alex wrapper code. +-- +-- This code is in the PUBLIC DOMAIN; you may copy it freely and use +-- it for any purpose whatsoever. + +#if defined(ALEX_MONAD) || defined(ALEX_MONAD_BYTESTRING) +import Control.Applicative as App (Applicative (..)) +#endif + +import Data.Word (Word8) +#if defined(ALEX_BASIC_BYTESTRING) || defined(ALEX_POSN_BYTESTRING) || defined(ALEX_MONAD_BYTESTRING) + +import Data.Int (Int64) +import qualified Data.Char +import qualified Data.ByteString.Lazy as ByteString +import qualified Data.ByteString.Internal as ByteString (w2c) + +#elif defined(ALEX_STRICT_BYTESTRING) + +import qualified Data.Char +import qualified Data.ByteString as ByteString +import qualified Data.ByteString.Internal as ByteString hiding (ByteString) +import qualified Data.ByteString.Unsafe as ByteString + +#else + +import Data.Char (ord) +import qualified Data.Bits + +-- | Encode a Haskell String to a list of Word8 values, in UTF8 format. +utf8Encode :: Char -> [Word8] +utf8Encode = uncurry (:) . utf8Encode' + +utf8Encode' :: Char -> (Word8, [Word8]) +utf8Encode' c = case go (ord c) of + (x, xs) -> (fromIntegral x, map fromIntegral xs) + 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 + ]) + +#endif + +type Byte = Word8 + +-- ----------------------------------------------------------------------------- +-- The input type + +#if defined(ALEX_POSN) || defined(ALEX_MONAD) || defined(ALEX_GSCAN) +type AlexInput = (AlexPosn, -- current position, + Char, -- previous char + [Byte], -- pending bytes on current char + String) -- current input string + +ignorePendingBytes :: AlexInput -> AlexInput +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 (_,_,[],[]) = Nothing +alexGetByte (p,_,[],(c:s)) = let p' = alexMove p c + in case utf8Encode' c of + (b, bs) -> p' `seq` Just (b, (p', c, bs, s)) +#endif + +#if defined(ALEX_POSN_BYTESTRING) || defined(ALEX_MONAD_BYTESTRING) +type AlexInput = (AlexPosn, -- current position, + Char, -- previous char + ByteString.ByteString, -- current input string + Int64) -- bytes consumed so far + +ignorePendingBytes :: AlexInput -> AlexInput +ignorePendingBytes i = i -- no pending bytes when lexing bytestrings + +alexInputPrevChar :: AlexInput -> Char +alexInputPrevChar (_,c,_,_) = c + +alexGetByte :: AlexInput -> Maybe (Byte,AlexInput) +alexGetByte (p,_,cs,n) = + case ByteString.uncons cs of + Nothing -> Nothing + Just (b, cs') -> + let c = ByteString.w2c b + p' = alexMove p c + n' = n+1 + in p' `seq` cs' `seq` n' `seq` Just (b, (p', c, cs',n')) +#endif + +#ifdef ALEX_BASIC_BYTESTRING +data AlexInput = AlexInput { alexChar :: {-# UNPACK #-} !Char, -- previous char + alexStr :: !ByteString.ByteString, -- current input string + alexBytePos :: {-# UNPACK #-} !Int64} -- bytes consumed so far + +alexInputPrevChar :: AlexInput -> Char +alexInputPrevChar = alexChar + +alexGetByte (AlexInput {alexStr=cs,alexBytePos=n}) = + case ByteString.uncons cs of + Nothing -> Nothing + Just (c, rest) -> + Just (c, AlexInput { + alexChar = ByteString.w2c c, + alexStr = rest, + alexBytePos = n+1}) +#endif + +#ifdef ALEX_STRICT_BYTESTRING +data AlexInput = AlexInput { alexChar :: {-# UNPACK #-} !Char, + alexStr :: {-# UNPACK #-} !ByteString.ByteString, + alexBytePos :: {-# UNPACK #-} !Int} + +alexInputPrevChar :: AlexInput -> Char +alexInputPrevChar = alexChar + +alexGetByte (AlexInput {alexStr=cs,alexBytePos=n}) = + case ByteString.uncons cs of + Nothing -> Nothing + Just (c, rest) -> + Just (c, AlexInput { + alexChar = ByteString.w2c c, + alexStr = rest, + alexBytePos = n+1}) +#endif + +-- ----------------------------------------------------------------------------- +-- 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. + +#if defined(ALEX_POSN) || defined(ALEX_MONAD) || defined(ALEX_POSN_BYTESTRING) || defined(ALEX_MONAD_BYTESTRING) || defined(ALEX_GSCAN) +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+alex_tab_size-((c-1) `mod` alex_tab_size)) +alexMove (AlexPn a l _) '\n' = AlexPn (a+1) (l+1) 1 +alexMove (AlexPn a l c) _ = AlexPn (a+1) l (c+1) +#endif + +-- ----------------------------------------------------------------------------- +-- Monad (default and with ByteString input) + +#if defined(ALEX_MONAD) || defined(ALEX_MONAD_BYTESTRING) +data AlexState = AlexState { + alex_pos :: !AlexPosn, -- position at current input location +#ifndef ALEX_MONAD_BYTESTRING + alex_inp :: String, -- the current input + alex_chr :: !Char, -- the character before the input + alex_bytes :: [Byte], +#else /* ALEX_MONAD_BYTESTRING */ + alex_bpos:: !Int64, -- bytes consumed so far + alex_inp :: ByteString.ByteString, -- the current input + alex_chr :: !Char, -- the character before the input +#endif /* ALEX_MONAD_BYTESTRING */ + alex_scd :: !Int -- the current startcode +#ifdef ALEX_MONAD_USER_STATE + , alex_ust :: AlexUserState -- AlexUserState will be defined in the user program +#endif + } + +-- Compile with -funbox-strict-fields for best results! + +#ifndef ALEX_MONAD_BYTESTRING +runAlex :: String -> Alex a -> Either String a +runAlex input__ (Alex f) + = case f (AlexState {alex_bytes = [], +#else /* ALEX_MONAD_BYTESTRING */ +runAlex :: ByteString.ByteString -> Alex a -> Either String a +runAlex input__ (Alex f) + = case f (AlexState {alex_bpos = 0, +#endif /* ALEX_MONAD_BYTESTRING */ + alex_pos = alexStartPos, + alex_inp = input__, + alex_chr = '\n', +#ifdef ALEX_MONAD_USER_STATE + alex_ust = alexInitUserState, +#endif + alex_scd = 0}) of Left msg -> Left msg + Right ( _, a ) -> Right a + +newtype Alex a = Alex { unAlex :: AlexState -> Either String (AlexState, a) } + +instance Functor Alex where + fmap f a = Alex $ \s -> case unAlex a s of + Left msg -> Left msg + Right (s', a') -> Right (s', f a') + +instance Applicative Alex where + pure a = Alex $ \s -> Right (s, a) + fa <*> a = Alex $ \s -> case unAlex fa s of + Left msg -> Left msg + Right (s', f) -> case unAlex a s' of + Left msg -> Left msg + Right (s'', b) -> Right (s'', f b) + +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 = App.pure + +alexGetInput :: Alex AlexInput +alexGetInput +#ifndef ALEX_MONAD_BYTESTRING + = Alex $ \s@AlexState{alex_pos=pos,alex_chr=c,alex_bytes=bs,alex_inp=inp__} -> + Right (s, (pos,c,bs,inp__)) +#else /* ALEX_MONAD_BYTESTRING */ + = Alex $ \s@AlexState{alex_pos=pos,alex_bpos=bpos,alex_chr=c,alex_inp=inp__} -> + Right (s, (pos,c,inp__,bpos)) +#endif /* ALEX_MONAD_BYTESTRING */ + +alexSetInput :: AlexInput -> Alex () +#ifndef ALEX_MONAD_BYTESTRING +alexSetInput (pos,c,bs,inp__) + = Alex $ \s -> case s{alex_pos=pos,alex_chr=c,alex_bytes=bs,alex_inp=inp__} of +#else /* ALEX_MONAD_BYTESTRING */ +alexSetInput (pos,c,inp__,bpos) + = Alex $ \s -> case s{alex_pos=pos, + alex_bpos=bpos, + alex_chr=c, + alex_inp=inp__} of +#endif /* ALEX_MONAD_BYTESTRING */ + state__@(AlexState{}) -> Right (state__, ()) + +alexError :: String -> Alex a +alexError message = Alex $ const $ 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}, ()) + +#if !defined(ALEX_MONAD_BYTESTRING) && defined(ALEX_MONAD_USER_STATE) +alexGetUserState :: Alex AlexUserState +alexGetUserState = Alex $ \s@AlexState{alex_ust=ust} -> Right (s,ust) + +alexSetUserState :: AlexUserState -> Alex () +alexSetUserState ss = Alex $ \s -> Right (s{alex_ust=ss}, ()) +#endif /* !defined(ALEX_MONAD_BYTESTRING) && defined(ALEX_MONAD_USER_STATE) */ + +alexMonadScan = do +#ifndef ALEX_MONAD_BYTESTRING + inp__ <- alexGetInput +#else /* ALEX_MONAD_BYTESTRING */ + inp__@(_,_,_,n) <- alexGetInput +#endif /* ALEX_MONAD_BYTESTRING */ + sc <- alexGetStartCode + case alexScan inp__ sc of + AlexEOF -> alexEOF + AlexError ((AlexPn _ line column),_,_,_) -> alexError $ "lexical error at line " ++ (show line) ++ ", column " ++ (show column) + AlexSkip inp__' _len -> do + alexSetInput inp__' + alexMonadScan +#ifndef ALEX_MONAD_BYTESTRING + AlexToken inp__' len action -> do +#else /* ALEX_MONAD_BYTESTRING */ + AlexToken inp__'@(_,_,_,n') _ action -> let len = n'-n in do +#endif /* ALEX_MONAD_BYTESTRING */ + alexSetInput inp__' + action (ignorePendingBytes inp__) len + +-- ----------------------------------------------------------------------------- +-- Useful token actions + +#ifndef ALEX_MONAD_BYTESTRING +type AlexAction result = AlexInput -> Int -> Alex result +#else /* ALEX_MONAD_BYTESTRING */ +type AlexAction result = AlexInput -> Int64 -> Alex result +#endif /* ALEX_MONAD_BYTESTRING */ + +-- 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 + +#ifndef ALEX_MONAD_BYTESTRING +token :: (AlexInput -> Int -> token) -> AlexAction token +#else /* ALEX_MONAD_BYTESTRING */ +token :: (AlexInput -> Int64 -> token) -> AlexAction token +#endif /* ALEX_MONAD_BYTESTRING */ +token t input__ len = return (t input__ len) +#endif /* defined(ALEX_MONAD) || defined(ALEX_MONAD_BYTESTRING) */ + + +-- ----------------------------------------------------------------------------- +-- Basic wrapper + +#ifdef ALEX_BASIC +type AlexInput = (Char,[Byte],String) + +alexInputPrevChar :: AlexInput -> Char +alexInputPrevChar (c,_,_) = c + +-- alexScanTokens :: String -> [token] +alexScanTokens str = go ('\n',[],str) + where go inp__@(_,_bs,s) = + case alexScan inp__ 0 of + AlexEOF -> [] + AlexError _ -> error "lexical error" + AlexSkip inp__' _ln -> go inp__' + AlexToken inp__' len act -> act (take len s) : go inp__' + +alexGetByte :: AlexInput -> Maybe (Byte,AlexInput) +alexGetByte (c,(b:bs),s) = Just (b,(c,bs,s)) +alexGetByte (_,[],[]) = Nothing +alexGetByte (_,[],(c:s)) = case utf8Encode' c of + (b, bs) -> Just (b, (c, bs, s)) +#endif + + +-- ----------------------------------------------------------------------------- +-- Basic wrapper, ByteString version + +#ifdef ALEX_BASIC_BYTESTRING + +-- alexScanTokens :: ByteString.ByteString -> [token] +alexScanTokens str = go (AlexInput '\n' str 0) + where go inp__ = + case alexScan inp__ 0 of + AlexEOF -> [] + AlexError _ -> error "lexical error" + AlexSkip inp__' _len -> go inp__' + AlexToken inp__' _ act -> + let len = alexBytePos inp__' - alexBytePos inp__ in + act (ByteString.take len (alexStr inp__)) : go inp__' + +#endif + +#ifdef ALEX_STRICT_BYTESTRING + +-- alexScanTokens :: ByteString.ByteString -> [token] +alexScanTokens str = go (AlexInput '\n' str 0) + where go inp__ = + case alexScan inp__ 0 of + AlexEOF -> [] + AlexError _ -> error "lexical error" + AlexSkip inp__' _len -> go inp__' + AlexToken inp__' _ act -> + let len = alexBytePos inp__' - alexBytePos inp__ in + act (ByteString.take len (alexStr inp__)) : go inp__' + +#endif + + +-- ----------------------------------------------------------------------------- +-- Posn wrapper + +-- Adds text positions to the basic model. + +#ifdef ALEX_POSN +--alexScanTokens :: String -> [token] +alexScanTokens str0 = go (alexStartPos,'\n',[],str0) + where go inp__@(pos,_,_,str) = + case alexScan inp__ 0 of + AlexEOF -> [] + AlexError ((AlexPn _ line column),_,_,_) -> error $ "lexical error at line " ++ (show line) ++ ", column " ++ (show column) + AlexSkip inp__' _ln -> go inp__' + AlexToken inp__' len act -> act pos (take len str) : go inp__' +#endif + + +-- ----------------------------------------------------------------------------- +-- Posn wrapper, ByteString version + +#ifdef ALEX_POSN_BYTESTRING +--alexScanTokens :: ByteString.ByteString -> [token] +alexScanTokens str0 = go (alexStartPos,'\n',str0,0) + where go inp__@(pos,_,str,n) = + case alexScan inp__ 0 of + AlexEOF -> [] + AlexError ((AlexPn _ line column),_,_,_) -> error $ "lexical error at line " ++ (show line) ++ ", column " ++ (show column) + AlexSkip inp__' _len -> go inp__' + AlexToken inp__'@(_,_,_,n') _ act -> + act pos (ByteString.take (n'-n) str) : go inp__' +#endif + + +-- ----------------------------------------------------------------------------- +-- GScan wrapper + +-- For compatibility with previous versions of Alex, and because we can. + +#ifdef ALEX_GSCAN +alexGScan stop__ state__ inp__ = + alex_gscan stop__ alexStartPos '\n' [] inp__ (0,state__) + +alex_gscan stop__ p c bs inp__ (sc,state__) = + case alexScan (p,c,bs,inp__) sc of + AlexEOF -> stop__ p c inp__ (sc,state__) + AlexError _ -> stop__ p c inp__ (sc,state__) + AlexSkip (p',c',bs',inp__') _len -> + alex_gscan stop__ p' c' bs' inp__' (sc,state__) + AlexToken (p',c',bs',inp__') len k -> + k p c inp__ len (\scs -> alex_gscan stop__ p' c' bs' inp__' scs) (sc,state__) +#endif +alex_tab_size :: Int +alex_tab_size = 8 +alex_base :: Array Int Int +alex_base = listArray (0 :: Int, 129) + [ -8 + , 79 + , 163 + , 247 + , 331 + , 415 + , 499 + , 583 + , 0 + , 0 + , 0 + , 641 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , -39 + , -41 + , 636 + , 892 + , 829 + , 942 + , 0 + , 1159 + , 1243 + , 1327 + , 1411 + , 1495 + , 1579 + , 1663 + , 1747 + , 1831 + , 1915 + , 1999 + , 2083 + , 2167 + , 2251 + , 2335 + , 2419 + , 2503 + , 2587 + , 2671 + , 2755 + , 2839 + , 2923 + , 3007 + , 3091 + , 3175 + , 3259 + , 3343 + , 3427 + , 3511 + , 3595 + , 3679 + , 3763 + , 3847 + , 3931 + , 4015 + , 4010 + , 0 + , 4074 + , 4320 + , 110 + , 0 + , 4292 + , 4537 + , 4621 + , 4705 + , 4789 + , 4873 + , 4957 + , 5041 + , 5125 + , 5209 + , 5293 + , 5377 + , 5461 + , 5545 + , 5629 + , 5713 + , 5797 + , 5881 + , 5965 + , 0 + , 6049 + , 6133 + , 6217 + , 6301 + , 6385 + , 6469 + , 6553 + , 6637 + , 6721 + , 6805 + , 6889 + , 6973 + , 7057 + , 7141 + , 7225 + , 7309 + , 7393 + , 7477 + , 0 + , -107 + , 0 + , -20 + , 7561 + , 7645 + , 7729 + , 7813 + , 7897 + , 7981 + , 8065 + , 8149 + , 8233 + , 8317 + , 8401 + , 8485 + , 8569 + , 8653 + , 8737 + , 8821 + , 8905 + , 8989 + , 9073 + ] + +alex_table :: Array Int Int +alex_table = listArray (0 :: Int, 9328) + [ 0 + , 67 + , 67 + , 67 + , 67 + , 67 + , 66 + , 22 + , 22 + , 22 + , 22 + , 22 + , 22 + , 22 + , 22 + , 22 + , 22 + , 107 + , 109 + , 0 + , 0 + , 0 + , 0 + , 0 + , 67 + , 0 + , 0 + , 0 + , 0 + , 0 + , 110 + , 0 + , 18 + , 17 + , 20 + , 15 + , 12 + , 21 + , 14 + , 19 + , 22 + , 22 + , 22 + , 22 + , 22 + , 22 + , 22 + , 22 + , 22 + , 22 + , 0 + , 0 + , 13 + , 16 + , 0 + , 0 + , 0 + , 70 + , 31 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 54 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 103 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 11 + , 0 + , 10 + , 0 + , 0 + , 0 + , 70 + , 56 + , 42 + , 70 + , 74 + , 59 + , 70 + , 70 + , 28 + , 101 + , 70 + , 70 + , 70 + , 80 + , 70 + , 70 + , 70 + , 93 + , 78 + , 83 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 9 + , 108 + , 8 + , 70 + , 67 + , 67 + , 67 + , 67 + , 67 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 67 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 5 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 24 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 25 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 7 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 30 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 120 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 32 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 33 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 96 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 35 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 6 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 37 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 38 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 39 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 97 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 41 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 112 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 29 + , 70 + , 70 + , 43 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 44 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 45 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 81 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 47 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 48 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 87 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 49 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 50 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 51 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 52 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 118 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 3 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 105 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 106 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 57 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 58 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 75 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 85 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 60 + , 70 + , 70 + , 53 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 61 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 62 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 128 + , 127 + , 70 + , 23 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 69 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 0 + , 0 + , 88 + , 0 + , 69 + , 0 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 69 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 24 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 68 + , 65 + , 23 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 64 + , 25 + , 63 + , 27 + , 27 + , 27 + , 26 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 2 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 71 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 72 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 84 + , 73 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 129 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 116 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 76 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 40 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 77 + , 46 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 119 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 79 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 55 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 1 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 95 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 34 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 82 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 4 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 91 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 122 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 86 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 89 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 90 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 126 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 92 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 94 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 36 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 98 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 114 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 100 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 99 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 102 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 104 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 111 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 113 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 115 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 117 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 121 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 123 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 124 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 125 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 70 + , 0 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 70 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + ] + +alex_check :: Array Int Int +alex_check = listArray (0 :: Int, 9328) + [ -1 + , 9 + , 10 + , 11 + , 12 + , 13 + , 45 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , 124 + , 38 + , -1 + , -1 + , -1 + , -1 + , -1 + , 32 + , -1 + , -1 + , -1 + , -1 + , -1 + , 38 + , -1 + , 40 + , 41 + , 42 + , 43 + , 44 + , 45 + , 46 + , 47 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , 60 + , 61 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , 91 + , -1 + , 93 + , -1 + , -1 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 123 + , 124 + , 125 + , 39 + , 9 + , 10 + , 11 + , 12 + , 13 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , 32 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 128 + , 129 + , 130 + , 131 + , 132 + , 133 + , 134 + , 135 + , 136 + , 137 + , 138 + , 139 + , 140 + , 141 + , 142 + , 143 + , 144 + , 145 + , 146 + , 147 + , 148 + , 149 + , 150 + , 151 + , 152 + , 153 + , 154 + , 155 + , 156 + , 157 + , 158 + , 159 + , 160 + , 161 + , 162 + , 163 + , 164 + , 165 + , 166 + , 167 + , 168 + , 169 + , 170 + , 171 + , 172 + , 173 + , 174 + , 175 + , 176 + , 177 + , 178 + , 179 + , 180 + , 181 + , 182 + , 183 + , 184 + , 185 + , 186 + , 187 + , 188 + , 189 + , 190 + , 191 + , 192 + , 193 + , 194 + , 195 + , 196 + , 197 + , 198 + , 199 + , 200 + , 201 + , 202 + , 203 + , 204 + , 205 + , 206 + , 207 + , 208 + , 209 + , 210 + , 211 + , 212 + , 213 + , 214 + , 215 + , 216 + , 217 + , 218 + , 219 + , 220 + , 221 + , 222 + , 223 + , 224 + , 225 + , 226 + , 227 + , 228 + , 229 + , 230 + , 231 + , 232 + , 233 + , 234 + , 235 + , 236 + , 237 + , 238 + , 239 + , 240 + , 241 + , 242 + , 243 + , 244 + , 245 + , 246 + , 247 + , 248 + , 249 + , 250 + , 251 + , 252 + , 253 + , 254 + , 255 + , 0 + , 1 + , 2 + , 3 + , 4 + , 5 + , 6 + , 7 + , 8 + , 9 + , 10 + , 11 + , 12 + , 13 + , 14 + , 15 + , 16 + , 17 + , 18 + , 19 + , 20 + , 21 + , 22 + , 23 + , 24 + , 25 + , 26 + , 27 + , 28 + , 29 + , 30 + , 31 + , 32 + , 33 + , 34 + , 35 + , 36 + , 37 + , 38 + , 39 + , 40 + , 41 + , 42 + , 43 + , 44 + , 45 + , 46 + , 47 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , 58 + , 59 + , 60 + , 61 + , 62 + , 63 + , 64 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , 91 + , 92 + , 93 + , 94 + , 95 + , 96 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 123 + , 124 + , 125 + , 126 + , 127 + , 191 + , 192 + , 193 + , 194 + , 195 + , 196 + , 197 + , 198 + , 199 + , 200 + , 201 + , 202 + , 203 + , 204 + , 205 + , 206 + , 207 + , 208 + , 209 + , 210 + , 211 + , 212 + , 213 + , 214 + , 215 + , 216 + , 217 + , 218 + , 219 + , 220 + , 221 + , 222 + , 223 + , 224 + , 225 + , 226 + , 227 + , 228 + , 229 + , 230 + , 231 + , 232 + , 233 + , 234 + , 235 + , 236 + , 237 + , 238 + , 239 + , 240 + , 241 + , 242 + , 243 + , 244 + , 245 + , 246 + , 247 + , 248 + , 249 + , 250 + , 251 + , 252 + , 253 + , 254 + , 255 + , 143 + , 144 + , 145 + , 146 + , 147 + , 148 + , 149 + , 150 + , 151 + , 152 + , 153 + , 154 + , 155 + , 156 + , 157 + , 158 + , 159 + , 160 + , 161 + , 162 + , 163 + , 164 + , 165 + , 166 + , 167 + , 168 + , 169 + , 170 + , 171 + , 172 + , 173 + , 174 + , 175 + , 176 + , 177 + , 178 + , 179 + , 180 + , 181 + , 182 + , 183 + , 184 + , 185 + , 186 + , 187 + , 188 + , 189 + , 190 + , 191 + , 192 + , 193 + , 194 + , 195 + , 196 + , 197 + , 198 + , 199 + , 200 + , 201 + , 202 + , 203 + , 204 + , 205 + , 206 + , 207 + , 208 + , 209 + , 210 + , 211 + , 212 + , 213 + , 214 + , 215 + , 216 + , 217 + , 218 + , 219 + , 220 + , 221 + , 222 + , 223 + , 224 + , 225 + , 226 + , 227 + , 228 + , 229 + , 230 + , 231 + , 232 + , 233 + , 234 + , 235 + , 236 + , 237 + , 238 + , 239 + , 240 + , 241 + , 242 + , 243 + , 244 + , 245 + , 246 + , 247 + , 248 + , 249 + , 250 + , 251 + , 252 + , 253 + , 254 + , 255 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 128 + , 129 + , 130 + , 131 + , 132 + , 133 + , 134 + , 135 + , 136 + , 137 + , 138 + , 139 + , 140 + , 141 + , 142 + , 143 + , 144 + , 145 + , 146 + , 147 + , 148 + , 149 + , 150 + , 151 + , 152 + , 153 + , 154 + , 155 + , 156 + , 157 + , 158 + , 159 + , 160 + , 161 + , 162 + , 163 + , 164 + , 165 + , 166 + , 167 + , 168 + , 169 + , 170 + , 171 + , 172 + , 173 + , 174 + , 175 + , 176 + , 177 + , 178 + , 179 + , 180 + , 181 + , 182 + , 183 + , 184 + , 185 + , 186 + , 187 + , 188 + , 189 + , 190 + , 191 + , 192 + , 193 + , 194 + , 195 + , 196 + , 197 + , 198 + , 199 + , 200 + , 201 + , 202 + , 203 + , 204 + , 205 + , 206 + , 207 + , 208 + , 209 + , 210 + , 211 + , 212 + , 213 + , 214 + , 215 + , 216 + , 217 + , 218 + , 219 + , 220 + , 221 + , 222 + , 223 + , 224 + , 225 + , 226 + , 227 + , 228 + , 229 + , 230 + , 231 + , 232 + , 233 + , 234 + , 235 + , 236 + , 237 + , 238 + , 239 + , 240 + , 241 + , 242 + , 243 + , 244 + , 245 + , 246 + , 247 + , 248 + , 249 + , 250 + , 251 + , 252 + , 253 + , 254 + , 255 + , 192 + , 193 + , 194 + , 195 + , 196 + , 197 + , 198 + , 199 + , 200 + , 201 + , 202 + , 203 + , 204 + , 205 + , 206 + , 207 + , 208 + , 209 + , 210 + , 211 + , 212 + , 213 + , 214 + , 215 + , 216 + , 217 + , 218 + , 219 + , 220 + , 221 + , 222 + , 223 + , 224 + , 225 + , 226 + , 227 + , 228 + , 229 + , 230 + , 231 + , 232 + , 233 + , 234 + , 235 + , 236 + , 237 + , 238 + , 239 + , 240 + , 241 + , 242 + , 243 + , 244 + , 245 + , 246 + , 247 + , 248 + , 249 + , 250 + , 251 + , 252 + , 253 + , 254 + , 255 + , 10 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , 93 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 128 + , 129 + , 130 + , 131 + , 132 + , 133 + , 134 + , 135 + , 136 + , 137 + , 138 + , 139 + , 140 + , 141 + , 142 + , 143 + , 144 + , 145 + , 146 + , 147 + , 148 + , 149 + , 150 + , 151 + , 152 + , 153 + , 154 + , 155 + , 156 + , 157 + , 158 + , 159 + , 160 + , 161 + , 162 + , 163 + , 164 + , 165 + , 166 + , 167 + , 168 + , 169 + , 170 + , 171 + , 172 + , 173 + , 174 + , 175 + , 176 + , 177 + , 178 + , 179 + , 180 + , 181 + , 182 + , 183 + , 184 + , 185 + , 186 + , 187 + , 188 + , 189 + , 190 + , 191 + , 192 + , 193 + , 194 + , 195 + , 196 + , 197 + , 198 + , 199 + , 200 + , 201 + , 202 + , 203 + , 204 + , 205 + , 206 + , 207 + , 208 + , 209 + , 210 + , 211 + , 212 + , 213 + , 214 + , 215 + , 216 + , 217 + , 218 + , 219 + , 220 + , 221 + , 222 + , 223 + , 224 + , 225 + , 226 + , 227 + , 228 + , 229 + , 230 + , 231 + , 232 + , 233 + , 234 + , 235 + , 236 + , 237 + , 238 + , 239 + , 240 + , 241 + , 242 + , 243 + , 244 + , 245 + , 246 + , 247 + , 248 + , 249 + , 250 + , 251 + , 252 + , 253 + , 254 + , 255 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , 39 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 48 + , 49 + , 50 + , 51 + , 52 + , 53 + , 54 + , 55 + , 56 + , 57 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 65 + , 66 + , 67 + , 68 + , 69 + , 70 + , 71 + , 72 + , 73 + , 74 + , 75 + , 76 + , 77 + , 78 + , 79 + , 80 + , 81 + , 82 + , 83 + , 84 + , 85 + , 86 + , 87 + , 88 + , 89 + , 90 + , -1 + , -1 + , -1 + , -1 + , 95 + , -1 + , 97 + , 98 + , 99 + , 100 + , 101 + , 102 + , 103 + , 104 + , 105 + , 106 + , 107 + , 108 + , 109 + , 110 + , 111 + , 112 + , 113 + , 114 + , 115 + , 116 + , 117 + , 118 + , 119 + , 120 + , 121 + , 122 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + ] + +alex_deflt :: Array Int Int +alex_deflt = listArray (0 :: Int, 129) + [ -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 66 + , 68 + , 64 + , 64 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , 68 + , 66 + , 66 + , -1 + , 66 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + , -1 + ] + +alex_accept = listArray (0 :: Int, 129) + [ AlexAccNone + , AlexAcc 114 + , AlexAcc 113 + , AlexAcc 112 + , AlexAcc 111 + , AlexAcc 110 + , AlexAcc 109 + , AlexAcc 108 + , AlexAcc 107 + , AlexAcc 106 + , AlexAcc 105 + , AlexAcc 104 + , AlexAcc 103 + , AlexAcc 102 + , AlexAcc 101 + , AlexAcc 100 + , AlexAcc 99 + , AlexAcc 98 + , AlexAcc 97 + , AlexAcc 96 + , AlexAcc 95 + , AlexAcc 94 + , AlexAcc 93 + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAcc 92 + , AlexAcc 91 + , AlexAcc 90 + , AlexAcc 89 + , AlexAcc 88 + , AlexAcc 87 + , AlexAcc 86 + , AlexAcc 85 + , AlexAcc 84 + , AlexAcc 83 + , AlexAcc 82 + , AlexAcc 81 + , AlexAcc 80 + , AlexAcc 79 + , AlexAcc 78 + , AlexAcc 77 + , AlexAcc 76 + , AlexAcc 75 + , AlexAcc 74 + , AlexAcc 73 + , AlexAcc 72 + , AlexAcc 71 + , AlexAcc 70 + , AlexAcc 69 + , AlexAcc 68 + , AlexAcc 67 + , AlexAcc 66 + , AlexAcc 65 + , AlexAcc 64 + , AlexAcc 63 + , AlexAcc 62 + , AlexAcc 61 + , AlexAcc 60 + , AlexAcc 59 + , AlexAcc 58 + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccSkip + , AlexAccSkip + , AlexAccNone + , AlexAccNone + , AlexAcc 57 + , AlexAcc 56 + , AlexAcc 55 + , AlexAcc 54 + , AlexAcc 53 + , AlexAcc 52 + , AlexAcc 51 + , AlexAcc 50 + , AlexAcc 49 + , AlexAcc 48 + , AlexAcc 47 + , AlexAcc 46 + , AlexAcc 45 + , AlexAcc 44 + , AlexAcc 43 + , AlexAcc 42 + , AlexAcc 41 + , AlexAcc 40 + , AlexAcc 39 + , AlexAcc 38 + , AlexAcc 37 + , AlexAcc 36 + , AlexAcc 35 + , AlexAcc 34 + , AlexAcc 33 + , AlexAcc 32 + , AlexAcc 31 + , AlexAcc 30 + , AlexAcc 29 + , AlexAcc 28 + , AlexAcc 27 + , AlexAcc 26 + , AlexAcc 25 + , AlexAcc 24 + , AlexAcc 23 + , AlexAcc 22 + , AlexAcc 21 + , AlexAcc 20 + , AlexAccNone + , AlexAcc 19 + , AlexAccNone + , AlexAcc 18 + , AlexAcc 17 + , AlexAcc 16 + , AlexAcc 15 + , AlexAcc 14 + , AlexAcc 13 + , AlexAcc 12 + , AlexAcc 11 + , AlexAcc 10 + , AlexAcc 9 + , AlexAcc 8 + , AlexAcc 7 + , AlexAcc 6 + , AlexAcc 5 + , AlexAcc 4 + , AlexAcc 3 + , AlexAcc 2 + , AlexAcc 1 + , AlexAcc 0 + ] + +alex_actions = array (0 :: Int, 115) + [ (114,alex_action_22) + , (113,alex_action_21) + , (112,alex_action_20) + , (111,alex_action_44) + , (110,alex_action_19) + , (109,alex_action_18) + , (108,alex_action_17) + , (107,alex_action_16) + , (106,alex_action_15) + , (105,alex_action_14) + , (104,alex_action_13) + , (103,alex_action_12) + , (102,alex_action_11) + , (101,alex_action_10) + , (100,alex_action_9) + , (99,alex_action_8) + , (98,alex_action_7) + , (97,alex_action_6) + , (96,alex_action_5) + , (95,alex_action_4) + , (94,alex_action_3) + , (93,alex_action_2) + , (92,alex_action_44) + , (91,alex_action_44) + , (90,alex_action_44) + , (89,alex_action_44) + , (88,alex_action_44) + , (87,alex_action_44) + , (86,alex_action_44) + , (85,alex_action_44) + , (84,alex_action_44) + , (83,alex_action_44) + , (82,alex_action_44) + , (81,alex_action_44) + , (80,alex_action_44) + , (79,alex_action_44) + , (78,alex_action_44) + , (77,alex_action_44) + , (76,alex_action_44) + , (75,alex_action_44) + , (74,alex_action_44) + , (73,alex_action_44) + , (72,alex_action_44) + , (71,alex_action_44) + , (70,alex_action_44) + , (69,alex_action_44) + , (68,alex_action_44) + , (67,alex_action_44) + , (66,alex_action_44) + , (65,alex_action_44) + , (64,alex_action_44) + , (63,alex_action_44) + , (62,alex_action_44) + , (61,alex_action_44) + , (60,alex_action_44) + , (59,alex_action_44) + , (58,alex_action_44) + , (57,alex_action_44) + , (56,alex_action_44) + , (55,alex_action_44) + , (54,alex_action_44) + , (53,alex_action_44) + , (52,alex_action_44) + , (51,alex_action_44) + , (50,alex_action_44) + , (49,alex_action_44) + , (48,alex_action_44) + , (47,alex_action_44) + , (46,alex_action_44) + , (45,alex_action_44) + , (44,alex_action_44) + , (43,alex_action_44) + , (42,alex_action_44) + , (41,alex_action_44) + , (40,alex_action_44) + , (39,alex_action_43) + , (38,alex_action_42) + , (37,alex_action_44) + , (36,alex_action_44) + , (35,alex_action_44) + , (34,alex_action_44) + , (33,alex_action_41) + , (32,alex_action_44) + , (31,alex_action_40) + , (30,alex_action_39) + , (29,alex_action_38) + , (28,alex_action_44) + , (27,alex_action_44) + , (26,alex_action_44) + , (25,alex_action_44) + , (24,alex_action_44) + , (23,alex_action_37) + , (22,alex_action_44) + , (21,alex_action_36) + , (20,alex_action_35) + , (19,alex_action_34) + , (18,alex_action_33) + , (17,alex_action_44) + , (16,alex_action_32) + , (15,alex_action_44) + , (14,alex_action_31) + , (13,alex_action_44) + , (12,alex_action_30) + , (11,alex_action_44) + , (10,alex_action_29) + , (9,alex_action_28) + , (8,alex_action_27) + , (7,alex_action_44) + , (6,alex_action_26) + , (5,alex_action_44) + , (4,alex_action_44) + , (3,alex_action_44) + , (2,alex_action_25) + , (1,alex_action_24) + , (0,alex_action_23) + ] + +{-# LINE 58 "Tokens.x" #-} +-- Each right-hand side has type :: AlexPosn -> String -> Token +-- Some action helpers: +tok f p s = f p s + +-- The token type: +data TokenType = + TokenDigit AlexPosn Int | + TokenMinus AlexPosn | + TokenMult AlexPosn | + TokenDiv AlexPosn | + TokenOpBracket AlexPosn | + TokenClBracket AlexPosn | + TokenEq AlexPosn | + TokenPlus AlexPosn | + TokenDot AlexPosn | + TokenLess AlexPosn | + TokenComma AlexPosn | + TokenOSBracket AlexPosn | + TokenClSBracket AlexPosn | + TokenClCurBracket AlexPosn | + TokenOCurBracket AlexPosn | + TokenIf AlexPosn | + TokenThen AlexPosn | + TokenElse AlexPosn | + TokenFor AlexPosn | + TokenEmpty AlexPosn | + TokenCreate AlexPosn | + TokenBlank AlexPosn | + TokenFlipX AlexPosn | + TokenFlipY AlexPosn | + TokenRotate AlexPosn | + TokenSubtile AlexPosn | + TokenConj AlexPosn | + TokenNeg AlexPosn | + TokenSupersize AlexPosn | + TokenStack AlexPosn | + TokenJoin AlexPosn | + TokenShape AlexPosn | + TokenAND AlexPosn | + TokenOR AlexPosn | + TokenNOT AlexPosn | + TokenInt AlexPosn | + TokenTile AlexPosn | + TokenTileG AlexPosn | + TokenBool AlexPosn | + TokenBTrue AlexPosn | + TokenBFalse AlexPosn | + TokenGroup AlexPosn | + TokenVar AlexPosn String + + deriving (Eq,Show) + +token_posn (TokenDigit (AlexPn a l c)_) = show(l) ++ ":" ++ show(c) +token_posn (TokenMinus (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenMult (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenDiv (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenOpBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenClBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenEq (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenPlus (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenDot (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenLess (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenComma (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenOSBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenClSBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenClCurBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenOCurBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenIf (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenThen (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenElse (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenFor (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenCreate (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenBlank (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenFlipX (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenFlipY (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenRotate (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenSubtile (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenConj (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenNeg (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenSupersize (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenStack (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenJoin (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenShape (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenAND (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenOR (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenNOT (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenInt (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenTile (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenTileG (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenBool (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenBTrue (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenBFalse (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenGroup (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenVar (AlexPn a l c) _) = show(l) ++ ":" ++ show(c) +alex_action_2 = tok (\p s -> TokenDigit p (read s) ) +alex_action_3 = tok (\p s -> TokenMinus p ) +alex_action_4 = tok (\p s -> TokenMult p ) +alex_action_5 = tok (\p s -> TokenDiv p ) +alex_action_6 = tok (\p s -> TokenOpBracket p ) +alex_action_7 = tok (\p s -> TokenClBracket p ) +alex_action_8 = tok (\p s -> TokenEq p ) +alex_action_9 = tok (\p s -> TokenPlus p ) +alex_action_10 = tok (\p s -> TokenDot p ) +alex_action_11 = tok (\p s -> TokenLess p ) +alex_action_12 = tok (\p s -> TokenComma p ) +alex_action_13 = tok (\p s -> TokenOSBracket p ) +alex_action_14 = tok (\p s -> TokenClSBracket p ) +alex_action_15 = tok (\p s -> TokenOCurBracket p ) +alex_action_16 = tok (\p s -> TokenClCurBracket p ) +alex_action_17 = tok (\p s -> TokenIf p ) +alex_action_18 = tok (\p s -> TokenThen p ) +alex_action_19 = tok (\p s -> TokenElse p ) +alex_action_20 = tok (\p s -> TokenFor p ) +alex_action_21 = tok (\p s -> TokenEmpty p ) +alex_action_22 = tok (\p s -> TokenCreate p ) +alex_action_23 = tok (\p s -> TokenBlank p ) +alex_action_24 = tok (\p s -> TokenFlipX p ) +alex_action_25 = tok (\p s -> TokenFlipY p ) +alex_action_26 = tok (\p s -> TokenRotate p ) +alex_action_27 = tok (\p s -> TokenSubtile p ) +alex_action_28 = tok (\p s -> TokenConj p ) +alex_action_29 = tok (\p s -> TokenNeg p ) +alex_action_30 = tok (\p s -> TokenSupersize p ) +alex_action_31 = tok (\p s -> TokenStack p ) +alex_action_32 = tok (\p s -> TokenJoin p ) +alex_action_33 = tok (\p s -> TokenShape p ) +alex_action_34 = tok (\p s -> TokenAND p ) +alex_action_35 = tok (\p s -> TokenOR p ) +alex_action_36 = tok (\p s -> TokenNOT p ) +alex_action_37 = tok (\p s -> TokenInt p ) +alex_action_38 = tok (\p s -> TokenTile p ) +alex_action_39 = tok (\p s -> TokenTileG p ) +alex_action_40 = tok (\p s -> TokenBool p ) +alex_action_41 = tok (\p s -> TokenBTrue p ) +alex_action_42 = tok (\p s -> TokenBFalse p ) +alex_action_43 = tok (\p s -> TokenGroup p ) +alex_action_44 = tok (\p s -> TokenVar p s) + +#define ALEX_NOPRED 1 +-- ----------------------------------------------------------------------------- +-- ALEX TEMPLATE +-- +-- This code is in the PUBLIC DOMAIN; you may copy it freely and use +-- it for any purpose whatsoever. + +-- ----------------------------------------------------------------------------- +-- INTERNALS and main scanner engine + +#ifdef ALEX_GHC +# define ILIT(n) n# +# define IBOX(n) (I# (n)) +# define FAST_INT Int# +-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex. +# if __GLASGOW_HASKELL__ > 706 +# define GTE(n,m) (tagToEnum# (n >=# m)) +# define EQ(n,m) (tagToEnum# (n ==# m)) +# else +# define GTE(n,m) (n >=# m) +# define EQ(n,m) (n ==# m) +# endif +# define PLUS(n,m) (n +# m) +# define MINUS(n,m) (n -# m) +# define TIMES(n,m) (n *# m) +# define NEGATE(n) (negateInt# (n)) +# define IF_GHC(x) (x) +#else +# define ILIT(n) (n) +# define IBOX(n) (n) +# define FAST_INT Int +# define GTE(n,m) (n >= m) +# define EQ(n,m) (n == m) +# define PLUS(n,m) (n + m) +# define MINUS(n,m) (n - m) +# define TIMES(n,m) (n * m) +# define NEGATE(n) (negate (n)) +# define IF_GHC(x) +#endif + +#ifdef ALEX_GHC +data AlexAddr = AlexA# Addr# +-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex. +#if __GLASGOW_HASKELL__ < 503 +uncheckedShiftL# = shiftL# +#endif + +{-# INLINE alexIndexInt16OffAddr #-} +alexIndexInt16OffAddr :: AlexAddr -> Int# -> Int# +alexIndexInt16OffAddr (AlexA# arr) off = +#ifdef WORDS_BIGENDIAN + narrow16Int# i + where + i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low) + high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#))) + low = int2Word# (ord# (indexCharOffAddr# arr off')) + off' = off *# 2# +#else +#if __GLASGOW_HASKELL__ >= 901 + int16ToInt# +#endif + (indexInt16OffAddr# arr off) +#endif +#else +alexIndexInt16OffAddr arr off = arr ! off +#endif + +#ifdef ALEX_GHC +{-# INLINE alexIndexInt32OffAddr #-} +alexIndexInt32OffAddr :: AlexAddr -> Int# -> Int# +alexIndexInt32OffAddr (AlexA# arr) off = +#ifdef WORDS_BIGENDIAN + narrow32Int# i + where + i = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#` + (b2 `uncheckedShiftL#` 16#) `or#` + (b1 `uncheckedShiftL#` 8#) `or#` b0) + b3 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#))) + b2 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#))) + b1 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#))) + b0 = int2Word# (ord# (indexCharOffAddr# arr off')) + off' = off *# 4# +#else +#if __GLASGOW_HASKELL__ >= 901 + int32ToInt# +#endif + (indexInt32OffAddr# arr off) +#endif +#else +alexIndexInt32OffAddr arr off = arr ! off +#endif + +#ifdef ALEX_GHC + +#if __GLASGOW_HASKELL__ < 503 +quickIndex arr i = arr ! i +#else +-- GHC >= 503, unsafeAt is available from Data.Array.Base. +quickIndex = unsafeAt +#endif +#else +quickIndex arr i = arr ! i +#endif + +-- ----------------------------------------------------------------------------- +-- Main lexing routines + +data AlexReturn a + = AlexEOF + | AlexError !AlexInput + | AlexSkip !AlexInput !Int + | AlexToken !AlexInput !Int a + +-- alexScan :: AlexInput -> StartCode -> AlexReturn a +alexScan input__ IBOX(sc) + = alexScanUser undefined input__ IBOX(sc) + +alexScanUser user__ input__ IBOX(sc) + = case alex_scan_tkn user__ input__ ILIT(0) input__ sc AlexNone of + (AlexNone, input__') -> + case alexGetByte input__ of + Nothing -> +#ifdef ALEX_DEBUG + trace ("End of input.") $ +#endif + AlexEOF + Just _ -> +#ifdef ALEX_DEBUG + trace ("Error.") $ +#endif + AlexError input__' + + (AlexLastSkip input__'' len, _) -> +#ifdef ALEX_DEBUG + trace ("Skipping.") $ +#endif + AlexSkip input__'' len + + (AlexLastAcc k input__''' len, _) -> +#ifdef ALEX_DEBUG + trace ("Accept.") $ +#endif + AlexToken input__''' len (alex_actions ! k) + + +-- Push the input through the DFA, remembering the most recent accepting +-- state it encountered. + +alex_scan_tkn user__ orig_input len input__ s last_acc = + input__ `seq` -- strict in the input + let + new_acc = (check_accs (alex_accept `quickIndex` IBOX(s))) + in + new_acc `seq` + case alexGetByte input__ of + Nothing -> (new_acc, input__) + Just (c, new_input) -> +#ifdef ALEX_DEBUG + trace ("State: " ++ show IBOX(s) ++ ", char: " ++ show c) $ +#endif + case fromIntegral c of { IBOX(ord_c) -> + let + base = alexIndexInt32OffAddr alex_base s + offset = PLUS(base,ord_c) + check = alexIndexInt16OffAddr alex_check offset + + new_s = if GTE(offset,ILIT(0)) && EQ(check,ord_c) + then alexIndexInt16OffAddr alex_table offset + else alexIndexInt16OffAddr alex_deflt s + in + case new_s of + ILIT(-1) -> (new_acc, input__) + -- on an error, we want to keep the input *before* the + -- character that failed, not after. + _ -> alex_scan_tkn user__ orig_input +#ifdef ALEX_LATIN1 + PLUS(len,ILIT(1)) + -- issue 119: in the latin1 encoding, *each* byte is one character +#else + (if c < 0x80 || c >= 0xC0 then PLUS(len,ILIT(1)) else len) + -- note that the length is increased ONLY if this is the 1st byte in a char encoding) +#endif + new_input new_s new_acc + } + where + check_accs (AlexAccNone) = last_acc + check_accs (AlexAcc a ) = AlexLastAcc a input__ IBOX(len) + check_accs (AlexAccSkip) = AlexLastSkip input__ IBOX(len) +#ifndef ALEX_NOPRED + check_accs (AlexAccPred a predx rest) + | predx user__ orig_input IBOX(len) input__ + = AlexLastAcc a input__ IBOX(len) + | otherwise + = check_accs rest + check_accs (AlexAccSkipPred predx rest) + | predx user__ orig_input IBOX(len) input__ + = AlexLastSkip input__ IBOX(len) + | otherwise + = check_accs rest +#endif + +data AlexLastAcc + = AlexNone + | AlexLastAcc !Int !AlexInput !Int + | AlexLastSkip !AlexInput !Int + +data AlexAcc user + = AlexAccNone + | AlexAcc Int + | AlexAccSkip +#ifndef ALEX_NOPRED + | AlexAccPred Int (AlexAccPred user) (AlexAcc user) + | AlexAccSkipPred (AlexAccPred user) (AlexAcc user) + +type AlexAccPred user = user -> AlexInput -> Int -> AlexInput -> Bool + +-- ----------------------------------------------------------------------------- +-- Predicates on a rule + +alexAndPred p1 p2 user__ in1 len in2 + = p1 user__ in1 len in2 && p2 user__ in1 len in2 + +--alexPrevCharIsPred :: Char -> AlexAccPred _ +alexPrevCharIs c _ input__ _ _ = c == alexInputPrevChar input__ + +alexPrevCharMatches f _ input__ _ _ = f (alexInputPrevChar input__) + +--alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _ +alexPrevCharIsOneOf arr _ input__ _ _ = arr ! alexInputPrevChar input__ + +--alexRightContext :: Int -> AlexAccPred _ +alexRightContext IBOX(sc) user__ _ _ input__ = + case alex_scan_tkn user__ input__ ILIT(0) input__ sc AlexNone of + (AlexNone, _) -> False + _ -> True + -- TODO: there's no need to find the longest + -- match when checking the right context, just + -- the first match will do. +#endif diff --git a/Tokens.x b/Tokens.x index 80e66127c718cebeb7802af35398a38d18adeb30..6dbdc39ad610f800b462ad008469a93a34bcf95f 100644 --- a/Tokens.x +++ b/Tokens.x @@ -11,7 +11,7 @@ tokens :- $white+ ; "--".* ; - $digit+ { tok (\p s -> TokenInt p (read s) )} + $digit+ { tok (\p s -> TokenDigit p (read s) )} \- { tok (\p s -> TokenMinus p )} \* { tok (\p s -> TokenMult p )} \/ { tok (\p s -> TokenDiv p )} @@ -52,7 +52,7 @@ tokens :- Bool { tok (\p s -> TokenBool p )} true { tok (\p s -> TokenBTrue p )} false { tok (\p s -> TokenBFalse p )} - '[' $alpha [$alpha $digit \_ \']* ']' {tok (\p s -> TokenGroup p)} + \[ $alpha [$alpha $digit \_ \']* \] {tok (\p s -> TokenGroup p )} $alpha [$alpha $digit \_ \']* { tok (\p s -> TokenVar p s)} { @@ -62,10 +62,96 @@ tok f p s = f p s -- The token type: data TokenType = - Var AlexPosn String | - Int AlexPosn Int + TokenDigit AlexPosn Int | + TokenMinus AlexPosn | + TokenMult AlexPosn | + TokenDiv AlexPosn | + TokenOpBracket AlexPosn | + TokenClBracket AlexPosn | + TokenEq AlexPosn | + TokenPlus AlexPosn | + TokenDot AlexPosn | + TokenLess AlexPosn | + TokenComma AlexPosn | + TokenOSBracket AlexPosn | + TokenClSBracket AlexPosn | + TokenClCurBracket AlexPosn | + TokenOCurBracket AlexPosn | + TokenIf AlexPosn | + TokenThen AlexPosn | + TokenElse AlexPosn | + TokenFor AlexPosn | + TokenEmpty AlexPosn | + TokenCreate AlexPosn | + TokenBlank AlexPosn | + TokenFlipX AlexPosn | + TokenFlipY AlexPosn | + TokenRotate AlexPosn | + TokenSubtile AlexPosn | + TokenConj AlexPosn | + TokenNeg AlexPosn | + TokenSupersize AlexPosn | + TokenStack AlexPosn | + TokenJoin AlexPosn | + TokenShape AlexPosn | + TokenAND AlexPosn | + TokenOR AlexPosn | + TokenNOT AlexPosn | + TokenInt AlexPosn | + TokenTile AlexPosn | + TokenTileG AlexPosn | + TokenBool AlexPosn | + TokenBTrue AlexPosn | + TokenBFalse AlexPosn | + TokenGroup AlexPosn | + TokenVar AlexPosn String + deriving (Eq,Show) -token_posn (Var p _) = p -token_posn (Int p _) = p +token_posn (TokenDigit (AlexPn a l c)_) = show(l) ++ ":" ++ show(c) +token_posn (TokenMinus (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenMult (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenDiv (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenOpBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenClBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenEq (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenPlus (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenDot (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenLess (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenComma (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenOSBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenClSBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenClCurBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenOCurBracket (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenIf (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenThen (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenElse (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenFor (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenCreate (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenBlank (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenFlipX (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenFlipY (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenRotate (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenSubtile (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenConj (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenNeg (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenSupersize (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenStack (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenJoin (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenShape (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenAND (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenOR (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenNOT (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenInt (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenTile (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenTileG (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenBool (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenBTrue (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenBFalse (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenGroup (AlexPn a l c) ) = show(l) ++ ":" ++ show(c) +token_posn (TokenVar (AlexPn a l c) _) = show(l) ++ ":" ++ show(c) + + + + } \ No newline at end of file