eo-phi-normalizer 2.2.2 → 2.3.0
raw patch · 23 files changed
+24572/−22399 lines, 23 filesdep +code-pagedep +text-manipulatesetup-changed
Dependencies added: code-page, text-manipulate
Files
- CHANGELOG.md +18/−1
- Setup.hs +58/−44
- app/Main.hs +53/−27
- eo-phi-normalizer.cabal +17/−1
- grammar/EO/Phi/Syntax.cf +3/−0
- src/Language/EO/Locale.hs +43/−0
- src/Language/EO/Phi.hs +1/−3
- src/Language/EO/Phi/Dataize.hs +63/−61
- src/Language/EO/Phi/Dataize/Atoms.hs +8/−8
- src/Language/EO/Phi/Normalize.hs +4/−0
- src/Language/EO/Phi/Rules/Common.hs +29/−272
- src/Language/EO/Phi/Rules/Fast.hs +4/−1
- src/Language/EO/Phi/Rules/Yaml.hs +22/−2
- src/Language/EO/Phi/Syntax.hs +344/−2
- src/Language/EO/Phi/Syntax/Abs.hs +4/−1
- src/Language/EO/Phi/Syntax/Lex.hs +22487/−20703
- src/Language/EO/Phi/Syntax/Lex.x +12/−0
- src/Language/EO/Phi/Syntax/Par.hs +1376/−1268
- src/Language/EO/Phi/Syntax/Par.y +15/−0
- src/Language/EO/Phi/Syntax/Print.hs +3/−0
- src/Language/EO/Phi/ToLaTeX.hs +4/−1
- test/Language/EO/Rules/PhiPaperSpec.hs +2/−2
- test/Main.hs +2/−2
CHANGELOG.md view
@@ -6,6 +6,23 @@ and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## v2.3.0 - 2024-12-05++### Breaking changes++- Fix issues related to LaTeX ([#598](https://github.com/objectionary/eo-phi-normalizer/pull/598))+- Support syntax for constant objects (strings, ints, floats) ([#602](https://github.com/objectionary/eo-phi-normalizer/pull/602))++### Changes and fixes++- Set the correct locale automatically ([#590](https://github.com/objectionary/eo-phi-normalizer/pull/590), [#609](https://github.com/objectionary/eo-phi-normalizer/pull/609), [#611](https://github.com/objectionary/eo-phi-normalizer/pull/611))++### Documentation and maintenance++- Fix site generation ([#612](https://github.com/objectionary/eo-phi-normalizer/pull/612))+- Add examples to `rewrite` docs ([#608](https://github.com/objectionary/eo-phi-normalizer/pull/608))+- chore(deps): update dependency prettier to v3.4.2 ([#597](https://github.com/objectionary/eo-phi-normalizer/pull/597))+ ## v2.2.2 - 2024-11-29 ### New@@ -25,7 +42,7 @@ - Update dependency prettier to v3.4.1 ([#552](https://github.com/objectionary/eo-phi-normalizer/pull/552)) - Update dependency pre-commit to v4 - autoclosed ([#503](https://github.com/objectionary/eo-phi-normalizer/pull/503)) - Update dependency eolang to ^0.24.0 ([#520](https://github.com/objectionary/eo-phi-normalizer/pull/520))-- Add `CONTRIBUTE.md` ([#576](https://github.com/objectionary/eo-phi-normalizer/pull/576))+- Add `CONTRIBUTING.md` ([#576](https://github.com/objectionary/eo-phi-normalizer/pull/576)) ## v2.2.1 - 2024-11-27
Setup.hs view
@@ -21,7 +21,9 @@ -- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -- SOFTWARE. {- FOURMOLU_ENABLE -}-{-# LANGUAGE CPP #-}++{-# LANGUAGE BlockArguments #-}+{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} -- Source: https://github.com/haskell/cabal/issues/6726#issuecomment-918663262@@ -30,65 +32,77 @@ -- for the parsers included in Ogma. module Main (main) where +import Control.Exception (Handler (..), SomeException, catches, displayException, evaluate)+import Data.ByteString as BS (readFile, writeFile) import Data.List (intercalate)+import Data.Text (Text)+import Data.Text.Encoding (decodeUtf8, encodeUtf8) import Distribution.Simple (defaultMainWithHooks, hookedPrograms, postConf, preBuild, simpleUserHooks) import Distribution.Simple.Program (Program (..), findProgramVersion, simpleProgram)+import Main.Utf8 (withUtf8) import PyF (fmt)-import System.Exit (ExitCode (..))+import System.Exit (ExitCode (..), exitWith)+import System.IO.CodePage (withCP65001) import System.Process (callCommand)-import Text.Printf (printf)-import Control.Exception (evaluate) +readFile' :: FilePath -> IO Text+readFile' = (decodeUtf8 <$>) . BS.readFile++writeFile' :: FilePath -> Text -> IO ()+writeFile' path = BS.writeFile path . encodeUtf8++withCorrectLocale :: IO a -> IO a+withCorrectLocale act = do+ let withCorrectLocale' = withCP65001 . withUtf8+ withCorrectLocale' act+ `catches` [ Handler $ \(x :: ExitCode) -> exitWith x+ , Handler $ \(x :: SomeException) ->+ withCorrectLocale' do+ putStrLn (displayException x)+ exitWith (ExitFailure 1)+ ]+ -- | Run BNFC, happy, and alex on the grammar before the actual build step. -- -- All options for bnfc are hard-coded here. main :: IO () main =- defaultMainWithHooks $- simpleUserHooks- { hookedPrograms = [bnfcProgram]- , postConf = \args flags packageDesc localBuildInfo -> do- let- isWindows =-#ifdef mingw32_HOST_OS- True-#else- False-#endif- -- See the details on the command form in https://github.com/objectionary/eo-phi-normalizer/issues/347#issuecomment-2117097070- addLicense :: FilePath -> IO ()- addLicense file = do- let readFile' path = do- content <- readFile path- evaluate (length content)- pure content- targetFile = "src/Language/EO/Phi/Syntax/" <> file- license <- readFile' "LICENSE"- let licenseFormatted = printf "{-\n%s-}\n\n" license- code <- readFile' targetFile- evaluate (length license)- writeFile targetFile (licenseFormatted <> code)+ withCorrectLocale $+ defaultMainWithHooks $+ simpleUserHooks+ { hookedPrograms = [bnfcProgram]+ , postConf = \args flags packageDesc localBuildInfo -> do+ let+ addLicense :: FilePath -> IO ()+ addLicense file = do+ let targetFile = "src/Language/EO/Phi/Syntax/" <> file+ license <- readFile' "LICENSE"+ let licenseFormatted = [fmt|{{-\n{license}-}}\n\n|] :: Text+ code <- readFile' targetFile+ writeFile' targetFile (licenseFormatted <> code) - command = intercalate "; " $- [ "set -ex" ] <>- [ "chcp.com" | isWindows ] <>- [ "chcp.com 65001" | isWindows ] <>- [ "bnfc --haskell -d -p Language.EO.Phi --generic -o src/ grammar/EO/Phi/Syntax.cf"] <>- [ "cd src/Language/EO/Phi/Syntax" ] <>- [ "alex Lex.x" ] <>- [ "happy Par.y" ] <>- [ "true" ]+ -- See the details on the command form in https://github.com/objectionary/eo-phi-normalizer/issues/347#issuecomment-2117097070+ command =+ intercalate+ "; "+ [ "set -ex"+ , "bnfc --haskell -d -p Language.EO.Phi --generic -o src/ grammar/EO/Phi/Syntax.cf"+ , "cd src/Language/EO/Phi/Syntax"+ , "alex Lex.x"+ , "happy Par.y"+ , "true"+ ] - fullCommand = [fmt|bash -c ' {command} '|]+ fullCommand = [fmt|bash -c ' {command} '|] - putStrLn fullCommand+ putStrLn fullCommand - _ <- callCommand fullCommand- _ <- addLicense "Abs.hs"- _ <- addLicense "Print.hs"+ _ <- callCommand fullCommand+ _ <- addLicense "Abs.hs"+ _ <- addLicense "Print.hs" - postConf simpleUserHooks args flags packageDesc localBuildInfo- }+ postConf simpleUserHooks args flags packageDesc localBuildInfo+ } -- | NOTE: This should be in Cabal.Distribution.Simple.Program.Builtin. bnfcProgram :: Program
app/Main.hs view
@@ -51,7 +51,7 @@ module Main (main) where -import Control.Exception (Exception (..), SomeException, catch, throw)+import Control.Exception (Exception (..), SomeException, catch, throwIO) import Control.Lens.Lens ((&)) import Control.Lens.Operators ((?~)) import Control.Monad (forM, unless, when)@@ -63,9 +63,11 @@ import Data.Maybe (fromMaybe) import Data.Text.Internal.Builder (toLazyText) import Data.Text.Lazy as TL (unpack)+import Data.Text.Lazy.Manipulate (toOrdinal) import Data.Version (showVersion) import Data.Yaml (decodeFileThrow, decodeThrow) import GHC.Generics (Generic)+import Language.EO.Locale (withCorrectLocale) import Language.EO.Phi (Binding (..), Bytes (Bytes), Object (..), Program (Program), parseProgram, printTree) import Language.EO.Phi.Dataize import Language.EO.Phi.Dataize.Context@@ -81,9 +83,9 @@ import Language.EO.Phi.Rules.Fast (fastYegorInsideOut, fastYegorInsideOutAsRule) import Language.EO.Phi.Rules.RunYegor (yegorRuleSet) import Language.EO.Phi.Rules.Yaml (RuleSet (rules, title), convertRuleNamed, parseRuleSetFromFile)+import Language.EO.Phi.Syntax (desugar, wrapBytesInBytes, wrapTermination) import Language.EO.Phi.ToLaTeX import Language.EO.Test.YamlSpec (spec)-import Main.Utf8 import Options.Applicative hiding (metavar) import Options.Applicative qualified as Optparse (metavar) import Paths_eo_phi_normalizer (version)@@ -469,14 +471,14 @@ Just file' -> doesFileExist file' >>= \case True -> pure (Just file')- False -> throw $ FileDoesNotExist file'+ False -> throwIO $ FileDoesNotExist file' getProgram :: Maybe FilePath -> IO Program getProgram inputFile = do inputFile' <- getFile inputFile- src <- maybe getContents' readFile inputFile' `catch` (throw . CouldNotRead . show @SomeException)+ src <- maybe getContents' readFile inputFile' `catch` (throwIO . CouldNotRead . show @SomeException) case parseProgram src of- Left err -> throw $ CouldNotParse err+ Left err -> throwIO $ CouldNotParse err Right program -> pure program getLoggers :: Maybe FilePath -> IO (String -> IO (), String -> IO ())@@ -513,7 +515,7 @@ getMetrics :: Maybe String -> Maybe FilePath -> IO ProgramMetrics getMetrics bindingsPath inputFile = do program <- getProgram inputFile- either throw pure (getMetrics' program bindingsPath)+ either throwIO pure (getMetrics' program bindingsPath) injectLamdbaPackage :: [Binding] -> [Binding] injectLamdbaPackage bs@@ -562,11 +564,14 @@ obj@MetaObject{} -> obj obj@MetaTailContext{} -> obj obj@MetaFunction{} -> obj+ obj@ConstString{} -> wrapRawBytesIn (desugar obj)+ obj@ConstInt{} -> wrapRawBytesIn (desugar obj)+ obj@ConstFloat{} -> wrapRawBytesIn (desugar obj) -- * Main main :: IO ()-main = withUtf8 do+main = withCorrectLocale do opts <- customExecParser pprefs (cliOpts (showVersion version)) let printAsProgramOrAsObject = \case Formation bindings' -> printTree $ Program bindings'@@ -597,9 +602,9 @@ Nothing -> do ruleSet :: RuleSet <- decodeThrow $(embedFileRelative "test/eo/phi/rules/new.yaml") return (False, ruleSet.title, convertRuleNamed <$> ruleSet.rules)- unless (single || json || (chain && latex)) $ logStrLn ruleSetTitle+ unless (single || json || latex) $ logStrLn ruleSetTitle bindingsWithDeps <- case deepMergePrograms (program' : deps) of- Left err -> throw (CouldNotMergeDependencies err)+ Left err -> throwIO (CouldNotMergeDependencies err) Right (Program bindingsWithDeps) -> return bindingsWithDeps let Program bindings = program' uniqueResults@@ -611,7 +616,24 @@ limits = ApplicationLimits maxDepth (maxGrowthFactor * objectSize (Formation bindings)) ctx = (defaultContext rules (Formation bindingsWithDeps)){builtinRules = builtin} -- IMPORTANT: context contains dependencies! totalResults = length uniqueResults- when (null uniqueResults || null (head uniqueResults)) (throw CouldNotNormalize)+ inLatexDocument :: IO () -> IO ()+ inLatexDocument logContent = do+ logStrLn+ [fmtTrim|+ % {ruleSetTitle}++ \\documentclass{{article}}+ \\usepackage{{eolang}}+ \\begin{{document}}+ |]+ logContent+ logStrLn "\n\\end{document}"+ inPhiEquation :: String -> IO ()+ inPhiEquation phiExpr = do+ logStrLn "\\begin{phiquation*}"+ logStrLn [fmtTrim|{phiExpr}|]+ logStrLn "\\end{phiquation*}"+ when (null uniqueResults || null (head uniqueResults)) (throwIO CouldNotNormalize) if | single && json -> logStrLn@@ -630,25 +652,29 @@ { input = printTree program' , output = (logEntryToPair . fmap printAsProgramOrAsObject <$>) <$> uniqueResults }- | chain && latex -> do- logStrLn- [fmtTrim|- % {ruleSetTitle}-- \\documentclass{{article}}- \\usepackage{{eolang}}- \\begin{{document}}- |]- forM_ uniqueResults $ \steps -> do+ | chain && latex -> inLatexDocument $ do+ forM_ (zip [1 ..] uniqueResults) $ \(index, steps) -> do let latexLines = toLatexString (Formation bindings) : (toLatexString . (.logEntryLog) <$> steps) transitions :: [String] = ((\x -> [fmt| \\trans_{{\\rulename{{{logEntryMessage x}}}}} \n|]) <$> steps) <> ["."]- linesCombined :: String = fold $ zipWith (\latexLine transition -> [fmt|{latexLine}{transition}|]) latexLines transitions- logStrLn "\\begin{phiquation*}"- logStrLn [fmtTrim|{linesCombined}|]- logStrLn "\\end{phiquation*}"- logStrLn "\n\\end{document}"+ trailingTransitions :: [String] = "" : repeat [fmt| \\trans |]+ linesCombined :: String =+ fold $+ zipWith3+ ( \trailingTrans latexLine transition ->+ [fmt|{trailingTrans}{latexLine}{transition}|]+ )+ trailingTransitions+ latexLines+ transitions+ unless (length uniqueResults == 1) $+ logStrLn+ [fmt|\nThis is the {unpack (toOrdinal index)} possible chain of normalizing rewritings:\n|]+ inPhiEquation linesCombined | latex ->- logStrLn . toLatexString $ logEntryLog (head (head uniqueResults))+ inLatexDocument $+ inPhiEquation $+ toLatexString $+ logEntryLog (head (head uniqueResults)) | otherwise -> do logStrLn "Input:" logStrLn (printTree program')@@ -668,7 +694,7 @@ program' <- getProgram inputFile deps <- mapM (getProgram . Just) dependencies bindingsWithDeps <- case deepMergePrograms (program' : deps) of- Left err -> throw (CouldNotMergeDependencies err)+ Left err -> throwIO (CouldNotMergeDependencies err) Right (Program bindingsWithDeps) -> return bindingsWithDeps (builtin, _ruleSetTitle, rules) <- case rulesPath of
eo-phi-normalizer.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: eo-phi-normalizer-version: 2.2.2+version: 2.3.0 synopsis: Command line normalizer of 𝜑-calculus expressions. description: Please see the README on GitHub at <https://github.com/objectionary/eo-phi-normalizer#readme> homepage: https://github.com/objectionary/eo-phi-normalizer#readme@@ -202,10 +202,15 @@ Cabal >=2.4.0.1 && <4.0 , PyF , base >=4.11.0.0 && <5.0+ , bytestring+ , code-page , process >=1.6.3.0+ , text+ , with-utf8 library exposed-modules:+ Language.EO.Locale Language.EO.Phi Language.EO.Phi.Dataize Language.EO.Phi.Dataize.Atoms@@ -255,6 +260,7 @@ , blaze-markup , bytestring , cereal+ , code-page , containers , directory , file-embed >=0.0.16.0@@ -269,7 +275,9 @@ , scientific , template-haskell , text+ , text-manipulate , unordered-containers+ , with-utf8 , yaml default-language: Haskell2010 @@ -297,6 +305,7 @@ , blaze-markup , bytestring , cereal+ , code-page , containers , directory , eo-phi-normalizer@@ -313,6 +322,7 @@ , scientific , template-haskell , text+ , text-manipulate , unordered-containers , with-utf8 , yaml@@ -322,6 +332,7 @@ type: exitcode-stdio-1.0 main-is: Main.hs other-modules:+ Language.EO.Locale Language.EO.Phi Language.EO.Phi.Dataize Language.EO.Phi.Dataize.Atoms@@ -371,6 +382,7 @@ , blaze-markup , bytestring , cereal+ , code-page , containers , directory , doctest-parallel@@ -387,7 +399,9 @@ , scientific , template-haskell , text+ , text-manipulate , unordered-containers+ , with-utf8 , yaml default-language: Haskell2010 @@ -423,6 +437,7 @@ , blaze-markup , bytestring , cereal+ , code-page , containers , directory , eo-phi-normalizer@@ -439,6 +454,7 @@ , scientific , template-haskell , text+ , text-manipulate , unordered-containers , with-utf8 , yaml
grammar/EO/Phi/Syntax.cf view
@@ -54,6 +54,9 @@ GlobalObject. Object ::= "Φ"; ThisObject. Object ::= "ξ"; Termination. Object ::= "⊥" ;+ConstString. Object ::= String ;+ConstInt. Object ::= Integer ;+ConstFloat. Object ::= Double ; MetaSubstThis. Object ::= Object "[" "ξ" "↦" Object "]" ; MetaContextualize. Object ::= "⌈" Object "," Object "⌉" ; MetaObject. Object ::= ObjectMetaId ;
+ src/Language/EO/Locale.hs view
@@ -0,0 +1,43 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -}+{-# LANGUAGE BlockArguments #-}+{-# LANGUAGE ScopedTypeVariables #-}++module Language.EO.Locale where++import Control.Exception (Exception (..), Handler (..), SomeException, catches)+import Main.Utf8 (withUtf8)+import System.Exit (ExitCode (..), exitWith)+import System.IO.CodePage (withCP65001)++withCorrectLocale :: IO a -> IO a+withCorrectLocale act = do+ let withCorrectLocale' = withCP65001 . withUtf8+ withCorrectLocale' act+ `catches` [ Handler $ \(x :: ExitCode) -> exitWith x+ , Handler $ \(x :: SomeException) ->+ withCorrectLocale' do+ putStrLn (displayException x)+ exitWith (ExitFailure 1)+ ]
src/Language/EO/Phi.hs view
@@ -40,9 +40,7 @@ -- | Parse a 'Program' or return a parsing error. parseProgram :: String -> Either String Phi.Program-parseProgram input = Phi.pProgram tokens- where- tokens = Phi.myLexer input+parseProgram = parseWith Phi.pProgram -- | Parse an 'Object' or return a parsing error. parseObject :: String -> Either String Phi.Object
src/Language/EO/Phi/Dataize.hs view
@@ -24,26 +24,45 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE OverloadedStrings #-}+{-# HLINT ignore "Redundant fmap" #-}+{-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE ViewPatterns #-} {-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} -{-# HLINT ignore "Redundant fmap" #-}- module Language.EO.Phi.Dataize where import Data.HashMap.Strict qualified as HashMap import Data.List.NonEmpty qualified as NonEmpty import Data.Maybe (listToMaybe)-import Language.EO.Phi (printTree) import Language.EO.Phi.Rules.Common import Language.EO.Phi.Rules.Fast (fastYegorInsideOut) import Language.EO.Phi.Rules.Yaml (substThis)-import Language.EO.Phi.Syntax.Abs+import Language.EO.Phi.Syntax import PyF (fmt) import System.IO.Unsafe (unsafePerformIO) +desugarAsBytes :: Either Object Bytes -> Either Object Bytes+desugarAsBytes (Left obj) = case obj of+ ConstString s -> Right (stringToBytes s)+ ConstInt n -> Right (intToBytes (fromInteger n))+ ConstFloat x -> Right (floatToBytes x)+ _ -> Left obj+desugarAsBytes (Right bytes) = Right bytes++pattern AsBytes :: Bytes -> Either Object Bytes+pattern AsBytes bytes <- (desugarAsBytes -> Right bytes)+ where+ AsBytes bytes = Right bytes++pattern AsObject :: Object -> Either Object Bytes+pattern AsObject obj <- (desugarAsBytes -> Left obj)+ where+ AsObject obj = Left obj++{-# COMPLETE AsBytes, AsObject #-}+ -- | Perform one step of dataization to the object (if possible). dataizeStep :: Context -> Object -> (Context, Either Object Bytes) dataizeStep ctx obj = snd $ head $ runChain (dataizeStepChain obj) ctx -- FIXME: head is bad@@ -63,37 +82,37 @@ dataizeStepChain obj@(Formation bs) | Just (DeltaBinding bytes) <- listToMaybe [b | b@(DeltaBinding _) <- bs] , not hasEmpty = do- logStep "Found bytes" (Right bytes)+ logStep "Found bytes" (AsBytes bytes) ctx <- getContext- return (ctx, Right bytes)+ return (ctx, AsBytes bytes) | Just (LambdaBinding (Function funcName)) <- listToMaybe [b | b@(LambdaBinding _) <- bs] , not hasEmpty = do ctx' <- getContext let lambaIsKnownAndNotEnabled = HashMap.member funcName ctx'.knownAtoms && not (HashMap.member funcName ctx'.enabledAtoms) if lambaIsKnownAndNotEnabled then do- logStep [fmt|Not evaluating the lambda '{funcName}' since it's disabled.|] (Left obj)- pure (ctx', Left obj)+ logStep [fmt|Not evaluating the lambda '{funcName}' since it's disabled.|] (AsObject obj)+ pure (ctx', AsObject obj) else do- logStep [fmt|Evaluating lambda '{funcName}' |] (Left obj)+ logStep [fmt|Evaluating lambda '{funcName}' |] (AsObject obj) msplit (evaluateBuiltinFunChain funcName obj ()) >>= \case Nothing -> do ctx <- getContext- return (ctx, Left obj)+ return (ctx, AsObject obj) Just ((obj', _state), _alts) -> do ctx <- getContext- return (ctx, Left obj')+ return (ctx, AsObject obj') | Just (AlphaBinding Phi decoratee) <- listToMaybe [b | b@(AlphaBinding Phi _) <- bs] , not hasEmpty = do let decoratee' = substThis obj decoratee- logStep "Dataizing inside phi" (Left decoratee')+ logStep "Dataizing inside phi" (AsObject decoratee') ctx <- getContext let extendedContext = (extendContextWith obj ctx){currentAttr = Phi}- return (extendedContext, Left decoratee')+ return (extendedContext, AsObject decoratee') | otherwise = do- logStep "No change to formation" (Left obj)+ logStep "No change to formation" (AsObject obj) ctx <- getContext- return (ctx, Left obj)+ return (ctx, AsObject obj) where isEmpty (EmptyBinding _) = True isEmpty DeltaEmptyBinding = True@@ -101,24 +120,24 @@ hasEmpty = any isEmpty bs -- IMPORTANT: dataize the object being copied IF normalization is stuck on it! dataizeStepChain (Application obj bindings) = incLogLevel $ do- logStep "Dataizing inside application" (Left obj)+ logStep "Dataizing inside application" (AsObject obj) modifyContext (\c -> c{dataizePackage = False}) $ do (ctx, obj') <- dataizeStepChain obj case obj' of- Left obj'' -> return (ctx, Left (obj'' `Application` bindings))- Right bytes -> return (ctx, Left (Formation [DeltaBinding bytes] `Application` bindings))+ Left obj'' -> return (ctx, AsObject (obj'' `Application` bindings))+ Right bytes -> return (ctx, AsObject (Formation [DeltaBinding bytes] `Application` bindings)) -- IMPORTANT: dataize the object being dispatched IF normalization is stuck on it! dataizeStepChain (ObjectDispatch obj attr) = incLogLevel $ do- logStep "Dataizing inside dispatch" (Left obj)+ logStep "Dataizing inside dispatch" (AsObject obj) modifyContext (\c -> c{dataizePackage = False}) $ do (ctx, obj') <- dataizeStepChain obj case obj' of- Left obj'' -> return (ctx, Left (obj'' `ObjectDispatch` attr))- Right bytes -> return (ctx, Left (Formation [DeltaBinding bytes] `ObjectDispatch` attr))+ Left obj'' -> return (ctx, AsObject (obj'' `ObjectDispatch` attr))+ Right bytes -> return (ctx, AsObject (Formation [DeltaBinding bytes] `ObjectDispatch` attr)) dataizeStepChain obj = do- logStep "Nothing to dataize" (Left obj)+ logStep "Nothing to dataize" (AsObject obj) ctx <- getContext- return (ctx, Left obj)+ return (ctx, AsObject obj) dataizeRecursivelyChain' :: Context -> Object -> ([LogEntry (Either Object Bytes)], Either Object Bytes) dataizeRecursivelyChain' ctx obj = head (runChain (dataizeRecursivelyChain False obj) ctx)@@ -129,7 +148,7 @@ dataizeRecursivelyChain = fmap minimizeObject' . go where go normalizeRequired obj = do- logStep "Dataizing" (Left obj)+ logStep "Dataizing" (AsObject obj) ctx <- getContext let globalObject = NonEmpty.last (outerFormations ctx) let limits = defaultApplicationLimits (objectSize globalObject)@@ -141,20 +160,20 @@ | otherwise = applyRulesChainWith limits obj msplit (transformNormLogs normalizedObj) >>= \case Nothing -> do- logStep "No rules applied" (Left obj)- return (Left obj)+ logStep "No rules applied" (AsObject obj)+ return (AsObject obj) -- We trust that all chains lead to the same result due to confluence Just (normObj, _alternatives)- | normObj == obj && normalizeRequired -> return (Left obj)+ | normObj == obj && normalizeRequired -> return (AsObject obj) | otherwise -> do (ctx', step) <- dataizeStepChain normObj case step of- (Left stillObj)+ (AsObject stillObj) | stillObj == normObj && ctx `sameContext` ctx' -> do- logStep "Dataization changed nothing" (Left stillObj)+ logStep "Dataization changed nothing" (AsObject stillObj) return step -- dataization changed nothing | otherwise -> do- logStep "Dataization changed something" (Left stillObj)+ logStep "Dataization changed something" (AsObject stillObj) withContext ctx' $ go False stillObj -- partially dataized bytes -> return bytes @@ -176,16 +195,16 @@ let o_rho = ObjectDispatch obj Rho let o_a0 = ObjectDispatch obj (Alpha (AlphaIndex "α0")) lhs <- incLogLevel $ do- logStep "Evaluating LHS" (Left o_rho)+ logStep "Evaluating LHS" (AsObject o_rho) dataizeRecursivelyChain True o_rho rhs <- incLogLevel $ do- logStep "Evaluating RHS" (Left o_a0)+ logStep "Evaluating RHS" (AsObject o_a0) dataizeRecursivelyChain True o_a0 result <- case (lhs, rhs) of- (Right l, Right r) -> do+ (AsBytes l, AsBytes r) -> do let bytes = resultToBytes (bytesToParam r `func` bytesToParam l) resultObj = wrapBytes bytes- logStep "Evaluated function" (Left resultObj)+ logStep "Evaluated function" (AsObject resultObj) return resultObj _ -> fail "Couldn't find bytes in one or both of LHS and RHS" return (result, ())@@ -212,22 +231,22 @@ let lhsArg = arg1 obj let rhsArg = arg2 obj lhs <- incLogLevel $ do- logStep "Evaluating LHS" (Left lhsArg)+ logStep "Evaluating LHS" (AsObject lhsArg) dataizeRecursivelyChain True lhsArg rhs <- incLogLevel $ do- logStep "Evaluating RHS" (Left rhsArg)+ logStep "Evaluating RHS" (AsObject rhsArg) dataizeRecursivelyChain True rhsArg result <- case (lhs, rhs) of- (Right l, Right r) -> do+ (AsBytes l, AsBytes r) -> do let bytes = resultToBytes (bytesToParam l `func` bytesToParam r) resultObj = wrapBytes bytes- logStep "Evaluated function" (Left resultObj)+ logStep "Evaluated function" (AsObject resultObj) return resultObj- (Left _l, Left _r) ->+ (AsObject _l, AsObject _r) -> fail (name <> ": Couldn't find bytes in both LHS and RHS")- (Left l, _) -> do+ (AsObject l, _) -> do fail (name <> ": Couldn't find bytes in LHS: " <> printTree (hideRho l))- (_, Left r) -> do+ (_, AsObject r) -> do fail (name <> ": Couldn't find bytes in RHS: " <> printTree (hideRho r)) return (result, ()) @@ -252,7 +271,7 @@ -- This should maybe get converted to a type class and some instances? evaluateIntIntIntFunChain :: (Int -> Int -> Int) -> String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState)-evaluateIntIntIntFunChain = evaluateBinaryDataizationFunChain intToBytes bytesToInt wrapBytesInInt extractRho (extractLabel "x")+evaluateIntIntIntFunChain = evaluateBinaryDataizationFunChain intToBytes bytesToInt wrapBytesInConstInt extractRho (extractLabel "x") evaluateIntIntBoolFunChain :: (Int -> Int -> Bool) -> String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState) evaluateIntIntBoolFunChain = evaluateBinaryDataizationFunChain boolToBytes bytesToInt wrapBytesAsBool extractRho (extractLabel "x")@@ -265,7 +284,7 @@ evaluateBytesBytesFunChain = evaluateUnaryDataizationFunChain intToBytes bytesToInt wrapBytesInBytes extractRho evaluateFloatFloatFloatFunChain :: (Double -> Double -> Double) -> String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState)-evaluateFloatFloatFloatFunChain = evaluateBinaryDataizationFunChain floatToBytes bytesToFloat wrapBytesInFloat extractRho (extractLabel "x")+evaluateFloatFloatFloatFunChain = evaluateBinaryDataizationFunChain floatToBytes bytesToFloat wrapBytesInConstFloat extractRho (extractLabel "x") -- | Like `evaluateDataizationFunChain` but specifically for the built-in functions. -- This function is not safe. It returns undefined for unknown functions@@ -278,7 +297,7 @@ evaluateBuiltinFunChainUnknown :: String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState) evaluateBuiltinFunChainUnknown atomName obj state = do- logStep [fmt|[INFO]: unknown atom ({atomName})|] (Left obj)+ logStep [fmt|[INFO]: unknown atom ({atomName})|] (AsObject obj) return (obj, state) -- | Like `evaluateDataizationFun` but specifically for the built-in functions.@@ -296,20 +315,3 @@ extractAlpha0 = (`ObjectDispatch` Alpha (AlphaIndex "α0")) extractLabel :: String -> Object -> Object extractLabel attrName = (`ObjectDispatch` Label (LabelId attrName))-wrapBytesInInt :: Bytes -> Object-wrapBytesInInt (Bytes bytes) = [fmt|Φ.org.eolang.int(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]-wrapBytesInFloat :: Bytes -> Object-wrapBytesInFloat (Bytes bytes) = [fmt|Φ.org.eolang.float(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]-wrapBytesInString :: Bytes -> Object-wrapBytesInString (Bytes bytes) = [fmt|Φ.org.eolang.string(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]-wrapBytesInBytes :: Bytes -> Object-wrapBytesInBytes (Bytes bytes) = [fmt|Φ.org.eolang.bytes(Δ ⤍ {bytes})|]-wrapTermination :: Object-wrapTermination = [fmt|Φ.org.eolang.error(α0 ↦ Φ.org.eolang.string(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes})))|]- where- Bytes bytes = stringToBytes "unknown error"--wrapBytesAsBool :: Bytes -> Object-wrapBytesAsBool bytes- | bytesToInt bytes == 0 = [fmt|Φ.org.eolang.false|]- | otherwise = [fmt|Φ.org.eolang.true|]
src/Language/EO/Phi/Dataize/Atoms.hs view
@@ -30,7 +30,7 @@ import Data.List (singleton) import Language.EO.Phi.Dataize import Language.EO.Phi.Rules.Common-import Language.EO.Phi.Syntax.Abs+import Language.EO.Phi.Syntax knownAtomsList :: [(String, String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState))] knownAtomsList =@@ -52,8 +52,8 @@ , \name obj state -> do thisStr <- incLogLevel $ dataizeRecursivelyChain True (extractRho obj) bytes <- case thisStr of- Right bytes -> pure bytes- Left _ -> fail "Couldn't find bytes"+ AsBytes bytes -> pure bytes+ AsObject _ -> fail "Couldn't find bytes" evaluateBinaryDataizationFunChain id bytesToInt wrapBytesInBytes (extractLabel "start") (extractLabel "len") (sliceBytes bytes) name obj state ) , ("Lorg_eolang_bytes_and", evaluateBytesBytesBytesFunChain (.&.))@@ -72,15 +72,15 @@ , ("Lorg_eolang_float_plus", evaluateFloatFloatFloatFunChain (+)) , ("Lorg_eolang_float_div", evaluateFloatFloatFloatFunChain (/)) , -- string- ("Lorg_eolang_string_length", evaluateUnaryDataizationFunChain intToBytes bytesToString wrapBytesInInt extractRho length)+ ("Lorg_eolang_string_length", evaluateUnaryDataizationFunChain intToBytes bytesToString wrapBytesInConstInt extractRho length) , ( "Lorg_eolang_string_slice" , \name obj state -> do thisStr <- incLogLevel $ dataizeRecursivelyChain True (extractRho obj) string <- case thisStr of- Right bytes -> pure $ bytesToString bytes- Left _ -> fail "Couldn't find bytes"- evaluateBinaryDataizationFunChain stringToBytes bytesToInt wrapBytesInString (extractLabel "start") (extractLabel "len") (\start len -> take len (drop start string)) name obj state+ AsBytes bytes -> pure $ bytesToString bytes+ AsObject _ -> fail "Couldn't find bytes"+ evaluateBinaryDataizationFunChain stringToBytes bytesToInt wrapBytesInConstString (extractLabel "start") (extractLabel "len") (\start len -> take len (drop start string)) name obj state ) , -- others ("Lorg_eolang_dataized", evaluateUnaryDataizationFunChain id id wrapBytesInBytes (extractLabel "target") id)@@ -95,7 +95,7 @@ True -> do let (packageBindings, restBindings) = span isPackage bindings bs <- mapM dataizeBindingChain restBindings- logStep "Dataized 'Package' siblings" (Left $ Formation (bs ++ packageBindings))+ logStep "Dataized 'Package' siblings" (AsObject $ Formation (bs ++ packageBindings)) return (Formation (bs ++ packageBindings), state) False -> return (Formation bindings, state)
src/Language/EO/Phi/Normalize.hs view
@@ -38,6 +38,7 @@ import Data.Generics.Labels () import GHC.Generics (Generic) import Language.EO.Phi.Rules.Common (lookupBinding, objectBindings)+import Language.EO.Phi.Syntax (desugar) import Language.EO.Phi.Syntax.Abs data Context = Context@@ -77,6 +78,9 @@ MetaFunction _ _ -> error "To be honest, I'm not sure what should be here" MetaSubstThis{} -> error "impossible" MetaContextualize{} -> error "impossible"+ obj@ConstString{} -> peelObject (desugar obj)+ obj@ConstInt{} -> peelObject (desugar obj)+ obj@ConstFloat{} -> peelObject (desugar obj) where followedBy (PeeledObject object actions) action = PeeledObject object (actions ++ [action])
src/Language/EO/Phi/Rules/Common.hs view
@@ -28,7 +28,6 @@ {-# LANGUAGE GeneralisedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE ViewPatterns #-} {-# OPTIONS_GHC -Wno-orphans #-} {-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} @@ -37,50 +36,17 @@ import Control.Applicative (Alternative ((<|>)), asum) import Control.Arrow (Arrow (first)) import Control.Monad-import Data.ByteString (ByteString)-import Data.ByteString qualified as ByteString.Strict-import Data.Char (toUpper) import Data.HashMap.Strict qualified as HashMap-import Data.List (intercalate, minimumBy, nubBy, sortOn)+import Data.List (minimumBy, nubBy, sortOn) import Data.List.NonEmpty (NonEmpty (..), (<|)) import Data.Ord (comparing)-import Data.Serialize qualified as Serialize-import Data.String (IsString (..))-import Data.Text qualified as Text-import Data.Text.Encoding qualified as Text-import Language.EO.Phi.Syntax.Abs-import Language.EO.Phi.Syntax.Lex (Token)-import Language.EO.Phi.Syntax.Par-import Numeric (readHex, showHex)+import Language.EO.Phi.Syntax -- $setup -- >>> :set -XOverloadedStrings -- >>> :set -XOverloadedLists -- >>> import Language.EO.Phi.Syntax -instance IsString Program where fromString = unsafeParseWith pProgram-instance IsString Object where fromString = unsafeParseWith pObject-instance IsString Binding where fromString = unsafeParseWith pBinding-instance IsString Attribute where fromString = unsafeParseWith pAttribute-instance IsString RuleAttribute where fromString = unsafeParseWith pRuleAttribute-instance IsString PeeledObject where fromString = unsafeParseWith pPeeledObject-instance IsString ObjectHead where fromString = unsafeParseWith pObjectHead--instance IsString MetaId where fromString = unsafeParseWith pMetaId--parseWith :: ([Token] -> Either String a) -> String -> Either String a-parseWith parser input = parser tokens- where- tokens = myLexer input---- | Parse a 'Object' from a 'String'.--- May throw an 'error` if input has a syntactical or lexical errors.-unsafeParseWith :: ([Token] -> Either String a) -> String -> a-unsafeParseWith parser input =- case parseWith parser input of- Left parseError -> error (parseError <> "\non input\n" <> input <> "\n")- Right object -> object- -- | State of evaluation is not needed yet, but it might be in the future type EvaluationState = () @@ -136,28 +102,32 @@ withSubObject :: (Context -> Object -> [(String, Object)]) -> Context -> Object -> [(String, Object)] withSubObject f ctx root = f ctx root- <|> case root of- Formation bindings ->- propagateName1 Formation- <$> withSubObjectBindings f ((extendContextWith root subctx){insideFormation = True, insideAbstractFormation = isAbstract}) bindings- where- isAbstract = any isEmptyBinding bindings- Application obj bindings ->- asum- [ propagateName2 Application <$> withSubObject f subctx obj <*> pure bindings- , propagateName1 (Application obj) <$> withSubObjectBindings f subctx bindings- ]- ObjectDispatch obj a -> propagateName2 ObjectDispatch <$> withSubObject f subctx obj <*> pure a- GlobalObject{} -> []- ThisObject{} -> []- Termination -> []- MetaObject _ -> []- MetaFunction _ _ -> []- MetaTailContext{} -> []- MetaSubstThis _ _ -> []- MetaContextualize _ _ -> []+ <|> go root where subctx = ctx{insideSubObject = True}+ go = \case+ Formation bindings ->+ propagateName1 Formation+ <$> withSubObjectBindings f ((extendContextWith root subctx){insideFormation = True, insideAbstractFormation = isAbstract}) bindings+ where+ isAbstract = any isEmptyBinding bindings+ Application obj bindings ->+ asum+ [ propagateName2 Application <$> withSubObject f subctx obj <*> pure bindings+ , propagateName1 (Application obj) <$> withSubObjectBindings f subctx bindings+ ]+ ObjectDispatch obj a -> propagateName2 ObjectDispatch <$> withSubObject f subctx obj <*> pure a+ GlobalObject{} -> []+ ThisObject{} -> []+ Termination -> []+ MetaObject _ -> []+ MetaFunction _ _ -> []+ MetaTailContext{} -> []+ MetaSubstThis _ _ -> []+ MetaContextualize _ _ -> []+ ConstString{} -> []+ ConstInt{} -> []+ ConstFloat{} -> [] -- | Given a unary function that operates only on plain objects, -- converts it to a function that operates on named objects@@ -225,6 +195,9 @@ MetaSubstThis{} -> 1 -- should be impossible MetaContextualize{} -> 1 -- should be impossible MetaTailContext{} -> 1 -- should be impossible+ obj@ConstString{} -> objectSize (desugar obj)+ obj@ConstInt{} -> objectSize (desugar obj)+ obj@ConstFloat{} -> objectSize (desugar obj) bindingSize :: Binding -> Int bindingSize = \case@@ -417,222 +390,6 @@ objectBindings (Application obj bs) = objectBindings obj ++ bs objectBindings (ObjectDispatch obj _attr) = objectBindings obj objectBindings _ = []--padLeft :: Int -> [Char] -> [Char]-padLeft n s = replicate (n - length s) '0' ++ s---- | Split a list into chunks of given size.--- All lists in the result are guaranteed to have length less than or equal to the given size.------ >>> chunksOf 2 "012345678"--- ["01","23","45","67","8"]------ See 'paddedLeftChunksOf' for a version with padding to guarantee exact chunk size.-chunksOf :: Int -> [a] -> [[a]]-chunksOf _ [] = []-chunksOf n xs = chunk : chunksOf n leftover- where- (chunk, leftover) = splitAt n xs---- | Split a list into chunks of given size,--- padding on the left if necessary.--- All lists in the result are guaranteed to have given size.------ >>> paddedLeftChunksOf '0' 2 "1234567"--- ["01","23","45","67"]--- >>> paddedLeftChunksOf '0' 2 "123456"--- ["12","34","56"]------ prop> n > 0 ==> all (\chunk -> length chunk == n) (paddedLeftChunksOf c n s)-paddedLeftChunksOf :: a -> Int -> [a] -> [[a]]-paddedLeftChunksOf padSymbol n xs- | padSize == n = chunksOf n xs- | otherwise = chunksOf n (replicate padSize padSymbol ++ xs)- where- len = length xs- padSize = n - len `mod` n---- | Normalize the bytestring representation to fit valid 'Bytes' token.------ >>> normalizeBytes "238714ABCDEF"--- "23-87-14-AB-CD-EF"------ >>> normalizeBytes "0238714ABCDEF"--- "00-23-87-14-AB-CD-EF"------ >>> normalizeBytes "4"--- "04-"-normalizeBytes :: String -> String-normalizeBytes = withDashes . paddedLeftChunksOf '0' 2 . map toUpper- where- withDashes = \case- [] -> "00-"- [byte] -> byte <> "-"- bytes -> intercalate "-" bytes---- | Concatenate 'Bytes'.--- FIXME: we should really use 'ByteString' instead of the underlying 'String' representation.------ >>> concatBytes "00-" "01-02"--- Bytes "00-01-02"------ >>> concatBytes "03-04" "01-02"--- Bytes "03-04-01-02"------ >>> concatBytes "03-04" "01-"--- Bytes "03-04-01"-concatBytes :: Bytes -> Bytes -> Bytes-concatBytes (Bytes xs) (Bytes zs) = Bytes (normalizeBytes (filter (/= '-') (xs <> zs)))---- | Select a slice (section) of 'Bytes'.------ >>> sliceBytes "12-34-56" 1 1--- Bytes "34-"------ >>> sliceBytes "12-34-56" 1 0--- Bytes "00-"------ >>> sliceBytes "12-34-56" 0 2--- Bytes "12-34"-sliceBytes :: Bytes -> Int -> Int -> Bytes-sliceBytes (Bytes bytes) start len = Bytes $ normalizeBytes $ take (2 * len) (drop (2 * start) (filter (/= '-') bytes))---- | Convert an 'Int' into 'Bytes' representation.------ >>> intToBytes 7--- Bytes "00-00-00-00-00-00-00-07"--- >>> intToBytes (3^33)--- Bytes "00-13-BF-EF-A6-5A-BB-83"--- >>> intToBytes (-1)--- Bytes "FF-FF-FF-FF-FF-FF-FF-FF"-intToBytes :: Int -> Bytes-intToBytes n = Bytes $ normalizeBytes $ foldMap (padLeft 2 . (`showHex` "")) $ ByteString.Strict.unpack $ Serialize.encode n---- | Parse 'Bytes' as 'Int'.------ >>> bytesToInt "00-13-BF-EF-A6-5A-BB-83"--- 5559060566555523--- >>> bytesToInt "AB-"--- 171------ May error on invalid 'Bytes':------ >>> bytesToInt "s"--- *** Exception: Prelude.head: empty list--- ...--- ...--- ...--- ...--- ...--- ...-bytesToInt :: Bytes -> Int-bytesToInt (Bytes (dropWhile (== '0') . filter (/= '-') -> bytes))- | null bytes = 0- | otherwise = fst $ head $ readHex bytes---- | Convert 'Bool' to 'Bytes'.------ >>> boolToBytes False--- Bytes "00-"--- >>> boolToBytes True--- Bytes "01-"-boolToBytes :: Bool -> Bytes-boolToBytes True = Bytes "01-"-boolToBytes False = Bytes "00-"---- | Interpret 'Bytes' as 'Bool'.------ Zero is interpreted as 'False'.------ >>> bytesToBool "00-"--- False------ >>> bytesToBool "00-00"--- False------ Everything else is interpreted as 'True'.------ >>> bytesToBool "01-"--- True------ >>> bytesToBool "00-01"--- True------ >>> bytesToBool "AB-CD"--- True-bytesToBool :: Bytes -> Bool-bytesToBool (Bytes (dropWhile (== '0') . filter (/= '-') -> [])) = False-bytesToBool _ = True---- | Encode 'String' as 'Bytes'.------ >>> stringToBytes "Hello, world!"--- Bytes "48-65-6C-6C-6F-2C-20-77-6F-72-6C-64-21"------ >>> stringToBytes "Привет, мир!"--- Bytes "D0-9F-D1-80-D0-B8-D0-B2-D0-B5-D1-82-2C-20-D0-BC-D0-B8-D1-80-21"------ >>> stringToBytes "hello, 大家!"--- Bytes "68-65-6C-6C-6F-2C-20-E5-A4-A7-E5-AE-B6-21"-stringToBytes :: String -> Bytes-stringToBytes s = bytestringToBytes $ Text.encodeUtf8 (Text.pack s)--bytestringToBytes :: ByteString -> Bytes-bytestringToBytes = Bytes . normalizeBytes . foldMap (padLeft 2 . (`showHex` "")) . ByteString.Strict.unpack--bytesToByteString :: Bytes -> ByteString-bytesToByteString (Bytes bytes) = ByteString.Strict.pack (go (filter (/= '-') bytes))- where- go [] = []- go (x : y : xs) = fst (head (readHex [x, y])) : go xs- go [_] = error "impossible: partial byte"---- | Decode 'String' from 'Bytes'.------ >>> bytesToString "48-65-6C-6C-6F-2C-20-77-6F-72-6C-64-21"--- "Hello, world!"-bytesToString :: Bytes -> String-bytesToString = Text.unpack . Text.decodeUtf8 . bytesToByteString---- | Encode 'Double' as 'Bytes' following IEEE754.------ Note: it is called "float" in EO, but it actually occupies 8 bytes so it corresponds to 'Double'.------ >>> floatToBytes 0--- Bytes "00-00-00-00-00-00-00-00"------ >>> floatToBytes (-0.1)--- Bytes "BF-B9-99-99-99-99-99-9A"------ >>> floatToBytes (1/0) -- Infinity--- Bytes "7F-F0-00-00-00-00-00-00"------ >>> floatToBytes (asin 2) `elem` ["FF-F8-00-00-00-00-00-00", "7F-F8-00-00-00-00-00-00"] -- sNaN or qNaN--- True-floatToBytes :: Double -> Bytes-floatToBytes f = Bytes $ normalizeBytes $ foldMap (padLeft 2 . (`showHex` "")) $ ByteString.Strict.unpack $ Serialize.encode f---- | Decode 'Double' from 'Bytes' following IEEE754.------ >>> bytesToFloat "00-00-00-00-00-00-00-00"--- 0.0------ >>> bytesToFloat "BF-B9-99-99-99-99-99-9A"--- -0.1------ >>> bytesToFloat "7F-F0-00-00-00-00-00-00"--- Infinity------ >>> bytesToFloat "FF-F8-00-00-00-00-00-00"--- NaN-bytesToFloat :: Bytes -> Double-bytesToFloat (Bytes bytes) =- case Serialize.decode $ ByteString.Strict.pack $ map (fst . head . readHex) $ words (map dashToSpace bytes) of- Left msg -> error msg- Right x -> x- where- dashToSpace '-' = ' '- dashToSpace c = c isRhoBinding :: Binding -> Bool isRhoBinding (AlphaBinding Rho _) = True
src/Language/EO/Phi/Rules/Fast.hs view
@@ -29,7 +29,7 @@ import Data.List.NonEmpty qualified as NonEmpty import Language.EO.Phi.Rules.Common import Language.EO.Phi.Rules.Yaml qualified as Yaml-import Language.EO.Phi.Syntax.Abs+import Language.EO.Phi.Syntax -- $setup -- >>> :set -XOverloadedStrings@@ -211,3 +211,6 @@ MetaObject{} -> error "impossible MetaObject!" MetaTailContext{} -> error "impossible MetaTailContext!" MetaFunction{} -> error "impossible MetaFunction!"+ obj@ConstString{} -> obj -- fastYegorInsideOut ctx (desugar obj)+ obj@ConstInt{} -> obj -- fastYegorInsideOut ctx (desugar obj)+ obj@ConstFloat{} -> obj -- fastYegorInsideOut ctx (desugar obj)
src/Language/EO/Phi/Rules/Yaml.hs view
@@ -52,10 +52,9 @@ import Data.Yaml qualified as Yaml import GHC.Generics (Generic) -import Language.EO.Phi (printTree) import Language.EO.Phi.Rules.Common (Context (..), NamedRule) import Language.EO.Phi.Rules.Common qualified as Common-import Language.EO.Phi.Syntax.Abs+import Language.EO.Phi.Syntax import PyF (fmt) -- $setup@@ -239,6 +238,9 @@ MetaTailContext obj _ -> objectLabelIds obj MetaSubstThis obj obj' -> objectLabelIds obj <> objectLabelIds obj' MetaContextualize obj obj' -> objectLabelIds obj <> objectLabelIds obj'+ obj@ConstString{} -> objectLabelIds (desugar obj)+ obj@ConstInt{} -> objectLabelIds (desugar obj)+ obj@ConstFloat{} -> objectLabelIds (desugar obj) bindingLabelIds :: Binding -> Set LabelId bindingLabelIds = \case@@ -283,6 +285,9 @@ objectMetaIds (MetaTailContext obj x) = objectMetaIds obj <> Set.singleton (MetaIdTail x) objectMetaIds (MetaSubstThis obj obj') = foldMap objectMetaIds [obj, obj'] objectMetaIds (MetaContextualize obj obj') = foldMap objectMetaIds [obj, obj']+objectMetaIds obj@ConstString{} = objectMetaIds (desugar obj)+objectMetaIds obj@ConstInt{} = objectMetaIds (desugar obj)+objectMetaIds obj@ConstFloat{} = objectMetaIds (desugar obj) bindingMetaIds :: Binding -> Set MetaId bindingMetaIds (AlphaBinding attr obj) = attrMetaIds attr <> objectMetaIds obj@@ -312,6 +317,9 @@ objectHasMetavars MetaTailContext{} = True objectHasMetavars (MetaSubstThis _ _) = True -- technically not a metavar, but a substitution objectHasMetavars (MetaContextualize _ _) = True+objectHasMetavars obj@ConstString{} = objectHasMetavars (desugar obj)+objectHasMetavars obj@ConstInt{} = objectHasMetavars (desugar obj)+objectHasMetavars obj@ConstFloat{} = objectHasMetavars (desugar obj) bindingHasMetavars :: Binding -> Bool bindingHasMetavars (AlphaBinding attr obj) = attrHasMetavars attr || objectHasMetavars obj@@ -440,6 +448,9 @@ Just OneHoleContext{..} -> let holeSubst = mempty{objectMetas = [(holeMetaId, applySubst subst obj)]} in applySubst holeSubst contextObject+ obj@ConstString{} -> applySubst subst (desugar obj)+ obj@ConstInt{} -> applySubst subst (desugar obj)+ obj@ConstFloat{} -> applySubst subst (desugar obj) applySubstAttr :: Subst -> Attribute -> Attribute applySubstAttr Subst{..} = \case@@ -508,6 +519,9 @@ GlobalObject -> [] ThisObject -> [] Termination -> []+ ConstString{} -> []+ ConstInt{} -> []+ ConstFloat{} -> [] -- should cases below be errors? MetaSubstThis{} -> [] MetaContextualize{} -> []@@ -621,6 +635,9 @@ obj@MetaSubstThis{} -> error ("impossible: trying to substitute ξ in " <> printTree obj) obj@MetaObject{} -> error ("impossible: trying to substitute ξ in " <> printTree obj) obj@MetaFunction{} -> error ("impossible: trying to substitute ξ in " <> printTree obj)+ obj@ConstString{} -> obj+ obj@ConstInt{} -> obj+ obj@ConstFloat{} -> obj -- {⟦ x ↦ ⟦ b ↦ ⟦ Δ ⤍ 01- ⟧, φ ↦ ⟦ b ↦ ⟦ Δ ⤍ 02- ⟧, c ↦ ⟦ a ↦ ξ.ρ.ρ.b ⟧.a ⟧.c ⟧.φ, λ ⤍ Package ⟧} @@ -651,6 +668,9 @@ obj@MetaSubstThis{} -> error ("impossible: trying to contextualize " <> printTree obj) obj@MetaObject{} -> error ("impossible: trying to contextualize " <> printTree obj) obj@MetaFunction{} -> error ("impossible: trying to contextualize " <> printTree obj)+ obj@ConstString{} -> go (desugar obj)+ obj@ConstInt{} -> go (desugar obj)+ obj@ConstFloat{} -> go (desugar obj) contextualizeBinding :: Object -> Binding -> Binding contextualizeBinding obj = \case
src/Language/EO/Phi/Syntax.hs view
@@ -22,19 +22,121 @@ -- SOFTWARE. {- FOURMOLU_ENABLE -} {-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE ViewPatterns #-} {-# OPTIONS_GHC -Wno-orphans #-} module Language.EO.Phi.Syntax ( module Language.EO.Phi.Syntax.Abs,+ desugar, printTree, shrinkDots,++ -- * Conversion to 'Bytes'+ intToBytes,+ floatToBytes,+ boolToBytes,+ stringToBytes,++ -- * Conversion from 'Bytes'+ bytesToInt,+ bytesToFloat,+ bytesToString,+ bytesToBool,++ -- * Wrapping 'Bytes' into 'Object'+ wrapBytesInConstInt,+ wrapBytesInConstFloat,+ wrapBytesInConstString,+ wrapBytesInBytes,+ wrapBytesInInt,+ wrapBytesInFloat,+ wrapBytesAsBool,+ wrapBytesInString,+ wrapTermination,++ -- * Functions over 'Bytes'+ sliceBytes,+ concatBytes,++ -- * Helpers+ chunksOf,+ paddedLeftChunksOf,+ normalizeBytes,+ parseWith, ) where -import Data.Char (isSpace)-import Language.EO.Phi.Rules.Common ()+import Data.ByteString (ByteString)+import Data.ByteString qualified as ByteString.Strict+import Data.Char (isSpace, toUpper)+import Data.List (intercalate)+import Data.Serialize qualified as Serialize+import Data.String (IsString (fromString))+import Data.Text qualified as Text+import Data.Text.Encoding qualified as Text import Language.EO.Phi.Syntax.Abs+import Language.EO.Phi.Syntax.Lex (Token)+import Language.EO.Phi.Syntax.Par import Language.EO.Phi.Syntax.Print qualified as Phi+import Numeric (readHex, showHex)+import PyF (fmt) +-- $setup+-- >>> :set -XOverloadedStrings+-- >>> :set -XOverloadedLists++desugar :: Object -> Object+desugar = \case+ ConstString string -> wrapBytesInString (stringToBytes string)+ ConstInt n -> wrapBytesInInt (intToBytes (fromInteger n))+ ConstFloat x -> wrapBytesInFloat (floatToBytes x)+ Formation bindings -> Formation (map desugarBinding bindings)+ Application obj bindings -> Application (desugar obj) (map desugarBinding bindings)+ ObjectDispatch obj a -> ObjectDispatch (desugar obj) a+ GlobalObject -> GlobalObject+ ThisObject -> ThisObject+ Termination -> Termination+ MetaSubstThis obj this -> MetaSubstThis (desugar obj) (desugar this)+ obj@MetaObject{} -> obj+ MetaContextualize obj1 obj2 -> MetaContextualize (desugar obj1) (desugar obj2)+ MetaTailContext obj metaId -> MetaTailContext (desugar obj) metaId+ MetaFunction name obj -> MetaFunction name (desugar obj)++desugarBinding :: Binding -> Binding+desugarBinding = \case+ AlphaBinding a obj -> AlphaBinding a (desugar obj)+ binding -> binding++-- MetaSubstThis++wrapBytesInInt :: Bytes -> Object+wrapBytesInInt (Bytes bytes) = [fmt|Φ.org.eolang.int(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]+wrapBytesInFloat :: Bytes -> Object+wrapBytesInFloat (Bytes bytes) = [fmt|Φ.org.eolang.float(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]+wrapBytesInString :: Bytes -> Object+wrapBytesInString (Bytes bytes) = [fmt|Φ.org.eolang.string(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]+wrapBytesInBytes :: Bytes -> Object+wrapBytesInBytes (Bytes bytes) = [fmt|Φ.org.eolang.bytes(Δ ⤍ {bytes})|]+wrapTermination :: Object+wrapTermination = [fmt|Φ.org.eolang.error(α0 ↦ Φ.org.eolang.string(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes})))|]+ where+ Bytes bytes = stringToBytes "unknown error"++wrapBytesInConstInt :: Bytes -> Object+wrapBytesInConstInt bytes = [fmt|Φ.org.eolang.int(as-bytes ↦ {bytesToInt bytes})|]++wrapBytesInConstFloat :: Bytes -> Object+wrapBytesInConstFloat bytes = [fmt|Φ.org.eolang.float(as-bytes ↦ {bytesToFloat bytes})|]++wrapBytesInConstString :: Bytes -> Object+wrapBytesInConstString bytes = [fmt|Φ.org.eolang.string(as-bytes ↦ {show (bytesToString bytes)})|]++wrapBytesAsBool :: Bytes -> Object+wrapBytesAsBool bytes+ | bytesToInt bytes == 0 = [fmt|Φ.org.eolang.false|]+ | otherwise = [fmt|Φ.org.eolang.true|]+ -- * Overriding generated pretty-printer -- | Like 'Phi.printTree', but without spaces around dots and no indentation for curly braces.@@ -125,3 +227,243 @@ -- Make sure we are on a fresh line. onNewLine :: Int -> Bool -> ShowS onNewLine i p = (if p then id else showChar '\n') . indent i++padLeft :: Int -> [Char] -> [Char]+padLeft n s = replicate (n - length s) '0' ++ s++-- | Split a list into chunks of given size.+-- All lists in the result are guaranteed to have length less than or equal to the given size.+--+-- >>> chunksOf 2 "012345678"+-- ["01","23","45","67","8"]+--+-- See 'paddedLeftChunksOf' for a version with padding to guarantee exact chunk size.+chunksOf :: Int -> [a] -> [[a]]+chunksOf _ [] = []+chunksOf n xs = chunk : chunksOf n leftover+ where+ (chunk, leftover) = splitAt n xs++-- | Split a list into chunks of given size,+-- padding on the left if necessary.+-- All lists in the result are guaranteed to have given size.+--+-- >>> paddedLeftChunksOf '0' 2 "1234567"+-- ["01","23","45","67"]+-- >>> paddedLeftChunksOf '0' 2 "123456"+-- ["12","34","56"]+--+-- prop> n > 0 ==> all (\chunk -> length chunk == n) (paddedLeftChunksOf c n s)+paddedLeftChunksOf :: a -> Int -> [a] -> [[a]]+paddedLeftChunksOf padSymbol n xs+ | padSize == n = chunksOf n xs+ | otherwise = chunksOf n (replicate padSize padSymbol ++ xs)+ where+ len = length xs+ padSize = n - len `mod` n++-- | Normalize the bytestring representation to fit valid 'Bytes' token.+--+-- >>> normalizeBytes "238714ABCDEF"+-- "23-87-14-AB-CD-EF"+--+-- >>> normalizeBytes "0238714ABCDEF"+-- "00-23-87-14-AB-CD-EF"+--+-- >>> normalizeBytes "4"+-- "04-"+normalizeBytes :: String -> String+normalizeBytes = withDashes . paddedLeftChunksOf '0' 2 . map toUpper+ where+ withDashes = \case+ [] -> "00-"+ [byte] -> byte <> "-"+ bytes -> intercalate "-" bytes++-- | Concatenate 'Bytes'.+-- FIXME: we should really use 'ByteString' instead of the underlying 'String' representation.+--+-- >>> concatBytes "00-" "01-02"+-- Bytes "00-01-02"+--+-- >>> concatBytes "03-04" "01-02"+-- Bytes "03-04-01-02"+--+-- >>> concatBytes "03-04" "01-"+-- Bytes "03-04-01"+concatBytes :: Bytes -> Bytes -> Bytes+concatBytes (Bytes xs) (Bytes zs) = Bytes (normalizeBytes (filter (/= '-') (xs <> zs)))++-- | Select a slice (section) of 'Bytes'.+--+-- >>> sliceBytes "12-34-56" 1 1+-- Bytes "34-"+--+-- >>> sliceBytes "12-34-56" 1 0+-- Bytes "00-"+--+-- >>> sliceBytes "12-34-56" 0 2+-- Bytes "12-34"+sliceBytes :: Bytes -> Int -> Int -> Bytes+sliceBytes (Bytes bytes) start len = Bytes $ normalizeBytes $ take (2 * len) (drop (2 * start) (filter (/= '-') bytes))++-- | Convert an 'Int' into 'Bytes' representation.+--+-- >>> intToBytes 7+-- Bytes "00-00-00-00-00-00-00-07"+-- >>> intToBytes (3^33)+-- Bytes "00-13-BF-EF-A6-5A-BB-83"+-- >>> intToBytes (-1)+-- Bytes "FF-FF-FF-FF-FF-FF-FF-FF"+intToBytes :: Int -> Bytes+intToBytes n = Bytes $ normalizeBytes $ foldMap (padLeft 2 . (`showHex` "")) $ ByteString.Strict.unpack $ Serialize.encode n++-- | Parse 'Bytes' as 'Int'.+--+-- >>> bytesToInt "00-13-BF-EF-A6-5A-BB-83"+-- 5559060566555523+-- >>> bytesToInt "AB-"+-- 171+--+-- May error on invalid 'Bytes':+--+-- >>> bytesToInt "s"+-- *** Exception: Prelude.head: empty list+-- ...+-- ...+-- ...+-- ...+-- ...+-- ...+bytesToInt :: Bytes -> Int+bytesToInt (Bytes (dropWhile (== '0') . filter (/= '-') -> bytes))+ | null bytes = 0+ | otherwise = fst $ head $ readHex bytes++-- | Convert 'Bool' to 'Bytes'.+--+-- >>> boolToBytes False+-- Bytes "00-"+-- >>> boolToBytes True+-- Bytes "01-"+boolToBytes :: Bool -> Bytes+boolToBytes True = Bytes "01-"+boolToBytes False = Bytes "00-"++-- | Interpret 'Bytes' as 'Bool'.+--+-- Zero is interpreted as 'False'.+--+-- >>> bytesToBool "00-"+-- False+--+-- >>> bytesToBool "00-00"+-- False+--+-- Everything else is interpreted as 'True'.+--+-- >>> bytesToBool "01-"+-- True+--+-- >>> bytesToBool "00-01"+-- True+--+-- >>> bytesToBool "AB-CD"+-- True+bytesToBool :: Bytes -> Bool+bytesToBool (Bytes (dropWhile (== '0') . filter (/= '-') -> [])) = False+bytesToBool _ = True++-- | Encode 'String' as 'Bytes'.+--+-- >>> stringToBytes "Hello, world!"+-- Bytes "48-65-6C-6C-6F-2C-20-77-6F-72-6C-64-21"+--+-- >>> stringToBytes "Привет, мир!"+-- Bytes "D0-9F-D1-80-D0-B8-D0-B2-D0-B5-D1-82-2C-20-D0-BC-D0-B8-D1-80-21"+--+-- >>> stringToBytes "hello, 大家!"+-- Bytes "68-65-6C-6C-6F-2C-20-E5-A4-A7-E5-AE-B6-21"+stringToBytes :: String -> Bytes+stringToBytes s = bytestringToBytes $ Text.encodeUtf8 (Text.pack s)++bytestringToBytes :: ByteString -> Bytes+bytestringToBytes = Bytes . normalizeBytes . foldMap (padLeft 2 . (`showHex` "")) . ByteString.Strict.unpack++bytesToByteString :: Bytes -> ByteString+bytesToByteString (Bytes bytes) = ByteString.Strict.pack (go (filter (/= '-') bytes))+ where+ go [] = []+ go (x : y : xs) = fst (head (readHex [x, y])) : go xs+ go [_] = error "impossible: partial byte"++-- | Decode 'String' from 'Bytes'.+--+-- >>> bytesToString "48-65-6C-6C-6F-2C-20-77-6F-72-6C-64-21"+-- "Hello, world!"+bytesToString :: Bytes -> String+bytesToString = Text.unpack . Text.decodeUtf8 . bytesToByteString++-- | Encode 'Double' as 'Bytes' following IEEE754.+--+-- Note: it is called "float" in EO, but it actually occupies 8 bytes so it corresponds to 'Double'.+--+-- >>> floatToBytes 0+-- Bytes "00-00-00-00-00-00-00-00"+--+-- >>> floatToBytes (-0.1)+-- Bytes "BF-B9-99-99-99-99-99-9A"+--+-- >>> floatToBytes (1/0) -- Infinity+-- Bytes "7F-F0-00-00-00-00-00-00"+--+-- >>> floatToBytes (asin 2) `elem` ["FF-F8-00-00-00-00-00-00", "7F-F8-00-00-00-00-00-00"] -- sNaN or qNaN+-- True+floatToBytes :: Double -> Bytes+floatToBytes f = Bytes $ normalizeBytes $ foldMap (padLeft 2 . (`showHex` "")) $ ByteString.Strict.unpack $ Serialize.encode f++-- | Decode 'Double' from 'Bytes' following IEEE754.+--+-- >>> bytesToFloat "00-00-00-00-00-00-00-00"+-- 0.0+--+-- >>> bytesToFloat "BF-B9-99-99-99-99-99-9A"+-- -0.1+--+-- >>> bytesToFloat "7F-F0-00-00-00-00-00-00"+-- Infinity+--+-- >>> bytesToFloat "FF-F8-00-00-00-00-00-00"+-- NaN+bytesToFloat :: Bytes -> Double+bytesToFloat (Bytes bytes) =+ case Serialize.decode $ ByteString.Strict.pack $ map (fst . head . readHex) $ words (map dashToSpace bytes) of+ Left msg -> error msg+ Right x -> x+ where+ dashToSpace '-' = ' '+ dashToSpace c = c++instance IsString Program where fromString = unsafeParseWith pProgram+instance IsString Object where fromString = unsafeParseWith pObject+instance IsString Binding where fromString = unsafeParseWith pBinding+instance IsString Attribute where fromString = unsafeParseWith pAttribute+instance IsString RuleAttribute where fromString = unsafeParseWith pRuleAttribute+instance IsString PeeledObject where fromString = unsafeParseWith pPeeledObject+instance IsString ObjectHead where fromString = unsafeParseWith pObjectHead++instance IsString MetaId where fromString = unsafeParseWith pMetaId++parseWith :: ([Token] -> Either String a) -> String -> Either String a+parseWith parser input = either (\x -> Left [fmt|{x}\non the input:\n{input}|]) Right parsed+ where+ tokens = myLexer input+ parsed = parser tokens++-- | Parse a 'Object' from a 'String'.+-- May throw an 'error` if input has a syntactical or lexical errors.+unsafeParseWith :: ([Token] -> Either String a) -> String -> a+unsafeParseWith parser input =+ case parseWith parser input of+ Left parseError -> error parseError+ Right object -> object
src/Language/EO/Phi/Syntax/Abs.hs view
@@ -41,7 +41,7 @@ module Language.EO.Phi.Syntax.Abs where -import Prelude (String)+import Prelude (Double, Integer, String) import qualified Prelude as C (Eq, Ord, Show, Read) import qualified Data.String @@ -66,6 +66,9 @@ | GlobalObject | ThisObject | Termination+ | ConstString String+ | ConstInt Integer+ | ConstFloat Double | MetaSubstThis Object Object | MetaContextualize Object Object | MetaObject ObjectMetaId
src/Language/EO/Phi/Syntax/Lex.hs view
@@ -27,20709 +27,22493 @@ alex_tab_size :: Int alex_tab_size = 8 alex_base :: Array Int Int-alex_base = listArray (0 :: Int, 152)- [ -8- , 76- , -73- , 140- , -153- , -159- , 268- , 396- , 652- , 771- , 0- , 0- , 0- , 884- , 949- , 1013- , -150- , -156- , 1141- , 1269- , 1525- , 1644- , 0- , 0- , 0- , 1757- , 1822- , 1886- , -147- , -152- , 2014- , 2078- , 2206- , 2462- , 2581- , 0- , 0- , 0- , 2694- , 2759- , 2823- , -146- , -29- , 2951- , 3015- , 770- , -28- , 800- , 823- , 1643- , -111- , 1538- , -145- , 50- , -140- , -138- , 3079- , 3207- , 3463- , 3582- , 0- , 0- , 0- , 3695- , 3760- , 3824- , -139- , -136- , 3952- , 4080- , 4336- , 4455- , 4583- , 4727- , 8- , 0- , 4808- , 5064- , 5065- , 5193- , 4658- , 5258- , 5371- , 0- , 0- , 0- , 0- , 5585- , 5799- , 6055- , 6056- , 6184- , 5441- , 5651- , 6297- , 0- , 0- , 0- , 6487- , 183- , 0- , -143- , -122- , -85- , -98- , 0- , 9- , 6631- , 6876- , 7121- , 7357- , 7613- , 7614- , 7742- , -80- , -106- , 6567- , 6813- , 7855- , 0- , 0- , 0- , 8111- , 8347- , 8603- , 8604- , 8732- , 34- , -75- , 7057- , 8048- , 8845- , 0- , 0- , 0- , 737- , 0- , 1610- , 9092- , -44- , 9348- , 9349- , 9477- , 36- , -43- , 9541- , 9606- , 9719- , 0- , 0- , 0- , 0- , 0- ]--alex_table :: Array Int Int-alex_table = listArray (0 :: Int, 9974)- [ 0- , 99- , 99- , 99- , 99- , 99- , 5- , -1- , -1- , 17- , -1- , -1- , 29- , 55- , -1- , -1- , 45- , 48- , 100- , 100- , 67- , 100- , 100- , 100- , 99- , 98- , 100- , 100- , -1- , -1- , -1- , -1- , 100- , 100- , 100- , 100- , 100- , 106- , 100- , 74- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 88- , 100- , 100- , 114- , 105- , 76- , 71- , 108- , 108- , 108- , 108- , 108- , 108- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 100- , 127- , 100- , -1- , -1- , 138- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 100- , 143- , 100- , 3- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 52- , 0- , 104- , 43- , 101- , 0- , 103- , 0- , 99- , 99- , 99- , 99- , 99- , 0- , 51- , 50- , -1- , -1- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , 54- , 0- , 0- , 0- , 0- , 102- , 99- , 0- , 0- , 53- , 2- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 7- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 8- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 0- , -1- , 135- , 135- , 135- , 135- , 135- , 135- , 135- , 135- , 135- , 135- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , -1- , -1- , -1- , 49- , 49- , 49- , 49- , 49- , 49- , 49- , 49- , 49- , 49- , 0- , -1- , -1- , 0- , 0- , 0- , -1- , 49- , 49- , 49- , 49- , 49- , 49- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 42- , 42- , 42- , 42- , 42- , 42- , 42- , 42- , 42- , 42- , 0- , 0- , 0- , 0- , -1- , 0- , -1- , 42- , 42- , 42- , 42- , 42- , 42- , 49- , 49- , 49- , 49- , 49- , 49- , 49- , 49- , 49- , 49- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 49- , 49- , 49- , 49- , 49- , 49- , -1- , -1- , -1- , 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- , 8- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 151- , 3- , 7- , 75- , 4- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 75- , 2- , 6- , 152- , 152- , 152- , 1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 14- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 15- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 19- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 20- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 0- , -1- , 136- , 135- , 135- , 135- , 135- , 135- , 135- , 135- , 135- , 135- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , -1- , 100- , 0- , -1- , -1- , -1- , 46- , 46- , 46- , 46- , 46- , 46- , 46- , 46- , 46- , 46- , 0- , -1- , -1- , 100- , 0- , 0- , -1- , 46- , 46- , 46- , 46- , 46- , 46- , 0- , 137- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 100- , 0- , 0- , 100- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , 0- , -1- , 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- , 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- , 20- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 12- , 15- , 19- , 11- , 16- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 11- , 14- , 18- , 10- , 10- , 10- , 13- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 26- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 27- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 0- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 0- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 32- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 33- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 0- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , -1- , 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- , 0- , -1- , 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- , 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- , 33- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 24- , 27- , 32- , 23- , 28- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 23- , 26- , 31- , 22- , 22- , 22- , 25- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 39- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 40- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 0- , 107- , 107- , 107- , 107- , 107- , 107- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 0- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 0- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 0- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 57- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 58- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 0- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , -1- , 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- , 0- , -1- , 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- , 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- , 58- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 37- , 40- , 57- , 36- , 41- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 36- , 39- , 56- , 35- , 35- , 35- , 38- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 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- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 70- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 0- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , -1- , 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- , 0- , -1- , 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- , 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- , 70- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 62- , 65- , 69- , 61- , 66- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 61- , 64- , 68- , 60- , 60- , 60- , 63- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 0- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , -1- , 0- , 0- , 0- , 73- , 0- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , 73- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 72- , 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- , 77- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 80- , 78- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 81- , 79- , 85- , 85- , 85- , 82- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 77- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 83- , 78- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 84- , 80- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 81- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 87- , 0- , 0- , 0- , 0- , 86- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 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- , 89- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 92- , 90- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 93- , 91- , 97- , 97- , 97- , 94- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 87- , 92- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 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- , 89- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 92- , 90- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 93- , 91- , 97- , 97- , 97- , 94- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 89- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 95- , 90- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 96- , 93- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 21- , 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- , 34- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 9- , 0- , 0- , 0- , 0- , 59- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 0- , 0- , 110- , 110- , 0- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 0- , 0- , 110- , 110- , 110- , 110- , 110- , 73- , 0- , 0- , 110- , 110- , 0- , 0- , 0- , 110- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 0- , 0- , 110- , 110- , 110- , 139- , 110- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 0- , 110- , 0- , 110- , 107- , 110- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 0- , 0- , 0- , 110- , 110- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 0- , 111- , 44- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 116- , 112- , 120- , 115- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 117- , 113- , 121- , 121- , 121- , 118- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 0- , 0- , 110- , 110- , 0- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 0- , 0- , 110- , 110- , 110- , 110- , 110- , 73- , 0- , 0- , 110- , 110- , 0- , 0- , 0- , 110- , 109- , 109- , 109- , 109- , 109- , 109- , 109- , 109- , 109- , 109- , 0- , 0- , 110- , 110- , 110- , 0- , 110- , 109- , 109- , 109- , 109- , 109- , 109- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 0- , 110- , 0- , 110- , 107- , 110- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 0- , 0- , 0- , 110- , 110- , 116- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 111- , 44- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 116- , 112- , 120- , 115- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 117- , 113- , 121- , 121- , 121- , 118- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 0- , 0- , 110- , 110- , 0- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 110- , 0- , 0- , 110- , 110- , 110- , 110- , 110- , 73- , 0- , 0- , 110- , 110- , 0- , 45- , 0- , 110- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 0- , 0- , 110- , 110- , 110- , 0- , 110- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 0- , 110- , 0- , 110- , 107- , 110- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 107- , 0- , 0- , 0- , 110- , 110- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 0- , 111- , 44- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 116- , 112- , 120- , 115- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 117- , 113- , 121- , 121- , 121- , 118- , -1- , -1- , 0- , 0- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , -1- , 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- , 0- , -1- , 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- , 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- , 111- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 116- , 112- , 120- , 115- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 117- , 113- , 121- , 121- , 121- , 118- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 111- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 112- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 120- , 117- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 0- , 0- , 123- , 123- , 0- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 123- , 0- , 0- , 123- , 123- , 123- , 123- , 123- , 73- , 0- , 0- , 123- , 123- , 0- , 123- , 0- , 123- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 0- , 0- , 123- , 123- , 123- , 0- , 123- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 0- , 123- , 0- , 123- , 122- , 123- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 122- , 0- , 0- , 0- , 123- , 123- , 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- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 124- , 30- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 129- , 125- , 133- , 128- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 130- , 126- , 134- , 134- , 134- , 131- , -1- , -1- , 0- , 0- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , -1- , 0- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , -1- , 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- , 0- , -1- , 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- , 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- , 124- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 129- , 125- , 133- , 128- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 130- , 126- , 134- , 134- , 134- , 131- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 124- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 132- , 125- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 133- , 130- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 0- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , -1- , 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- , 0- , -1- , 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- , 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- , 140- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 145- , 141- , 149- , 144- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 146- , 142- , 150- , 150- , 150- , 147- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 140- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 148- , 141- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , 149- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 145- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 146- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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_check :: Array Int Int-alex_check = listArray (0 :: Int, 9974)- [ -1- , 9- , 10- , 11- , 12- , 13- , 159- , 166- , 167- , 159- , 166- , 167- , 159- , 159- , 166- , 167- , 45- , 45- , 129- , 141- , 159- , 166- , 165- , 134- , 32- , 33- , 166- , 167- , 166- , 167- , 166- , 167- , 40- , 41- , 42- , 133- , 44- , 45- , 46- , 47- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , 42- , 136- , 137- , 159- , 45- , 47- , 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- , 159- , 93- , 166- , 167- , 132- , 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- , 159- , 125- , 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- , -1- , 134- , -1- , 136- , 195- , 138- , -1- , 140- , -1- , 9- , 10- , 11- , 12- , 13- , -1- , 206- , 207- , 166- , 167- , 166- , 167- , -1- , -1- , -1- , -1- , -1- , 159- , -1- , -1- , -1- , -1- , 164- , 32- , -1- , -1- , 226- , 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- , 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- , 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- , 9- , 10- , -1- , -1- , 13- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 32- , 33- , -1- , -1- , -1- , -1- , -1- , 39- , 40- , 41- , -1- , -1- , 44- , 45- , 46- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -1- , 58- , 59- , -1- , -1- , -1- , 63- , 65- , 66- , 67- , 68- , 69- , 70- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -1- , -1- , -1- , -1- , 91- , -1- , 93- , 65- , 66- , 67- , 68- , 69- , 70- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 65- , 66- , 67- , 68- , 69- , 70- , 123- , 124- , 125- , -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- , 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- , 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- , 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- , 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- , 9- , 10- , -1- , -1- , 13- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 32- , 33- , -1- , -1- , -1- , -1- , -1- , 39- , 40- , 41- , 148- , -1- , 44- , 45- , 46- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -1- , 58- , 59- , 166- , -1- , -1- , 63- , 65- , 66- , 67- , 68- , 69- , 70- , -1- , 177- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 187- , -1- , -1- , 190- , -1- , -1- , -1- , -1- , -1- , -1- , 91- , -1- , 93- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 123- , 124- , 125- , -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- , 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- , 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- , 128- , 129- , 130- , 131- , 132- , 133- , 134- , 135- , 136- , 137- , 138- , 139- , 140- , 141- , 142- , 143- , 144- , 145- , 146- , 147- , 148- , 149- , 150- , -1- , 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- , -1- , 184- , 185- , 186- , 187- , 188- , 189- , 190- , 191- , 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- , 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- , 9- , 10- , -1- , -1- , 13- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 32- , 33- , -1- , -1- , -1- , -1- , -1- , 39- , 40- , 41- , -1- , -1- , 44- , 45- , 46- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 58- , 59- , -1- , -1- , -1- , 63- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 91- , -1- , 93- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 123- , 124- , 125- , -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- , 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- , 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- , 128- , 129- , 130- , 131- , 132- , 133- , 134- , 135- , 136- , 137- , 138- , 139- , 140- , 141- , 142- , 143- , 144- , 145- , 146- , 147- , 148- , 149- , 150- , -1- , 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- , -1- , 184- , 185- , 186- , 187- , 188- , 189- , 190- , 191- , 128- , 129- , 130- , 131- , 132- , 133- , 134- , 135- , 136- , 137- , 138- , 139- , 140- , 141- , 142- , 143- , 144- , 145- , 146- , 147- , 148- , 149- , 150- , -1- , 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- , -1- , 184- , 185- , 186- , 187- , 188- , 189- , 190- , 191- , 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- , 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- , 9- , 10- , -1- , -1- , 13- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 32- , 33- , -1- , -1- , -1- , -1- , -1- , 39- , 40- , 41- , -1- , -1- , 44- , 45- , 46- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 58- , 59- , -1- , -1- , -1- , 63- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 91- , -1- , 93- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 123- , 124- , 125- , -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- , 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- , 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- , 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- , 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- , 9- , 10- , -1- , -1- , 13- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 32- , 33- , -1- , -1- , -1- , -1- , -1- , 39- , 40- , 41- , -1- , -1- , 44- , 45- , 46- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 58- , 59- , -1- , -1- , -1- , 63- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 91- , -1- , 93- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 123- , 124- , 125- , -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- , 128- , 129- , 130- , 131- , 132- , 133- , 134- , 135- , 136- , 137- , 138- , 139- , 140- , 141- , 142- , 143- , 144- , 145- , 146- , 147- , 148- , 149- , 150- , -1- , 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- , 39- , 184- , 185- , 186- , 187- , 188- , 189- , 190- , 191- , 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- , 10- , -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- , 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- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 195- , -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- , 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- , -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- , 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- , 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- , 42- , -1- , -1- , -1- , -1- , 47- , 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- , -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- , 42- , 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- , -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- , 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- , -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- , 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- , 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- , 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- , 98- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 116- , -1- , -1- , -1- , -1- , 121- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 0- , 1- , 2- , 3- , 4- , 5- , 6- , 7- , 8- , -1- , -1- , 11- , 12- , -1- , 14- , 15- , 16- , 17- , 18- , 19- , 20- , 21- , 22- , 23- , 24- , 25- , 26- , 27- , 28- , 29- , 30- , 31- , -1- , -1- , 34- , 35- , 36- , 37- , 38- , 39- , -1- , -1- , 42- , 43- , -1- , -1- , -1- , 47- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -1- , -1- , 60- , 61- , 62- , 207- , 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- , -1- , 92- , -1- , 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- , -1- , -1- , -1- , 126- , 127- , 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- , -1- , -1- , 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- , 0- , 1- , 2- , 3- , 4- , 5- , 6- , 7- , 8- , -1- , -1- , 11- , 12- , -1- , 14- , 15- , 16- , 17- , 18- , 19- , 20- , 21- , 22- , 23- , 24- , 25- , 26- , 27- , 28- , 29- , 30- , 31- , -1- , -1- , 34- , 35- , 36- , 37- , 38- , 39- , -1- , -1- , 42- , 43- , -1- , -1- , -1- , 47- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -1- , -1- , 60- , 61- , 62- , -1- , 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- , -1- , 92- , -1- , 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- , -1- , -1- , -1- , 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- , -1- , 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- , 0- , 1- , 2- , 3- , 4- , 5- , 6- , 7- , 8- , -1- , -1- , 11- , 12- , -1- , 14- , 15- , 16- , 17- , 18- , 19- , 20- , 21- , 22- , 23- , 24- , 25- , 26- , 27- , 28- , 29- , 30- , 31- , -1- , -1- , 34- , 35- , 36- , 37- , 38- , 39- , -1- , -1- , 42- , 43- , -1- , 45- , -1- , 47- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -1- , -1- , 60- , 61- , 62- , -1- , 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- , -1- , 92- , -1- , 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- , -1- , -1- , -1- , 126- , 127- , 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- , -1- , -1- , 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- , 9- , 10- , -1- , -1- , 13- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 32- , 33- , -1- , -1- , -1- , -1- , -1- , 39- , 40- , 41- , -1- , -1- , 44- , 45- , 46- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 58- , 59- , -1- , -1- , -1- , 63- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 91- , -1- , 93- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 123- , 124- , 125- , -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- , 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- , -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- , 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- , 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- , -1- , -1- , 11- , 12- , -1- , 14- , 15- , 16- , 17- , 18- , 19- , 20- , 21- , 22- , 23- , 24- , 25- , 26- , 27- , 28- , 29- , 30- , 31- , -1- , -1- , 34- , 35- , 36- , 37- , 38- , 39- , -1- , -1- , 42- , 43- , -1- , 45- , -1- , 47- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -1- , -1- , 60- , 61- , 62- , -1- , 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- , -1- , 92- , -1- , 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- , -1- , -1- , -1- , 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- , -1- , 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- , 9- , 10- , -1- , -1- , 13- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 32- , 33- , -1- , -1- , -1- , -1- , -1- , 39- , 40- , 41- , -1- , -1- , 44- , -1- , 46- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 58- , 59- , -1- , -1- , -1- , 63- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 91- , -1- , 93- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 123- , 124- , 125- , -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- , 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- , -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- , 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- , 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- , 9- , 10- , -1- , -1- , 13- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 32- , 33- , -1- , -1- , -1- , -1- , -1- , 39- , 40- , 41- , -1- , -1- , 44- , 45- , 46- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 58- , 59- , -1- , -1- , -1- , 63- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 91- , -1- , 93- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 123- , 124- , 125- , -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- , 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- , -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- , 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- , 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- ]--alex_deflt :: Array Int Int-alex_deflt = listArray (0 :: Int, 152)- [ -1- , 75- , 151- , 9- , 151- , 9- , -1- , -1- , 9- , 9- , 11- , 12- , 21- , 11- , 12- , 21- , 12- , 21- , -1- , -1- , 21- , 21- , 23- , 24- , 34- , 23- , 24- , 34- , 24- , 34- , 123- , -1- , -1- , 34- , 34- , 36- , 37- , 59- , 36- , 37- , 59- , 37- , -1- , -1- , 110- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 59- , -1- , -1- , 59- , 59- , 61- , 62- , 71- , 61- , 62- , 71- , 62- , 71- , -1- , -1- , 71- , 71- , -1- , -1- , -1- , 151- , 76- , 76- , -1- , -1- , 76- , 83- , 84- , 76- , 83- , 84- , -1- , 88- , 88- , 88- , -1- , -1- , 88- , 95- , 96- , 88- , 95- , 96- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 110- , 110- , -1- , -1- , 110- , 119- , 110- , 119- , 120- , 110- , 119- , 120- , -1- , 123- , 123- , -1- , -1- , 123- , 132- , 123- , 132- , 133- , 123- , 132- , 133- , -1- , -1- , -1- , 138- , -1- , 138- , -1- , -1- , 138- , 148- , 138- , 148- , 149- , 138- , 148- , 149- , 9- , 75- ]--alex_accept = listArray (0 :: Int, 152)- [ AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAcc 18- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAcc 17- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAcc 16- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAcc 15- , AlexAcc 14- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAcc 13- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAcc 12- , AlexAccNone- , AlexAcc 11- , AlexAccNone- , AlexAccNone- , AlexAccSkip- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccSkip- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccSkip- , AlexAcc 10- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAcc 9- , AlexAccNone- , AlexAcc 8- , AlexAcc 7- , AlexAcc 6- , AlexAcc 5- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAcc 4- , AlexAcc 3- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAcc 2- , AlexAcc 1- , AlexAccNone- , AlexAcc 0- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- , AlexAccNone- ]--alex_actions = array (0 :: Int, 19)- [ (18,alex_action_9)- , (17,alex_action_10)- , (16,alex_action_11)- , (15,alex_action_4)- , (14,alex_action_4)- , (13,alex_action_12)- , (12,alex_action_13)- , (11,alex_action_14)- , (10,alex_action_3)- , (9,alex_action_4)- , (8,alex_action_5)- , (7,alex_action_5)- , (6,alex_action_5)- , (5,alex_action_5)- , (4,alex_action_6)- , (3,alex_action_6)- , (2,alex_action_7)- , (1,alex_action_7)- , (0,alex_action_8)- ]--alex_action_3 = tok (eitherResIdent TV)-alex_action_4 = tok (eitherResIdent T_Bytes)-alex_action_5 = tok (eitherResIdent T_Function)-alex_action_6 = tok (eitherResIdent T_LabelId)-alex_action_7 = tok (eitherResIdent T_AlphaIndex)-alex_action_8 = tok (eitherResIdent T_LabelMetaId)-alex_action_9 = tok (eitherResIdent T_TailMetaId)-alex_action_10 = tok (eitherResIdent T_BindingsMetaId)-alex_action_11 = tok (eitherResIdent T_ObjectMetaId)-alex_action_12 = tok (eitherResIdent T_BytesMetaId)-alex_action_13 = tok (eitherResIdent T_MetaFunctionName)-alex_action_14 = tok (eitherResIdent TV)--#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)-- new_s = if GTE(offset,ILIT(0))- && let check = alexIndexInt16OffAddr alex_check offset- in 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-{-# LINE 92 "Lex.x" #-}+alex_base = listArray (0 :: Int, 171)+ [ -8+ , -153+ , -159+ , 91+ , 219+ , 475+ , 594+ , 0+ , 0+ , 0+ , 707+ , -73+ , 771+ , -150+ , -156+ , 899+ , 1027+ , 1283+ , -120+ , 1402+ , -35+ , 0+ , 140+ , 0+ , 0+ , 0+ , 1515+ , 1580+ , 1644+ , -136+ , 1834+ , -139+ , 1914+ , 2042+ , 2298+ , 2417+ , 2673+ , 2918+ , 1828+ , 0+ , 0+ , 0+ , 3020+ , 2610+ , 2854+ , -130+ , -116+ , 3276+ , 3277+ , 3393+ , 3521+ , 3777+ , 3896+ , 155+ , -15+ , 0+ , -102+ , -84+ , -106+ , -111+ , 0+ , 599+ , 0+ , 0+ , 0+ , 4009+ , 4074+ , 4138+ , 4266+ , 4394+ , 4650+ , 4736+ , 4950+ , 0+ , 0+ , 0+ , 0+ , 5063+ , 4588+ , 4806+ , 5191+ , 5319+ , 5575+ , 5693+ , 0+ , 571+ , 593+ , 610+ , 620+ , 640+ , 653+ , 1368+ , 0+ , 5939+ , 6195+ , 6196+ , 6324+ , 1392+ , 5512+ , 6389+ , 6502+ , -80+ , 1315+ , -82+ , 1279+ , 485+ , 1853+ , 2416+ , 2446+ , 10+ , 2469+ , 43+ , 0+ , 0+ , 0+ , 6719+ , 5822+ , 6851+ , 7087+ , 7343+ , 7344+ , 7472+ , 17+ , -43+ , 6787+ , 7537+ , 7650+ , 7778+ , 0+ , 0+ , 0+ , 7961+ , 8217+ , 8218+ , 8346+ , 19+ , 54+ , 8410+ , 8475+ , 8588+ , 0+ , 0+ , 0+ , 8835+ , 9091+ , 9092+ , 9220+ , 48+ , 57+ , 9284+ , 9349+ , 9462+ , 0+ , 0+ , 0+ , 9709+ , 9965+ , 9966+ , 10094+ , 439+ , 58+ , 10158+ , 10223+ , 10336+ , 0+ , 0+ , 0+ , 0+ , 0+ , 10400+ , 10465+ , 10578+ ]++alex_table :: Array Int Int+alex_table = listArray (0 :: Int, 10833)+ [ 0+ , 61+ , 61+ , 61+ , 61+ , 61+ , 2+ , -1+ , -1+ , 14+ , -1+ , -1+ , 19+ , 21+ , 22+ , 22+ , 22+ , 22+ , 22+ , 22+ , 22+ , 22+ , 22+ , 31+ , 61+ , 30+ , 93+ , -1+ , -1+ , 46+ , 55+ , 60+ , 60+ , 60+ , 60+ , 60+ , 60+ , 54+ , 60+ , 85+ , 108+ , 108+ , 108+ , 108+ , 108+ , 108+ , 108+ , 108+ , 108+ , 108+ , -1+ , -1+ , 60+ , 60+ , 60+ , 107+ , 118+ , 47+ , 47+ , 47+ , 47+ , 47+ , 47+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 60+ , 60+ , 60+ , 60+ , 60+ , 110+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 60+ , 122+ , 60+ , 12+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 48+ , 22+ , 22+ , 22+ , 22+ , 22+ , 22+ , 22+ , 22+ , 22+ , 22+ , 104+ , 105+ , 110+ , 89+ , 0+ , 91+ , 91+ , 91+ , 91+ , 91+ , 91+ , 91+ , 91+ , 91+ , 91+ , 135+ , -1+ , -1+ , 147+ , 159+ , 102+ , 4+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 5+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 61+ , 61+ , 61+ , 61+ , 61+ , 71+ , 60+ , 0+ , 0+ , 0+ , 83+ , 60+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , 61+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , -1+ , -1+ , -1+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , -1+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 88+ , 88+ , 88+ , 88+ , 88+ , 88+ , 88+ , 88+ , 88+ , 88+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , 0+ , -1+ , 88+ , 88+ , 88+ , 88+ , 88+ , 88+ , 88+ , 88+ , 88+ , 88+ , 87+ , 0+ , 0+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 86+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 90+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 5+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 167+ , 169+ , 4+ , 84+ , 1+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 84+ , 170+ , 3+ , 168+ , 168+ , 168+ , 171+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 11+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 16+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 17+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 89+ , -1+ , 91+ , 91+ , 91+ , 91+ , 91+ , 91+ , 91+ , 91+ , 91+ , 91+ , 93+ , 60+ , 0+ , 0+ , 0+ , 93+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 60+ , -1+ , -1+ , -1+ , 103+ , 0+ , 56+ , 0+ , 59+ , 0+ , 57+ , 20+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , -1+ , 60+ , 0+ , 0+ , 60+ , 0+ , 0+ , 0+ , 0+ , 101+ , 0+ , 0+ , 0+ , 0+ , 58+ , 0+ , 0+ , 0+ , 0+ , 93+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , 93+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 93+ , 0+ , 0+ , 0+ , 93+ , 0+ , 93+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , -1+ , 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+ , 17+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 9+ , 12+ , 16+ , 8+ , 13+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 8+ , 11+ , 15+ , 7+ , 7+ , 7+ , 10+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 27+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 28+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 155+ , 109+ , 109+ , 109+ , 109+ , 109+ , 109+ , 109+ , 109+ , 109+ , 109+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 109+ , 109+ , 109+ , 109+ , 109+ , 109+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 143+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 6+ , 0+ , 0+ , 0+ , 0+ , 131+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 18+ , 33+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 34+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 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+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 0+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , -1+ , 0+ , -1+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , -1+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , 0+ , 0+ , 0+ , 0+ , 0+ , 89+ , 0+ , 53+ , 53+ , 53+ , 53+ , 53+ , 53+ , 53+ , 53+ , 53+ , 53+ , 0+ , 0+ , 0+ , 0+ , -1+ , 0+ , -1+ , 111+ , 111+ , 111+ , 111+ , 111+ , 111+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 106+ , 106+ , 106+ , 106+ , 106+ , 106+ , -1+ , -1+ , -1+ , 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+ , 34+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 28+ , 33+ , 24+ , 29+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 27+ , 32+ , 23+ , 23+ , 23+ , 26+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 0+ , 0+ , 35+ , 35+ , 0+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 35+ , 0+ , 0+ , 35+ , 35+ , 35+ , 35+ , 35+ , 115+ , 0+ , 0+ , 35+ , 35+ , 0+ , 35+ , 0+ , 35+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 0+ , 0+ , 35+ , 35+ , 35+ , 0+ , 35+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 0+ , 35+ , 0+ , 35+ , 36+ , 35+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 0+ , 0+ , 0+ , 35+ , 35+ , 44+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 34+ , 127+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 25+ , 28+ , 33+ , 24+ , 29+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 24+ , 27+ , 32+ , 23+ , 23+ , 23+ , 26+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 0+ , 0+ , 52+ , 52+ , 0+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 0+ , 0+ , 52+ , 52+ , 52+ , 52+ , 52+ , 115+ , 0+ , 0+ , 52+ , 52+ , 0+ , 110+ , 0+ , 52+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 0+ , 52+ , 52+ , 52+ , 0+ , 52+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 52+ , 0+ , 52+ , 117+ , 52+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 0+ , 0+ , 52+ , 52+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 0+ , 51+ , 38+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 44+ , 50+ , 40+ , 45+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 43+ , 49+ , 39+ , 39+ , 39+ , 42+ , 43+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 0+ , 0+ , 52+ , 52+ , 0+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 0+ , 0+ , 52+ , 52+ , 52+ , 52+ , 52+ , 115+ , 0+ , 0+ , 52+ , 52+ , 0+ , 0+ , 0+ , 52+ , 37+ , 37+ , 37+ , 37+ , 37+ , 37+ , 37+ , 37+ , 37+ , 37+ , 0+ , 0+ , 52+ , 52+ , 52+ , 0+ , 52+ , 37+ , 37+ , 37+ , 37+ , 37+ , 37+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 52+ , 0+ , 52+ , 117+ , 52+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 0+ , 0+ , 52+ , 52+ , 0+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 0+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 0+ , 51+ , 38+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 44+ , 50+ , 40+ , 45+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 43+ , 49+ , 39+ , 39+ , 39+ , 42+ , 50+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 51+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 0+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , -1+ , 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+ , 0+ , -1+ , 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+ , 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+ , 51+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 44+ , 50+ , 40+ , 45+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 43+ , 49+ , 39+ , 39+ , 39+ , 42+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -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+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 67+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -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+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 70+ , 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+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 72+ , 79+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 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+ , 70+ , 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+ , 67+ , 69+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 66+ , 68+ , 62+ , 62+ , 62+ , 65+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 72+ , 0+ , 0+ , 0+ , 0+ , 73+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 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+ , 70+ , 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+ , 67+ , 69+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 63+ , 66+ , 68+ , 62+ , 62+ , 62+ , 65+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 78+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 81+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 82+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 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+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 82+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 76+ , 79+ , 81+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 75+ , 78+ , 80+ , 74+ , 74+ , 74+ , 77+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 92+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 0+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 97+ , 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+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 94+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 98+ , 95+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 99+ , 96+ , 114+ , 114+ , 114+ , 100+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 94+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 112+ , 95+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 113+ , 98+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 99+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 115+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 0+ , 0+ , 0+ , 0+ , 115+ , 0+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 115+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 0+ , 0+ , 52+ , 52+ , 0+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 52+ , 0+ , 0+ , 52+ , 52+ , 52+ , 52+ , 52+ , 115+ , 0+ , 0+ , 52+ , 52+ , 0+ , 0+ , 0+ , 52+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 0+ , 52+ , 52+ , 52+ , 116+ , 52+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 52+ , 0+ , 52+ , 117+ , 52+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 117+ , 0+ , 0+ , 0+ , 52+ , 52+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 0+ , 51+ , 38+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 41+ , 44+ , 50+ , 40+ , 45+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 40+ , 43+ , 49+ , 39+ , 39+ , 39+ , 42+ , -1+ , -1+ , 0+ , 0+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , -1+ , 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+ , 0+ , -1+ , 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+ , 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+ , 119+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 124+ , 120+ , 129+ , 123+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 125+ , 121+ , 130+ , 130+ , 130+ , 126+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 119+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 128+ , 120+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 129+ , 124+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 125+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 0+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 0+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , 36+ , -1+ , -1+ , 0+ , 0+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , -1+ , 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+ , 0+ , -1+ , 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+ , 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+ , 132+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 137+ , 133+ , 141+ , 136+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 138+ , 134+ , 142+ , 142+ , 142+ , 139+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 132+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 140+ , 133+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , 141+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 137+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 138+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 0+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , -1+ , 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+ , 0+ , -1+ , 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+ , 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+ , 144+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 149+ , 145+ , 153+ , 148+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 150+ , 146+ , 154+ , 154+ , 154+ , 151+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 144+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 152+ , 145+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , 153+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 149+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 150+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 0+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , -1+ , -1+ , -1+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , 0+ , -1+ , -1+ , 0+ , 0+ , 0+ , -1+ , 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+ , 0+ , -1+ , 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+ , 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+ , 156+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 161+ , 157+ , 165+ , 160+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 162+ , 158+ , 166+ , 166+ , 166+ , 163+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 156+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 164+ , 157+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , 165+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 161+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 162+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 169+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 170+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -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_check :: Array Int Int+alex_check = listArray (0 :: Int, 10833)+ [ -1+ , 9+ , 10+ , 11+ , 12+ , 13+ , 159+ , 166+ , 167+ , 159+ , 166+ , 167+ , 132+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , 159+ , 32+ , 33+ , 34+ , 166+ , 167+ , 159+ , 45+ , 133+ , 40+ , 41+ , 42+ , 141+ , 44+ , 45+ , 46+ , 47+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , 166+ , 167+ , 136+ , 137+ , 165+ , 45+ , 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+ , 166+ , 93+ , 166+ , 167+ , 45+ , 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+ , 159+ , 125+ , 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+ , 166+ , 167+ , 166+ , 167+ , 195+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , 206+ , 207+ , 45+ , 46+ , -1+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , 159+ , 166+ , 167+ , 159+ , 159+ , 226+ , 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+ , 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+ , 9+ , 10+ , 166+ , 167+ , 13+ , 9+ , 10+ , 11+ , 12+ , 13+ , 42+ , 129+ , -1+ , -1+ , -1+ , 47+ , 134+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 32+ , 33+ , -1+ , -1+ , -1+ , 32+ , -1+ , 39+ , 40+ , 41+ , -1+ , -1+ , 44+ , 45+ , 46+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , -1+ , 58+ , 59+ , -1+ , -1+ , -1+ , 63+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 91+ , -1+ , 93+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , 45+ , -1+ , -1+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 123+ , 124+ , 125+ , -1+ , 101+ , 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+ , 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+ , 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+ , 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+ , 9+ , 10+ , -1+ , 46+ , 13+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , 34+ , 148+ , -1+ , -1+ , -1+ , 39+ , -1+ , -1+ , 32+ , 33+ , -1+ , -1+ , -1+ , -1+ , -1+ , 39+ , 40+ , 41+ , -1+ , 166+ , 44+ , 45+ , 46+ , 134+ , -1+ , 136+ , -1+ , 138+ , -1+ , 140+ , 177+ , -1+ , -1+ , -1+ , 58+ , 59+ , -1+ , -1+ , -1+ , 63+ , 187+ , -1+ , -1+ , 190+ , -1+ , -1+ , -1+ , -1+ , 159+ , -1+ , -1+ , -1+ , -1+ , 164+ , -1+ , -1+ , -1+ , -1+ , 92+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 91+ , 102+ , 93+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 110+ , -1+ , -1+ , -1+ , 114+ , -1+ , 116+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 123+ , 124+ , 125+ , -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+ , 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+ , 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+ , 66+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 65+ , 66+ , 67+ , 68+ , 69+ , 70+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 98+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 116+ , -1+ , -1+ , -1+ , -1+ , 121+ , 128+ , 129+ , 130+ , 131+ , 132+ , 133+ , 134+ , 135+ , 136+ , 137+ , 138+ , 139+ , 140+ , 141+ , 142+ , 143+ , 144+ , 145+ , 146+ , 147+ , 148+ , 149+ , 150+ , -1+ , 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+ , -1+ , 184+ , 185+ , 186+ , 187+ , 188+ , 189+ , 190+ , 191+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 207+ , 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+ , 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+ , 9+ , 10+ , -1+ , -1+ , 13+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 32+ , 33+ , -1+ , -1+ , -1+ , -1+ , -1+ , 39+ , 40+ , 41+ , -1+ , -1+ , 44+ , -1+ , 46+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , -1+ , 58+ , 59+ , -1+ , -1+ , -1+ , 63+ , 65+ , 66+ , 67+ , 68+ , 69+ , 70+ , -1+ , -1+ , -1+ , -1+ , -1+ , 46+ , -1+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , -1+ , -1+ , -1+ , -1+ , 91+ , -1+ , 93+ , 65+ , 66+ , 67+ , 68+ , 69+ , 70+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 65+ , 66+ , 67+ , 68+ , 69+ , 70+ , 123+ , 124+ , 125+ , -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+ , 0+ , 1+ , 2+ , 3+ , 4+ , 5+ , 6+ , 7+ , 8+ , -1+ , -1+ , 11+ , 12+ , -1+ , 14+ , 15+ , 16+ , 17+ , 18+ , 19+ , 20+ , 21+ , 22+ , 23+ , 24+ , 25+ , 26+ , 27+ , 28+ , 29+ , 30+ , 31+ , -1+ , -1+ , 34+ , 35+ , 36+ , 37+ , 38+ , 39+ , -1+ , -1+ , 42+ , 43+ , -1+ , 45+ , -1+ , 47+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , -1+ , -1+ , 60+ , 61+ , 62+ , -1+ , 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+ , -1+ , 92+ , -1+ , 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+ , -1+ , -1+ , -1+ , 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+ , -1+ , 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+ , 0+ , 1+ , 2+ , 3+ , 4+ , 5+ , 6+ , 7+ , 8+ , -1+ , -1+ , 11+ , 12+ , -1+ , 14+ , 15+ , 16+ , 17+ , 18+ , 19+ , 20+ , 21+ , 22+ , 23+ , 24+ , 25+ , 26+ , 27+ , 28+ , 29+ , 30+ , 31+ , -1+ , -1+ , 34+ , 35+ , 36+ , 37+ , 38+ , 39+ , -1+ , -1+ , 42+ , 43+ , -1+ , 45+ , -1+ , 47+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , -1+ , -1+ , 60+ , 61+ , 62+ , -1+ , 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+ , -1+ , 92+ , -1+ , 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+ , -1+ , -1+ , -1+ , 126+ , 127+ , 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+ , -1+ , -1+ , 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+ , 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+ , -1+ , -1+ , 11+ , 12+ , -1+ , 14+ , 15+ , 16+ , 17+ , 18+ , 19+ , 20+ , 21+ , 22+ , 23+ , 24+ , 25+ , 26+ , 27+ , 28+ , 29+ , 30+ , 31+ , -1+ , -1+ , 34+ , 35+ , 36+ , 37+ , 38+ , 39+ , -1+ , -1+ , 42+ , 43+ , -1+ , -1+ , -1+ , 47+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , -1+ , -1+ , 60+ , 61+ , 62+ , -1+ , 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+ , -1+ , 92+ , -1+ , 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+ , -1+ , -1+ , -1+ , 126+ , 127+ , -1+ , 128+ , 129+ , 130+ , 131+ , 132+ , 133+ , 134+ , 135+ , 136+ , 137+ , 138+ , 139+ , 140+ , 141+ , 142+ , 143+ , 144+ , 145+ , 146+ , 147+ , 148+ , 149+ , 150+ , -1+ , 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+ , -1+ , 184+ , 185+ , 186+ , 187+ , 188+ , 189+ , 190+ , 191+ , -1+ , 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+ , 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+ , 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+ , 9+ , 10+ , -1+ , -1+ , 13+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 32+ , 33+ , -1+ , -1+ , -1+ , -1+ , -1+ , 39+ , 40+ , 41+ , -1+ , -1+ , 44+ , 45+ , 46+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 58+ , 59+ , -1+ , -1+ , -1+ , 63+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 91+ , -1+ , 93+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 123+ , 124+ , 125+ , -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+ , 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+ , 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+ , 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+ , 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+ , 42+ , 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+ , -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+ , 42+ , -1+ , -1+ , -1+ , -1+ , 47+ , 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+ , -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+ , 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+ , 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+ , 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+ , 10+ , 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+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -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+ , 10+ , 128+ , 129+ , 130+ , 131+ , 132+ , 133+ , 134+ , 135+ , 136+ , 137+ , 138+ , 139+ , 140+ , 141+ , 142+ , 143+ , 144+ , 145+ , 146+ , 147+ , 148+ , 149+ , 150+ , 34+ , 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+ , -1+ , 184+ , 185+ , 186+ , 187+ , 188+ , 189+ , 190+ , 191+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 92+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -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+ , 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+ , -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+ , 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+ , 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+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 0+ , 1+ , 2+ , 3+ , 4+ , 5+ , 6+ , 7+ , 8+ , -1+ , -1+ , 11+ , 12+ , -1+ , 14+ , 15+ , 16+ , 17+ , 18+ , 19+ , 20+ , 21+ , 22+ , 23+ , 24+ , 25+ , 26+ , 27+ , 28+ , 29+ , 30+ , 31+ , -1+ , -1+ , 34+ , 35+ , 36+ , 37+ , 38+ , 39+ , -1+ , -1+ , 42+ , 43+ , -1+ , -1+ , -1+ , 47+ , 48+ , 49+ , 50+ , 51+ , 52+ , 53+ , 54+ , 55+ , 56+ , 57+ , -1+ , -1+ , 60+ , 61+ , 62+ , 195+ , 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+ , -1+ , 92+ , -1+ , 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+ , -1+ , -1+ , -1+ , 126+ , 127+ , 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+ , -1+ , -1+ , 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+ , 9+ , 10+ , -1+ , -1+ , 13+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 32+ , 33+ , -1+ , -1+ , -1+ , -1+ , -1+ , 39+ , 40+ , 41+ , -1+ , -1+ , 44+ , 45+ , 46+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 58+ , 59+ , -1+ , -1+ , -1+ , 63+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 91+ , -1+ , 93+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 123+ , 124+ , 125+ , -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+ , 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+ , -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+ , 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+ , 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+ , 128+ , 129+ , 130+ , 131+ , 132+ , 133+ , 134+ , 135+ , 136+ , 137+ , 138+ , 139+ , 140+ , 141+ , 142+ , 143+ , 144+ , 145+ , 146+ , 147+ , 148+ , 149+ , 150+ , -1+ , 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+ , -1+ , 184+ , 185+ , 186+ , 187+ , 188+ , 189+ , 190+ , 191+ , 9+ , 10+ , -1+ , -1+ , 13+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 32+ , 33+ , -1+ , -1+ , -1+ , -1+ , -1+ , 39+ , 40+ , 41+ , -1+ , -1+ , 44+ , 45+ , 46+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 58+ , 59+ , -1+ , -1+ , -1+ , 63+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 91+ , -1+ , 93+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 123+ , 124+ , 125+ , -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+ , 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+ , -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+ , 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+ , 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+ , 9+ , 10+ , -1+ , -1+ , 13+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 32+ , 33+ , -1+ , -1+ , -1+ , -1+ , -1+ , 39+ , 40+ , 41+ , -1+ , -1+ , 44+ , 45+ , 46+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 58+ , 59+ , -1+ , -1+ , -1+ , 63+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 91+ , -1+ , 93+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 123+ , 124+ , 125+ , -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+ , 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+ , -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+ , 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+ , 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+ , 9+ , 10+ , -1+ , -1+ , 13+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 32+ , 33+ , -1+ , -1+ , -1+ , -1+ , -1+ , 39+ , 40+ , 41+ , -1+ , -1+ , 44+ , 45+ , 46+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 58+ , 59+ , -1+ , -1+ , -1+ , 63+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 91+ , -1+ , 93+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 123+ , 124+ , 125+ , -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+ , 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+ , -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+ , 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+ , 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+ , 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+ , 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+ ]++alex_deflt :: Array Int Int+alex_deflt = listArray (0 :: Int, 171)+ [ -1+ , 167+ , 6+ , -1+ , -1+ , 6+ , 6+ , 8+ , 9+ , 19+ , 8+ , 9+ , 19+ , 9+ , 19+ , -1+ , -1+ , 19+ , -1+ , 19+ , -1+ , -1+ , -1+ , 24+ , 25+ , 35+ , 24+ , 25+ , 35+ , 25+ , -1+ , 35+ , -1+ , -1+ , 35+ , 35+ , -1+ , -1+ , 52+ , 40+ , 41+ , 52+ , 40+ , 41+ , 52+ , 41+ , 52+ , -1+ , -1+ , -1+ , -1+ , 52+ , 52+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 63+ , 64+ , 71+ , 63+ , 64+ , 71+ , -1+ , -1+ , 71+ , 71+ , 71+ , -1+ , 75+ , 76+ , 83+ , 75+ , 76+ , 83+ , -1+ , -1+ , 83+ , 83+ , 167+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 93+ , 93+ , -1+ , -1+ , -1+ , 93+ , 112+ , 113+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , -1+ , 93+ , 112+ , 113+ , -1+ , -1+ , -1+ , 118+ , 118+ , -1+ , -1+ , 118+ , 128+ , 118+ , 128+ , 129+ , 35+ , 118+ , 128+ , 129+ , 131+ , 131+ , -1+ , -1+ , 131+ , 140+ , 131+ , 140+ , 141+ , 131+ , 140+ , 141+ , 143+ , 143+ , -1+ , -1+ , 143+ , 152+ , 143+ , 152+ , 153+ , 143+ , 152+ , 153+ , 155+ , 155+ , -1+ , -1+ , 155+ , 164+ , 155+ , 164+ , 165+ , 155+ , 164+ , 165+ , 6+ , 84+ , 6+ , 167+ , 84+ ]++alex_accept = listArray (0 :: Int, 171)+ [ AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 24+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 23+ , AlexAccNone+ , AlexAcc 22+ , AlexAcc 21+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 20+ , AlexAcc 19+ , AlexAcc 18+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 17+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 16+ , AlexAcc 15+ , AlexAccNone+ , AlexAcc 14+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 13+ , AlexAccSkip+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccSkip+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccSkip+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 12+ , AlexAccNone+ , AlexAcc 11+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 10+ , AlexAcc 9+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 8+ , AlexAcc 7+ , AlexAcc 6+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 5+ , AlexAccNone+ , AlexAcc 4+ , AlexAcc 3+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 2+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 1+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAcc 0+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ , AlexAccNone+ ]++alex_actions = array (0 :: Int, 25)+ [ (24,alex_action_9)+ , (23,alex_action_8)+ , (22,alex_action_7)+ , (21,alex_action_7)+ , (20,alex_action_6)+ , (19,alex_action_6)+ , (18,alex_action_5)+ , (17,alex_action_5)+ , (16,alex_action_5)+ , (15,alex_action_16)+ , (14,alex_action_4)+ , (13,alex_action_3)+ , (12,alex_action_17)+ , (11,alex_action_17)+ , (10,alex_action_16)+ , (9,alex_action_15)+ , (8,alex_action_16)+ , (7,alex_action_4)+ , (6,alex_action_4)+ , (5,alex_action_14)+ , (4,alex_action_5)+ , (3,alex_action_13)+ , (2,alex_action_12)+ , (1,alex_action_11)+ , (0,alex_action_10)+ ]++alex_action_3 = tok (eitherResIdent TV)+alex_action_4 = tok (eitherResIdent T_Bytes)+alex_action_5 = tok (eitherResIdent T_Function)+alex_action_6 = tok (eitherResIdent T_LabelId)+alex_action_7 = tok (eitherResIdent T_AlphaIndex)+alex_action_8 = tok (eitherResIdent T_LabelMetaId)+alex_action_9 = tok (eitherResIdent T_TailMetaId)+alex_action_10 = tok (eitherResIdent T_BindingsMetaId)+alex_action_11 = tok (eitherResIdent T_ObjectMetaId)+alex_action_12 = tok (eitherResIdent T_BytesMetaId)+alex_action_13 = tok (eitherResIdent T_MetaFunctionName)+alex_action_14 = tok (eitherResIdent TV)+alex_action_15 = tok (TL . unescapeInitTail)+alex_action_16 = tok TI+alex_action_17 = tok TD++#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)++ new_s = if GTE(offset,ILIT(0))+ && let check = alexIndexInt16OffAddr alex_check offset+ in 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+{-# LINE 104 "Lex.x" #-} -- | Create a token with position. tok :: (String -> Tok) -> (Posn -> String -> Token) tok f p = PT p . f
src/Language/EO/Phi/Syntax/Lex.x view
@@ -89,6 +89,18 @@ $l $i* { tok (eitherResIdent TV) } +-- String+\" ([$u # [\" \\ \n]] | (\\ (\" | \\ | \' | n | t | r | f)))* \"+ { tok (TL . unescapeInitTail) }++-- Integer+$d++ { tok TI }++-- Double+$d+ \. $d+ (e (\-)? $d+)?+ { tok TD }+ { -- | Create a token with position. tok :: (String -> Tok) -> (Posn -> String -> Token)
src/Language/EO/Phi/Syntax/Par.hs view
@@ -32,1274 +32,1382 @@ data HappyAbsSyn = HappyTerminal (Token) | HappyErrorToken Prelude.Int- | HappyAbsSyn14 (Language.EO.Phi.Syntax.Abs.Bytes)- | HappyAbsSyn15 (Language.EO.Phi.Syntax.Abs.Function)- | HappyAbsSyn16 (Language.EO.Phi.Syntax.Abs.LabelId)- | HappyAbsSyn17 (Language.EO.Phi.Syntax.Abs.AlphaIndex)- | HappyAbsSyn18 (Language.EO.Phi.Syntax.Abs.LabelMetaId)- | HappyAbsSyn19 (Language.EO.Phi.Syntax.Abs.TailMetaId)- | HappyAbsSyn20 (Language.EO.Phi.Syntax.Abs.BindingsMetaId)- | HappyAbsSyn21 (Language.EO.Phi.Syntax.Abs.ObjectMetaId)- | HappyAbsSyn22 (Language.EO.Phi.Syntax.Abs.BytesMetaId)- | HappyAbsSyn23 (Language.EO.Phi.Syntax.Abs.MetaFunctionName)- | HappyAbsSyn24 (Language.EO.Phi.Syntax.Abs.Program)- | HappyAbsSyn25 (Language.EO.Phi.Syntax.Abs.MetaId)- | HappyAbsSyn26 (Language.EO.Phi.Syntax.Abs.Object)- | HappyAbsSyn27 (Language.EO.Phi.Syntax.Abs.Binding)- | HappyAbsSyn28 ([Language.EO.Phi.Syntax.Abs.Binding])- | HappyAbsSyn29 (Language.EO.Phi.Syntax.Abs.Attribute)- | HappyAbsSyn30 (Language.EO.Phi.Syntax.Abs.RuleAttribute)- | HappyAbsSyn31 (Language.EO.Phi.Syntax.Abs.PeeledObject)- | HappyAbsSyn32 (Language.EO.Phi.Syntax.Abs.ObjectHead)- | HappyAbsSyn33 (Language.EO.Phi.Syntax.Abs.ObjectAction)- | HappyAbsSyn34 ([Language.EO.Phi.Syntax.Abs.ObjectAction])--{- to allow type-synonyms as our monads (likely- - with explicitly-specified bind and return)- - in Haskell98, it seems that with- - /type M a = .../, then /(HappyReduction M)/- - is not allowed. But Happy is a- - code-generator that can just substitute it.-type HappyReduction m = - Prelude.Int - -> (Token)- -> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> m HappyAbsSyn)- -> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> m HappyAbsSyn)] - -> HappyStk HappyAbsSyn - -> [(Token)] -> m HappyAbsSyn--}--action_0,- action_1,- action_2,- action_3,- action_4,- action_5,- action_6,- action_7,- action_8,- action_9,- action_10,- action_11,- action_12,- action_13,- action_14,- action_15,- action_16,- action_17,- action_18,- action_19,- action_20,- action_21,- action_22,- action_23,- action_24,- action_25,- action_26,- action_27,- action_28,- action_29,- action_30,- action_31,- action_32,- action_33,- action_34,- action_35,- action_36,- action_37,- action_38,- action_39,- action_40,- action_41,- action_42,- action_43,- action_44,- action_45,- action_46,- action_47,- action_48,- action_49,- action_50,- action_51,- action_52,- action_53,- action_54,- action_55,- action_56,- action_57,- action_58,- action_59,- action_60,- action_61,- action_62,- action_63,- action_64,- action_65,- action_66,- action_67,- action_68,- action_69,- action_70,- action_71,- action_72,- action_73,- action_74,- action_75,- action_76,- action_77,- action_78,- action_79,- action_80,- action_81,- action_82,- action_83,- action_84,- action_85,- action_86,- action_87,- action_88,- action_89,- action_90,- action_91,- action_92,- action_93,- action_94,- action_95,- action_96,- action_97,- action_98,- action_99,- action_100,- action_101,- action_102,- action_103,- action_104,- action_105,- action_106,- action_107,- action_108,- action_109 :: () => Prelude.Int -> ({-HappyReduction (Err) = -}- Prelude.Int - -> (Token)- -> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)- -> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)] - -> HappyStk HappyAbsSyn - -> [(Token)] -> (Err) HappyAbsSyn)--happyReduce_11,- happyReduce_12,- happyReduce_13,- happyReduce_14,- happyReduce_15,- happyReduce_16,- happyReduce_17,- happyReduce_18,- happyReduce_19,- happyReduce_20,- happyReduce_21,- happyReduce_22,- happyReduce_23,- happyReduce_24,- happyReduce_25,- happyReduce_26,- happyReduce_27,- happyReduce_28,- happyReduce_29,- happyReduce_30,- happyReduce_31,- happyReduce_32,- happyReduce_33,- happyReduce_34,- happyReduce_35,- happyReduce_36,- happyReduce_37,- happyReduce_38,- happyReduce_39,- happyReduce_40,- happyReduce_41,- happyReduce_42,- happyReduce_43,- happyReduce_44,- happyReduce_45,- happyReduce_46,- happyReduce_47,- happyReduce_48,- happyReduce_49,- happyReduce_50,- happyReduce_51,- happyReduce_52,- happyReduce_53,- happyReduce_54,- happyReduce_55,- happyReduce_56,- happyReduce_57,- happyReduce_58,- happyReduce_59,- happyReduce_60,- happyReduce_61,- happyReduce_62,- happyReduce_63,- happyReduce_64 :: () => ({-HappyReduction (Err) = -}- Prelude.Int - -> (Token)- -> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)- -> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)] - -> HappyStk HappyAbsSyn - -> [(Token)] -> (Err) HappyAbsSyn)--happyExpList :: Happy_Data_Array.Array Prelude.Int Prelude.Int-happyExpList = Happy_Data_Array.listArray (0,230) ([0,0,512,0,0,0,0,0,62,0,0,22608,1280,0,0,6784,2944,0,0,43008,47105,0,0,0,32792,3,0,0,424,56,0,0,34048,4,0,0,20480,72,0,0,1088,0,0,0,17408,0,0,0,0,0,32,0,0,0,0,0,0,1088,0,0,0,0,0,0,0,0,6784,2944,0,0,32768,14337,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,424,184,0,0,0,0,0,0,68,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,2,0,0,0,0,0,0,0,0,32,0,0,0,0,1,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20480,88,5,0,32768,32794,11,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,1024,0,0,0,424,184,0,0,0,8,0,0,244,0,0,0,32768,32794,11,0,0,0,64,0,0,6144,896,0,0,16384,0,0,0,0,1413,80,0,0,0,4,0,0,16384,8224,0,0,20480,92,5,0,32768,32794,11,0,0,0,0,0,0,0,8,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54272,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,3520,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,22608,1280,0,0,0,0,0,0,0,128,0,0,16384,0,0,0,54272,8192,0,0,0,0,0,0,0,20480,88,5,0,0,0,0,0,54272,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0- ])--{-# NOINLINE happyExpListPerState #-}-happyExpListPerState st =- token_strs_expected- where token_strs = ["error","%dummy","%start_pProgram","%start_pMetaId","%start_pObject","%start_pBinding","%start_pListBinding","%start_pAttribute","%start_pRuleAttribute","%start_pPeeledObject","%start_pObjectHead","%start_pObjectAction","%start_pListObjectAction","Bytes","Function","LabelId","AlphaIndex","LabelMetaId","TailMetaId","BindingsMetaId","ObjectMetaId","BytesMetaId","MetaFunctionName","Program","MetaId","Object","Binding","ListBinding","Attribute","RuleAttribute","PeeledObject","ObjectHead","ObjectAction","ListObjectAction","'('","')'","'*'","','","'.'","'['","']'","'{'","'}'","'\916'","'\934'","'\955'","'\958'","'\961'","'\966'","'\8614'","'\8709'","'\8869'","'\8968'","'\8969'","'\10214'","'\10215'","'\10509'","L_Bytes","L_Function","L_LabelId","L_AlphaIndex","L_LabelMetaId","L_TailMetaId","L_BindingsMetaId","L_ObjectMetaId","L_BytesMetaId","L_MetaFunctionName","%eof"]- bit_start = st Prelude.* 68- bit_end = (st Prelude.+ 1) Prelude.* 68- read_bit = readArrayBit happyExpList- bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]- bits_indexed = Prelude.zip bits [0..67]- token_strs_expected = Prelude.concatMap f bits_indexed- f (Prelude.False, _) = []- f (Prelude.True, nr) = [token_strs Prelude.!! nr]--action_0 (42) = happyShift action_65-action_0 (24) = happyGoto action_64-action_0 _ = happyFail (happyExpListPerState 0)--action_1 (62) = happyShift action_36-action_1 (63) = happyShift action_62-action_1 (64) = happyShift action_44-action_1 (65) = happyShift action_54-action_1 (66) = happyShift action_63-action_1 (18) = happyGoto action_56-action_1 (19) = happyGoto action_57-action_1 (20) = happyGoto action_58-action_1 (21) = happyGoto action_59-action_1 (22) = happyGoto action_60-action_1 (25) = happyGoto action_61-action_1 _ = happyFail (happyExpListPerState 1)--action_2 (45) = happyShift action_49-action_2 (47) = happyShift action_50-action_2 (52) = happyShift action_51-action_2 (53) = happyShift action_52-action_2 (55) = happyShift action_53-action_2 (65) = happyShift action_54-action_2 (67) = happyShift action_55-action_2 (21) = happyGoto action_46-action_2 (23) = happyGoto action_47-action_2 (26) = happyGoto action_48-action_2 _ = happyFail (happyExpListPerState 2)--action_3 (44) = happyShift action_42-action_3 (46) = happyShift action_43-action_3 (48) = happyShift action_32-action_3 (49) = happyShift action_33-action_3 (60) = happyShift action_34-action_3 (61) = happyShift action_35-action_3 (62) = happyShift action_36-action_3 (64) = happyShift action_44-action_3 (16) = happyGoto action_25-action_3 (17) = happyGoto action_26-action_3 (18) = happyGoto action_27-action_3 (20) = happyGoto action_38-action_3 (27) = happyGoto action_45-action_3 (29) = happyGoto action_41-action_3 _ = happyFail (happyExpListPerState 3)--action_4 (44) = happyShift action_42-action_4 (46) = happyShift action_43-action_4 (48) = happyShift action_32-action_4 (49) = happyShift action_33-action_4 (60) = happyShift action_34-action_4 (61) = happyShift action_35-action_4 (62) = happyShift action_36-action_4 (64) = happyShift action_44-action_4 (16) = happyGoto action_25-action_4 (17) = happyGoto action_26-action_4 (18) = happyGoto action_27-action_4 (20) = happyGoto action_38-action_4 (27) = happyGoto action_39-action_4 (28) = happyGoto action_40-action_4 (29) = happyGoto action_41-action_4 _ = happyReduce_45--action_5 (48) = happyShift action_32-action_5 (49) = happyShift action_33-action_5 (60) = happyShift action_34-action_5 (61) = happyShift action_35-action_5 (62) = happyShift action_36-action_5 (16) = happyGoto action_25-action_5 (17) = happyGoto action_26-action_5 (18) = happyGoto action_27-action_5 (29) = happyGoto action_37-action_5 _ = happyFail (happyExpListPerState 5)--action_6 (44) = happyShift action_30-action_6 (46) = happyShift action_31-action_6 (48) = happyShift action_32-action_6 (49) = happyShift action_33-action_6 (60) = happyShift action_34-action_6 (61) = happyShift action_35-action_6 (62) = happyShift action_36-action_6 (16) = happyGoto action_25-action_6 (17) = happyGoto action_26-action_6 (18) = happyGoto action_27-action_6 (29) = happyGoto action_28-action_6 (30) = happyGoto action_29-action_6 _ = happyFail (happyExpListPerState 6)--action_7 (45) = happyShift action_19-action_7 (47) = happyShift action_20-action_7 (52) = happyShift action_21-action_7 (55) = happyShift action_22-action_7 (31) = happyGoto action_23-action_7 (32) = happyGoto action_24-action_7 _ = happyFail (happyExpListPerState 7)--action_8 (45) = happyShift action_19-action_8 (47) = happyShift action_20-action_8 (52) = happyShift action_21-action_8 (55) = happyShift action_22-action_8 (32) = happyGoto action_18-action_8 _ = happyFail (happyExpListPerState 8)--action_9 (35) = happyShift action_15-action_9 (39) = happyShift action_16-action_9 (33) = happyGoto action_17-action_9 _ = happyFail (happyExpListPerState 9)--action_10 (35) = happyShift action_15-action_10 (39) = happyShift action_16-action_10 (33) = happyGoto action_13-action_10 (34) = happyGoto action_14-action_10 _ = happyReduce_63--action_11 (58) = happyShift action_12-action_11 _ = happyFail (happyExpListPerState 11)--action_12 _ = happyReduce_11--action_13 (35) = happyShift action_15-action_13 (39) = happyShift action_16-action_13 (33) = happyGoto action_13-action_13 (34) = happyGoto action_82-action_13 _ = happyReduce_63--action_14 (68) = happyAccept-action_14 _ = happyFail (happyExpListPerState 14)--action_15 (44) = happyShift action_42-action_15 (46) = happyShift action_43-action_15 (48) = happyShift action_32-action_15 (49) = happyShift action_33-action_15 (60) = happyShift action_34-action_15 (61) = happyShift action_35-action_15 (62) = happyShift action_36-action_15 (64) = happyShift action_44-action_15 (16) = happyGoto action_25-action_15 (17) = happyGoto action_26-action_15 (18) = happyGoto action_27-action_15 (20) = happyGoto action_38-action_15 (27) = happyGoto action_39-action_15 (28) = happyGoto action_81-action_15 (29) = happyGoto action_41-action_15 _ = happyReduce_45--action_16 (48) = happyShift action_32-action_16 (49) = happyShift action_33-action_16 (60) = happyShift action_34-action_16 (61) = happyShift action_35-action_16 (62) = happyShift action_36-action_16 (16) = happyGoto action_25-action_16 (17) = happyGoto action_26-action_16 (18) = happyGoto action_27-action_16 (29) = happyGoto action_80-action_16 _ = happyFail (happyExpListPerState 16)--action_17 (68) = happyAccept-action_17 _ = happyFail (happyExpListPerState 17)--action_18 (68) = happyAccept-action_18 _ = happyFail (happyExpListPerState 18)--action_19 _ = happyReduce_58--action_20 _ = happyReduce_59--action_21 _ = happyReduce_60--action_22 (44) = happyShift action_42-action_22 (46) = happyShift action_43-action_22 (48) = happyShift action_32-action_22 (49) = happyShift action_33-action_22 (60) = happyShift action_34-action_22 (61) = happyShift action_35-action_22 (62) = happyShift action_36-action_22 (64) = happyShift action_44-action_22 (16) = happyGoto action_25-action_22 (17) = happyGoto action_26-action_22 (18) = happyGoto action_27-action_22 (20) = happyGoto action_38-action_22 (27) = happyGoto action_39-action_22 (28) = happyGoto action_79-action_22 (29) = happyGoto action_41-action_22 _ = happyReduce_45--action_23 (68) = happyAccept-action_23 _ = happyFail (happyExpListPerState 23)--action_24 (35) = happyShift action_15-action_24 (39) = happyShift action_16-action_24 (33) = happyGoto action_13-action_24 (34) = happyGoto action_78-action_24 _ = happyReduce_63--action_25 _ = happyReduce_50--action_26 _ = happyReduce_51--action_27 _ = happyReduce_52--action_28 _ = happyReduce_53--action_29 (68) = happyAccept-action_29 _ = happyFail (happyExpListPerState 29)--action_30 _ = happyReduce_54--action_31 _ = happyReduce_55--action_32 _ = happyReduce_49--action_33 _ = happyReduce_48--action_34 _ = happyReduce_13--action_35 _ = happyReduce_14--action_36 _ = happyReduce_15--action_37 (68) = happyAccept-action_37 _ = happyFail (happyExpListPerState 37)--action_38 _ = happyReduce_43--action_39 (38) = happyShift action_77-action_39 _ = happyReduce_46--action_40 (68) = happyAccept-action_40 _ = happyFail (happyExpListPerState 40)--action_41 (50) = happyShift action_76-action_41 _ = happyFail (happyExpListPerState 41)--action_42 (57) = happyShift action_75-action_42 _ = happyFail (happyExpListPerState 42)--action_43 (57) = happyShift action_74-action_43 _ = happyFail (happyExpListPerState 43)--action_44 _ = happyReduce_17--action_45 (68) = happyAccept-action_45 _ = happyFail (happyExpListPerState 45)--action_46 _ = happyReduce_35--action_47 (35) = happyShift action_73-action_47 _ = happyFail (happyExpListPerState 47)--action_48 (35) = happyShift action_69-action_48 (37) = happyShift action_70-action_48 (39) = happyShift action_71-action_48 (40) = happyShift action_72-action_48 (68) = happyAccept-action_48 _ = happyFail (happyExpListPerState 48)--action_49 _ = happyReduce_30--action_50 _ = happyReduce_31--action_51 _ = happyReduce_32--action_52 (45) = happyShift action_49-action_52 (47) = happyShift action_50-action_52 (52) = happyShift action_51-action_52 (53) = happyShift action_52-action_52 (55) = happyShift action_53-action_52 (65) = happyShift action_54-action_52 (67) = happyShift action_55-action_52 (21) = happyGoto action_46-action_52 (23) = happyGoto action_47-action_52 (26) = happyGoto action_68-action_52 _ = happyFail (happyExpListPerState 52)--action_53 (44) = happyShift action_42-action_53 (46) = happyShift action_43-action_53 (48) = happyShift action_32-action_53 (49) = happyShift action_33-action_53 (60) = happyShift action_34-action_53 (61) = happyShift action_35-action_53 (62) = happyShift action_36-action_53 (64) = happyShift action_44-action_53 (16) = happyGoto action_25-action_53 (17) = happyGoto action_26-action_53 (18) = happyGoto action_27-action_53 (20) = happyGoto action_38-action_53 (27) = happyGoto action_39-action_53 (28) = happyGoto action_67-action_53 (29) = happyGoto action_41-action_53 _ = happyReduce_45--action_54 _ = happyReduce_18--action_55 _ = happyReduce_20--action_56 _ = happyReduce_22--action_57 _ = happyReduce_23--action_58 _ = happyReduce_24--action_59 _ = happyReduce_25--action_60 _ = happyReduce_26--action_61 (68) = happyAccept-action_61 _ = happyFail (happyExpListPerState 61)--action_62 _ = happyReduce_16--action_63 _ = happyReduce_19--action_64 (68) = happyAccept-action_64 _ = happyFail (happyExpListPerState 64)--action_65 (55) = happyShift action_66-action_65 _ = happyFail (happyExpListPerState 65)--action_66 (44) = happyShift action_42-action_66 (46) = happyShift action_43-action_66 (48) = happyShift action_32-action_66 (49) = happyShift action_33-action_66 (60) = happyShift action_34-action_66 (61) = happyShift action_35-action_66 (62) = happyShift action_36-action_66 (64) = happyShift action_44-action_66 (16) = happyGoto action_25-action_66 (17) = happyGoto action_26-action_66 (18) = happyGoto action_27-action_66 (20) = happyGoto action_38-action_66 (27) = happyGoto action_39-action_66 (28) = happyGoto action_100-action_66 (29) = happyGoto action_41-action_66 _ = happyReduce_45--action_67 (56) = happyShift action_99-action_67 _ = happyFail (happyExpListPerState 67)--action_68 (35) = happyShift action_69-action_68 (37) = happyShift action_70-action_68 (38) = happyShift action_98-action_68 (39) = happyShift action_71-action_68 (40) = happyShift action_72-action_68 _ = happyFail (happyExpListPerState 68)--action_69 (44) = happyShift action_42-action_69 (46) = happyShift action_43-action_69 (48) = happyShift action_32-action_69 (49) = happyShift action_33-action_69 (60) = happyShift action_34-action_69 (61) = happyShift action_35-action_69 (62) = happyShift action_36-action_69 (64) = happyShift action_44-action_69 (16) = happyGoto action_25-action_69 (17) = happyGoto action_26-action_69 (18) = happyGoto action_27-action_69 (20) = happyGoto action_38-action_69 (27) = happyGoto action_39-action_69 (28) = happyGoto action_97-action_69 (29) = happyGoto action_41-action_69 _ = happyReduce_45--action_70 (63) = happyShift action_62-action_70 (19) = happyGoto action_96-action_70 _ = happyFail (happyExpListPerState 70)--action_71 (48) = happyShift action_32-action_71 (49) = happyShift action_33-action_71 (60) = happyShift action_34-action_71 (61) = happyShift action_35-action_71 (62) = happyShift action_36-action_71 (16) = happyGoto action_25-action_71 (17) = happyGoto action_26-action_71 (18) = happyGoto action_27-action_71 (29) = happyGoto action_95-action_71 _ = happyFail (happyExpListPerState 71)--action_72 (47) = happyShift action_94-action_72 _ = happyFail (happyExpListPerState 72)--action_73 (45) = happyShift action_49-action_73 (47) = happyShift action_50-action_73 (52) = happyShift action_51-action_73 (53) = happyShift action_52-action_73 (55) = happyShift action_53-action_73 (65) = happyShift action_54-action_73 (67) = happyShift action_55-action_73 (21) = happyGoto action_46-action_73 (23) = happyGoto action_47-action_73 (26) = happyGoto action_93-action_73 _ = happyFail (happyExpListPerState 73)--action_74 (59) = happyShift action_92-action_74 (15) = happyGoto action_91-action_74 _ = happyFail (happyExpListPerState 74)--action_75 (51) = happyShift action_90-action_75 (58) = happyShift action_12-action_75 (66) = happyShift action_63-action_75 (14) = happyGoto action_88-action_75 (22) = happyGoto action_89-action_75 _ = happyFail (happyExpListPerState 75)--action_76 (45) = happyShift action_49-action_76 (47) = happyShift action_50-action_76 (51) = happyShift action_87-action_76 (52) = happyShift action_51-action_76 (53) = happyShift action_52-action_76 (55) = happyShift action_53-action_76 (65) = happyShift action_54-action_76 (67) = happyShift action_55-action_76 (21) = happyGoto action_46-action_76 (23) = happyGoto action_47-action_76 (26) = happyGoto action_86-action_76 _ = happyFail (happyExpListPerState 76)--action_77 (44) = happyShift action_42-action_77 (46) = happyShift action_43-action_77 (48) = happyShift action_32-action_77 (49) = happyShift action_33-action_77 (60) = happyShift action_34-action_77 (61) = happyShift action_35-action_77 (62) = happyShift action_36-action_77 (64) = happyShift action_44-action_77 (16) = happyGoto action_25-action_77 (17) = happyGoto action_26-action_77 (18) = happyGoto action_27-action_77 (20) = happyGoto action_38-action_77 (27) = happyGoto action_39-action_77 (28) = happyGoto action_85-action_77 (29) = happyGoto action_41-action_77 _ = happyReduce_45--action_78 _ = happyReduce_56--action_79 (56) = happyShift action_84-action_79 _ = happyFail (happyExpListPerState 79)--action_80 _ = happyReduce_62--action_81 (36) = happyShift action_83-action_81 _ = happyFail (happyExpListPerState 81)--action_82 _ = happyReduce_64--action_83 _ = happyReduce_61--action_84 _ = happyReduce_57--action_85 _ = happyReduce_47--action_86 (35) = happyShift action_69-action_86 (37) = happyShift action_70-action_86 (39) = happyShift action_71-action_86 (40) = happyShift action_72-action_86 _ = happyReduce_38--action_87 _ = happyReduce_39--action_88 _ = happyReduce_40--action_89 _ = happyReduce_44--action_90 _ = happyReduce_41--action_91 _ = happyReduce_42--action_92 _ = happyReduce_12--action_93 (35) = happyShift action_69-action_93 (36) = happyShift action_105-action_93 (37) = happyShift action_70-action_93 (39) = happyShift action_71-action_93 (40) = happyShift action_72-action_93 _ = happyFail (happyExpListPerState 93)--action_94 (50) = happyShift action_104-action_94 _ = happyFail (happyExpListPerState 94)--action_95 _ = happyReduce_29--action_96 _ = happyReduce_36--action_97 (36) = happyShift action_103-action_97 _ = happyFail (happyExpListPerState 97)--action_98 (45) = happyShift action_49-action_98 (47) = happyShift action_50-action_98 (52) = happyShift action_51-action_98 (53) = happyShift action_52-action_98 (55) = happyShift action_53-action_98 (65) = happyShift action_54-action_98 (67) = happyShift action_55-action_98 (21) = happyGoto action_46-action_98 (23) = happyGoto action_47-action_98 (26) = happyGoto action_102-action_98 _ = happyFail (happyExpListPerState 98)--action_99 _ = happyReduce_27--action_100 (56) = happyShift action_101-action_100 _ = happyFail (happyExpListPerState 100)--action_101 (43) = happyShift action_108-action_101 _ = happyFail (happyExpListPerState 101)--action_102 (35) = happyShift action_69-action_102 (37) = happyShift action_70-action_102 (39) = happyShift action_71-action_102 (40) = happyShift action_72-action_102 (54) = happyShift action_107-action_102 _ = happyFail (happyExpListPerState 102)--action_103 _ = happyReduce_28--action_104 (45) = happyShift action_49-action_104 (47) = happyShift action_50-action_104 (52) = happyShift action_51-action_104 (53) = happyShift action_52-action_104 (55) = happyShift action_53-action_104 (65) = happyShift action_54-action_104 (67) = happyShift action_55-action_104 (21) = happyGoto action_46-action_104 (23) = happyGoto action_47-action_104 (26) = happyGoto action_106-action_104 _ = happyFail (happyExpListPerState 104)--action_105 _ = happyReduce_37--action_106 (35) = happyShift action_69-action_106 (37) = happyShift action_70-action_106 (39) = happyShift action_71-action_106 (40) = happyShift action_72-action_106 (41) = happyShift action_109-action_106 _ = happyFail (happyExpListPerState 106)--action_107 _ = happyReduce_34--action_108 _ = happyReduce_21--action_109 _ = happyReduce_33--happyReduce_11 = happySpecReduce_1 14 happyReduction_11-happyReduction_11 (HappyTerminal (PT _ (T_Bytes happy_var_1)))- = HappyAbsSyn14- (Language.EO.Phi.Syntax.Abs.Bytes happy_var_1- )-happyReduction_11 _ = notHappyAtAll --happyReduce_12 = happySpecReduce_1 15 happyReduction_12-happyReduction_12 (HappyTerminal (PT _ (T_Function happy_var_1)))- = HappyAbsSyn15- (Language.EO.Phi.Syntax.Abs.Function happy_var_1- )-happyReduction_12 _ = notHappyAtAll --happyReduce_13 = happySpecReduce_1 16 happyReduction_13-happyReduction_13 (HappyTerminal (PT _ (T_LabelId happy_var_1)))- = HappyAbsSyn16- (Language.EO.Phi.Syntax.Abs.LabelId happy_var_1- )-happyReduction_13 _ = notHappyAtAll --happyReduce_14 = happySpecReduce_1 17 happyReduction_14-happyReduction_14 (HappyTerminal (PT _ (T_AlphaIndex happy_var_1)))- = HappyAbsSyn17- (Language.EO.Phi.Syntax.Abs.AlphaIndex happy_var_1- )-happyReduction_14 _ = notHappyAtAll --happyReduce_15 = happySpecReduce_1 18 happyReduction_15-happyReduction_15 (HappyTerminal (PT _ (T_LabelMetaId happy_var_1)))- = HappyAbsSyn18- (Language.EO.Phi.Syntax.Abs.LabelMetaId happy_var_1- )-happyReduction_15 _ = notHappyAtAll --happyReduce_16 = happySpecReduce_1 19 happyReduction_16-happyReduction_16 (HappyTerminal (PT _ (T_TailMetaId happy_var_1)))- = HappyAbsSyn19- (Language.EO.Phi.Syntax.Abs.TailMetaId happy_var_1- )-happyReduction_16 _ = notHappyAtAll --happyReduce_17 = happySpecReduce_1 20 happyReduction_17-happyReduction_17 (HappyTerminal (PT _ (T_BindingsMetaId happy_var_1)))- = HappyAbsSyn20- (Language.EO.Phi.Syntax.Abs.BindingsMetaId happy_var_1- )-happyReduction_17 _ = notHappyAtAll --happyReduce_18 = happySpecReduce_1 21 happyReduction_18-happyReduction_18 (HappyTerminal (PT _ (T_ObjectMetaId happy_var_1)))- = HappyAbsSyn21- (Language.EO.Phi.Syntax.Abs.ObjectMetaId happy_var_1- )-happyReduction_18 _ = notHappyAtAll --happyReduce_19 = happySpecReduce_1 22 happyReduction_19-happyReduction_19 (HappyTerminal (PT _ (T_BytesMetaId happy_var_1)))- = HappyAbsSyn22- (Language.EO.Phi.Syntax.Abs.BytesMetaId happy_var_1- )-happyReduction_19 _ = notHappyAtAll --happyReduce_20 = happySpecReduce_1 23 happyReduction_20-happyReduction_20 (HappyTerminal (PT _ (T_MetaFunctionName happy_var_1)))- = HappyAbsSyn23- (Language.EO.Phi.Syntax.Abs.MetaFunctionName happy_var_1- )-happyReduction_20 _ = notHappyAtAll --happyReduce_21 = happyReduce 5 24 happyReduction_21-happyReduction_21 (_ `HappyStk`- _ `HappyStk`- (HappyAbsSyn28 happy_var_3) `HappyStk`- _ `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn24- (Language.EO.Phi.Syntax.Abs.Program happy_var_3- ) `HappyStk` happyRest--happyReduce_22 = happySpecReduce_1 25 happyReduction_22-happyReduction_22 (HappyAbsSyn18 happy_var_1)- = HappyAbsSyn25- (Language.EO.Phi.Syntax.Abs.MetaIdLabel happy_var_1- )-happyReduction_22 _ = notHappyAtAll --happyReduce_23 = happySpecReduce_1 25 happyReduction_23-happyReduction_23 (HappyAbsSyn19 happy_var_1)- = HappyAbsSyn25- (Language.EO.Phi.Syntax.Abs.MetaIdTail happy_var_1- )-happyReduction_23 _ = notHappyAtAll --happyReduce_24 = happySpecReduce_1 25 happyReduction_24-happyReduction_24 (HappyAbsSyn20 happy_var_1)- = HappyAbsSyn25- (Language.EO.Phi.Syntax.Abs.MetaIdBindings happy_var_1- )-happyReduction_24 _ = notHappyAtAll --happyReduce_25 = happySpecReduce_1 25 happyReduction_25-happyReduction_25 (HappyAbsSyn21 happy_var_1)- = HappyAbsSyn25- (Language.EO.Phi.Syntax.Abs.MetaIdObject happy_var_1- )-happyReduction_25 _ = notHappyAtAll --happyReduce_26 = happySpecReduce_1 25 happyReduction_26-happyReduction_26 (HappyAbsSyn22 happy_var_1)- = HappyAbsSyn25- (Language.EO.Phi.Syntax.Abs.MetaIdBytes happy_var_1- )-happyReduction_26 _ = notHappyAtAll --happyReduce_27 = happySpecReduce_3 26 happyReduction_27-happyReduction_27 _- (HappyAbsSyn28 happy_var_2)- _- = HappyAbsSyn26- (Language.EO.Phi.Syntax.Abs.Formation happy_var_2- )-happyReduction_27 _ _ _ = notHappyAtAll --happyReduce_28 = happyReduce 4 26 happyReduction_28-happyReduction_28 (_ `HappyStk`- (HappyAbsSyn28 happy_var_3) `HappyStk`- _ `HappyStk`- (HappyAbsSyn26 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn26- (Language.EO.Phi.Syntax.Abs.Application happy_var_1 happy_var_3- ) `HappyStk` happyRest--happyReduce_29 = happySpecReduce_3 26 happyReduction_29-happyReduction_29 (HappyAbsSyn29 happy_var_3)- _- (HappyAbsSyn26 happy_var_1)- = HappyAbsSyn26- (Language.EO.Phi.Syntax.Abs.ObjectDispatch happy_var_1 happy_var_3- )-happyReduction_29 _ _ _ = notHappyAtAll --happyReduce_30 = happySpecReduce_1 26 happyReduction_30-happyReduction_30 _- = HappyAbsSyn26- (Language.EO.Phi.Syntax.Abs.GlobalObject- )--happyReduce_31 = happySpecReduce_1 26 happyReduction_31-happyReduction_31 _- = HappyAbsSyn26- (Language.EO.Phi.Syntax.Abs.ThisObject- )--happyReduce_32 = happySpecReduce_1 26 happyReduction_32-happyReduction_32 _- = HappyAbsSyn26- (Language.EO.Phi.Syntax.Abs.Termination- )--happyReduce_33 = happyReduce 6 26 happyReduction_33-happyReduction_33 (_ `HappyStk`- (HappyAbsSyn26 happy_var_5) `HappyStk`- _ `HappyStk`- _ `HappyStk`- _ `HappyStk`- (HappyAbsSyn26 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn26- (Language.EO.Phi.Syntax.Abs.MetaSubstThis happy_var_1 happy_var_5- ) `HappyStk` happyRest--happyReduce_34 = happyReduce 5 26 happyReduction_34-happyReduction_34 (_ `HappyStk`- (HappyAbsSyn26 happy_var_4) `HappyStk`- _ `HappyStk`- (HappyAbsSyn26 happy_var_2) `HappyStk`- _ `HappyStk`- happyRest)- = HappyAbsSyn26- (Language.EO.Phi.Syntax.Abs.MetaContextualize happy_var_2 happy_var_4- ) `HappyStk` happyRest--happyReduce_35 = happySpecReduce_1 26 happyReduction_35-happyReduction_35 (HappyAbsSyn21 happy_var_1)- = HappyAbsSyn26- (Language.EO.Phi.Syntax.Abs.MetaObject happy_var_1- )-happyReduction_35 _ = notHappyAtAll --happyReduce_36 = happySpecReduce_3 26 happyReduction_36-happyReduction_36 (HappyAbsSyn19 happy_var_3)- _- (HappyAbsSyn26 happy_var_1)- = HappyAbsSyn26- (Language.EO.Phi.Syntax.Abs.MetaTailContext happy_var_1 happy_var_3- )-happyReduction_36 _ _ _ = notHappyAtAll --happyReduce_37 = happyReduce 4 26 happyReduction_37-happyReduction_37 (_ `HappyStk`- (HappyAbsSyn26 happy_var_3) `HappyStk`- _ `HappyStk`- (HappyAbsSyn23 happy_var_1) `HappyStk`- happyRest)- = HappyAbsSyn26- (Language.EO.Phi.Syntax.Abs.MetaFunction happy_var_1 happy_var_3- ) `HappyStk` happyRest--happyReduce_38 = happySpecReduce_3 27 happyReduction_38-happyReduction_38 (HappyAbsSyn26 happy_var_3)- _- (HappyAbsSyn29 happy_var_1)- = HappyAbsSyn27- (Language.EO.Phi.Syntax.Abs.AlphaBinding happy_var_1 happy_var_3- )-happyReduction_38 _ _ _ = notHappyAtAll --happyReduce_39 = happySpecReduce_3 27 happyReduction_39-happyReduction_39 _- _- (HappyAbsSyn29 happy_var_1)- = HappyAbsSyn27- (Language.EO.Phi.Syntax.Abs.EmptyBinding happy_var_1- )-happyReduction_39 _ _ _ = notHappyAtAll --happyReduce_40 = happySpecReduce_3 27 happyReduction_40-happyReduction_40 (HappyAbsSyn14 happy_var_3)- _- _- = HappyAbsSyn27- (Language.EO.Phi.Syntax.Abs.DeltaBinding happy_var_3- )-happyReduction_40 _ _ _ = notHappyAtAll --happyReduce_41 = happySpecReduce_3 27 happyReduction_41-happyReduction_41 _- _- _- = HappyAbsSyn27- (Language.EO.Phi.Syntax.Abs.DeltaEmptyBinding- )--happyReduce_42 = happySpecReduce_3 27 happyReduction_42-happyReduction_42 (HappyAbsSyn15 happy_var_3)- _- _- = HappyAbsSyn27- (Language.EO.Phi.Syntax.Abs.LambdaBinding happy_var_3- )-happyReduction_42 _ _ _ = notHappyAtAll --happyReduce_43 = happySpecReduce_1 27 happyReduction_43-happyReduction_43 (HappyAbsSyn20 happy_var_1)- = HappyAbsSyn27- (Language.EO.Phi.Syntax.Abs.MetaBindings happy_var_1- )-happyReduction_43 _ = notHappyAtAll --happyReduce_44 = happySpecReduce_3 27 happyReduction_44-happyReduction_44 (HappyAbsSyn22 happy_var_3)- _- _- = HappyAbsSyn27- (Language.EO.Phi.Syntax.Abs.MetaDeltaBinding happy_var_3- )-happyReduction_44 _ _ _ = notHappyAtAll --happyReduce_45 = happySpecReduce_0 28 happyReduction_45-happyReduction_45 = HappyAbsSyn28- ([]- )--happyReduce_46 = happySpecReduce_1 28 happyReduction_46-happyReduction_46 (HappyAbsSyn27 happy_var_1)- = HappyAbsSyn28- ((:[]) happy_var_1- )-happyReduction_46 _ = notHappyAtAll --happyReduce_47 = happySpecReduce_3 28 happyReduction_47-happyReduction_47 (HappyAbsSyn28 happy_var_3)- _- (HappyAbsSyn27 happy_var_1)- = HappyAbsSyn28- ((:) happy_var_1 happy_var_3- )-happyReduction_47 _ _ _ = notHappyAtAll --happyReduce_48 = happySpecReduce_1 29 happyReduction_48-happyReduction_48 _- = HappyAbsSyn29- (Language.EO.Phi.Syntax.Abs.Phi- )--happyReduce_49 = happySpecReduce_1 29 happyReduction_49-happyReduction_49 _- = HappyAbsSyn29- (Language.EO.Phi.Syntax.Abs.Rho- )--happyReduce_50 = happySpecReduce_1 29 happyReduction_50-happyReduction_50 (HappyAbsSyn16 happy_var_1)- = HappyAbsSyn29- (Language.EO.Phi.Syntax.Abs.Label happy_var_1- )-happyReduction_50 _ = notHappyAtAll --happyReduce_51 = happySpecReduce_1 29 happyReduction_51-happyReduction_51 (HappyAbsSyn17 happy_var_1)- = HappyAbsSyn29- (Language.EO.Phi.Syntax.Abs.Alpha happy_var_1- )-happyReduction_51 _ = notHappyAtAll --happyReduce_52 = happySpecReduce_1 29 happyReduction_52-happyReduction_52 (HappyAbsSyn18 happy_var_1)- = HappyAbsSyn29- (Language.EO.Phi.Syntax.Abs.MetaAttr happy_var_1- )-happyReduction_52 _ = notHappyAtAll --happyReduce_53 = happySpecReduce_1 30 happyReduction_53-happyReduction_53 (HappyAbsSyn29 happy_var_1)- = HappyAbsSyn30- (Language.EO.Phi.Syntax.Abs.ObjectAttr happy_var_1- )-happyReduction_53 _ = notHappyAtAll --happyReduce_54 = happySpecReduce_1 30 happyReduction_54-happyReduction_54 _- = HappyAbsSyn30- (Language.EO.Phi.Syntax.Abs.DeltaAttr- )--happyReduce_55 = happySpecReduce_1 30 happyReduction_55-happyReduction_55 _- = HappyAbsSyn30- (Language.EO.Phi.Syntax.Abs.LambdaAttr- )--happyReduce_56 = happySpecReduce_2 31 happyReduction_56-happyReduction_56 (HappyAbsSyn34 happy_var_2)- (HappyAbsSyn32 happy_var_1)- = HappyAbsSyn31- (Language.EO.Phi.Syntax.Abs.PeeledObject happy_var_1 happy_var_2- )-happyReduction_56 _ _ = notHappyAtAll --happyReduce_57 = happySpecReduce_3 32 happyReduction_57-happyReduction_57 _- (HappyAbsSyn28 happy_var_2)- _- = HappyAbsSyn32- (Language.EO.Phi.Syntax.Abs.HeadFormation happy_var_2- )-happyReduction_57 _ _ _ = notHappyAtAll --happyReduce_58 = happySpecReduce_1 32 happyReduction_58-happyReduction_58 _- = HappyAbsSyn32- (Language.EO.Phi.Syntax.Abs.HeadGlobal- )--happyReduce_59 = happySpecReduce_1 32 happyReduction_59-happyReduction_59 _- = HappyAbsSyn32- (Language.EO.Phi.Syntax.Abs.HeadThis- )--happyReduce_60 = happySpecReduce_1 32 happyReduction_60-happyReduction_60 _- = HappyAbsSyn32- (Language.EO.Phi.Syntax.Abs.HeadTermination- )--happyReduce_61 = happySpecReduce_3 33 happyReduction_61-happyReduction_61 _- (HappyAbsSyn28 happy_var_2)- _- = HappyAbsSyn33- (Language.EO.Phi.Syntax.Abs.ActionApplication happy_var_2- )-happyReduction_61 _ _ _ = notHappyAtAll --happyReduce_62 = happySpecReduce_2 33 happyReduction_62-happyReduction_62 (HappyAbsSyn29 happy_var_2)- _- = HappyAbsSyn33- (Language.EO.Phi.Syntax.Abs.ActionDispatch happy_var_2- )-happyReduction_62 _ _ = notHappyAtAll --happyReduce_63 = happySpecReduce_0 34 happyReduction_63-happyReduction_63 = HappyAbsSyn34- ([]- )--happyReduce_64 = happySpecReduce_2 34 happyReduction_64-happyReduction_64 (HappyAbsSyn34 happy_var_2)- (HappyAbsSyn33 happy_var_1)- = HappyAbsSyn34- ((:) happy_var_1 happy_var_2- )-happyReduction_64 _ _ = notHappyAtAll --happyNewToken action sts stk [] =- action 68 68 notHappyAtAll (HappyState action) sts stk []--happyNewToken action sts stk (tk:tks) =- let cont i = action i i tk (HappyState action) sts stk tks in- case tk of {- PT _ (TS _ 1) -> cont 35;- PT _ (TS _ 2) -> cont 36;- PT _ (TS _ 3) -> cont 37;- PT _ (TS _ 4) -> cont 38;- PT _ (TS _ 5) -> cont 39;- PT _ (TS _ 6) -> cont 40;- PT _ (TS _ 7) -> cont 41;- PT _ (TS _ 8) -> cont 42;- PT _ (TS _ 9) -> cont 43;- PT _ (TS _ 10) -> cont 44;- PT _ (TS _ 11) -> cont 45;- PT _ (TS _ 12) -> cont 46;- PT _ (TS _ 13) -> cont 47;- PT _ (TS _ 14) -> cont 48;- PT _ (TS _ 15) -> cont 49;- PT _ (TS _ 16) -> cont 50;- PT _ (TS _ 17) -> cont 51;- PT _ (TS _ 18) -> cont 52;- PT _ (TS _ 19) -> cont 53;- PT _ (TS _ 20) -> cont 54;- PT _ (TS _ 21) -> cont 55;- PT _ (TS _ 22) -> cont 56;- PT _ (TS _ 23) -> cont 57;- PT _ (T_Bytes happy_dollar_dollar) -> cont 58;- PT _ (T_Function happy_dollar_dollar) -> cont 59;- PT _ (T_LabelId happy_dollar_dollar) -> cont 60;- PT _ (T_AlphaIndex happy_dollar_dollar) -> cont 61;- PT _ (T_LabelMetaId happy_dollar_dollar) -> cont 62;- PT _ (T_TailMetaId happy_dollar_dollar) -> cont 63;- PT _ (T_BindingsMetaId happy_dollar_dollar) -> cont 64;- PT _ (T_ObjectMetaId happy_dollar_dollar) -> cont 65;- PT _ (T_BytesMetaId happy_dollar_dollar) -> cont 66;- PT _ (T_MetaFunctionName happy_dollar_dollar) -> cont 67;- _ -> happyError' ((tk:tks), [])- }--happyError_ explist 68 tk tks = happyError' (tks, explist)-happyError_ explist _ tk tks = happyError' ((tk:tks), explist)--happyThen :: () => Err a -> (a -> Err b) -> Err b-happyThen = ((>>=))-happyReturn :: () => a -> Err a-happyReturn = (return)-happyThen1 m k tks = ((>>=)) m (\a -> k a tks)-happyReturn1 :: () => a -> b -> Err a-happyReturn1 = \a tks -> (return) a-happyError' :: () => ([(Token)], [Prelude.String]) -> Err a-happyError' = (\(tokens, _) -> happyError tokens)-pProgram tks = happySomeParser where- happySomeParser = happyThen (happyParse action_0 tks) (\x -> case x of {HappyAbsSyn24 z -> happyReturn z; _other -> notHappyAtAll })--pMetaId tks = happySomeParser where- happySomeParser = happyThen (happyParse action_1 tks) (\x -> case x of {HappyAbsSyn25 z -> happyReturn z; _other -> notHappyAtAll })--pObject tks = happySomeParser where- happySomeParser = happyThen (happyParse action_2 tks) (\x -> case x of {HappyAbsSyn26 z -> happyReturn z; _other -> notHappyAtAll })--pBinding tks = happySomeParser where- happySomeParser = happyThen (happyParse action_3 tks) (\x -> case x of {HappyAbsSyn27 z -> happyReturn z; _other -> notHappyAtAll })--pListBinding tks = happySomeParser where- happySomeParser = happyThen (happyParse action_4 tks) (\x -> case x of {HappyAbsSyn28 z -> happyReturn z; _other -> notHappyAtAll })--pAttribute tks = happySomeParser where- happySomeParser = happyThen (happyParse action_5 tks) (\x -> case x of {HappyAbsSyn29 z -> happyReturn z; _other -> notHappyAtAll })--pRuleAttribute tks = happySomeParser where- happySomeParser = happyThen (happyParse action_6 tks) (\x -> case x of {HappyAbsSyn30 z -> happyReturn z; _other -> notHappyAtAll })--pPeeledObject tks = happySomeParser where- happySomeParser = happyThen (happyParse action_7 tks) (\x -> case x of {HappyAbsSyn31 z -> happyReturn z; _other -> notHappyAtAll })--pObjectHead tks = happySomeParser where- happySomeParser = happyThen (happyParse action_8 tks) (\x -> case x of {HappyAbsSyn32 z -> happyReturn z; _other -> notHappyAtAll })--pObjectAction tks = happySomeParser where- happySomeParser = happyThen (happyParse action_9 tks) (\x -> case x of {HappyAbsSyn33 z -> happyReturn z; _other -> notHappyAtAll })--pListObjectAction tks = happySomeParser where- happySomeParser = happyThen (happyParse action_10 tks) (\x -> case x of {HappyAbsSyn34 z -> happyReturn z; _other -> notHappyAtAll })+ | HappyAbsSyn14 (Double)+ | HappyAbsSyn15 (Integer)+ | HappyAbsSyn16 (String)+ | HappyAbsSyn17 (Language.EO.Phi.Syntax.Abs.Bytes)+ | HappyAbsSyn18 (Language.EO.Phi.Syntax.Abs.Function)+ | HappyAbsSyn19 (Language.EO.Phi.Syntax.Abs.LabelId)+ | HappyAbsSyn20 (Language.EO.Phi.Syntax.Abs.AlphaIndex)+ | HappyAbsSyn21 (Language.EO.Phi.Syntax.Abs.LabelMetaId)+ | HappyAbsSyn22 (Language.EO.Phi.Syntax.Abs.TailMetaId)+ | HappyAbsSyn23 (Language.EO.Phi.Syntax.Abs.BindingsMetaId)+ | HappyAbsSyn24 (Language.EO.Phi.Syntax.Abs.ObjectMetaId)+ | HappyAbsSyn25 (Language.EO.Phi.Syntax.Abs.BytesMetaId)+ | HappyAbsSyn26 (Language.EO.Phi.Syntax.Abs.MetaFunctionName)+ | HappyAbsSyn27 (Language.EO.Phi.Syntax.Abs.Program)+ | HappyAbsSyn28 (Language.EO.Phi.Syntax.Abs.MetaId)+ | HappyAbsSyn29 (Language.EO.Phi.Syntax.Abs.Object)+ | HappyAbsSyn30 (Language.EO.Phi.Syntax.Abs.Binding)+ | HappyAbsSyn31 ([Language.EO.Phi.Syntax.Abs.Binding])+ | HappyAbsSyn32 (Language.EO.Phi.Syntax.Abs.Attribute)+ | HappyAbsSyn33 (Language.EO.Phi.Syntax.Abs.RuleAttribute)+ | HappyAbsSyn34 (Language.EO.Phi.Syntax.Abs.PeeledObject)+ | HappyAbsSyn35 (Language.EO.Phi.Syntax.Abs.ObjectHead)+ | HappyAbsSyn36 (Language.EO.Phi.Syntax.Abs.ObjectAction)+ | HappyAbsSyn37 ([Language.EO.Phi.Syntax.Abs.ObjectAction])++{- to allow type-synonyms as our monads (likely+ - with explicitly-specified bind and return)+ - in Haskell98, it seems that with+ - /type M a = .../, then /(HappyReduction M)/+ - is not allowed. But Happy is a+ - code-generator that can just substitute it.+type HappyReduction m = + Prelude.Int + -> (Token)+ -> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> m HappyAbsSyn)+ -> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> m HappyAbsSyn)] + -> HappyStk HappyAbsSyn + -> [(Token)] -> m HappyAbsSyn+-}++action_0,+ action_1,+ action_2,+ action_3,+ action_4,+ action_5,+ action_6,+ action_7,+ action_8,+ action_9,+ action_10,+ action_11,+ action_12,+ action_13,+ action_14,+ action_15,+ action_16,+ action_17,+ action_18,+ action_19,+ action_20,+ action_21,+ action_22,+ action_23,+ action_24,+ action_25,+ action_26,+ action_27,+ action_28,+ action_29,+ action_30,+ action_31,+ action_32,+ action_33,+ action_34,+ action_35,+ action_36,+ action_37,+ action_38,+ action_39,+ action_40,+ action_41,+ action_42,+ action_43,+ action_44,+ action_45,+ action_46,+ action_47,+ action_48,+ action_49,+ action_50,+ action_51,+ action_52,+ action_53,+ action_54,+ action_55,+ action_56,+ action_57,+ action_58,+ action_59,+ action_60,+ action_61,+ action_62,+ action_63,+ action_64,+ action_65,+ action_66,+ action_67,+ action_68,+ action_69,+ action_70,+ action_71,+ action_72,+ action_73,+ action_74,+ action_75,+ action_76,+ action_77,+ action_78,+ action_79,+ action_80,+ action_81,+ action_82,+ action_83,+ action_84,+ action_85,+ action_86,+ action_87,+ action_88,+ action_89,+ action_90,+ action_91,+ action_92,+ action_93,+ action_94,+ action_95,+ action_96,+ action_97,+ action_98,+ action_99,+ action_100,+ action_101,+ action_102,+ action_103,+ action_104,+ action_105,+ action_106,+ action_107,+ action_108,+ action_109,+ action_110,+ action_111,+ action_112,+ action_113,+ action_114,+ action_115 :: () => Prelude.Int -> ({-HappyReduction (Err) = -}+ Prelude.Int + -> (Token)+ -> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)+ -> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)] + -> HappyStk HappyAbsSyn + -> [(Token)] -> (Err) HappyAbsSyn)++happyReduce_11,+ happyReduce_12,+ happyReduce_13,+ happyReduce_14,+ happyReduce_15,+ happyReduce_16,+ happyReduce_17,+ happyReduce_18,+ happyReduce_19,+ happyReduce_20,+ happyReduce_21,+ happyReduce_22,+ happyReduce_23,+ happyReduce_24,+ happyReduce_25,+ happyReduce_26,+ happyReduce_27,+ happyReduce_28,+ happyReduce_29,+ happyReduce_30,+ happyReduce_31,+ happyReduce_32,+ happyReduce_33,+ happyReduce_34,+ happyReduce_35,+ happyReduce_36,+ happyReduce_37,+ happyReduce_38,+ happyReduce_39,+ happyReduce_40,+ happyReduce_41,+ happyReduce_42,+ happyReduce_43,+ happyReduce_44,+ happyReduce_45,+ happyReduce_46,+ happyReduce_47,+ happyReduce_48,+ happyReduce_49,+ happyReduce_50,+ happyReduce_51,+ happyReduce_52,+ happyReduce_53,+ happyReduce_54,+ happyReduce_55,+ happyReduce_56,+ happyReduce_57,+ happyReduce_58,+ happyReduce_59,+ happyReduce_60,+ happyReduce_61,+ happyReduce_62,+ happyReduce_63,+ happyReduce_64,+ happyReduce_65,+ happyReduce_66,+ happyReduce_67,+ happyReduce_68,+ happyReduce_69,+ happyReduce_70 :: () => ({-HappyReduction (Err) = -}+ Prelude.Int + -> (Token)+ -> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)+ -> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)] + -> HappyStk HappyAbsSyn + -> [(Token)] -> (Err) HappyAbsSyn)++happyExpList :: Happy_Data_Array.Array Prelude.Int Prelude.Int+happyExpList = Happy_Data_Array.listArray (0,290) ([0,0,4096,0,0,0,0,0,57344,3,0,0,11304,5127,0,0,20480,32771,11,0,0,3392,11776,0,0,0,48,56,0,0,54272,57344,0,0,0,37024,0,0,0,32768,578,0,0,32768,8,0,0,0,8704,0,0,0,0,0,1024,0,0,0,0,0,0,0,2176,0,0,0,0,0,0,0,0,0,848,2944,0,0,0,12,14,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,54272,57344,2,0,0,0,0,0,0,544,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,16384,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,32768,0,0,0,0,512,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,512,0,0,0,0,424,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45216,20508,0,0,16384,13,46,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,32,0,0,0,848,2944,0,0,0,1024,0,0,32768,30,0,0,0,0,212,736,0,0,0,0,4,0,0,3072,3584,0,0,0,8,0,0,0,10240,1836,20,0,0,0,64,0,0,0,32800,128,0,0,35328,459,5,0,0,212,736,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,424,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,440,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,32768,29378,320,0,0,0,0,0,0,0,16384,0,0,0,2048,0,0,0,40960,6,1,0,0,0,0,0,0,0,10240,1836,20,0,0,0,0,0,0,3744,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0+ ])++{-# NOINLINE happyExpListPerState #-}+happyExpListPerState st =+ token_strs_expected+ where token_strs = ["error","%dummy","%start_pProgram","%start_pMetaId","%start_pObject","%start_pBinding","%start_pListBinding","%start_pAttribute","%start_pRuleAttribute","%start_pPeeledObject","%start_pObjectHead","%start_pObjectAction","%start_pListObjectAction","Double","Integer","String","Bytes","Function","LabelId","AlphaIndex","LabelMetaId","TailMetaId","BindingsMetaId","ObjectMetaId","BytesMetaId","MetaFunctionName","Program","MetaId","Object","Binding","ListBinding","Attribute","RuleAttribute","PeeledObject","ObjectHead","ObjectAction","ListObjectAction","'('","')'","'*'","','","'.'","'['","']'","'{'","'}'","'\916'","'\934'","'\955'","'\958'","'\961'","'\966'","'\8614'","'\8709'","'\8869'","'\8968'","'\8969'","'\10214'","'\10215'","'\10509'","L_doubl","L_integ","L_quoted","L_Bytes","L_Function","L_LabelId","L_AlphaIndex","L_LabelMetaId","L_TailMetaId","L_BindingsMetaId","L_ObjectMetaId","L_BytesMetaId","L_MetaFunctionName","%eof"]+ bit_start = st Prelude.* 74+ bit_end = (st Prelude.+ 1) Prelude.* 74+ read_bit = readArrayBit happyExpList+ bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]+ bits_indexed = Prelude.zip bits [0..73]+ token_strs_expected = Prelude.concatMap f bits_indexed+ f (Prelude.False, _) = []+ f (Prelude.True, nr) = [token_strs Prelude.!! nr]++action_0 (45) = happyShift action_70+action_0 (27) = happyGoto action_69+action_0 _ = happyFail (happyExpListPerState 0)++action_1 (68) = happyShift action_36+action_1 (69) = happyShift action_67+action_1 (70) = happyShift action_44+action_1 (71) = happyShift action_59+action_1 (72) = happyShift action_68+action_1 (21) = happyGoto action_61+action_1 (22) = happyGoto action_62+action_1 (23) = happyGoto action_63+action_1 (24) = happyGoto action_64+action_1 (25) = happyGoto action_65+action_1 (28) = happyGoto action_66+action_1 _ = happyFail (happyExpListPerState 1)++action_2 (48) = happyShift action_52+action_2 (50) = happyShift action_53+action_2 (55) = happyShift action_54+action_2 (56) = happyShift action_55+action_2 (58) = happyShift action_56+action_2 (61) = happyShift action_12+action_2 (62) = happyShift action_57+action_2 (63) = happyShift action_58+action_2 (71) = happyShift action_59+action_2 (73) = happyShift action_60+action_2 (14) = happyGoto action_46+action_2 (15) = happyGoto action_47+action_2 (16) = happyGoto action_48+action_2 (24) = happyGoto action_49+action_2 (26) = happyGoto action_50+action_2 (29) = happyGoto action_51+action_2 _ = happyFail (happyExpListPerState 2)++action_3 (47) = happyShift action_42+action_3 (49) = happyShift action_43+action_3 (51) = happyShift action_32+action_3 (52) = happyShift action_33+action_3 (66) = happyShift action_34+action_3 (67) = happyShift action_35+action_3 (68) = happyShift action_36+action_3 (70) = happyShift action_44+action_3 (19) = happyGoto action_25+action_3 (20) = happyGoto action_26+action_3 (21) = happyGoto action_27+action_3 (23) = happyGoto action_38+action_3 (30) = happyGoto action_45+action_3 (32) = happyGoto action_41+action_3 _ = happyFail (happyExpListPerState 3)++action_4 (47) = happyShift action_42+action_4 (49) = happyShift action_43+action_4 (51) = happyShift action_32+action_4 (52) = happyShift action_33+action_4 (66) = happyShift action_34+action_4 (67) = happyShift action_35+action_4 (68) = happyShift action_36+action_4 (70) = happyShift action_44+action_4 (19) = happyGoto action_25+action_4 (20) = happyGoto action_26+action_4 (21) = happyGoto action_27+action_4 (23) = happyGoto action_38+action_4 (30) = happyGoto action_39+action_4 (31) = happyGoto action_40+action_4 (32) = happyGoto action_41+action_4 _ = happyReduce_51++action_5 (51) = happyShift action_32+action_5 (52) = happyShift action_33+action_5 (66) = happyShift action_34+action_5 (67) = happyShift action_35+action_5 (68) = happyShift action_36+action_5 (19) = happyGoto action_25+action_5 (20) = happyGoto action_26+action_5 (21) = happyGoto action_27+action_5 (32) = happyGoto action_37+action_5 _ = happyFail (happyExpListPerState 5)++action_6 (47) = happyShift action_30+action_6 (49) = happyShift action_31+action_6 (51) = happyShift action_32+action_6 (52) = happyShift action_33+action_6 (66) = happyShift action_34+action_6 (67) = happyShift action_35+action_6 (68) = happyShift action_36+action_6 (19) = happyGoto action_25+action_6 (20) = happyGoto action_26+action_6 (21) = happyGoto action_27+action_6 (32) = happyGoto action_28+action_6 (33) = happyGoto action_29+action_6 _ = happyFail (happyExpListPerState 6)++action_7 (48) = happyShift action_19+action_7 (50) = happyShift action_20+action_7 (55) = happyShift action_21+action_7 (58) = happyShift action_22+action_7 (34) = happyGoto action_23+action_7 (35) = happyGoto action_24+action_7 _ = happyFail (happyExpListPerState 7)++action_8 (48) = happyShift action_19+action_8 (50) = happyShift action_20+action_8 (55) = happyShift action_21+action_8 (58) = happyShift action_22+action_8 (35) = happyGoto action_18+action_8 _ = happyFail (happyExpListPerState 8)++action_9 (38) = happyShift action_15+action_9 (42) = happyShift action_16+action_9 (36) = happyGoto action_17+action_9 _ = happyFail (happyExpListPerState 9)++action_10 (38) = happyShift action_15+action_10 (42) = happyShift action_16+action_10 (36) = happyGoto action_13+action_10 (37) = happyGoto action_14+action_10 _ = happyReduce_69++action_11 (61) = happyShift action_12+action_11 _ = happyFail (happyExpListPerState 11)++action_12 _ = happyReduce_11++action_13 (38) = happyShift action_15+action_13 (42) = happyShift action_16+action_13 (36) = happyGoto action_13+action_13 (37) = happyGoto action_87+action_13 _ = happyReduce_69++action_14 (74) = happyAccept+action_14 _ = happyFail (happyExpListPerState 14)++action_15 (47) = happyShift action_42+action_15 (49) = happyShift action_43+action_15 (51) = happyShift action_32+action_15 (52) = happyShift action_33+action_15 (66) = happyShift action_34+action_15 (67) = happyShift action_35+action_15 (68) = happyShift action_36+action_15 (70) = happyShift action_44+action_15 (19) = happyGoto action_25+action_15 (20) = happyGoto action_26+action_15 (21) = happyGoto action_27+action_15 (23) = happyGoto action_38+action_15 (30) = happyGoto action_39+action_15 (31) = happyGoto action_86+action_15 (32) = happyGoto action_41+action_15 _ = happyReduce_51++action_16 (51) = happyShift action_32+action_16 (52) = happyShift action_33+action_16 (66) = happyShift action_34+action_16 (67) = happyShift action_35+action_16 (68) = happyShift action_36+action_16 (19) = happyGoto action_25+action_16 (20) = happyGoto action_26+action_16 (21) = happyGoto action_27+action_16 (32) = happyGoto action_85+action_16 _ = happyFail (happyExpListPerState 16)++action_17 (74) = happyAccept+action_17 _ = happyFail (happyExpListPerState 17)++action_18 (74) = happyAccept+action_18 _ = happyFail (happyExpListPerState 18)++action_19 _ = happyReduce_64++action_20 _ = happyReduce_65++action_21 _ = happyReduce_66++action_22 (47) = happyShift action_42+action_22 (49) = happyShift action_43+action_22 (51) = happyShift action_32+action_22 (52) = happyShift action_33+action_22 (66) = happyShift action_34+action_22 (67) = happyShift action_35+action_22 (68) = happyShift action_36+action_22 (70) = happyShift action_44+action_22 (19) = happyGoto action_25+action_22 (20) = happyGoto action_26+action_22 (21) = happyGoto action_27+action_22 (23) = happyGoto action_38+action_22 (30) = happyGoto action_39+action_22 (31) = happyGoto action_84+action_22 (32) = happyGoto action_41+action_22 _ = happyReduce_51++action_23 (74) = happyAccept+action_23 _ = happyFail (happyExpListPerState 23)++action_24 (38) = happyShift action_15+action_24 (42) = happyShift action_16+action_24 (36) = happyGoto action_13+action_24 (37) = happyGoto action_83+action_24 _ = happyReduce_69++action_25 _ = happyReduce_56++action_26 _ = happyReduce_57++action_27 _ = happyReduce_58++action_28 _ = happyReduce_59++action_29 (74) = happyAccept+action_29 _ = happyFail (happyExpListPerState 29)++action_30 _ = happyReduce_60++action_31 _ = happyReduce_61++action_32 _ = happyReduce_55++action_33 _ = happyReduce_54++action_34 _ = happyReduce_16++action_35 _ = happyReduce_17++action_36 _ = happyReduce_18++action_37 (74) = happyAccept+action_37 _ = happyFail (happyExpListPerState 37)++action_38 _ = happyReduce_49++action_39 (41) = happyShift action_82+action_39 _ = happyReduce_52++action_40 (74) = happyAccept+action_40 _ = happyFail (happyExpListPerState 40)++action_41 (53) = happyShift action_81+action_41 _ = happyFail (happyExpListPerState 41)++action_42 (60) = happyShift action_80+action_42 _ = happyFail (happyExpListPerState 42)++action_43 (60) = happyShift action_79+action_43 _ = happyFail (happyExpListPerState 43)++action_44 _ = happyReduce_20++action_45 (74) = happyAccept+action_45 _ = happyFail (happyExpListPerState 45)++action_46 _ = happyReduce_38++action_47 _ = happyReduce_37++action_48 _ = happyReduce_36++action_49 _ = happyReduce_41++action_50 (38) = happyShift action_78+action_50 _ = happyFail (happyExpListPerState 50)++action_51 (38) = happyShift action_74+action_51 (40) = happyShift action_75+action_51 (42) = happyShift action_76+action_51 (43) = happyShift action_77+action_51 (74) = happyAccept+action_51 _ = happyFail (happyExpListPerState 51)++action_52 _ = happyReduce_33++action_53 _ = happyReduce_34++action_54 _ = happyReduce_35++action_55 (48) = happyShift action_52+action_55 (50) = happyShift action_53+action_55 (55) = happyShift action_54+action_55 (56) = happyShift action_55+action_55 (58) = happyShift action_56+action_55 (61) = happyShift action_12+action_55 (62) = happyShift action_57+action_55 (63) = happyShift action_58+action_55 (71) = happyShift action_59+action_55 (73) = happyShift action_60+action_55 (14) = happyGoto action_46+action_55 (15) = happyGoto action_47+action_55 (16) = happyGoto action_48+action_55 (24) = happyGoto action_49+action_55 (26) = happyGoto action_50+action_55 (29) = happyGoto action_73+action_55 _ = happyFail (happyExpListPerState 55)++action_56 (47) = happyShift action_42+action_56 (49) = happyShift action_43+action_56 (51) = happyShift action_32+action_56 (52) = happyShift action_33+action_56 (66) = happyShift action_34+action_56 (67) = happyShift action_35+action_56 (68) = happyShift action_36+action_56 (70) = happyShift action_44+action_56 (19) = happyGoto action_25+action_56 (20) = happyGoto action_26+action_56 (21) = happyGoto action_27+action_56 (23) = happyGoto action_38+action_56 (30) = happyGoto action_39+action_56 (31) = happyGoto action_72+action_56 (32) = happyGoto action_41+action_56 _ = happyReduce_51++action_57 _ = happyReduce_12++action_58 _ = happyReduce_13++action_59 _ = happyReduce_21++action_60 _ = happyReduce_23++action_61 _ = happyReduce_25++action_62 _ = happyReduce_26++action_63 _ = happyReduce_27++action_64 _ = happyReduce_28++action_65 _ = happyReduce_29++action_66 (74) = happyAccept+action_66 _ = happyFail (happyExpListPerState 66)++action_67 _ = happyReduce_19++action_68 _ = happyReduce_22++action_69 (74) = happyAccept+action_69 _ = happyFail (happyExpListPerState 69)++action_70 (58) = happyShift action_71+action_70 _ = happyFail (happyExpListPerState 70)++action_71 (47) = happyShift action_42+action_71 (49) = happyShift action_43+action_71 (51) = happyShift action_32+action_71 (52) = happyShift action_33+action_71 (66) = happyShift action_34+action_71 (67) = happyShift action_35+action_71 (68) = happyShift action_36+action_71 (70) = happyShift action_44+action_71 (19) = happyGoto action_25+action_71 (20) = happyGoto action_26+action_71 (21) = happyGoto action_27+action_71 (23) = happyGoto action_38+action_71 (30) = happyGoto action_39+action_71 (31) = happyGoto action_106+action_71 (32) = happyGoto action_41+action_71 _ = happyReduce_51++action_72 (59) = happyShift action_105+action_72 _ = happyFail (happyExpListPerState 72)++action_73 (38) = happyShift action_74+action_73 (40) = happyShift action_75+action_73 (41) = happyShift action_104+action_73 (42) = happyShift action_76+action_73 (43) = happyShift action_77+action_73 _ = happyFail (happyExpListPerState 73)++action_74 (47) = happyShift action_42+action_74 (49) = happyShift action_43+action_74 (51) = happyShift action_32+action_74 (52) = happyShift action_33+action_74 (66) = happyShift action_34+action_74 (67) = happyShift action_35+action_74 (68) = happyShift action_36+action_74 (70) = happyShift action_44+action_74 (19) = happyGoto action_25+action_74 (20) = happyGoto action_26+action_74 (21) = happyGoto action_27+action_74 (23) = happyGoto action_38+action_74 (30) = happyGoto action_39+action_74 (31) = happyGoto action_103+action_74 (32) = happyGoto action_41+action_74 _ = happyReduce_51++action_75 (69) = happyShift action_67+action_75 (22) = happyGoto action_102+action_75 _ = happyFail (happyExpListPerState 75)++action_76 (51) = happyShift action_32+action_76 (52) = happyShift action_33+action_76 (66) = happyShift action_34+action_76 (67) = happyShift action_35+action_76 (68) = happyShift action_36+action_76 (19) = happyGoto action_25+action_76 (20) = happyGoto action_26+action_76 (21) = happyGoto action_27+action_76 (32) = happyGoto action_101+action_76 _ = happyFail (happyExpListPerState 76)++action_77 (50) = happyShift action_100+action_77 _ = happyFail (happyExpListPerState 77)++action_78 (48) = happyShift action_52+action_78 (50) = happyShift action_53+action_78 (55) = happyShift action_54+action_78 (56) = happyShift action_55+action_78 (58) = happyShift action_56+action_78 (61) = happyShift action_12+action_78 (62) = happyShift action_57+action_78 (63) = happyShift action_58+action_78 (71) = happyShift action_59+action_78 (73) = happyShift action_60+action_78 (14) = happyGoto action_46+action_78 (15) = happyGoto action_47+action_78 (16) = happyGoto action_48+action_78 (24) = happyGoto action_49+action_78 (26) = happyGoto action_50+action_78 (29) = happyGoto action_99+action_78 _ = happyFail (happyExpListPerState 78)++action_79 (65) = happyShift action_98+action_79 (18) = happyGoto action_97+action_79 _ = happyFail (happyExpListPerState 79)++action_80 (54) = happyShift action_95+action_80 (64) = happyShift action_96+action_80 (72) = happyShift action_68+action_80 (17) = happyGoto action_93+action_80 (25) = happyGoto action_94+action_80 _ = happyFail (happyExpListPerState 80)++action_81 (48) = happyShift action_52+action_81 (50) = happyShift action_53+action_81 (54) = happyShift action_92+action_81 (55) = happyShift action_54+action_81 (56) = happyShift action_55+action_81 (58) = happyShift action_56+action_81 (61) = happyShift action_12+action_81 (62) = happyShift action_57+action_81 (63) = happyShift action_58+action_81 (71) = happyShift action_59+action_81 (73) = happyShift action_60+action_81 (14) = happyGoto action_46+action_81 (15) = happyGoto action_47+action_81 (16) = happyGoto action_48+action_81 (24) = happyGoto action_49+action_81 (26) = happyGoto action_50+action_81 (29) = happyGoto action_91+action_81 _ = happyFail (happyExpListPerState 81)++action_82 (47) = happyShift action_42+action_82 (49) = happyShift action_43+action_82 (51) = happyShift action_32+action_82 (52) = happyShift action_33+action_82 (66) = happyShift action_34+action_82 (67) = happyShift action_35+action_82 (68) = happyShift action_36+action_82 (70) = happyShift action_44+action_82 (19) = happyGoto action_25+action_82 (20) = happyGoto action_26+action_82 (21) = happyGoto action_27+action_82 (23) = happyGoto action_38+action_82 (30) = happyGoto action_39+action_82 (31) = happyGoto action_90+action_82 (32) = happyGoto action_41+action_82 _ = happyReduce_51++action_83 _ = happyReduce_62++action_84 (59) = happyShift action_89+action_84 _ = happyFail (happyExpListPerState 84)++action_85 _ = happyReduce_68++action_86 (39) = happyShift action_88+action_86 _ = happyFail (happyExpListPerState 86)++action_87 _ = happyReduce_70++action_88 _ = happyReduce_67++action_89 _ = happyReduce_63++action_90 _ = happyReduce_53++action_91 (38) = happyShift action_74+action_91 (40) = happyShift action_75+action_91 (42) = happyShift action_76+action_91 (43) = happyShift action_77+action_91 _ = happyReduce_44++action_92 _ = happyReduce_45++action_93 _ = happyReduce_46++action_94 _ = happyReduce_50++action_95 _ = happyReduce_47++action_96 _ = happyReduce_14++action_97 _ = happyReduce_48++action_98 _ = happyReduce_15++action_99 (38) = happyShift action_74+action_99 (39) = happyShift action_111+action_99 (40) = happyShift action_75+action_99 (42) = happyShift action_76+action_99 (43) = happyShift action_77+action_99 _ = happyFail (happyExpListPerState 99)++action_100 (53) = happyShift action_110+action_100 _ = happyFail (happyExpListPerState 100)++action_101 _ = happyReduce_32++action_102 _ = happyReduce_42++action_103 (39) = happyShift action_109+action_103 _ = happyFail (happyExpListPerState 103)++action_104 (48) = happyShift action_52+action_104 (50) = happyShift action_53+action_104 (55) = happyShift action_54+action_104 (56) = happyShift action_55+action_104 (58) = happyShift action_56+action_104 (61) = happyShift action_12+action_104 (62) = happyShift action_57+action_104 (63) = happyShift action_58+action_104 (71) = happyShift action_59+action_104 (73) = happyShift action_60+action_104 (14) = happyGoto action_46+action_104 (15) = happyGoto action_47+action_104 (16) = happyGoto action_48+action_104 (24) = happyGoto action_49+action_104 (26) = happyGoto action_50+action_104 (29) = happyGoto action_108+action_104 _ = happyFail (happyExpListPerState 104)++action_105 _ = happyReduce_30++action_106 (59) = happyShift action_107+action_106 _ = happyFail (happyExpListPerState 106)++action_107 (46) = happyShift action_114+action_107 _ = happyFail (happyExpListPerState 107)++action_108 (38) = happyShift action_74+action_108 (40) = happyShift action_75+action_108 (42) = happyShift action_76+action_108 (43) = happyShift action_77+action_108 (57) = happyShift action_113+action_108 _ = happyFail (happyExpListPerState 108)++action_109 _ = happyReduce_31++action_110 (48) = happyShift action_52+action_110 (50) = happyShift action_53+action_110 (55) = happyShift action_54+action_110 (56) = happyShift action_55+action_110 (58) = happyShift action_56+action_110 (61) = happyShift action_12+action_110 (62) = happyShift action_57+action_110 (63) = happyShift action_58+action_110 (71) = happyShift action_59+action_110 (73) = happyShift action_60+action_110 (14) = happyGoto action_46+action_110 (15) = happyGoto action_47+action_110 (16) = happyGoto action_48+action_110 (24) = happyGoto action_49+action_110 (26) = happyGoto action_50+action_110 (29) = happyGoto action_112+action_110 _ = happyFail (happyExpListPerState 110)++action_111 _ = happyReduce_43++action_112 (38) = happyShift action_74+action_112 (40) = happyShift action_75+action_112 (42) = happyShift action_76+action_112 (43) = happyShift action_77+action_112 (44) = happyShift action_115+action_112 _ = happyFail (happyExpListPerState 112)++action_113 _ = happyReduce_40++action_114 _ = happyReduce_24++action_115 _ = happyReduce_39++happyReduce_11 = happySpecReduce_1 14 happyReduction_11+happyReduction_11 (HappyTerminal (PT _ (TD happy_var_1)))+ = HappyAbsSyn14+ ((read happy_var_1) :: Double+ )+happyReduction_11 _ = notHappyAtAll ++happyReduce_12 = happySpecReduce_1 15 happyReduction_12+happyReduction_12 (HappyTerminal (PT _ (TI happy_var_1)))+ = HappyAbsSyn15+ ((read happy_var_1) :: Integer+ )+happyReduction_12 _ = notHappyAtAll ++happyReduce_13 = happySpecReduce_1 16 happyReduction_13+happyReduction_13 (HappyTerminal (PT _ (TL happy_var_1)))+ = HappyAbsSyn16+ (happy_var_1+ )+happyReduction_13 _ = notHappyAtAll ++happyReduce_14 = happySpecReduce_1 17 happyReduction_14+happyReduction_14 (HappyTerminal (PT _ (T_Bytes happy_var_1)))+ = HappyAbsSyn17+ (Language.EO.Phi.Syntax.Abs.Bytes happy_var_1+ )+happyReduction_14 _ = notHappyAtAll ++happyReduce_15 = happySpecReduce_1 18 happyReduction_15+happyReduction_15 (HappyTerminal (PT _ (T_Function happy_var_1)))+ = HappyAbsSyn18+ (Language.EO.Phi.Syntax.Abs.Function happy_var_1+ )+happyReduction_15 _ = notHappyAtAll ++happyReduce_16 = happySpecReduce_1 19 happyReduction_16+happyReduction_16 (HappyTerminal (PT _ (T_LabelId happy_var_1)))+ = HappyAbsSyn19+ (Language.EO.Phi.Syntax.Abs.LabelId happy_var_1+ )+happyReduction_16 _ = notHappyAtAll ++happyReduce_17 = happySpecReduce_1 20 happyReduction_17+happyReduction_17 (HappyTerminal (PT _ (T_AlphaIndex happy_var_1)))+ = HappyAbsSyn20+ (Language.EO.Phi.Syntax.Abs.AlphaIndex happy_var_1+ )+happyReduction_17 _ = notHappyAtAll ++happyReduce_18 = happySpecReduce_1 21 happyReduction_18+happyReduction_18 (HappyTerminal (PT _ (T_LabelMetaId happy_var_1)))+ = HappyAbsSyn21+ (Language.EO.Phi.Syntax.Abs.LabelMetaId happy_var_1+ )+happyReduction_18 _ = notHappyAtAll ++happyReduce_19 = happySpecReduce_1 22 happyReduction_19+happyReduction_19 (HappyTerminal (PT _ (T_TailMetaId happy_var_1)))+ = HappyAbsSyn22+ (Language.EO.Phi.Syntax.Abs.TailMetaId happy_var_1+ )+happyReduction_19 _ = notHappyAtAll ++happyReduce_20 = happySpecReduce_1 23 happyReduction_20+happyReduction_20 (HappyTerminal (PT _ (T_BindingsMetaId happy_var_1)))+ = HappyAbsSyn23+ (Language.EO.Phi.Syntax.Abs.BindingsMetaId happy_var_1+ )+happyReduction_20 _ = notHappyAtAll ++happyReduce_21 = happySpecReduce_1 24 happyReduction_21+happyReduction_21 (HappyTerminal (PT _ (T_ObjectMetaId happy_var_1)))+ = HappyAbsSyn24+ (Language.EO.Phi.Syntax.Abs.ObjectMetaId happy_var_1+ )+happyReduction_21 _ = notHappyAtAll ++happyReduce_22 = happySpecReduce_1 25 happyReduction_22+happyReduction_22 (HappyTerminal (PT _ (T_BytesMetaId happy_var_1)))+ = HappyAbsSyn25+ (Language.EO.Phi.Syntax.Abs.BytesMetaId happy_var_1+ )+happyReduction_22 _ = notHappyAtAll ++happyReduce_23 = happySpecReduce_1 26 happyReduction_23+happyReduction_23 (HappyTerminal (PT _ (T_MetaFunctionName happy_var_1)))+ = HappyAbsSyn26+ (Language.EO.Phi.Syntax.Abs.MetaFunctionName happy_var_1+ )+happyReduction_23 _ = notHappyAtAll ++happyReduce_24 = happyReduce 5 27 happyReduction_24+happyReduction_24 (_ `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn31 happy_var_3) `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn27+ (Language.EO.Phi.Syntax.Abs.Program happy_var_3+ ) `HappyStk` happyRest++happyReduce_25 = happySpecReduce_1 28 happyReduction_25+happyReduction_25 (HappyAbsSyn21 happy_var_1)+ = HappyAbsSyn28+ (Language.EO.Phi.Syntax.Abs.MetaIdLabel happy_var_1+ )+happyReduction_25 _ = notHappyAtAll ++happyReduce_26 = happySpecReduce_1 28 happyReduction_26+happyReduction_26 (HappyAbsSyn22 happy_var_1)+ = HappyAbsSyn28+ (Language.EO.Phi.Syntax.Abs.MetaIdTail happy_var_1+ )+happyReduction_26 _ = notHappyAtAll ++happyReduce_27 = happySpecReduce_1 28 happyReduction_27+happyReduction_27 (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn28+ (Language.EO.Phi.Syntax.Abs.MetaIdBindings happy_var_1+ )+happyReduction_27 _ = notHappyAtAll ++happyReduce_28 = happySpecReduce_1 28 happyReduction_28+happyReduction_28 (HappyAbsSyn24 happy_var_1)+ = HappyAbsSyn28+ (Language.EO.Phi.Syntax.Abs.MetaIdObject happy_var_1+ )+happyReduction_28 _ = notHappyAtAll ++happyReduce_29 = happySpecReduce_1 28 happyReduction_29+happyReduction_29 (HappyAbsSyn25 happy_var_1)+ = HappyAbsSyn28+ (Language.EO.Phi.Syntax.Abs.MetaIdBytes happy_var_1+ )+happyReduction_29 _ = notHappyAtAll ++happyReduce_30 = happySpecReduce_3 29 happyReduction_30+happyReduction_30 _+ (HappyAbsSyn31 happy_var_2)+ _+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.Formation happy_var_2+ )+happyReduction_30 _ _ _ = notHappyAtAll ++happyReduce_31 = happyReduce 4 29 happyReduction_31+happyReduction_31 (_ `HappyStk`+ (HappyAbsSyn31 happy_var_3) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn29 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.Application happy_var_1 happy_var_3+ ) `HappyStk` happyRest++happyReduce_32 = happySpecReduce_3 29 happyReduction_32+happyReduction_32 (HappyAbsSyn32 happy_var_3)+ _+ (HappyAbsSyn29 happy_var_1)+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.ObjectDispatch happy_var_1 happy_var_3+ )+happyReduction_32 _ _ _ = notHappyAtAll ++happyReduce_33 = happySpecReduce_1 29 happyReduction_33+happyReduction_33 _+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.GlobalObject+ )++happyReduce_34 = happySpecReduce_1 29 happyReduction_34+happyReduction_34 _+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.ThisObject+ )++happyReduce_35 = happySpecReduce_1 29 happyReduction_35+happyReduction_35 _+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.Termination+ )++happyReduce_36 = happySpecReduce_1 29 happyReduction_36+happyReduction_36 (HappyAbsSyn16 happy_var_1)+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.ConstString happy_var_1+ )+happyReduction_36 _ = notHappyAtAll ++happyReduce_37 = happySpecReduce_1 29 happyReduction_37+happyReduction_37 (HappyAbsSyn15 happy_var_1)+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.ConstInt happy_var_1+ )+happyReduction_37 _ = notHappyAtAll ++happyReduce_38 = happySpecReduce_1 29 happyReduction_38+happyReduction_38 (HappyAbsSyn14 happy_var_1)+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.ConstFloat happy_var_1+ )+happyReduction_38 _ = notHappyAtAll ++happyReduce_39 = happyReduce 6 29 happyReduction_39+happyReduction_39 (_ `HappyStk`+ (HappyAbsSyn29 happy_var_5) `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn29 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.MetaSubstThis happy_var_1 happy_var_5+ ) `HappyStk` happyRest++happyReduce_40 = happyReduce 5 29 happyReduction_40+happyReduction_40 (_ `HappyStk`+ (HappyAbsSyn29 happy_var_4) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn29 happy_var_2) `HappyStk`+ _ `HappyStk`+ happyRest)+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.MetaContextualize happy_var_2 happy_var_4+ ) `HappyStk` happyRest++happyReduce_41 = happySpecReduce_1 29 happyReduction_41+happyReduction_41 (HappyAbsSyn24 happy_var_1)+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.MetaObject happy_var_1+ )+happyReduction_41 _ = notHappyAtAll ++happyReduce_42 = happySpecReduce_3 29 happyReduction_42+happyReduction_42 (HappyAbsSyn22 happy_var_3)+ _+ (HappyAbsSyn29 happy_var_1)+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.MetaTailContext happy_var_1 happy_var_3+ )+happyReduction_42 _ _ _ = notHappyAtAll ++happyReduce_43 = happyReduce 4 29 happyReduction_43+happyReduction_43 (_ `HappyStk`+ (HappyAbsSyn29 happy_var_3) `HappyStk`+ _ `HappyStk`+ (HappyAbsSyn26 happy_var_1) `HappyStk`+ happyRest)+ = HappyAbsSyn29+ (Language.EO.Phi.Syntax.Abs.MetaFunction happy_var_1 happy_var_3+ ) `HappyStk` happyRest++happyReduce_44 = happySpecReduce_3 30 happyReduction_44+happyReduction_44 (HappyAbsSyn29 happy_var_3)+ _+ (HappyAbsSyn32 happy_var_1)+ = HappyAbsSyn30+ (Language.EO.Phi.Syntax.Abs.AlphaBinding happy_var_1 happy_var_3+ )+happyReduction_44 _ _ _ = notHappyAtAll ++happyReduce_45 = happySpecReduce_3 30 happyReduction_45+happyReduction_45 _+ _+ (HappyAbsSyn32 happy_var_1)+ = HappyAbsSyn30+ (Language.EO.Phi.Syntax.Abs.EmptyBinding happy_var_1+ )+happyReduction_45 _ _ _ = notHappyAtAll ++happyReduce_46 = happySpecReduce_3 30 happyReduction_46+happyReduction_46 (HappyAbsSyn17 happy_var_3)+ _+ _+ = HappyAbsSyn30+ (Language.EO.Phi.Syntax.Abs.DeltaBinding happy_var_3+ )+happyReduction_46 _ _ _ = notHappyAtAll ++happyReduce_47 = happySpecReduce_3 30 happyReduction_47+happyReduction_47 _+ _+ _+ = HappyAbsSyn30+ (Language.EO.Phi.Syntax.Abs.DeltaEmptyBinding+ )++happyReduce_48 = happySpecReduce_3 30 happyReduction_48+happyReduction_48 (HappyAbsSyn18 happy_var_3)+ _+ _+ = HappyAbsSyn30+ (Language.EO.Phi.Syntax.Abs.LambdaBinding happy_var_3+ )+happyReduction_48 _ _ _ = notHappyAtAll ++happyReduce_49 = happySpecReduce_1 30 happyReduction_49+happyReduction_49 (HappyAbsSyn23 happy_var_1)+ = HappyAbsSyn30+ (Language.EO.Phi.Syntax.Abs.MetaBindings happy_var_1+ )+happyReduction_49 _ = notHappyAtAll ++happyReduce_50 = happySpecReduce_3 30 happyReduction_50+happyReduction_50 (HappyAbsSyn25 happy_var_3)+ _+ _+ = HappyAbsSyn30+ (Language.EO.Phi.Syntax.Abs.MetaDeltaBinding happy_var_3+ )+happyReduction_50 _ _ _ = notHappyAtAll ++happyReduce_51 = happySpecReduce_0 31 happyReduction_51+happyReduction_51 = HappyAbsSyn31+ ([]+ )++happyReduce_52 = happySpecReduce_1 31 happyReduction_52+happyReduction_52 (HappyAbsSyn30 happy_var_1)+ = HappyAbsSyn31+ ((:[]) happy_var_1+ )+happyReduction_52 _ = notHappyAtAll ++happyReduce_53 = happySpecReduce_3 31 happyReduction_53+happyReduction_53 (HappyAbsSyn31 happy_var_3)+ _+ (HappyAbsSyn30 happy_var_1)+ = HappyAbsSyn31+ ((:) happy_var_1 happy_var_3+ )+happyReduction_53 _ _ _ = notHappyAtAll ++happyReduce_54 = happySpecReduce_1 32 happyReduction_54+happyReduction_54 _+ = HappyAbsSyn32+ (Language.EO.Phi.Syntax.Abs.Phi+ )++happyReduce_55 = happySpecReduce_1 32 happyReduction_55+happyReduction_55 _+ = HappyAbsSyn32+ (Language.EO.Phi.Syntax.Abs.Rho+ )++happyReduce_56 = happySpecReduce_1 32 happyReduction_56+happyReduction_56 (HappyAbsSyn19 happy_var_1)+ = HappyAbsSyn32+ (Language.EO.Phi.Syntax.Abs.Label happy_var_1+ )+happyReduction_56 _ = notHappyAtAll ++happyReduce_57 = happySpecReduce_1 32 happyReduction_57+happyReduction_57 (HappyAbsSyn20 happy_var_1)+ = HappyAbsSyn32+ (Language.EO.Phi.Syntax.Abs.Alpha happy_var_1+ )+happyReduction_57 _ = notHappyAtAll ++happyReduce_58 = happySpecReduce_1 32 happyReduction_58+happyReduction_58 (HappyAbsSyn21 happy_var_1)+ = HappyAbsSyn32+ (Language.EO.Phi.Syntax.Abs.MetaAttr happy_var_1+ )+happyReduction_58 _ = notHappyAtAll ++happyReduce_59 = happySpecReduce_1 33 happyReduction_59+happyReduction_59 (HappyAbsSyn32 happy_var_1)+ = HappyAbsSyn33+ (Language.EO.Phi.Syntax.Abs.ObjectAttr happy_var_1+ )+happyReduction_59 _ = notHappyAtAll ++happyReduce_60 = happySpecReduce_1 33 happyReduction_60+happyReduction_60 _+ = HappyAbsSyn33+ (Language.EO.Phi.Syntax.Abs.DeltaAttr+ )++happyReduce_61 = happySpecReduce_1 33 happyReduction_61+happyReduction_61 _+ = HappyAbsSyn33+ (Language.EO.Phi.Syntax.Abs.LambdaAttr+ )++happyReduce_62 = happySpecReduce_2 34 happyReduction_62+happyReduction_62 (HappyAbsSyn37 happy_var_2)+ (HappyAbsSyn35 happy_var_1)+ = HappyAbsSyn34+ (Language.EO.Phi.Syntax.Abs.PeeledObject happy_var_1 happy_var_2+ )+happyReduction_62 _ _ = notHappyAtAll ++happyReduce_63 = happySpecReduce_3 35 happyReduction_63+happyReduction_63 _+ (HappyAbsSyn31 happy_var_2)+ _+ = HappyAbsSyn35+ (Language.EO.Phi.Syntax.Abs.HeadFormation happy_var_2+ )+happyReduction_63 _ _ _ = notHappyAtAll ++happyReduce_64 = happySpecReduce_1 35 happyReduction_64+happyReduction_64 _+ = HappyAbsSyn35+ (Language.EO.Phi.Syntax.Abs.HeadGlobal+ )++happyReduce_65 = happySpecReduce_1 35 happyReduction_65+happyReduction_65 _+ = HappyAbsSyn35+ (Language.EO.Phi.Syntax.Abs.HeadThis+ )++happyReduce_66 = happySpecReduce_1 35 happyReduction_66+happyReduction_66 _+ = HappyAbsSyn35+ (Language.EO.Phi.Syntax.Abs.HeadTermination+ )++happyReduce_67 = happySpecReduce_3 36 happyReduction_67+happyReduction_67 _+ (HappyAbsSyn31 happy_var_2)+ _+ = HappyAbsSyn36+ (Language.EO.Phi.Syntax.Abs.ActionApplication happy_var_2+ )+happyReduction_67 _ _ _ = notHappyAtAll ++happyReduce_68 = happySpecReduce_2 36 happyReduction_68+happyReduction_68 (HappyAbsSyn32 happy_var_2)+ _+ = HappyAbsSyn36+ (Language.EO.Phi.Syntax.Abs.ActionDispatch happy_var_2+ )+happyReduction_68 _ _ = notHappyAtAll ++happyReduce_69 = happySpecReduce_0 37 happyReduction_69+happyReduction_69 = HappyAbsSyn37+ ([]+ )++happyReduce_70 = happySpecReduce_2 37 happyReduction_70+happyReduction_70 (HappyAbsSyn37 happy_var_2)+ (HappyAbsSyn36 happy_var_1)+ = HappyAbsSyn37+ ((:) happy_var_1 happy_var_2+ )+happyReduction_70 _ _ = notHappyAtAll ++happyNewToken action sts stk [] =+ action 74 74 notHappyAtAll (HappyState action) sts stk []++happyNewToken action sts stk (tk:tks) =+ let cont i = action i i tk (HappyState action) sts stk tks in+ case tk of {+ PT _ (TS _ 1) -> cont 38;+ PT _ (TS _ 2) -> cont 39;+ PT _ (TS _ 3) -> cont 40;+ PT _ (TS _ 4) -> cont 41;+ PT _ (TS _ 5) -> cont 42;+ PT _ (TS _ 6) -> cont 43;+ PT _ (TS _ 7) -> cont 44;+ PT _ (TS _ 8) -> cont 45;+ PT _ (TS _ 9) -> cont 46;+ PT _ (TS _ 10) -> cont 47;+ PT _ (TS _ 11) -> cont 48;+ PT _ (TS _ 12) -> cont 49;+ PT _ (TS _ 13) -> cont 50;+ PT _ (TS _ 14) -> cont 51;+ PT _ (TS _ 15) -> cont 52;+ PT _ (TS _ 16) -> cont 53;+ PT _ (TS _ 17) -> cont 54;+ PT _ (TS _ 18) -> cont 55;+ PT _ (TS _ 19) -> cont 56;+ PT _ (TS _ 20) -> cont 57;+ PT _ (TS _ 21) -> cont 58;+ PT _ (TS _ 22) -> cont 59;+ PT _ (TS _ 23) -> cont 60;+ PT _ (TD happy_dollar_dollar) -> cont 61;+ PT _ (TI happy_dollar_dollar) -> cont 62;+ PT _ (TL happy_dollar_dollar) -> cont 63;+ PT _ (T_Bytes happy_dollar_dollar) -> cont 64;+ PT _ (T_Function happy_dollar_dollar) -> cont 65;+ PT _ (T_LabelId happy_dollar_dollar) -> cont 66;+ PT _ (T_AlphaIndex happy_dollar_dollar) -> cont 67;+ PT _ (T_LabelMetaId happy_dollar_dollar) -> cont 68;+ PT _ (T_TailMetaId happy_dollar_dollar) -> cont 69;+ PT _ (T_BindingsMetaId happy_dollar_dollar) -> cont 70;+ PT _ (T_ObjectMetaId happy_dollar_dollar) -> cont 71;+ PT _ (T_BytesMetaId happy_dollar_dollar) -> cont 72;+ PT _ (T_MetaFunctionName happy_dollar_dollar) -> cont 73;+ _ -> happyError' ((tk:tks), [])+ }++happyError_ explist 74 tk tks = happyError' (tks, explist)+happyError_ explist _ tk tks = happyError' ((tk:tks), explist)++happyThen :: () => Err a -> (a -> Err b) -> Err b+happyThen = ((>>=))+happyReturn :: () => a -> Err a+happyReturn = (return)+happyThen1 m k tks = ((>>=)) m (\a -> k a tks)+happyReturn1 :: () => a -> b -> Err a+happyReturn1 = \a tks -> (return) a+happyError' :: () => ([(Token)], [Prelude.String]) -> Err a+happyError' = (\(tokens, _) -> happyError tokens)+pProgram tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_0 tks) (\x -> case x of {HappyAbsSyn27 z -> happyReturn z; _other -> notHappyAtAll })++pMetaId tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_1 tks) (\x -> case x of {HappyAbsSyn28 z -> happyReturn z; _other -> notHappyAtAll })++pObject tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_2 tks) (\x -> case x of {HappyAbsSyn29 z -> happyReturn z; _other -> notHappyAtAll })++pBinding tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_3 tks) (\x -> case x of {HappyAbsSyn30 z -> happyReturn z; _other -> notHappyAtAll })++pListBinding tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_4 tks) (\x -> case x of {HappyAbsSyn31 z -> happyReturn z; _other -> notHappyAtAll })++pAttribute tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_5 tks) (\x -> case x of {HappyAbsSyn32 z -> happyReturn z; _other -> notHappyAtAll })++pRuleAttribute tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_6 tks) (\x -> case x of {HappyAbsSyn33 z -> happyReturn z; _other -> notHappyAtAll })++pPeeledObject tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_7 tks) (\x -> case x of {HappyAbsSyn34 z -> happyReturn z; _other -> notHappyAtAll })++pObjectHead tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_8 tks) (\x -> case x of {HappyAbsSyn35 z -> happyReturn z; _other -> notHappyAtAll })++pObjectAction tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_9 tks) (\x -> case x of {HappyAbsSyn36 z -> happyReturn z; _other -> notHappyAtAll })++pListObjectAction tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_10 tks) (\x -> case x of {HappyAbsSyn37 z -> happyReturn z; _other -> notHappyAtAll }) happySeq = happyDontSeq
src/Language/EO/Phi/Syntax/Par.y view
@@ -66,6 +66,9 @@ '⟦' { PT _ (TS _ 21) } '⟧' { PT _ (TS _ 22) } '⤍' { PT _ (TS _ 23) }+ L_doubl { PT _ (TD $$) }+ L_integ { PT _ (TI $$) }+ L_quoted { PT _ (TL $$) } L_Bytes { PT _ (T_Bytes $$) } L_Function { PT _ (T_Function $$) } L_LabelId { PT _ (T_LabelId $$) }@@ -79,6 +82,15 @@ %% +Double :: { Double }+Double : L_doubl { (read $1) :: Double }++Integer :: { Integer }+Integer : L_integ { (read $1) :: Integer }++String :: { String }+String : L_quoted { $1 }+ Bytes :: { Language.EO.Phi.Syntax.Abs.Bytes } Bytes : L_Bytes { Language.EO.Phi.Syntax.Abs.Bytes $1 } @@ -129,6 +141,9 @@ | 'Φ' { Language.EO.Phi.Syntax.Abs.GlobalObject } | 'ξ' { Language.EO.Phi.Syntax.Abs.ThisObject } | '⊥' { Language.EO.Phi.Syntax.Abs.Termination }+ | String { Language.EO.Phi.Syntax.Abs.ConstString $1 }+ | Integer { Language.EO.Phi.Syntax.Abs.ConstInt $1 }+ | Double { Language.EO.Phi.Syntax.Abs.ConstFloat $1 } | Object '[' 'ξ' '↦' Object ']' { Language.EO.Phi.Syntax.Abs.MetaSubstThis $1 $5 } | '⌈' Object ',' Object '⌉' { Language.EO.Phi.Syntax.Abs.MetaContextualize $2 $4 } | ObjectMetaId { Language.EO.Phi.Syntax.Abs.MetaObject $1 }
src/Language/EO/Phi/Syntax/Print.hs view
@@ -210,6 +210,9 @@ Language.EO.Phi.Syntax.Abs.GlobalObject -> prPrec i 0 (concatD [doc (showString "\934")]) Language.EO.Phi.Syntax.Abs.ThisObject -> prPrec i 0 (concatD [doc (showString "\958")]) Language.EO.Phi.Syntax.Abs.Termination -> prPrec i 0 (concatD [doc (showString "\8869")])+ Language.EO.Phi.Syntax.Abs.ConstString str -> prPrec i 0 (concatD [printString str])+ Language.EO.Phi.Syntax.Abs.ConstInt n -> prPrec i 0 (concatD [prt 0 n])+ Language.EO.Phi.Syntax.Abs.ConstFloat d -> prPrec i 0 (concatD [prt 0 d]) Language.EO.Phi.Syntax.Abs.MetaSubstThis object1 object2 -> prPrec i 0 (concatD [prt 0 object1, doc (showString "["), doc (showString "\958"), doc (showString "\8614"), prt 0 object2, doc (showString "]")]) Language.EO.Phi.Syntax.Abs.MetaContextualize object1 object2 -> prPrec i 0 (concatD [doc (showString "\8968"), prt 0 object1, doc (showString ","), prt 0 object2, doc (showString "\8969")]) Language.EO.Phi.Syntax.Abs.MetaObject objectmetaid -> prPrec i 0 (concatD [prt 0 objectmetaid])
src/Language/EO/Phi/ToLaTeX.hs view
@@ -83,6 +83,9 @@ toLatex (MetaFunction _ _) = error "rendering MetaFunction in LaTex format" toLatex (MetaSubstThis obj1 obj2) = LaTeX "\\mathbb{S}(" <> toLatex obj1 <> ", " <> toLatex obj2 <> ")" toLatex (MetaContextualize obj1 obj2) = LaTeX "\\lceil" <> toLatex obj1 <> ", " <> toLatex obj2 <> "\\rceil"+ toLatex (ConstString string) = "|" <> LaTeX (show string) <> "|"+ toLatex (ConstInt n) = LaTeX (show n)+ toLatex (ConstFloat x) = LaTeX (show x) removeOrgEolang :: String -> String removeOrgEolang = T.unpack . T.replace "Q.org.eolang" "QQ" . T.pack@@ -108,7 +111,7 @@ instance ToLatex RuleContext where toLatex RuleContext{..} = maybe mempty (\x -> inMathMode $ toLatex GlobalObject <> " -> " <> toLatex x) global_object- <> maybe mempty (\x -> (inMathMode $ toLatex x) <> " is the scope of the redex") current_object+ <> maybe mempty (\x -> inMathMode (toLatex x) <> " is the scope of the redex") current_object <> maybe mempty (\x -> toLatex x <> " is the current attribute") current_attribute instance ToLatex RuleAttribute where
test/Language/EO/Rules/PhiPaperSpec.hs view
@@ -46,9 +46,9 @@ import Data.Yaml qualified as Yaml import GHC.Generics (Generic) import Language.EO.Phi.Dataize.Context (defaultContext)-import Language.EO.Phi.Rules.Common (ApplicationLimits (..), NamedRule, applyOneRule, defaultApplicationLimits, equalObject, intToBytes, objectSize)+import Language.EO.Phi.Rules.Common (ApplicationLimits (..), NamedRule, applyOneRule, defaultApplicationLimits, equalObject, objectSize) import Language.EO.Phi.Rules.Yaml (convertRuleNamed, parseRuleSetFromFile, rules)-import Language.EO.Phi.Syntax (printTree)+import Language.EO.Phi.Syntax (intToBytes, printTree) import Language.EO.Phi.Syntax.Abs as Phi import Test.Hspec import Test.QuickCheck
test/Main.hs view
@@ -23,9 +23,9 @@ {- FOURMOLU_ENABLE -} module Main where -import Main.Utf8+import Language.EO.Locale (withCorrectLocale) import Spec qualified import Test.Hspec.Runner main :: IO ()-main = withUtf8 $ hspecWith defaultConfig Spec.spec+main = withCorrectLocale $ hspecWith defaultConfig Spec.spec