eo-phi-normalizer 2.0.0 → 2.1.0
raw patch · 44 files changed
+22286/−21234 lines, 44 filessetup-changed
Files
- CHANGELOG.md +23/−1
- Setup.hs +45/−6
- app/Main.hs +37/−13
- eo-phi-normalizer.cabal +1/−1
- grammar/EO/Phi/Syntax.cf +33/−10
- src/Language/EO/Phi.hs +23/−0
- src/Language/EO/Phi/Dataize.hs +23/−0
- src/Language/EO/Phi/Dataize/Atoms.hs +23/−0
- src/Language/EO/Phi/Dataize/Context.hs +23/−0
- src/Language/EO/Phi/Dependencies.hs +23/−0
- src/Language/EO/Phi/Metrics/Collect.hs +23/−0
- src/Language/EO/Phi/Metrics/Data.hs +23/−0
- src/Language/EO/Phi/Normalize.hs +24/−0
- src/Language/EO/Phi/Pipeline/Config.hs +23/−0
- src/Language/EO/Phi/Pipeline/Dataize/PrintConfigs.hs +23/−0
- src/Language/EO/Phi/Pipeline/EOTests/Data.hs +23/−0
- src/Language/EO/Phi/Pipeline/EOTests/PrepareTests.hs +23/−0
- src/Language/EO/Phi/Report/Data.hs +23/−0
- src/Language/EO/Phi/Report/Html.hs +23/−0
- src/Language/EO/Phi/Rules/Common.hs +25/−0
- src/Language/EO/Phi/Rules/Fast.hs +24/−0
- src/Language/EO/Phi/Rules/PhiPaper.hs +23/−0
- src/Language/EO/Phi/Rules/RunYegor.hs +23/−0
- src/Language/EO/Phi/Rules/Yaml.hs +57/−1
- src/Language/EO/Phi/Syntax.hs +23/−0
- src/Language/EO/Phi/Syntax/Abs.hs +34/−0
- src/Language/EO/Phi/Syntax/Lex.hs +20835/−20830
- src/Language/EO/Phi/Syntax/Lex.x +11/−9
- src/Language/EO/Phi/Syntax/Par.hs +412/−349
- src/Language/EO/Phi/Syntax/Par.y +6/−3
- src/Language/EO/Phi/Syntax/Print.hs +34/−0
- src/Language/EO/Phi/TH.hs +23/−0
- src/Language/EO/Phi/ToLaTeX.hs +24/−0
- src/Language/EO/Test/Yaml.hs +23/−0
- src/Language/EO/Test/YamlSpec.hs +23/−0
- test/Language/EO/Phi/DataizeSpec.hs +23/−0
- test/Language/EO/PhiSpec.hs +23/−0
- test/Language/EO/Rules/PhiPaperSpec.hs +39/−11
- test/Language/EO/YamlSpec.hs +24/−0
- test/Main.hs +23/−0
- test/Spec.hs +23/−0
- test/Test/EO/Phi.hs +23/−0
- test/Test/Metrics/Phi.hs +23/−0
- test/doctests/Main.hs +23/−0
CHANGELOG.md view
@@ -6,11 +6,31 @@ and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## v2.1.0 - 2024-11-22++## Breaking changes++- Rename `transform` to `rewrite` in the `eo-phi-normalizer` CLI ([#369](https://github.com/objectionary/eo-phi-normalizer/pull/369))++## New++- Add new rules ([#523](https://github.com/objectionary/eo-phi-normalizer/pull/523))+- Add new rules tests ([#540](https://github.com/objectionary/eo-phi-normalizer/pull/540))++### Documentation and maintenance++- Annotate files with copyright ([#536](https://github.com/objectionary/eo-phi-normalizer/pull/536))+- Move docs for user-defined rules to a separate page ([#524](https://github.com/objectionary/eo-phi-normalizer/pull/524))+- Document the release procedure ([#532](https://github.com/objectionary/eo-phi-normalizer/pull/532))+ ## v2.0.0 - 2024-11-18 -### New+## Breaking changes - Rename `normalizer` to `eo-phi-normalizer` everywhere ([#494](https://github.com/objectionary/eo-phi-normalizer/pull/494))++### New+ - Add `eo-phi-normalizer version` command ([#493](https://github.com/objectionary/eo-phi-normalizer/pull/493)) - Add `eo-phi-normalizer test` command ([#498](https://github.com/objectionary/eo-phi-normalizer/pull/498)) @@ -84,6 +104,7 @@ - Undo injection of top-level Package lambda ([#392](https://github.com/objectionary/eo-phi-normalizer/pull/392)) - Fix dataization ([#395](https://github.com/objectionary/eo-phi-normalizer/pull/395))+ - Fix dataization inside $\varphi$ when `--minimize-stuck-terms` is enabled (closes [#393](https://github.com/objectionary/eo-phi-normalizer/pull/393)) - Fix evaluation of atoms stuck on other atoms (fixes `while-dataizes-only-first-cycle` in `while-tests.phi`) - Improve pretty-printing (closes [#292](https://github.com/objectionary/eo-phi-normalizer/pull/292))@@ -91,6 +112,7 @@ - Fix pipeline script to run tests on normalized EO ([#396](https://github.com/objectionary/eo-phi-normalizer/pull/396)) - Changes to normalizer ([#396](https://github.com/objectionary/eo-phi-normalizer/pull/396))+ - Add `--wrap-raw-bytes` to automatically convert raw bytes (and terminations) in the output. This is a temporary fix, pending the change mentioned in <https://github.com/objectionary/eo/issues/3213#issuecomment-2150032168> - Fix builtin normalizer to produce termination in some situations - Fix dataization inside application/dispatch
Setup.hs view
@@ -1,3 +1,26 @@+{- 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 CPP #-} {-# LANGUAGE QuasiQuotes #-} @@ -13,6 +36,8 @@ import PyF (fmt) import System.Exit (ExitCode (..)) import System.Process (callCommand)+import Text.Printf (printf)+import Control.Exception (evaluate) -- | Run BNFC, happy, and alex on the grammar before the actual build step. --@@ -31,22 +56,36 @@ 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)+ 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"- ]+ [ "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} '|] putStrLn fullCommand _ <- callCommand fullCommand+ _ <- addLicense "Abs.hs"+ _ <- addLicense "Print.hs" postConf simpleUserHooks args flags packageDesc localBuildInfo }
app/Main.hs view
@@ -1,3 +1,26 @@+{- 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 ApplicativeDo #-} {-# LANGUAGE BlockArguments #-} {-# LANGUAGE ConstraintKinds #-}@@ -68,7 +91,7 @@ import System.IO (IOMode (WriteMode), getContents', hFlush, hPutStr, hPutStrLn, openFile, stdout) import Test.Hspec.Core.Runner -data CLI'TransformPhi = CLI'TransformPhi+data CLI'RewritePhi = CLI'RewritePhi { chain :: Bool , rulesPath :: Maybe String , outputFile :: Maybe String@@ -139,7 +162,7 @@ deriving stock (Show) data CLI- = CLI'TransformPhi' CLI'TransformPhi+ = CLI'RewritePhi' CLI'RewritePhi | CLI'DataizePhi' CLI'DataizePhi | CLI'MetricsPhi' CLI'MetricsPhi | CLI'PrintRules' CLI'PrintRules@@ -239,7 +262,7 @@ data CommandParser = CommandParser { metrics :: Parser CLI'MetricsPhi- , transform :: Parser CLI'TransformPhi+ , rewrite :: Parser CLI'RewritePhi , dataize :: Parser CLI'DataizePhi , pipeline :: Parser CLI'Pipeline , pipeline' :: CommandParser'Pipeline@@ -261,9 +284,9 @@ latex <- latexSwitch compact <- compactSwitch pure CLI'PrintRules{..}- transform = do+ rewrite = do rulesPath <- optional $ strOption (long "rules" <> short 'r' <> metavar.file <> help [fmt|{metavarName.file} with user-defined rules. If unspecified, builtin set of rules is used.|])- chain <- switch (long "chain" <> short 'c' <> help "Output transformation steps.")+ chain <- switch (long "chain" <> short 'c' <> help "Output rewriting steps.") json <- jsonSwitch latex <- latexSwitch outputFile <- outputFileOption@@ -276,7 +299,7 @@ in option auto (long "max-growth-factor" <> metavar.int <> value maxValue <> help [fmt|The factor by which to allow the input term to grow before stopping. Defaults to {maxValue}.|]) inputFile <- inputFileArg dependencies <- dependenciesArg- pure CLI'TransformPhi{..}+ pure CLI'RewritePhi{..} dataize = do rulesPath <- optional $ strOption (long "rules" <> short 'r' <> metavar.file <> help [fmt|{metavarName.file} with user-defined rules. If unspecified, builtin set of rules is used.|]) inputFile <- inputFileArg@@ -323,7 +346,7 @@ data CommandParserInfo = CommandParserInfo { metrics :: ParserInfo CLI- , transform :: ParserInfo CLI+ , rewrite :: ParserInfo CLI , dataize :: ParserInfo CLI , printRules :: ParserInfo CLI , pipeline :: ParserInfo CLI@@ -335,7 +358,7 @@ commandParserInfo = CommandParserInfo { metrics = info (CLI'MetricsPhi' <$> commandParser.metrics) (progDesc "Collect metrics for a PHI program.")- , transform = info (CLI'TransformPhi' <$> commandParser.transform) (progDesc "Transform a PHI program.")+ , rewrite = info (CLI'RewritePhi' <$> commandParser.rewrite) (progDesc "Rewrite a PHI program.") , dataize = info (CLI'DataizePhi' <$> commandParser.dataize) (progDesc "Dataize a PHI program.") , printRules = info (CLI'PrintRules' <$> commandParser.printRules) (progDesc "Print rules in LaTeX format.") , pipeline = info (CLI'Pipeline' <$> commandParser.pipeline) (progDesc "Run pipeline-related commands.")@@ -355,7 +378,7 @@ } data CommandNames = CommandNames- { transform :: String+ { rewrite :: String , metrics :: String , dataize :: String , printRules :: String@@ -367,7 +390,7 @@ commandNames :: CommandNames commandNames = CommandNames- { transform = "transform"+ { rewrite = "rewrite" , metrics = "metrics" , dataize = "dataize" , printRules = "print-rules"@@ -384,7 +407,7 @@ cli :: Parser CLI cli = hsubparser- ( command commandNames.transform commandParserInfo.transform+ ( command commandNames.rewrite commandParserInfo.rewrite <> command commandNames.metrics commandParserInfo.metrics <> command commandNames.dataize commandParserInfo.dataize <> command commandNames.pipeline commandParserInfo.pipeline@@ -529,6 +552,7 @@ ThisObject -> ThisObject Termination -> wrapTermination obj@MetaSubstThis{} -> obj+ obj@MetaContextualize{} -> obj obj@MetaObject{} -> obj obj@MetaTailContext{} -> obj obj@MetaFunction{} -> obj@@ -552,11 +576,11 @@ rules <- rules <$> maybe (return yegorRuleSet) parseRuleSetFromFile rulesPath let toLatex' = if compact then rulesToLatexCompact else toLatex logStrLn $ show $ toLatex' rules- CLI'TransformPhi' CLI'TransformPhi{..} -> do+ CLI'RewritePhi' CLI'RewritePhi{..} -> do program' <- getProgram inputFile deps <- mapM (getProgram . Just) dependencies (logStrLn, logStr) <- getLoggers outputFile- -- logStrLn "Running transform"+ -- logStrLn "Running rewrite" (builtin, ruleSetTitle, rules) <- case rulesPath of Just path -> do
eo-phi-normalizer.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: eo-phi-normalizer-version: 2.0.0+version: 2.1.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
grammar/EO/Phi/Syntax.cf view
@@ -1,3 +1,25 @@+-- 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.+ -- ========================================================== -- BNFC grammar for φ-programs (translated from EO) -- ==========================================================@@ -26,16 +48,17 @@ MetaIdObject. MetaId ::= ObjectMetaId ; MetaIdBytes. MetaId ::= BytesMetaId ; -Formation. Object ::= "⟦" [Binding] "⟧" ;-Application. Object ::= Object "(" [Binding] ")" ;-ObjectDispatch. Object ::= Object "." Attribute ;-GlobalObject. Object ::= "Φ";-ThisObject. Object ::= "ξ";-Termination. Object ::= "⊥" ;-MetaSubstThis. Object ::= Object "[" "ξ" "↦" Object "]" ;-MetaObject. Object ::= ObjectMetaId ;-MetaTailContext. Object ::= Object "*" TailMetaId ;-MetaFunction. Object ::= MetaFunctionName "(" Object ")" ;+Formation. Object ::= "⟦" [Binding] "⟧" ;+Application. Object ::= Object "(" [Binding] ")" ;+ObjectDispatch. Object ::= Object "." Attribute ;+GlobalObject. Object ::= "Φ";+ThisObject. Object ::= "ξ";+Termination. Object ::= "⊥" ;+MetaSubstThis. Object ::= Object "[" "ξ" "↦" Object "]" ;+MetaContextualize. Object ::= "⌈" Object "," Object "⌉" ;+MetaObject. Object ::= ObjectMetaId ;+MetaTailContext. Object ::= Object "*" TailMetaId ;+MetaFunction. Object ::= MetaFunctionName "(" Object ")" ; AlphaBinding. Binding ::= Attribute "↦" Object ; EmptyBinding. Binding ::= Attribute "↦" "∅" ;
src/Language/EO/Phi.hs view
@@ -1,3 +1,26 @@+{- 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 -} module Language.EO.Phi ( defaultMain, normalize,
src/Language/EO/Phi/Dataize.hs view
@@ -1,3 +1,26 @@+{- 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 LambdaCase #-} {-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE OverloadedStrings #-}
src/Language/EO/Phi/Dataize/Atoms.hs view
@@ -1,3 +1,26 @@+{- 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 LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}
src/Language/EO/Phi/Dataize/Context.hs view
@@ -1,3 +1,26 @@+{- 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 -} module Language.EO.Phi.Dataize.Context where import Data.HashMap.Strict qualified as HashMap
src/Language/EO/Phi/Dependencies.hs view
@@ -1,3 +1,26 @@+{- 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 TypeApplications #-} module Language.EO.Phi.Dependencies where
src/Language/EO/Phi/Metrics/Collect.hs view
@@ -1,3 +1,26 @@+{- 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 DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-}
src/Language/EO/Phi/Metrics/Data.hs view
@@ -1,3 +1,26 @@+{- 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 DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-}
src/Language/EO/Phi/Normalize.hs view
@@ -1,3 +1,26 @@+{- 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 DeriveGeneric #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedLabels #-}@@ -53,6 +76,7 @@ MetaTailContext{} -> error "impossible" MetaFunction _ _ -> error "To be honest, I'm not sure what should be here" MetaSubstThis{} -> error "impossible"+ MetaContextualize{} -> error "impossible" where followedBy (PeeledObject object actions) action = PeeledObject object (actions ++ [action])
src/Language/EO/Phi/Pipeline/Config.hs view
@@ -1,3 +1,26 @@+{- 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 DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-}
src/Language/EO/Phi/Pipeline/Dataize/PrintConfigs.hs view
@@ -1,3 +1,26 @@+{- 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 OverloadedRecordDot #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RecordWildCards #-}
src/Language/EO/Phi/Pipeline/EOTests/Data.hs view
@@ -1,3 +1,26 @@+{- 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 DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-}
src/Language/EO/Phi/Pipeline/EOTests/PrepareTests.hs view
@@ -1,3 +1,26 @@+{- 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 LambdaCase #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedRecordDot #-}
src/Language/EO/Phi/Report/Data.hs view
@@ -1,3 +1,26 @@+{- 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 DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-}
src/Language/EO/Phi/Report/Html.hs view
@@ -1,3 +1,26 @@+{- 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 DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-}
src/Language/EO/Phi/Rules/Common.hs view
@@ -1,3 +1,26 @@+{- 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 -} {-# HLINT ignore "Use &&" #-} {-# LANGUAGE DeriveFunctor #-} {-# HLINT ignore "Redundant fmap" #-}@@ -132,6 +155,7 @@ MetaFunction _ _ -> [] MetaTailContext{} -> [] MetaSubstThis _ _ -> []+ MetaContextualize _ _ -> [] where subctx = ctx{insideSubObject = True} @@ -199,6 +223,7 @@ MetaObject{} -> 1 -- should be impossible MetaFunction{} -> 1 -- should be impossible MetaSubstThis{} -> 1 -- should be impossible+ MetaContextualize{} -> 1 -- should be impossible MetaTailContext{} -> 1 -- should be impossible bindingSize :: Binding -> Int
src/Language/EO/Phi/Rules/Fast.hs view
@@ -1,3 +1,26 @@+{- 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 LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} @@ -184,6 +207,7 @@ ] Termination -> Termination MetaSubstThis{} -> error "impossible MetaSubstThis!"+ MetaContextualize{} -> error "impossible MetaContextualize!" MetaObject{} -> error "impossible MetaObject!" MetaTailContext{} -> error "impossible MetaTailContext!" MetaFunction{} -> error "impossible MetaFunction!"
src/Language/EO/Phi/Rules/PhiPaper.hs view
@@ -1,3 +1,26 @@+{- 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 -} module Language.EO.Phi.Rules.PhiPaper where import Control.Monad (guard)
src/Language/EO/Phi/Rules/RunYegor.hs view
@@ -1,3 +1,26 @@+{- 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 -} module Language.EO.Phi.Rules.RunYegor where import Language.EO.Phi.Dataize.Context
src/Language/EO/Phi/Rules/Yaml.hs view
@@ -1,3 +1,26 @@+{- 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 DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-}@@ -215,6 +238,7 @@ MetaFunction _ obj -> objectLabelIds obj MetaTailContext obj _ -> objectLabelIds obj MetaSubstThis obj obj' -> objectLabelIds obj <> objectLabelIds obj'+ MetaContextualize obj obj' -> objectLabelIds obj <> objectLabelIds obj' bindingLabelIds :: Binding -> Set LabelId bindingLabelIds = \case@@ -258,6 +282,7 @@ objectMetaIds (MetaFunction _ obj) = objectMetaIds obj 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'] bindingMetaIds :: Binding -> Set MetaId bindingMetaIds (AlphaBinding attr obj) = attrMetaIds attr <> objectMetaIds obj@@ -286,6 +311,7 @@ objectHasMetavars (MetaFunction _ _) = True objectHasMetavars MetaTailContext{} = True objectHasMetavars (MetaSubstThis _ _) = True -- technically not a metavar, but a substitution+objectHasMetavars (MetaContextualize _ _) = True bindingHasMetavars :: Binding -> Bool bindingHasMetavars (AlphaBinding attr obj) = attrHasMetavars attr || objectHasMetavars obj@@ -405,7 +431,8 @@ ThisObject -> ThisObject obj@(MetaObject x) -> fromMaybe obj $ lookup x objectMetas Termination -> Termination- MetaSubstThis obj thisObj -> MetaSubstThis (applySubst subst thisObj) (applySubst subst obj)+ MetaSubstThis obj thisObj -> MetaSubstThis (applySubst subst obj) (applySubst subst thisObj)+ MetaContextualize obj thisObj -> MetaContextualize (applySubst subst obj) (applySubst subst thisObj) obj@MetaFunction{} -> obj MetaTailContext obj c -> case lookup c contextMetas of@@ -483,6 +510,7 @@ Termination -> [] -- should cases below be errors? MetaSubstThis{} -> []+ MetaContextualize{} -> [] MetaObject{} -> [] MetaTailContext{} -> [] MetaFunction{} -> []@@ -506,6 +534,7 @@ evaluateMetaFuncs' (Application obj bindings) = Application <$> evaluateMetaFuncs' obj <*> mapM evaluateMetaFuncsBinding bindings evaluateMetaFuncs' (ObjectDispatch obj a) = ObjectDispatch <$> evaluateMetaFuncs' obj <*> pure a evaluateMetaFuncs' (MetaSubstThis obj thisObj) = evaluateMetaFuncs' (substThis thisObj obj)+evaluateMetaFuncs' (MetaContextualize obj thisObj) = evaluateMetaFuncs' (contextualize thisObj obj) evaluateMetaFuncs' obj = pure obj evaluateMetaFuncsBinding :: Binding -> State MetaState Binding@@ -588,6 +617,7 @@ GlobalObject -> GlobalObject Termination -> Termination obj@MetaTailContext{} -> error ("impossible: trying to substitute ξ in " <> printTree obj)+ obj@MetaContextualize{} -> error ("impossible: trying to substitute ξ in " <> printTree obj) 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)@@ -605,3 +635,29 @@ LambdaBinding bytes -> LambdaBinding bytes b@MetaBindings{} -> error ("impossible: trying to substitute ξ in " <> printTree b) b@MetaDeltaBinding{} -> error ("impossible: trying to substitute ξ in " <> printTree b)++contextualize :: Object -> Object -> Object+contextualize thisObj = go+ where+ go = \case+ ThisObject -> thisObj -- ξ is substituted+ obj@(Formation _bindings) -> obj+ ObjectDispatch obj a -> ObjectDispatch (go obj) a+ Application obj bindings -> Application (go obj) (map (contextualizeBinding thisObj) bindings)+ GlobalObject -> GlobalObject -- TODO: Change to what GlobalObject is attached to+ Termination -> Termination+ obj@MetaTailContext{} -> error ("impossible: trying to contextualize " <> printTree obj)+ obj@MetaContextualize{} -> error ("impossible: trying to contextualize " <> printTree obj)+ 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)++contextualizeBinding :: Object -> Binding -> Binding+contextualizeBinding obj = \case+ AlphaBinding a obj' -> AlphaBinding a (contextualize obj obj')+ EmptyBinding a -> EmptyBinding a+ DeltaBinding bytes -> DeltaBinding bytes+ DeltaEmptyBinding -> DeltaEmptyBinding+ LambdaBinding bytes -> LambdaBinding bytes+ b@MetaBindings{} -> error ("impossible: trying to contextualize " <> printTree b)+ b@MetaDeltaBinding{} -> error ("impossible: trying to contextualize " <> printTree b)
src/Language/EO/Phi/Syntax.hs view
@@ -1,3 +1,26 @@+{- 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 LambdaCase #-} {-# OPTIONS_GHC -Wno-orphans #-}
src/Language/EO/Phi/Syntax/Abs.hs view
@@ -1,3 +1,36 @@+{-+Copyright EO/Polystat Development Team (c) 2023++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++ * Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer.++ * Redistributions in binary form must reproduce the above+ copyright notice, this list of conditions and the following+ disclaimer in the documentation and/or other materials provided+ with the distribution.++ * Neither the name of EO/Polystat Development Team nor the names of other+ contributors may be used to endorse or promote products derived+ from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}+ -- File generated by the BNF Converter (bnfc 2.9.5). {-# LANGUAGE DeriveDataTypeable #-}@@ -34,6 +67,7 @@ | ThisObject | Termination | MetaSubstThis Object Object+ | MetaContextualize Object Object | MetaObject ObjectMetaId | MetaTailContext Object TailMetaId | MetaFunction MetaFunctionName Object
src/Language/EO/Phi/Syntax/Lex.hs view
@@ -27,20836 +27,20841 @@ alex_tab_size :: Int alex_tab_size = 8 alex_base :: Array Int Int-alex_base = listArray (0 :: Int, 151)- [ -8- , -153- , -159- , 91- , 219- , 475- , 594- , 0- , 0- , 0- , 707- , -73- , 771- , -150- , -156- , 899- , 1027- , 1283- , 1402- , 0- , 0- , 0- , 1515- , 1580- , 1644- , -147- , -152- , 1772- , 1900- , 2156- , 2275- , 2403- , 0- , 0- , 0- , 2452- , 2517- , 2581- , -146- , -113- , -28- , 2709- , 2773- , 140- , -27- , 593- , 623- , 646- , 1272- , -144- , 472- , -140- , -138- , 2837- , 2965- , 3221- , 3340- , 0- , 0- , 0- , 3453- , 3518- , 3582- , -139- , -136- , 3710- , 3838- , 4094- , 4213- , 4341- , 4485- , 8- , 0- , 4566- , 4822- , 4823- , 4951- , 4416- , 5016- , 5129- , 0- , 0- , 0- , 0- , 5343- , 5557- , 5813- , 5814- , 5942- , 5199- , 5409- , 6055- , 0- , 0- , 0- , 6245- , 605- , 0- , -142- , -122- , -98- , 0- , 6- , 6389- , 6634- , 6879- , 7115- , 7371- , 7372- , 7500- , -114- , -105- , 6325- , 6571- , 7613- , 0- , 0- , 0- , 7869- , 8105- , 8361- , 8362- , 8490- , -80- , -75- , 6815- , 7806- , 8603- , 0- , 0- , 0- , 1373- , 0- , 1418- , 8850- , -44- , 9106- , 9107- , 9235- , 17- , -43- , 9299- , 9364- , 9477- , 0- , 0- , 0- , 0- , 0- , 9541- , 9606- , 9719- ]--alex_table :: Array Int Int-alex_table = listArray (0 :: Int, 9974)- [ 0- , 96- , 96- , 96- , 96- , 96- , 2- , -1- , -1- , 14- , -1- , -1- , 26- , 52- , -1- , -1- , 97- , 43- , 46- , 97- , 64- , 97- , 97- , 97- , 96- , 95- , 97- , 97- , -1- , -1- , -1- , -1- , 97- , 97- , 97- , 97- , 97- , 102- , 97- , 71- , 45- , 45- , 45- , 45- , 45- , 45- , 45- , 45- , 45- , 45- , 85- , 101- , -1- , -1- , 110- , 73- , 68- , 104- , 104- , 104- , 104- , 104- , 104- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 97- , 123- , 97- , -1- , -1- , 134- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 97- , 139- , 97- , 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- , 0- , 0- , 41- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 48- , 39- , 0- , 0- , 0- , 0- , 0- , 47- , 47- , 47- , 47- , 47- , 47- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 50- , 4- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 5- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 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- , 0- , 49- , -1- , 100- , 0- , 98- , 0- , 0- , 0- , 96- , 96- , 96- , 96- , 96- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 0- , 51- , 0- , -1- , -1- , -1- , 99- , 96- , -1- , -1- , -1- , 40- , 40- , 40- , 40- , 40- , 40- , 40- , 40- , 40- , 40- , 0- , -1- , -1- , 0- , 0- , 0- , -1- , 40- , 40- , 40- , 40- , 40- , 40- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 47- , 0- , 0- , 0- , 0- , -1- , 0- , -1- , 47- , 47- , 47- , 47- , 47- , 47- , 44- , 44- , 44- , 44- , 44- , 44- , 44- , 44- , 44- , 44- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 44- , 44- , 44- , 44- , 44- , 44- , -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- , 5- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 147- , 149- , 4- , 72- , 1- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 72- , 150- , 3- , 148- , 148- , 148- , 151- , -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- , 0- , -1- , 0- , 0- , 0- , 0- , 97- , 131- , 131- , 131- , 131- , 131- , 131- , 131- , 131- , 131- , 131- , 0- , 0- , 0- , -1- , -1- , 0- , 0- , 97- , 0- , 0- , -1- , -1- , -1- , 0- , 0- , -1- , -1- , -1- , 133- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 97- , -1- , -1- , 97- , 0- , 0- , -1- , 132- , 131- , 131- , 131- , 131- , 131- , 131- , 131- , 131- , 131- , 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- , 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- , 23- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 24- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 29- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 29- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 21- , 24- , 28- , 20- , 25- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 20- , 23- , 27- , 19- , 19- , 19- , 22- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 0- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 0- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 36- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 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- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 0- , 103- , 103- , 103- , 103- , 103- , 103- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 0- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 0- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 0- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 54- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 55- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 55- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 34- , 37- , 54- , 33- , 38- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 33- , 36- , 53- , 32- , 32- , 32- , 35- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 61- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 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- , 66- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 67- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 67- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 59- , 62- , 66- , 58- , 63- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 58- , 61- , 65- , 57- , 57- , 57- , 60- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 0- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , -1- , 0- , 0- , 0- , 70- , 0- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , 70- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 69- , 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- , 74- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 77- , 75- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 78- , 76- , 82- , 82- , 82- , 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- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 74- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 80- , 75- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 81- , 77- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 84- , 0- , 0- , 0- , 0- , 83- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 86- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 89- , 87- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 90- , 88- , 94- , 94- , 94- , 91- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 84- , 89- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 86- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 89- , 87- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 90- , 88- , 94- , 94- , 94- , 91- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 86- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 92- , 87- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 93- , 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- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 18- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 30- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 6- , 0- , 0- , 0- , 0- , 56- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 0- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 0- , 0- , 106- , 106- , 0- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 0- , 0- , 106- , 106- , 106- , 106- , 106- , 70- , 0- , 0- , 106- , 106- , 0- , 0- , 0- , 106- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 0- , 0- , 106- , 106- , 106- , 135- , 106- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 0- , 106- , 0- , 106- , 103- , 106- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 0- , 0- , 0- , 106- , 106- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 107- , 42- , 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- , 112- , 108- , 116- , 111- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 113- , 109- , 117- , 117- , 117- , 114- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 0- , 0- , 106- , 106- , 0- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 0- , 0- , 106- , 106- , 106- , 106- , 106- , 70- , 0- , 0- , 106- , 106- , 0- , 0- , 0- , 106- , 105- , 105- , 105- , 105- , 105- , 105- , 105- , 105- , 105- , 105- , 0- , 0- , 106- , 106- , 106- , 0- , 106- , 105- , 105- , 105- , 105- , 105- , 105- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 0- , 106- , 0- , 106- , 103- , 106- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 0- , 0- , 0- , 106- , 106- , 112- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 107- , 42- , 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- , 112- , 108- , 116- , 111- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 113- , 109- , 117- , 117- , 117- , 114- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 0- , 0- , 106- , 106- , 0- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 106- , 0- , 0- , 106- , 106- , 106- , 106- , 106- , 70- , 0- , 0- , 106- , 106- , 0- , 43- , 0- , 106- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 0- , 0- , 106- , 106- , 106- , 0- , 106- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 0- , 106- , 0- , 106- , 103- , 106- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 103- , 0- , 0- , 0- , 106- , 106- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 107- , 42- , 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- , 112- , 108- , 116- , 111- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 113- , 109- , 117- , 117- , 117- , 114- , -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- , 107- , 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- , 112- , 108- , 116- , 111- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 113- , 109- , 117- , 117- , 117- , 114- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 107- , 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- , 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- , 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- , 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- , 115- , 115- , 115- , 108- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 116- , 113- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 0- , 0- , 119- , 119- , 0- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 119- , 0- , 0- , 119- , 119- , 119- , 119- , 119- , 70- , 0- , 0- , 119- , 119- , 0- , 119- , 0- , 119- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 0- , 0- , 119- , 119- , 119- , 0- , 119- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 0- , 119- , 0- , 119- , 118- , 119- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 118- , 0- , 0- , 0- , 119- , 119- , 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- , 0- , 120- , 31- , 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- , 125- , 121- , 129- , 124- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 126- , 122- , 130- , 130- , 130- , 127- , -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- , 120- , 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- , 125- , 121- , 129- , 124- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 129- , 126- , 122- , 130- , 130- , 130- , 127- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 120- , 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- , 121- , 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- , 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- , 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- , 136- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 141- , 137- , 145- , 140- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 142- , 138- , 146- , 146- , 146- , 143- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- , 136- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 144- , 137- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 145- , 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- , 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- , 142- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -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- ]--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- , 129- , 45- , 45- , 141- , 159- , 134- , 166- , 165- , 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- , 45- , 166- , 167- , 159- , 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- , 166- , 167- , -1- , -1- , 195- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , 206- , 207- , -1- , -1- , -1- , -1- , -1- , 65- , 66- , 67- , 68- , 69- , 70- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 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- , -1- , 134- , 13- , 136- , -1- , 138- , -1- , -1- , -1- , 9- , 10- , 11- , 12- , 13- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 32- , 33- , -1- , -1- , -1- , 159- , -1- , 39- , 40- , 41- , 164- , 32- , 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- , 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- , 148- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -1- , -1- , -1- , 32- , 33- , -1- , -1- , 166- , -1- , -1- , 39- , 40- , 41- , -1- , -1- , 44- , 45- , 46- , 177- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 187- , 58- , 59- , 190- , -1- , -1- , 63- , 48- , 49- , 50- , 51- , 52- , 53- , 54- , 55- , 56- , 57- , -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- , -1- , 184- , 185- , 186- , 187- , 188- , 189- , 190- , 191- , 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- , 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, 151)- [ -1- , 147- , 6- , -1- , -1- , 6- , 6- , 8- , 9- , 18- , 8- , 9- , 18- , 9- , 18- , -1- , -1- , 18- , 18- , 20- , 21- , 30- , 20- , 21- , 30- , 21- , 30- , -1- , -1- , 30- , 30- , 119- , 33- , 34- , 56- , 33- , 34- , 56- , 34- , -1- , -1- , -1- , 106- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 56- , -1- , -1- , 56- , 56- , 58- , 59- , 68- , 58- , 59- , 68- , 59- , 68- , -1- , -1- , 68- , 68- , -1- , -1- , -1- , 147- , 73- , 73- , -1- , -1- , 73- , 80- , 81- , 73- , 80- , 81- , -1- , 85- , 85- , 85- , -1- , -1- , 85- , 92- , 93- , 85- , 92- , 93- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , -1- , 106- , 106- , -1- , -1- , 106- , 115- , 106- , 115- , 116- , 106- , 115- , 116- , -1- , 119- , 119- , -1- , -1- , 119- , 128- , 119- , 128- , 129- , 119- , 128- , 129- , -1- , -1- , -1- , 134- , -1- , 134- , -1- , -1- , 134- , 144- , 134- , 144- , 145- , 134- , 144- , 145- , 6- , 72- , 6- , 147- , 72- ]--alex_accept = listArray (0 :: Int, 151)- [ 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- , AlexAcc 16- , AlexAccNone- , AlexAccNone- , 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- , 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- , 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- , 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" #-}--- | Create a token with position.-tok :: (String -> Tok) -> (Posn -> String -> Token)-tok f p = PT p . f---- | Token without position.-data Tok- = TK {-# UNPACK #-} !TokSymbol -- ^ Reserved word or symbol.- | TL !String -- ^ String literal.- | TI !String -- ^ Integer literal.- | TV !String -- ^ Identifier.- | TD !String -- ^ Float literal.- | TC !String -- ^ Character literal.- | T_Bytes !String- | T_Function !String- | T_LabelId !String- | T_AlphaIndex !String- | T_LabelMetaId !String- | T_TailMetaId !String- | T_BindingsMetaId !String- | T_ObjectMetaId !String- | T_BytesMetaId !String- | T_MetaFunctionName !String- deriving (Eq, Show, Ord)---- | Smart constructor for 'Tok' for the sake of backwards compatibility.-pattern TS :: String -> Int -> Tok-pattern TS t i = TK (TokSymbol t i)---- | Keyword or symbol tokens have a unique ID.-data TokSymbol = TokSymbol- { tsText :: String- -- ^ Keyword or symbol text.- , tsID :: !Int- -- ^ Unique ID.- } deriving (Show)---- | Keyword/symbol equality is determined by the unique ID.-instance Eq TokSymbol where (==) = (==) `on` tsID---- | Keyword/symbol ordering is determined by the unique ID.-instance Ord TokSymbol where compare = compare `on` tsID---- | Token with position.-data Token- = PT Posn Tok- | Err Posn- deriving (Eq, Show, Ord)---- | Pretty print a position.-printPosn :: Posn -> String-printPosn (Pn _ l c) = "line " ++ show l ++ ", column " ++ show c---- | Pretty print the position of the first token in the list.-tokenPos :: [Token] -> String-tokenPos (t:_) = printPosn (tokenPosn t)-tokenPos [] = "end of file"---- | Get the position of a token.-tokenPosn :: Token -> Posn-tokenPosn (PT p _) = p-tokenPosn (Err p) = p---- | Get line and column of a token.-tokenLineCol :: Token -> (Int, Int)-tokenLineCol = posLineCol . tokenPosn---- | Get line and column of a position.-posLineCol :: Posn -> (Int, Int)-posLineCol (Pn _ l c) = (l,c)---- | Convert a token into "position token" form.-mkPosToken :: Token -> ((Int, Int), String)-mkPosToken t = (tokenLineCol t, tokenText t)---- | Convert a token to its text.-tokenText :: Token -> String-tokenText t = case t of- PT _ (TS s _) -> s- PT _ (TL s) -> show s- PT _ (TI s) -> s- PT _ (TV s) -> s- PT _ (TD s) -> s- PT _ (TC s) -> s- Err _ -> "#error"- PT _ (T_Bytes s) -> s- PT _ (T_Function s) -> s- PT _ (T_LabelId s) -> s- PT _ (T_AlphaIndex s) -> s- PT _ (T_LabelMetaId s) -> s- PT _ (T_TailMetaId s) -> s- PT _ (T_BindingsMetaId s) -> s- PT _ (T_ObjectMetaId s) -> s- PT _ (T_BytesMetaId s) -> s- PT _ (T_MetaFunctionName s) -> s---- | Convert a token to a string.-prToken :: Token -> String-prToken t = tokenText t---- | Finite map from text to token organized as binary search tree.-data BTree- = N -- ^ Nil (leaf).- | B String Tok BTree BTree- -- ^ Binary node.- deriving (Show)---- | Convert potential keyword into token or use fallback conversion.-eitherResIdent :: (String -> Tok) -> String -> Tok-eitherResIdent tv s = treeFind resWords- where- treeFind N = tv s- treeFind (B a t left right) =- case compare s a of- LT -> treeFind left- GT -> treeFind right- EQ -> t---- | The keywords and symbols of the language organized as binary search tree.-resWords :: BTree-resWords =- b "\934" 11- (b "[" 6- (b "*" 3 (b ")" 2 (b "(" 1 N N) N) (b "." 5 (b "," 4 N N) N))- (b "}" 9 (b "{" 8 (b "]" 7 N N) N) (b "\916" 10 N N)))- (b "\8709" 17- (b "\961" 14- (b "\958" 13 (b "\955" 12 N N) N)- (b "\8614" 16 (b "\966" 15 N N) N))- (b "\10215" 20- (b "\10214" 19 (b "\8869" 18 N N) N) (b "\10509" 21 N N)))+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" #-}+-- | Create a token with position.+tok :: (String -> Tok) -> (Posn -> String -> Token)+tok f p = PT p . f++-- | Token without position.+data Tok+ = TK {-# UNPACK #-} !TokSymbol -- ^ Reserved word or symbol.+ | TL !String -- ^ String literal.+ | TI !String -- ^ Integer literal.+ | TV !String -- ^ Identifier.+ | TD !String -- ^ Float literal.+ | TC !String -- ^ Character literal.+ | T_Bytes !String+ | T_Function !String+ | T_LabelId !String+ | T_AlphaIndex !String+ | T_LabelMetaId !String+ | T_TailMetaId !String+ | T_BindingsMetaId !String+ | T_ObjectMetaId !String+ | T_BytesMetaId !String+ | T_MetaFunctionName !String+ deriving (Eq, Show, Ord)++-- | Smart constructor for 'Tok' for the sake of backwards compatibility.+pattern TS :: String -> Int -> Tok+pattern TS t i = TK (TokSymbol t i)++-- | Keyword or symbol tokens have a unique ID.+data TokSymbol = TokSymbol+ { tsText :: String+ -- ^ Keyword or symbol text.+ , tsID :: !Int+ -- ^ Unique ID.+ } deriving (Show)++-- | Keyword/symbol equality is determined by the unique ID.+instance Eq TokSymbol where (==) = (==) `on` tsID++-- | Keyword/symbol ordering is determined by the unique ID.+instance Ord TokSymbol where compare = compare `on` tsID++-- | Token with position.+data Token+ = PT Posn Tok+ | Err Posn+ deriving (Eq, Show, Ord)++-- | Pretty print a position.+printPosn :: Posn -> String+printPosn (Pn _ l c) = "line " ++ show l ++ ", column " ++ show c++-- | Pretty print the position of the first token in the list.+tokenPos :: [Token] -> String+tokenPos (t:_) = printPosn (tokenPosn t)+tokenPos [] = "end of file"++-- | Get the position of a token.+tokenPosn :: Token -> Posn+tokenPosn (PT p _) = p+tokenPosn (Err p) = p++-- | Get line and column of a token.+tokenLineCol :: Token -> (Int, Int)+tokenLineCol = posLineCol . tokenPosn++-- | Get line and column of a position.+posLineCol :: Posn -> (Int, Int)+posLineCol (Pn _ l c) = (l,c)++-- | Convert a token into "position token" form.+mkPosToken :: Token -> ((Int, Int), String)+mkPosToken t = (tokenLineCol t, tokenText t)++-- | Convert a token to its text.+tokenText :: Token -> String+tokenText t = case t of+ PT _ (TS s _) -> s+ PT _ (TL s) -> show s+ PT _ (TI s) -> s+ PT _ (TV s) -> s+ PT _ (TD s) -> s+ PT _ (TC s) -> s+ Err _ -> "#error"+ PT _ (T_Bytes s) -> s+ PT _ (T_Function s) -> s+ PT _ (T_LabelId s) -> s+ PT _ (T_AlphaIndex s) -> s+ PT _ (T_LabelMetaId s) -> s+ PT _ (T_TailMetaId s) -> s+ PT _ (T_BindingsMetaId s) -> s+ PT _ (T_ObjectMetaId s) -> s+ PT _ (T_BytesMetaId s) -> s+ PT _ (T_MetaFunctionName s) -> s++-- | Convert a token to a string.+prToken :: Token -> String+prToken t = tokenText t++-- | Finite map from text to token organized as binary search tree.+data BTree+ = N -- ^ Nil (leaf).+ | B String Tok BTree BTree+ -- ^ Binary node.+ deriving (Show)++-- | Convert potential keyword into token or use fallback conversion.+eitherResIdent :: (String -> Tok) -> String -> Tok+eitherResIdent tv s = treeFind resWords+ where+ treeFind N = tv s+ treeFind (B a t left right) =+ case compare s a of+ LT -> treeFind left+ GT -> treeFind right+ EQ -> t++-- | The keywords and symbols of the language organized as binary search tree.+resWords :: BTree+resWords =+ b "\955" 12+ (b "[" 6+ (b "*" 3 (b ")" 2 (b "(" 1 N N) N) (b "." 5 (b "," 4 N N) N))+ (b "}" 9+ (b "{" 8 (b "]" 7 N N) N) (b "\934" 11 (b "\916" 10 N N) N)))+ (b "\8869" 18+ (b "\966" 15+ (b "\961" 14 (b "\958" 13 N N) N)+ (b "\8709" 17 (b "\8614" 16 N N) N))+ (b "\10214" 21+ (b "\8969" 20 (b "\8968" 19 N N) N)+ (b "\10509" 23 (b "\10215" 22 N N) N))) where b s n = B bs (TS bs n) where
src/Language/EO/Phi/Syntax/Lex.x view
@@ -28,7 +28,7 @@ -- Symbols and non-identifier-like reserved words -@rsyms = \Φ | \ξ | \Δ | \λ | \φ | \ρ | \{ | \⟦ | \⟧ | \} | \( | \) | \. | \⊥ | \[ | \↦ | \] | \* | \∅ | \⤍ | \,+@rsyms = \Φ | \ξ | \Δ | \λ | \φ | \ρ | \{ | \⟦ | \⟧ | \} | \( | \) | \. | \⊥ | \[ | \↦ | \] | \⌈ | \, | \⌉ | \* | \∅ | \⤍ :- @@ -210,16 +210,18 @@ -- | The keywords and symbols of the language organized as binary search tree. resWords :: BTree resWords =- b "\934" 11+ b "\955" 12 (b "[" 6 (b "*" 3 (b ")" 2 (b "(" 1 N N) N) (b "." 5 (b "," 4 N N) N))- (b "}" 9 (b "{" 8 (b "]" 7 N N) N) (b "\916" 10 N N)))- (b "\8709" 17- (b "\961" 14- (b "\958" 13 (b "\955" 12 N N) N)- (b "\8614" 16 (b "\966" 15 N N) N))- (b "\10215" 20- (b "\10214" 19 (b "\8869" 18 N N) N) (b "\10509" 21 N N)))+ (b "}" 9+ (b "{" 8 (b "]" 7 N N) N) (b "\934" 11 (b "\916" 10 N N) N)))+ (b "\8869" 18+ (b "\966" 15+ (b "\961" 14 (b "\958" 13 N N) N)+ (b "\8709" 17 (b "\8614" 16 N N) N))+ (b "\10214" 21+ (b "\8969" 20 (b "\8968" 19 N N) N)+ (b "\10509" 23 (b "\10215" 22 N N) N))) where b s n = B bs (TS bs n) where
src/Language/EO/Phi/Syntax/Par.hs view
@@ -173,7 +173,12 @@ action_101, action_102, action_103,- action_104 :: () => Prelude.Int -> ({-HappyReduction (Err) = -}+ 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)@@ -233,7 +238,8 @@ happyReduce_60, happyReduce_61, happyReduce_62,- happyReduce_63 :: () => ({-HappyReduction (Err) = -}+ happyReduce_63,+ happyReduce_64 :: () => ({-HappyReduction (Err) = -} Prelude.Int -> (Token) -> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)@@ -242,45 +248,46 @@ -> [(Token)] -> (Err) HappyAbsSyn) happyExpList :: Happy_Data_Array.Array Prelude.Int Prelude.Int-happyExpList = Happy_Data_Array.listArray (0,215) ([0,0,512,0,0,0,0,57344,3,0,0,389,20,0,0,32874,11,0,0,424,46,0,0,1536,56,0,0,6784,224,0,0,5120,6,0,0,20480,24,0,0,272,0,0,0,1088,0,0,0,0,8192,0,0,0,0,0,0,4096,1,0,0,0,0,0,0,0,27136,2944,0,0,32768,3585,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6784,736,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,8,0,0,0,0,0,0,0,0,8,0,0,0,1024,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,424,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,16,0,0,40960,47110,0,0,0,512,0,0,0,32874,11,0,0,0,16,0,0,1536,56,0,0,1024,0,0,0,5120,20486,0,0,0,256,0,0,0,528,2,0,0,453,20,0,0,32874,11,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,2,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,14080,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,128,0,0,16384,0,0,0,0,0,0,0,0,6224,320,0,0,0,0,0,16384,29,0,0,0,0,0,0,0,0,0,0,0+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'","'\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.* 66- bit_end = (st Prelude.+ 1) Prelude.* 66+ 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..65]+ 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_64-action_0 (24) = happyGoto action_63+action_0 (42) = happyShift action_65+action_0 (24) = happyGoto action_64 action_0 _ = happyFail (happyExpListPerState 0) -action_1 (60) = happyShift action_36-action_1 (61) = happyShift action_61-action_1 (62) = happyShift action_44-action_1 (63) = happyShift action_53-action_1 (64) = happyShift action_62-action_1 (18) = happyGoto action_55-action_1 (19) = happyGoto action_56-action_1 (20) = happyGoto action_57-action_1 (21) = happyGoto action_58-action_1 (22) = happyGoto action_59-action_1 (25) = happyGoto action_60+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 (63) = happyShift action_53+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@@ -290,10 +297,10 @@ action_3 (46) = happyShift action_43 action_3 (48) = happyShift action_32 action_3 (49) = happyShift action_33-action_3 (58) = happyShift action_34-action_3 (59) = happyShift action_35-action_3 (60) = happyShift action_36-action_3 (62) = happyShift action_44+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@@ -306,10 +313,10 @@ action_4 (46) = happyShift action_43 action_4 (48) = happyShift action_32 action_4 (49) = happyShift action_33-action_4 (58) = happyShift action_34-action_4 (59) = happyShift action_35-action_4 (60) = happyShift action_36-action_4 (62) = happyShift action_44+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@@ -317,13 +324,13 @@ action_4 (27) = happyGoto action_39 action_4 (28) = happyGoto action_40 action_4 (29) = happyGoto action_41-action_4 _ = happyReduce_44+action_4 _ = happyReduce_45 action_5 (48) = happyShift action_32 action_5 (49) = happyShift action_33-action_5 (58) = happyShift action_34-action_5 (59) = happyShift action_35-action_5 (60) = happyShift action_36+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@@ -334,9 +341,9 @@ action_6 (46) = happyShift action_31 action_6 (48) = happyShift action_32 action_6 (49) = happyShift action_33-action_6 (58) = happyShift action_34-action_6 (59) = happyShift action_35-action_6 (60) = happyShift action_36+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@@ -347,7 +354,7 @@ action_7 (45) = happyShift action_19 action_7 (47) = happyShift action_20 action_7 (52) = happyShift action_21-action_7 (53) = happyShift action_22+action_7 (55) = happyShift action_22 action_7 (31) = happyGoto action_23 action_7 (32) = happyGoto action_24 action_7 _ = happyFail (happyExpListPerState 7)@@ -355,7 +362,7 @@ action_8 (45) = happyShift action_19 action_8 (47) = happyShift action_20 action_8 (52) = happyShift action_21-action_8 (53) = happyShift action_22+action_8 (55) = happyShift action_22 action_8 (32) = happyGoto action_18 action_8 _ = happyFail (happyExpListPerState 8) @@ -368,9 +375,9 @@ action_10 (39) = happyShift action_16 action_10 (33) = happyGoto action_13 action_10 (34) = happyGoto action_14-action_10 _ = happyReduce_62+action_10 _ = happyReduce_63 -action_11 (56) = happyShift action_12+action_11 (58) = happyShift action_12 action_11 _ = happyFail (happyExpListPerState 11) action_12 _ = happyReduce_11@@ -378,96 +385,96 @@ action_13 (35) = happyShift action_15 action_13 (39) = happyShift action_16 action_13 (33) = happyGoto action_13-action_13 (34) = happyGoto action_80-action_13 _ = happyReduce_62+action_13 (34) = happyGoto action_82+action_13 _ = happyReduce_63 -action_14 (66) = happyAccept+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 (58) = happyShift action_34-action_15 (59) = happyShift action_35-action_15 (60) = happyShift action_36-action_15 (62) = happyShift action_44+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_79+action_15 (28) = happyGoto action_81 action_15 (29) = happyGoto action_41-action_15 _ = happyReduce_44+action_15 _ = happyReduce_45 action_16 (48) = happyShift action_32 action_16 (49) = happyShift action_33-action_16 (58) = happyShift action_34-action_16 (59) = happyShift action_35-action_16 (60) = happyShift action_36+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_78+action_16 (29) = happyGoto action_80 action_16 _ = happyFail (happyExpListPerState 16) -action_17 (66) = happyAccept+action_17 (68) = happyAccept action_17 _ = happyFail (happyExpListPerState 17) -action_18 (66) = happyAccept+action_18 (68) = happyAccept action_18 _ = happyFail (happyExpListPerState 18) -action_19 _ = happyReduce_57+action_19 _ = happyReduce_58 -action_20 _ = happyReduce_58+action_20 _ = happyReduce_59 -action_21 _ = 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 (58) = happyShift action_34-action_22 (59) = happyShift action_35-action_22 (60) = happyShift action_36-action_22 (62) = happyShift action_44+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_77+action_22 (28) = happyGoto action_79 action_22 (29) = happyGoto action_41-action_22 _ = happyReduce_44+action_22 _ = happyReduce_45 -action_23 (66) = happyAccept+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_76-action_24 _ = happyReduce_62+action_24 (34) = happyGoto action_78+action_24 _ = happyReduce_63 -action_25 _ = happyReduce_49+action_25 _ = happyReduce_50 -action_26 _ = happyReduce_50+action_26 _ = happyReduce_51 -action_27 _ = happyReduce_51+action_27 _ = happyReduce_52 -action_28 _ = happyReduce_52+action_28 _ = happyReduce_53 -action_29 (66) = happyAccept+action_29 (68) = happyAccept action_29 _ = happyFail (happyExpListPerState 29) -action_30 _ = happyReduce_53+action_30 _ = happyReduce_54 -action_31 _ = happyReduce_54+action_31 _ = happyReduce_55 -action_32 _ = happyReduce_48+action_32 _ = happyReduce_49 -action_33 _ = happyReduce_47+action_33 _ = happyReduce_48 action_34 _ = happyReduce_13 @@ -475,41 +482,41 @@ action_36 _ = happyReduce_15 -action_37 (66) = happyAccept+action_37 (68) = happyAccept action_37 _ = happyFail (happyExpListPerState 37) -action_38 _ = happyReduce_42+action_38 _ = happyReduce_43 -action_39 (38) = happyShift action_75-action_39 _ = happyReduce_45+action_39 (38) = happyShift action_77+action_39 _ = happyReduce_46 -action_40 (66) = happyAccept+action_40 (68) = happyAccept action_40 _ = happyFail (happyExpListPerState 40) -action_41 (50) = happyShift action_74+action_41 (50) = happyShift action_76 action_41 _ = happyFail (happyExpListPerState 41) -action_42 (55) = happyShift action_73+action_42 (57) = happyShift action_75 action_42 _ = happyFail (happyExpListPerState 42) -action_43 (55) = happyShift action_72+action_43 (57) = happyShift action_74 action_43 _ = happyFail (happyExpListPerState 43) action_44 _ = happyReduce_17 -action_45 (66) = happyAccept+action_45 (68) = happyAccept action_45 _ = happyFail (happyExpListPerState 45) -action_46 _ = happyReduce_34+action_46 _ = happyReduce_35 -action_47 (35) = happyShift action_71+action_47 (35) = happyShift action_73 action_47 _ = happyFail (happyExpListPerState 47) -action_48 (35) = happyShift action_67-action_48 (37) = happyShift action_68-action_48 (39) = happyShift action_69-action_48 (40) = happyShift action_70-action_48 (66) = happyAccept+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@@ -518,243 +525,286 @@ action_51 _ = happyReduce_32 -action_52 (44) = happyShift action_42-action_52 (46) = happyShift action_43-action_52 (48) = happyShift action_32-action_52 (49) = happyShift action_33-action_52 (58) = happyShift action_34-action_52 (59) = happyShift action_35-action_52 (60) = happyShift action_36-action_52 (62) = happyShift action_44-action_52 (16) = happyGoto action_25-action_52 (17) = happyGoto action_26-action_52 (18) = happyGoto action_27-action_52 (20) = happyGoto action_38-action_52 (27) = happyGoto action_39-action_52 (28) = happyGoto action_66-action_52 (29) = happyGoto action_41-action_52 _ = happyReduce_44+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 _ = happyReduce_18+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_20+action_54 _ = happyReduce_18 -action_55 _ = happyReduce_22+action_55 _ = happyReduce_20 -action_56 _ = happyReduce_23+action_56 _ = happyReduce_22 -action_57 _ = happyReduce_24+action_57 _ = happyReduce_23 -action_58 _ = happyReduce_25+action_58 _ = happyReduce_24 -action_59 _ = happyReduce_26+action_59 _ = happyReduce_25 -action_60 (66) = happyAccept-action_60 _ = happyFail (happyExpListPerState 60)+action_60 _ = happyReduce_26 -action_61 _ = happyReduce_16+action_61 (68) = happyAccept+action_61 _ = happyFail (happyExpListPerState 61) -action_62 _ = happyReduce_19+action_62 _ = happyReduce_16 -action_63 (66) = happyAccept-action_63 _ = happyFail (happyExpListPerState 63)+action_63 _ = happyReduce_19 -action_64 (53) = happyShift action_65+action_64 (68) = happyAccept action_64 _ = happyFail (happyExpListPerState 64) -action_65 (44) = happyShift action_42-action_65 (46) = happyShift action_43-action_65 (48) = happyShift action_32-action_65 (49) = happyShift action_33-action_65 (58) = happyShift action_34-action_65 (59) = happyShift action_35-action_65 (60) = happyShift action_36-action_65 (62) = happyShift action_44-action_65 (16) = happyGoto action_25-action_65 (17) = happyGoto action_26-action_65 (18) = happyGoto action_27-action_65 (20) = happyGoto action_38-action_65 (27) = happyGoto action_39-action_65 (28) = happyGoto action_97-action_65 (29) = happyGoto action_41-action_65 _ = happyReduce_44+action_65 (55) = happyShift action_66+action_65 _ = happyFail (happyExpListPerState 65) -action_66 (54) = happyShift action_96-action_66 _ = happyFail (happyExpListPerState 66)+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 (44) = happyShift action_42-action_67 (46) = happyShift action_43-action_67 (48) = happyShift action_32-action_67 (49) = happyShift action_33-action_67 (58) = happyShift action_34-action_67 (59) = happyShift action_35-action_67 (60) = happyShift action_36-action_67 (62) = happyShift action_44-action_67 (16) = happyGoto action_25-action_67 (17) = happyGoto action_26-action_67 (18) = happyGoto action_27-action_67 (20) = happyGoto action_38-action_67 (27) = happyGoto action_39-action_67 (28) = happyGoto action_95-action_67 (29) = happyGoto action_41-action_67 _ = happyReduce_44+action_67 (56) = happyShift action_99+action_67 _ = happyFail (happyExpListPerState 67) -action_68 (61) = happyShift action_61-action_68 (19) = happyGoto action_94+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 (58) = happyShift action_34-action_69 (59) = happyShift action_35-action_69 (60) = happyShift action_36+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 (29) = happyGoto action_93-action_69 _ = happyFail (happyExpListPerState 69)+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 (47) = happyShift action_92+action_70 (63) = happyShift action_62+action_70 (19) = happyGoto action_96 action_70 _ = happyFail (happyExpListPerState 70) -action_71 (45) = happyShift action_49-action_71 (47) = happyShift action_50-action_71 (52) = happyShift action_51-action_71 (53) = happyShift action_52-action_71 (63) = happyShift action_53-action_71 (65) = happyShift action_54-action_71 (21) = happyGoto action_46-action_71 (23) = happyGoto action_47-action_71 (26) = happyGoto action_91+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 (57) = happyShift action_90-action_72 (15) = happyGoto action_89+action_72 (47) = happyShift action_94 action_72 _ = happyFail (happyExpListPerState 72) -action_73 (51) = happyShift action_88-action_73 (56) = happyShift action_12-action_73 (64) = happyShift action_62-action_73 (14) = happyGoto action_86-action_73 (22) = happyGoto action_87+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 (45) = happyShift action_49-action_74 (47) = happyShift action_50-action_74 (51) = happyShift action_85-action_74 (52) = happyShift action_51-action_74 (53) = happyShift action_52-action_74 (63) = happyShift action_53-action_74 (65) = happyShift action_54-action_74 (21) = happyGoto action_46-action_74 (23) = happyGoto action_47-action_74 (26) = happyGoto action_84+action_74 (59) = happyShift action_92+action_74 (15) = happyGoto action_91 action_74 _ = happyFail (happyExpListPerState 74) -action_75 (44) = happyShift action_42-action_75 (46) = happyShift action_43-action_75 (48) = happyShift action_32-action_75 (49) = happyShift action_33-action_75 (58) = happyShift action_34-action_75 (59) = happyShift action_35-action_75 (60) = happyShift action_36-action_75 (62) = happyShift action_44-action_75 (16) = happyGoto action_25-action_75 (17) = happyGoto action_26-action_75 (18) = happyGoto action_27-action_75 (20) = happyGoto action_38-action_75 (27) = happyGoto action_39-action_75 (28) = happyGoto action_83-action_75 (29) = happyGoto action_41-action_75 _ = happyReduce_44+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 _ = happyReduce_55+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 (54) = happyShift action_82-action_77 _ = happyFail (happyExpListPerState 77)+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_61+action_78 _ = happyReduce_56 -action_79 (36) = happyShift action_81+action_79 (56) = happyShift action_84 action_79 _ = happyFail (happyExpListPerState 79) -action_80 _ = happyReduce_63+action_80 _ = happyReduce_62 -action_81 _ = happyReduce_60+action_81 (36) = happyShift action_83+action_81 _ = happyFail (happyExpListPerState 81) -action_82 _ = happyReduce_56+action_82 _ = happyReduce_64 -action_83 _ = happyReduce_46+action_83 _ = happyReduce_61 -action_84 (35) = happyShift action_67-action_84 (37) = happyShift action_68-action_84 (39) = happyShift action_69-action_84 (40) = happyShift action_70-action_84 _ = happyReduce_37+action_84 _ = happyReduce_57 -action_85 _ = happyReduce_38+action_85 _ = happyReduce_47 -action_86 _ = happyReduce_39+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_43+action_87 _ = happyReduce_39 action_88 _ = happyReduce_40 -action_89 _ = happyReduce_41+action_89 _ = happyReduce_44 -action_90 _ = happyReduce_12+action_90 _ = happyReduce_41 -action_91 (35) = happyShift action_67-action_91 (36) = happyShift action_101-action_91 (37) = happyShift action_68-action_91 (39) = happyShift action_69-action_91 (40) = happyShift action_70-action_91 _ = happyFail (happyExpListPerState 91)+action_91 _ = happyReduce_42 -action_92 (50) = happyShift action_100-action_92 _ = happyFail (happyExpListPerState 92)+action_92 _ = happyReduce_12 -action_93 _ = happyReduce_29+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 _ = happyReduce_35+action_94 (50) = happyShift action_104+action_94 _ = happyFail (happyExpListPerState 94) -action_95 (36) = happyShift action_99-action_95 _ = happyFail (happyExpListPerState 95)+action_95 _ = happyReduce_29 -action_96 _ = happyReduce_27+action_96 _ = happyReduce_36 -action_97 (54) = happyShift action_98+action_97 (36) = happyShift action_103 action_97 _ = happyFail (happyExpListPerState 97) -action_98 (43) = happyShift action_103+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_28+action_99 _ = happyReduce_27 -action_100 (45) = happyShift action_49-action_100 (47) = happyShift action_50-action_100 (52) = happyShift action_51-action_100 (53) = happyShift action_52-action_100 (63) = happyShift action_53-action_100 (65) = happyShift action_54-action_100 (21) = happyGoto action_46-action_100 (23) = happyGoto action_47-action_100 (26) = happyGoto action_102+action_100 (56) = happyShift action_101 action_100 _ = happyFail (happyExpListPerState 100) -action_101 _ = happyReduce_36+action_101 (43) = happyShift action_108+action_101 _ = happyFail (happyExpListPerState 101) -action_102 (35) = happyShift action_67-action_102 (37) = happyShift action_68-action_102 (39) = happyShift action_69-action_102 (40) = happyShift action_70-action_102 (41) = happyShift action_104+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_21+action_103 _ = happyReduce_28 -action_104 _ = happyReduce_33+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@@ -929,24 +979,35 @@ (Language.EO.Phi.Syntax.Abs.MetaSubstThis happy_var_1 happy_var_5 ) `HappyStk` happyRest -happyReduce_34 = happySpecReduce_1 26 happyReduction_34-happyReduction_34 (HappyAbsSyn21 happy_var_1)+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_34 _ = notHappyAtAll +happyReduction_35 _ = notHappyAtAll -happyReduce_35 = happySpecReduce_3 26 happyReduction_35-happyReduction_35 (HappyAbsSyn19 happy_var_3)+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_35 _ _ _ = notHappyAtAll +happyReduction_36 _ _ _ = notHappyAtAll -happyReduce_36 = happyReduce 4 26 happyReduction_36-happyReduction_36 (_ `HappyStk`+happyReduce_37 = happyReduce 4 26 happyReduction_37+happyReduction_37 (_ `HappyStk` (HappyAbsSyn26 happy_var_3) `HappyStk` _ `HappyStk` (HappyAbsSyn23 happy_var_1) `HappyStk`@@ -955,206 +1016,206 @@ (Language.EO.Phi.Syntax.Abs.MetaFunction happy_var_1 happy_var_3 ) `HappyStk` happyRest -happyReduce_37 = happySpecReduce_3 27 happyReduction_37-happyReduction_37 (HappyAbsSyn26 happy_var_3)+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_37 _ _ _ = notHappyAtAll +happyReduction_38 _ _ _ = notHappyAtAll -happyReduce_38 = happySpecReduce_3 27 happyReduction_38-happyReduction_38 _+happyReduce_39 = happySpecReduce_3 27 happyReduction_39+happyReduction_39 _ _ (HappyAbsSyn29 happy_var_1) = HappyAbsSyn27 (Language.EO.Phi.Syntax.Abs.EmptyBinding happy_var_1 )-happyReduction_38 _ _ _ = notHappyAtAll +happyReduction_39 _ _ _ = notHappyAtAll -happyReduce_39 = happySpecReduce_3 27 happyReduction_39-happyReduction_39 (HappyAbsSyn14 happy_var_3)+happyReduce_40 = happySpecReduce_3 27 happyReduction_40+happyReduction_40 (HappyAbsSyn14 happy_var_3) _ _ = HappyAbsSyn27 (Language.EO.Phi.Syntax.Abs.DeltaBinding happy_var_3 )-happyReduction_39 _ _ _ = notHappyAtAll +happyReduction_40 _ _ _ = notHappyAtAll -happyReduce_40 = happySpecReduce_3 27 happyReduction_40-happyReduction_40 _+happyReduce_41 = happySpecReduce_3 27 happyReduction_41+happyReduction_41 _ _ _ = HappyAbsSyn27 (Language.EO.Phi.Syntax.Abs.DeltaEmptyBinding ) -happyReduce_41 = happySpecReduce_3 27 happyReduction_41-happyReduction_41 (HappyAbsSyn15 happy_var_3)+happyReduce_42 = happySpecReduce_3 27 happyReduction_42+happyReduction_42 (HappyAbsSyn15 happy_var_3) _ _ = HappyAbsSyn27 (Language.EO.Phi.Syntax.Abs.LambdaBinding happy_var_3 )-happyReduction_41 _ _ _ = notHappyAtAll +happyReduction_42 _ _ _ = notHappyAtAll -happyReduce_42 = happySpecReduce_1 27 happyReduction_42-happyReduction_42 (HappyAbsSyn20 happy_var_1)+happyReduce_43 = happySpecReduce_1 27 happyReduction_43+happyReduction_43 (HappyAbsSyn20 happy_var_1) = HappyAbsSyn27 (Language.EO.Phi.Syntax.Abs.MetaBindings happy_var_1 )-happyReduction_42 _ = notHappyAtAll +happyReduction_43 _ = notHappyAtAll -happyReduce_43 = happySpecReduce_3 27 happyReduction_43-happyReduction_43 (HappyAbsSyn22 happy_var_3)+happyReduce_44 = happySpecReduce_3 27 happyReduction_44+happyReduction_44 (HappyAbsSyn22 happy_var_3) _ _ = HappyAbsSyn27 (Language.EO.Phi.Syntax.Abs.MetaDeltaBinding happy_var_3 )-happyReduction_43 _ _ _ = notHappyAtAll +happyReduction_44 _ _ _ = notHappyAtAll -happyReduce_44 = happySpecReduce_0 28 happyReduction_44-happyReduction_44 = HappyAbsSyn28+happyReduce_45 = happySpecReduce_0 28 happyReduction_45+happyReduction_45 = HappyAbsSyn28 ([] ) -happyReduce_45 = happySpecReduce_1 28 happyReduction_45-happyReduction_45 (HappyAbsSyn27 happy_var_1)+happyReduce_46 = happySpecReduce_1 28 happyReduction_46+happyReduction_46 (HappyAbsSyn27 happy_var_1) = HappyAbsSyn28 ((:[]) happy_var_1 )-happyReduction_45 _ = notHappyAtAll +happyReduction_46 _ = notHappyAtAll -happyReduce_46 = happySpecReduce_3 28 happyReduction_46-happyReduction_46 (HappyAbsSyn28 happy_var_3)+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_46 _ _ _ = notHappyAtAll --happyReduce_47 = happySpecReduce_1 29 happyReduction_47-happyReduction_47 _- = HappyAbsSyn29- (Language.EO.Phi.Syntax.Abs.Phi- )+happyReduction_47 _ _ _ = notHappyAtAll happyReduce_48 = happySpecReduce_1 29 happyReduction_48 happyReduction_48 _ = HappyAbsSyn29- (Language.EO.Phi.Syntax.Abs.Rho+ (Language.EO.Phi.Syntax.Abs.Phi ) happyReduce_49 = happySpecReduce_1 29 happyReduction_49-happyReduction_49 (HappyAbsSyn16 happy_var_1)+happyReduction_49 _ = HappyAbsSyn29- (Language.EO.Phi.Syntax.Abs.Label happy_var_1+ (Language.EO.Phi.Syntax.Abs.Rho )-happyReduction_49 _ = notHappyAtAll happyReduce_50 = happySpecReduce_1 29 happyReduction_50-happyReduction_50 (HappyAbsSyn17 happy_var_1)+happyReduction_50 (HappyAbsSyn16 happy_var_1) = HappyAbsSyn29- (Language.EO.Phi.Syntax.Abs.Alpha happy_var_1+ (Language.EO.Phi.Syntax.Abs.Label happy_var_1 ) happyReduction_50 _ = notHappyAtAll happyReduce_51 = happySpecReduce_1 29 happyReduction_51-happyReduction_51 (HappyAbsSyn18 happy_var_1)+happyReduction_51 (HappyAbsSyn17 happy_var_1) = HappyAbsSyn29- (Language.EO.Phi.Syntax.Abs.MetaAttr happy_var_1+ (Language.EO.Phi.Syntax.Abs.Alpha happy_var_1 ) happyReduction_51 _ = notHappyAtAll -happyReduce_52 = happySpecReduce_1 30 happyReduction_52-happyReduction_52 (HappyAbsSyn29 happy_var_1)- = HappyAbsSyn30- (Language.EO.Phi.Syntax.Abs.ObjectAttr happy_var_1+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 _+happyReduction_53 (HappyAbsSyn29 happy_var_1) = HappyAbsSyn30- (Language.EO.Phi.Syntax.Abs.DeltaAttr+ (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_55 = happySpecReduce_2 31 happyReduction_55-happyReduction_55 (HappyAbsSyn34 happy_var_2)+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_55 _ _ = notHappyAtAll +happyReduction_56 _ _ = notHappyAtAll -happyReduce_56 = happySpecReduce_3 32 happyReduction_56-happyReduction_56 _+happyReduce_57 = happySpecReduce_3 32 happyReduction_57+happyReduction_57 _ (HappyAbsSyn28 happy_var_2) _ = HappyAbsSyn32 (Language.EO.Phi.Syntax.Abs.HeadFormation happy_var_2 )-happyReduction_56 _ _ _ = notHappyAtAll +happyReduction_57 _ _ _ = notHappyAtAll -happyReduce_57 = happySpecReduce_1 32 happyReduction_57-happyReduction_57 _+happyReduce_58 = happySpecReduce_1 32 happyReduction_58+happyReduction_58 _ = HappyAbsSyn32 (Language.EO.Phi.Syntax.Abs.HeadGlobal ) -happyReduce_58 = happySpecReduce_1 32 happyReduction_58-happyReduction_58 _+happyReduce_59 = happySpecReduce_1 32 happyReduction_59+happyReduction_59 _ = HappyAbsSyn32 (Language.EO.Phi.Syntax.Abs.HeadThis ) -happyReduce_59 = happySpecReduce_1 32 happyReduction_59-happyReduction_59 _+happyReduce_60 = happySpecReduce_1 32 happyReduction_60+happyReduction_60 _ = HappyAbsSyn32 (Language.EO.Phi.Syntax.Abs.HeadTermination ) -happyReduce_60 = happySpecReduce_3 33 happyReduction_60-happyReduction_60 _+happyReduce_61 = happySpecReduce_3 33 happyReduction_61+happyReduction_61 _ (HappyAbsSyn28 happy_var_2) _ = HappyAbsSyn33 (Language.EO.Phi.Syntax.Abs.ActionApplication happy_var_2 )-happyReduction_60 _ _ _ = notHappyAtAll +happyReduction_61 _ _ _ = notHappyAtAll -happyReduce_61 = happySpecReduce_2 33 happyReduction_61-happyReduction_61 (HappyAbsSyn29 happy_var_2)+happyReduce_62 = happySpecReduce_2 33 happyReduction_62+happyReduction_62 (HappyAbsSyn29 happy_var_2) _ = HappyAbsSyn33 (Language.EO.Phi.Syntax.Abs.ActionDispatch happy_var_2 )-happyReduction_61 _ _ = notHappyAtAll +happyReduction_62 _ _ = notHappyAtAll -happyReduce_62 = happySpecReduce_0 34 happyReduction_62-happyReduction_62 = HappyAbsSyn34+happyReduce_63 = happySpecReduce_0 34 happyReduction_63+happyReduction_63 = HappyAbsSyn34 ([] ) -happyReduce_63 = happySpecReduce_2 34 happyReduction_63-happyReduction_63 (HappyAbsSyn34 happy_var_2)+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_63 _ _ = notHappyAtAll +happyReduction_64 _ _ = notHappyAtAll happyNewToken action sts stk [] =- action 66 66 notHappyAtAll (HappyState 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@@ -1180,20 +1241,22 @@ PT _ (TS _ 19) -> cont 53; PT _ (TS _ 20) -> cont 54; PT _ (TS _ 21) -> cont 55;- PT _ (T_Bytes happy_dollar_dollar) -> cont 56;- PT _ (T_Function happy_dollar_dollar) -> cont 57;- PT _ (T_LabelId happy_dollar_dollar) -> cont 58;- PT _ (T_AlphaIndex happy_dollar_dollar) -> cont 59;- PT _ (T_LabelMetaId happy_dollar_dollar) -> cont 60;- PT _ (T_TailMetaId happy_dollar_dollar) -> cont 61;- PT _ (T_BindingsMetaId happy_dollar_dollar) -> cont 62;- PT _ (T_ObjectMetaId happy_dollar_dollar) -> cont 63;- PT _ (T_BytesMetaId happy_dollar_dollar) -> cont 64;- PT _ (T_MetaFunctionName happy_dollar_dollar) -> cont 65;+ 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 66 tk tks = happyError' (tks, explist)+happyError_ explist 68 tk tks = happyError' (tks, explist) happyError_ explist _ tk tks = happyError' ((tk:tks), explist) happyThen :: () => Err a -> (a -> Err b) -> Err b
src/Language/EO/Phi/Syntax/Par.y view
@@ -61,9 +61,11 @@ '↦' { PT _ (TS _ 16) } '∅' { PT _ (TS _ 17) } '⊥' { PT _ (TS _ 18) }- '⟦' { PT _ (TS _ 19) }- '⟧' { PT _ (TS _ 20) }- '⤍' { PT _ (TS _ 21) }+ '⌈' { PT _ (TS _ 19) }+ '⌉' { PT _ (TS _ 20) }+ '⟦' { PT _ (TS _ 21) }+ '⟧' { PT _ (TS _ 22) }+ '⤍' { PT _ (TS _ 23) } L_Bytes { PT _ (T_Bytes $$) } L_Function { PT _ (T_Function $$) } L_LabelId { PT _ (T_LabelId $$) }@@ -128,6 +130,7 @@ | 'ξ' { Language.EO.Phi.Syntax.Abs.ThisObject } | '⊥' { Language.EO.Phi.Syntax.Abs.Termination } | 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 } | Object '*' TailMetaId { Language.EO.Phi.Syntax.Abs.MetaTailContext $1 $3 } | MetaFunctionName '(' Object ')' { Language.EO.Phi.Syntax.Abs.MetaFunction $1 $3 }
src/Language/EO/Phi/Syntax/Print.hs view
@@ -1,3 +1,36 @@+{-+Copyright EO/Polystat Development Team (c) 2023++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++ * Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer.++ * Redistributions in binary form must reproduce the above+ copyright notice, this list of conditions and the following+ disclaimer in the documentation and/or other materials provided+ with the distribution.++ * Neither the name of EO/Polystat Development Team nor the names of other+ contributors may be used to endorse or promote products derived+ from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}+ -- File generated by the BNF Converter (bnfc 2.9.5). {-# LANGUAGE CPP #-}@@ -178,6 +211,7 @@ 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.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]) Language.EO.Phi.Syntax.Abs.MetaTailContext object tailmetaid -> prPrec i 0 (concatD [prt 0 object, doc (showString "*"), prt 0 tailmetaid]) Language.EO.Phi.Syntax.Abs.MetaFunction metafunctionname object -> prPrec i 0 (concatD [prt 0 metafunctionname, doc (showString "("), prt 0 object, doc (showString ")")])
src/Language/EO/Phi/TH.hs view
@@ -1,3 +1,26 @@+{- 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 -} module Language.EO.Phi.TH where import Data.Aeson (Options (..), camelTo2)
src/Language/EO/Phi/ToLaTeX.hs view
@@ -1,3 +1,26 @@+{- 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 DerivingStrategies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}@@ -59,6 +82,7 @@ toLatex MetaTailContext{} = error "rendering MetaTailContext in LaTex format" 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" removeOrgEolang :: String -> String removeOrgEolang = T.unpack . T.replace "Q.org.eolang" "QQ" . T.pack
src/Language/EO/Test/Yaml.hs view
@@ -1,3 +1,26 @@+{- 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 DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# OPTIONS_GHC -Wno-orphans #-}
src/Language/EO/Test/YamlSpec.hs view
@@ -1,3 +1,26 @@+{- 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 OverloadedRecordDot #-}
test/Language/EO/Phi/DataizeSpec.hs view
@@ -1,3 +1,26 @@+{- 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 FlexibleInstances #-} {-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE RecordWildCards #-}
test/Language/EO/PhiSpec.hs view
@@ -1,3 +1,26 @@+{- 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 LambdaCase #-} {-# LANGUAGE OverloadedLists #-}
test/Language/EO/Rules/PhiPaperSpec.hs view
@@ -1,3 +1,26 @@+{- 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 DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-}@@ -305,14 +328,19 @@ parseTests = Yaml.decodeFileThrow spec :: Spec-spec = do- ruleset <- runIO $ parseRuleSetFromFile "./test/eo/phi/rules/yegor.yaml"- let rulesFromYaml = map convertRuleNamed (rules ruleset)- inputs <- runIO $ parseTests "./test/eo/phi/confluence.yaml"- describe "Yegor's rules" $ do- it "Are confluent (via QuickCheck)" (confluent rulesFromYaml)- describe- "Are confluent (regression tests)"- $ forM_ (tests inputs)- $ \input -> do- it (printTree input) (input `shouldSatisfy` confluentOnObject rulesFromYaml)+spec =+ forM_+ [ ("Old Yegor's rules", "test/eo/phi/rules/yegor.yaml")+ , ("New Yegor's rules", "test/eo/phi/rules/new.yaml")+ ]+ $ \(name, rulesFile) -> do+ ruleset <- runIO $ parseRuleSetFromFile rulesFile+ let rulesFromYaml = map convertRuleNamed (rules ruleset)+ inputs <- runIO $ parseTests "test/eo/phi/confluence.yaml"+ describe name $ do+ it "Are confluent (via QuickCheck)" (confluent rulesFromYaml)+ describe+ "Are confluent (regression tests)"+ $ forM_ (tests inputs)+ $ \input -> do+ it (printTree input) (input `shouldSatisfy` confluentOnObject rulesFromYaml)
test/Language/EO/YamlSpec.hs view
@@ -1,3 +1,26 @@+{- 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 #-} module Language.EO.YamlSpec where@@ -9,5 +32,6 @@ spec = Test.spec [ "test/eo/phi/rules/yegor.yaml"+ , "test/eo/phi/rules/new.yaml" , "test/eo/phi/rules/streams.yaml" ]
test/Main.hs view
@@ -1,3 +1,26 @@+{- 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 -} module Main where import Main.Utf8
test/Spec.hs view
@@ -1,1 +1,24 @@+{- 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 -} {-# OPTIONS_GHC -F -pgmF hspec-discover -optF --module-name=Spec #-}
test/Test/EO/Phi.hs view
@@ -1,3 +1,26 @@+{- 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 DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-}
test/Test/Metrics/Phi.hs view
@@ -1,3 +1,26 @@+{- 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 DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-}
test/doctests/Main.hs view
@@ -1,3 +1,26 @@+{- 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 -} module Main where import System.Environment (getArgs)