diff --git a/.github/workflows/ghcjs.yml b/.github/workflows/ghcjs.yml index 0caf90f7b..d3ba93d74 100644 --- a/.github/workflows/ghcjs.yml +++ b/.github/workflows/ghcjs.yml @@ -18,9 +18,6 @@ on: workflow_dispatch: # allow triggering this workflow manually -env: - store: /home/runner/nix - permissions: contents: write @@ -34,16 +31,15 @@ jobs: - name: 🧰 Setup nix uses: cachix/install-nix-action@v20 with: - nix_path: nixpkgs=channel:nixpkgs-unstable - extra_nix_config: "store = ${{ env.store }}\nsubstituters = https://cache.nixos.org/ https://cache.iog.io https://nix-community.cachix.org https://miso-haskell.cachix.org \ntrusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= miso-haskell.cachix.org-1:6N2DooyFlZOHUfJtAx1Q09H0P5XXYzoxxQYiwn6W1e8=" - # pinning Nix version - install_url: https://releases.nixos.org/nix/nix-2.14.1/install + extra_nix_config: | + substituters = https://cache.nixos.org/ https://cache.iog.io https://nix-community.cachix.org https://miso-haskell.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= miso-haskell.cachix.org-1:6N2DooyFlZOHUfJtAx1Q09H0P5XXYzoxxQYiwn6W1e8= + install_url: https://releases.nixos.org/nix/nix-2.16.1/install - name: Restore and cache Nix store - uses: actions/cache@v3.3.0 + uses: deemp/cache-nix-too@v1 with: key: ${{ runner.os }}-nix-${{ hashfiles('./flake.nix', './flake.lock') }} - path: ${{ env.store }} restore-keys: | ${{ runner.os }}-nix-${{ hashfiles('./flake.nix', './flake.lock') }} ${{ runner.os }}-nix- @@ -61,7 +57,7 @@ jobs: - name: 🔨 Collect build artifacts run: | mkdir -p dist/result/bin - cp -r ${{ env.store }}$(realpath result)/bin/try-rzk.jsexe/ dist/result/bin/. + cp -r result/bin/try-rzk.jsexe/ dist/result/bin/. chmod -R +w dist/ cp try-rzk/index.html dist/. diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 20eadab0c..2bdfd9fd2 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -33,9 +33,6 @@ jobs: rename-to: rzk chmod: 0755 - - name: 🔨 Install Pygments lexer for rzk - run: pip install rzk/RzkLexer - - name: 🔨 Install MkDocs Material and mike run: pip install -r docs/requirements.txt @@ -47,7 +44,7 @@ jobs: - name: 🚀 Deploy with mike (${{ github.ref_name }}, latest) if: ${{ github.ref_name != 'develop' }} run: | - mike deploy --rebase --push --config-file docs/mkdocs.yml ${{ github.ref_name }} latest + mike deploy --rebase --push --update-aliases --config-file docs/mkdocs.yml ${{ github.ref_name }} latest - name: 🚀 Deploy with mike (${{ github.ref_name }}) if: ${{ github.ref_name == 'develop' }} diff --git a/docs/docs/examples/recId.rzk.md b/docs/docs/examples/recId.rzk.md index 035126db7..635a36a25 100644 --- a/docs/docs/examples/recId.rzk.md +++ b/docs/docs/examples/recId.rzk.md @@ -13,34 +13,34 @@ We begin by introducing common HoTT definitions: #lang rzk-1 -- A is contractible there exists x : A such that for any y : A we have x = y. -#def iscontr (A : U) : U +#define iscontr (A : U) : U := ∑ (a : A), (x : A) -> a =_{A} x -- A is a proposition if for any x, y : A we have x = y -#def isaprop (A : U) : U +#define isaprop (A : U) : U := (x : A) -> (y : A) -> x =_{A} y -- A is a set if for any x, y : A the type x =_{A} y is a proposition -#def isaset (A : U) : U +#define isaset (A : U) : U := (x : A) -> (y : A) -> isaprop (x =_{A} y) -- Non-dependent product of A and B -#def prod (A : U) (B : U) : U +#define prod (A : U) (B : U) : U := ∑ (x : A), B -- A function f : A -> B is an equivalence -- if there exists g : B -> A -- such that for all x : A we have g (f x) = x -- and for all y : B we have f (g y) = y -#def isweq (A : U) (B : U) (f : A -> B) : U +#define isweq (A : U) (B : U) (f : A -> B) : U := ∑ (g : B -> A), prod ((x : A) -> g (f x) =_{A} x) ((y : B) -> f (g y) =_{B} y) -- Equivalence of types A and B -#def weq (A : U) (B : U) : U +#define weq (A : U) (B : U) : U := ∑ (f : A -> B), isweq A B f -- Transport along a path -#def transport +#define transport (A : U) (C : A -> U) (x y : A) @@ -55,7 +55,7 @@ We can now define relative function extensionality. There are several formulatio ```rzk -- [RS17, Axiom 4.6] Relative function extensionality. -#def relfunext : U +#define relfunext : U := (I : CUBE) -> (psi : I -> TOPE) -> (phi : psi -> TOPE) @@ -65,7 +65,7 @@ We can now define relative function extensionality. There are several formulatio -> (t : psi) -> A t [ phi t |-> a t] -- [RS17, Proposition 4.8] A (weaker) formulation of function extensionality. -#def relfunext2 : U +#define relfunext2 : U := (I : CUBE) -> (psi : I -> TOPE) -> (phi : psi -> TOPE) @@ -92,13 +92,13 @@ First, we define how to restrict an extension type to a subshape: #variable A : {t : I | psi t \/ phi t} -> U -- Restrict extension type to a subshape. -#def restrict_phi +#define restrict_phi (a : {t : I | phi t} -> A t) : {t : I | psi t /\ phi t} -> A t := \t -> a t -- Restrict extension type to a subshape. -#def restrict_psi +#define restrict_psi (a : {t : I | psi t} -> A t) : {t : I | psi t /\ phi t} -> A t := \t -> a t @@ -108,13 +108,13 @@ Then, how to reformulate an `a` (or `b`) as an extension of its restriction: ```rzk -- Reformulate extension type as an extension of a restriction. -#def ext-of-restrict_psi +#define ext-of-restrict_psi (a : {t : I | psi t} -> A t) : (t : psi) -> A t [ psi t /\ phi t |-> restrict_psi a t ] := a -- type is coerced automatically here -- Reformulate extension type as an extension of a restriction. -#def ext-of-restrict_phi +#define ext-of-restrict_phi (a : {t : I | phi t} -> A t) : (t : phi) -> A t [ psi t /\ phi t |-> restrict_phi a t ] := a -- type is coerced automatically here @@ -124,7 +124,7 @@ Now, assuming relative function extensionality, we construct a path between rest ```rzk -- Transform extension of an identity into an identity of restrictions. -#def restricts-path +#define restricts-path (a_psi : (t : psi) -> A t) (a_phi : (t : phi) -> A t) (e : {t : I | psi t /\ phi t} -> a_psi t = a_phi t) @@ -144,7 +144,7 @@ Finally, we bring everything together into `recId`: -- A weaker version of recOR, demanding only a path between a and b: -- recOR(psi, phi, a, b) demands that for psi /\ phi we have a == b (definitionally) -- (recId psi phi a b e) demands that e is the proof that a = b (intensionally) for psi /\ phi -#def recId uses (r) -- we declare that recId is using r on purpose +#define recId uses (r) -- we declare that recId is using r on purpose (a_psi : (t : psi) -> A t) (a_phi : (t : phi) -> A t) (e : {t : I | psi t /\ phi t} -> a_psi t = a_phi t) @@ -172,7 +172,7 @@ whenever we can show that they are equal on the intersection of shapes: ```rzk -- If two extension types are equal along two subshapes, -- then they are also equal along their union. -#def id-along-border +#define id-along-border (r : relfunext2) (I : CUBE) (psi : I -> TOPE) diff --git a/docs/docs/reference/builtins/directed-interval.rzk.md b/docs/docs/reference/builtins/directed-interval.rzk.md new file mode 100644 index 000000000..e69de29bb diff --git a/docs/docs/reference/builtins/unit.rzk.md b/docs/docs/reference/builtins/unit.rzk.md new file mode 100644 index 000000000..746bb1900 --- /dev/null +++ b/docs/docs/reference/builtins/unit.rzk.md @@ -0,0 +1,64 @@ +# Unit type + +Since [:octicons-tag-24: v0.5.1][Unit support] + +```rzk +#lang rzk-1 +``` + +In the syntax, only `Unit` (the type) and `unit` (the only inhabitant) are provided. Everything else should be available from computation rules. +More specifically, `rzk` takes the uniqueness property of the `Unit` type (see Section 1.5 of the HoTT book[^1]) as the computation rule, meaning that any (well-typed) term of type `Unit` reduces to `unit`. +This means in particular, that induction and uniqueness can be defined very easily: + +```rzk +#define ind-Unit + (C : Unit -> U) + (C-unit : C unit) + (x : Unit) + : C x + := C-unit + +#define uniq-Unit + (x : Unit) + : x = unit + := refl + +#define isProp-Unit + (x y : Unit) + : x = y + := refl +``` + +As a non-trivial example, here is a proof that `Unit` is a Segal type: + +```rzk +#section isSegal-Unit + +#variable extext : ExtExt + +#define iscontr-Unit : isContr Unit + := (unit, \_ -> refl) + +#define isContr-Δ²→Unit uses (extext) + : isContr (Δ² -> Unit) + := (\_ -> unit, \k -> eq-ext-htpy extext + (2 * 2) Δ² (\_ -> BOT) + (\_ -> Unit) (\_ -> recBOT) + (\_ -> unit) k + (\_ -> refl) + ) + +#define isSegal-Unit uses (extext) + : isSegal Unit + := \x y z f g -> isRetract-ofContr-isContr + (∑ (h : hom Unit x z), hom2 Unit x y z f g h) + (Δ² -> Unit) + (\(_, k) -> k, (\k -> (\t -> k (t, t), k), \_ -> refl)) + isContr-Δ²→Unit + +#end isSegal-Unit +``` + +[Unit support]: https://github.com/fizruk/rzk/releases/tag/v0.5.1 + +[^1]: The Univalent Foundations Program (2013). _Homotopy Type Theory: Univalent Foundations of Mathematics._ diff --git a/docs/docs/reference/commands/check.rzk.md b/docs/docs/reference/commands/check.rzk.md new file mode 100644 index 000000000..e69de29bb diff --git a/docs/docs/reference/commands/compute.rzk.md b/docs/docs/reference/commands/compute.rzk.md new file mode 100644 index 000000000..e69de29bb diff --git a/docs/docs/reference/commands/define-postulate.rzk.md b/docs/docs/reference/commands/define-postulate.rzk.md new file mode 100644 index 000000000..e69de29bb diff --git a/docs/docs/reference/commands/options.rzk.md b/docs/docs/reference/commands/options.rzk.md new file mode 100644 index 000000000..e69de29bb diff --git a/docs/docs/reference/cube-layer.rzk.md b/docs/docs/reference/cube-layer.rzk.md new file mode 100644 index 000000000..a593f80f4 --- /dev/null +++ b/docs/docs/reference/cube-layer.rzk.md @@ -0,0 +1,29 @@ +# Cube layer + +```rzk +#lang rzk-1 +``` + +All cubes live in `#!rzk CUBE` universe. + +There are two built-in cubes: + +1. `#!rzk 1` cube is a unit cube with a single point `#!rzk *_1` +2. `#!rzk 2` cube is a [directed interval](../builtins/directed-interval.rzk.md) cube with points `#!rzk 0_2` and `#!rzk 1_2` + +It is also possible to have `#!rzk CUBE` variables and make products of cubes: + +1. `#!rzk I * J` is a product of cubes `#!rzk I` and `#!rzk J` +2. `#!rzk (t, s)` is a point in `#!rzk I * J` if `#!rzk t : I` and `#!rzk s : J` +3. if `#!rzk ts : I * J`, then `#!rzk first ts : I` and `#!rzk second ts : J` + +You can usually use `#!rzk (t, s)` both as a pattern, and a construction of a pair of points: + +```rzk +-- Swap point components of a point in a cube I × I +#define swap + (I : CUBE) + : (I * I) -> I * I + := \(t, s) -> (s, t) +``` + diff --git a/docs/docs/reference/extension-types.rzk.md b/docs/docs/reference/extension-types.rzk.md new file mode 100644 index 000000000..f2b3f5d44 --- /dev/null +++ b/docs/docs/reference/extension-types.rzk.md @@ -0,0 +1,17 @@ +# Extension types + + +4. Extension types \(\left\langle \prod_{t : I \mid \psi} A \vert ^{\phi} _{a} \right\rangle\) are written as `#!rzk {t : I | psi t} -> A [ phi |-> a ]` + - specifying `#!rzk [ phi |-> a ]` is optional, semantically defaults to `#!rzk [ BOT |-> recBOT ]` (like in RSTT); + - specifying `#!rzk psi` in `#!rzk {t : I | psi}` is mandatory; + - values of function types are \(\lambda\)-abstractions written in one of the following ways: + - `#!rzk \t -> ` — this is usually fine; + - `#!rzk \{t : I | psi} -> ` — this sometimes helps the typechecker; + +5. Types of functions from a shape \(\prod_{t : I \mid \psi} A\) are a specialised variant of extension types and are written `#!rzk {t : I | psi} -> A` + - specifying the name of the argument is mandatory; i.e. `#!rzk {I | psi} -> A` is invalid syntax! + - values of function types are \(\lambda\)-abstractions written in one of the following ways: + - `#!rzk \t -> ` — this is usually fine; + - `#!rzk \{t : I | psi} -> ` — this sometimes helps the typechecker; + +[^1]: Emily Riehl & Michael Shulman. _A type theory for synthetic ∞-categories._ Higher Structures 1(1), 147-224. 2017. diff --git a/docs/docs/reference/introduction.rzk.md b/docs/docs/reference/introduction.rzk.md new file mode 100644 index 000000000..b99c9bd1a --- /dev/null +++ b/docs/docs/reference/introduction.rzk.md @@ -0,0 +1,72 @@ +# Introduction + +`rzk` is an experimental proof assistant for synthetic ∞-categories. +`rzk-1` is an early version of the language supported by `rzk`. +The language is based on Riehl and Shulman's «Type Theory for Synthetic ∞-categories»[^1]. In this section, we introduce syntax, discuss features and some of the current limitations of the proof assistant. + +Overall, a program in `rzk-1` consists of a language pragma (specifying that we use `rzk-1` and not one of the other languages[^2]) followed by a sequence of commands. For now, we will only use `#define` command. + +Here is a small formalisation in an MLTT subset of `rzk-1`: + +```rzk +#lang rzk-1 + +-- Flipping the arguments of a function. +#define flip + (A B : U) -- For any types A and B + (C : (x : A) -> (y : B) -> U) -- and a type family C + (f : (x : A) -> (y : B) -> C x y) -- given a function f : A -> B -> C + : (y : B) -> (x : A) -> C x y -- we construct a function of type B -> A -> C + := \y x -> f x y -- by swapping the arguments + +-- Flipping a function twice is the same as not doing anything +#define flip-flip-is-id + (A B : U) -- For any types A and B + (C : (x : A) -> (y : B) -> U) -- and a type family C + (f : (x : A) -> (y : B) -> C x y) -- given a function f : A -> B -> C + : f = flip B A (\y x -> C x y) + (flip A B C f) -- flipping f twice is the same as f + := refl -- proof by reflexivity +``` + +Let us explain parts of this code: + +1. `#!rzk #lang rzk-1` specifies that we are in using `#!rzk rzk-1` language; +2. `#!rzk --` starts a comment line (until the end of the line); +3. `#!rzk #define «name» : «type» := «term»` defines a name `«name»` to be equal to `«term»`; the proof assistant will typecheck `«term»` against type `«type»`; +4. We define two terms here — `flip` and `flip-flip-is-id`; +5. `flip` is a function that takes 4 arguments and returns a function of two arguments. +6. `flip-flip-is-id` is a function that takes two types, a type family, and a function `f` and returns a value of an identity type `flip ... (flip ... f) = f`, indicating that flipping a function `f` twice gets us back to `f`. + +Similarly to the three layers in Riehl and Shulman's type theory, `rzk-1` has 3 universes: + +- `CUBE` is the universe of cubes, corresponding to the cube layer; +- `TOPE` is the universe of topes, corresponding to the tope layer; +- `U` is the universe of types, corresponding to the types and terms layer. + +These are explained in the following sections. + +## Soundness + +`rzk-1` assumes "type-in-type", that is `U` has type `U`. +This is known to make the type system unsound (due to Russell and Curry-style paradoxes), however, +it is sometimes considered acceptable in proof assistants. +And, since it simplifies implementation, `rzk-1` embraces this assumption, at least for now. + +Moreover, `rzk-1` does not prevent cubes or topes to depend on types and terms. For example, the following definition typechecks: + +```rzk +#define weird + (A : U) + (I : A -> CUBE) + (x y : A) + : CUBE + := I x * I y +``` + +This likely leads to another inconsistency, but it will probably not lead to bugs in actual proofs of interest, +so current version embraces this lax treatment of universes. + +[^1]: Emily Riehl & Michael Shulman. _A type theory for synthetic ∞-categories._ Higher Structures 1(1), 147-224. 2017. + +[^2]: In version [:octicons-tag-24: v0.1.0](https://github.com/fizruk/rzk/releases/tag/v0.1.0), `rzk` has supported simply typed lambda calculus, PCF, and MLTT. However, those languages have been removed. diff --git a/docs/docs/rzk-1/render.rzk.md b/docs/docs/reference/render.rzk.md similarity index 96% rename from docs/docs/rzk-1/render.rzk.md rename to docs/docs/reference/render.rzk.md index c006818b4..cb74ab3fa 100644 --- a/docs/docs/rzk-1/render.rzk.md +++ b/docs/docs/reference/render.rzk.md @@ -64,7 +64,7 @@ Topes are visualised with **orange** color: ```rzk -- 2-simplex -#def Δ² : (2 * 2) -> TOPE +#define Δ² : (2 * 2) -> TOPE := \(t, s) -> s <= t ```

@@ -72,7 +72,7 @@ Boundary of a tope: ```rzk -- boundary of a 2-simplex -#def ∂Δ² : Δ² -> TOPE +#define ∂Δ² : Δ² -> TOPE := \(t, s) -> s === 0_2 \/ t === 1_2 \/ s === t ``` @@ -81,14 +81,14 @@ The busiest tope diagram involves the entire 3D cube: ```rzk -- 3-dim cube -#def 2³ : (2 * 2 * 2) -> TOPE +#define 2³ : (2 * 2 * 2) -> TOPE := \_ -> TOP ```


```rzk -- 3-simplex -#def Δ³ : (2 * 2 * 2) -> TOPE +#define Δ³ : (2 * 2 * 2) -> TOPE := \((t1, t2), t3) -> t3 <= t2 /\ t2 <= t1 ``` @@ -100,7 +100,7 @@ Types are visualised with **blue** color. Recog ```rzk -- [RS17, Definition 5.1] -- The type of arrows in A from x to y. -#def hom +#define hom (A : U) -- A type. (x y : A) -- Two points in A. : U -- (hom A x y) is a 1-simplex (an arrow) @@ -113,7 +113,7 @@ Types are visualised with **blue** color. Recog ```rzk -- [RS17, Definition 5.2] -- the type of commutative triangles in A -#def hom2 +#define hom2 (A : U) -- A type. (x y z : A) -- Three points in A. (f : hom A x y) -- An arrow in A from x to y. @@ -134,7 +134,7 @@ Terms (with non-trivial labels) are visualised with **r We can visualise terms that fill a shape: ```rzk -#def square +#define square (A : U) (x y z : A) (f : hom A x y) @@ -148,7 +148,7 @@ We can visualise terms that fill a shape: If a term is extracted as a part of a larger shape, generally, the whole shape will be shown (in gray): ```rzk -#def face +#define face (A : U) (x y z : A) (f : hom A x y) diff --git a/docs/docs/rzk-1/sections.rzk.md b/docs/docs/reference/sections.rzk.md similarity index 90% rename from docs/docs/rzk-1/sections.rzk.md rename to docs/docs/reference/sections.rzk.md index 1aca2a316..ddffe2b0f 100644 --- a/docs/docs/rzk-1/sections.rzk.md +++ b/docs/docs/reference/sections.rzk.md @@ -19,14 +19,14 @@ This is a literate `rzk` file: Consider the following definitions: ```rzk -#def compose₁ +#define compose₁ (A B C : U) (g : B -> C) (f : A -> B) : A -> C := \x -> g (f x) -#def twice₁ +#define twice₁ (A : U) (h : A -> A) : A -> A @@ -38,13 +38,13 @@ Since it might be common to introduce types `A`, `B`, and `C`, we can declare th ```rzk #variables A B C : U -#def compose₂ +#define compose₂ (g : B -> C) (f : A -> B) : A -> C := \x -> g (f x) -#def twice₂ +#define twice₂ (h : A -> A) : A -> A := \x -> h (h x) @@ -62,8 +62,8 @@ We can try going even further and declare variables `f`, `g`, `h`, and `x`: #variable h : A -> A #variable x : A --- #def bad-compose₃ : C := g (f x) -- ERROR: implicit assumptions A and B -#def twice₃ : A := h (h x) +-- #define bad-compose₃ : C := g (f x) -- ERROR: implicit assumptions A and B +#define twice₃ : A := h (h x) ``` Note how this definition of `bad-compose₃` is implicitly dependent on the types `A` and `B`, which is promptly noted by `rzk`, which issues an error (if we uncomment the corresponding line): @@ -78,7 +78,7 @@ used in definition of To let `rzk` know that this is not accidental, we can add `uses (...)` annotation to specify a list of variables implicitly used in the definition: ```rzk -#def compose₃ uses (A B) : C := g (f x) +#define compose₃ uses (A B) : C := g (f x) ``` ## Sections @@ -92,13 +92,13 @@ To introduce assumption variables temporarily inside of one file, you can use se #variable k : X -> X #variable x' : X -#def compose₄ +#define compose₄ (g : Y -> Z) (f : X -> Y) : X -> Z := \x -> g (f x) -#def twice₄ : X := k (k x') +#define twice₄ : X := k (k x') #end example-1 ``` @@ -110,13 +110,13 @@ Now, once outside of the section, `compose₄` and `twice₄` obtain correspondi -- compose₄ : (X : U) -> (Y : U) -> (Z : U) -> (g : Y -> Z) -> (f : X -> Y) -> (X -> Z) -- twice₄ : (X : U) -> (k : X -> X) -> (x' : X) -> X -#def twice₅ +#define twice₅ (T : U) (e : T -> T) : T -> T := compose₄ T T T e e -#def identity +#define identity (T : U) : T -> T := twice₄ T (\t -> t) diff --git a/docs/docs/reference/tope-disjunction-elimination.rzk.md b/docs/docs/reference/tope-disjunction-elimination.rzk.md new file mode 100644 index 000000000..0b8f25e65 --- /dev/null +++ b/docs/docs/reference/tope-disjunction-elimination.rzk.md @@ -0,0 +1,13 @@ +# Tope disjuction elimination + +Following Riehl and Shulman's type theory[^1], `#!rzk rzk-1` introduces two primitive terms for disjunction elimination: + +1. `#!rzk recBOT` corresponds to \(\mathsf{rec}_\bot\), has any type, and is valid whenever tope context is included in `#!rzk BOT`; + +2. `#!rzk recOR(«tope_1» |-> «term_1», ..., «tope_n» |-> «term_n»)` defines a term for a disjunction of topes `#!rzk «tope_1» \/ ... \/ «tope_n»`. This is well-typed when for an intersection of any two topes `#!rzk «tope_i» /\ «tope_j»` the corresponding terms `#!rzk «term_i»` and `#!rzk «term_j»` are judgementally equal. In particular, `#!rzk recOR(psi |-> a_psi, phi |-> a_phi)` corresponds to \(\mathsf{rec}_\lor^{\psi, \phi}(a_\psi, a_\phi)\). + +!!! warning "Deprecated syntax" + `#!rzk recOR(psi, phi, a_psi, a_phi)` corresponds to \(\mathsf{rec}_\lor^{\psi, \phi}(a_\psi, a_\phi)\), is well-typed when `#!rzk a_psi` is definitionally equal to `#!rzk a_phi` under `#!rzk psi /\ phi`. However, this syntax is deprecated since it is easy to confuse which tope relates to which term. + +[^1]: Emily Riehl & Michael Shulman. _A type theory for synthetic ∞-categories._ Higher Structures 1(1), 147-224. 2017. + diff --git a/docs/docs/reference/tope-layer.rzk.md b/docs/docs/reference/tope-layer.rzk.md new file mode 100644 index 000000000..a3c5a83b6 --- /dev/null +++ b/docs/docs/reference/tope-layer.rzk.md @@ -0,0 +1,21 @@ +# Tope layer + +All topes live in `#!rzk TOPE` universe. + +Here are all the ways to build a tope: + +1. Introduce a variable, e.g. `#!rzk (psi : TOPE) -> ...`; + + - Usually, topes depend on point variables from some cube(s). To indicate that, we usually introduce topes as "functions" from some cube to `#!rzk TOPE`. For example, `#!rzk (psi : I -> TOPE) -> ...`. + +2. Use a constant: + + - top tope \(\top\) is written `#!rzk TOP` + - bottom tope \(\bot\) is written `#!rzk BOT` + +3. Usa a tope connective: + - tope conjunction \(\psi \land \phi\) is written `#!rzk psi /\ phi` + - tope disjunction \(\psi \lor \phi\) is written `#!rzk psi \/ phi` + - equality tope \(t \equiv s\) is written `#!rzk t === s`, whenever `#!rzk t` and `#!rzk s` are points of the same cube + - inequality tope \(t \leq s\) is written `#!rzk t <= s` whenever `#!rzk t : 2` and `#!rzk s : 2` + diff --git a/docs/docs/reference/type-layer.rzk.md b/docs/docs/reference/type-layer.rzk.md new file mode 100644 index 000000000..8a1619e65 --- /dev/null +++ b/docs/docs/reference/type-layer.rzk.md @@ -0,0 +1,48 @@ +# Types and terms + +```rzk +#lang rzk-1 +``` + +## Functions (dependent products) + +Function (dependent product) types \(\prod_{x : A} B\) are written `#!rzk (x : A) -> B x`. Values of function types are \(\lambda\)-abstractions written in one of the following ways: + + - `#!rzk \x -> ` — this is usually fine; + - `#!rzk \(x : A) -> ` — this sometimes helps the typechecker. + +## Dependent sums + +Dependent sum type \(\sum_{x : A} B\) is written `#!rzk ∑ (x : A), B` or `#!rzk Sigma (x : A), B`. Values of dependent sum types are pairs written as `#!rzk (x, y)`. + +To access components of a dependent pair `#!rzk p`, use `#!rzk first p` and `#!rzk second p`. + +!!! warning + `#!rzk first` and `#!rzk second` are not valid syntax without an argument! + +## Identity types + +Identity (path) type \(x =_A y\) is written `#!rzk x =_{A} y`. + +!!! tip + Specifying the type `#!rzk A` is optional: `#!rzk x = y` is valid syntax! + +Any identity type has value `#!rzk refl_{x : A}` whose type is `#!rzk x =_{A} x` whenever `#!rzk x : A` + +!!! tip + Specifying term and type of `#!rzk refl_{x : A}` is optional: `#!rzk refl_{x}` and `#!rzk refl` are both valid syntax. + +Path induction is done using \(\mathcal{J}\) path eliminator: + +- for + - any type \(A\) and \(a : A\), + - type family \(C : \prod_{x : A} ((a =_A x) \to \mathcal{U})\) and + - \(d : C(a,\mathsf{refl}_a)\) and + - \(x : A\) and \(p : a =_A x\) +- we have \(\mathcal{J}(A, a, C, d, x, p) : C(x, p)\) + +In `#!rzk rzk-1` we write `#!rzk idJ(A, a, C, d, x, p)` + +!!! warning + `#!rzk idJ` is not valid syntax without exactly 6-tuple provided as an argument! + diff --git a/docs/docs/related/yoneda.md b/docs/docs/related/yoneda.md index a29e91c1b..0bab66152 100644 --- a/docs/docs/related/yoneda.md +++ b/docs/docs/related/yoneda.md @@ -7,10 +7,7 @@ the aim of proving the Yoneda lemma for ∞-categories following the paper "[Could ∞-category theory be taught to undergraduates?](https://www.ams.org/journals/notices/202305/noti2692/noti2692.html)" [^2]. -The formalizations are implemented using [`rzk`](https://github.com/fizruk/rzk), -an experimental proof assistant for a variant of type theory with shapes -developed by [Nikolai Kudasov](https://fizruk.github.io/). Formalizations were -contributed by [Fredrik Bakke](https://github.com/fredrik-bakke), +Formalizations were contributed by [Fredrik Bakke](https://github.com/fredrik-bakke), [Nikolai Kudasov](https://fizruk.github.io/), [Emily Riehl](https://emilyriehl.github.io/), and [Jonathan Weinberger](https://sites.google.com/view/jonathanweinberger). diff --git a/docs/docs/rzk-1/introduction.rzk.md b/docs/docs/rzk-1/introduction.rzk.md deleted file mode 100644 index 8cd6fa6ca..000000000 --- a/docs/docs/rzk-1/introduction.rzk.md +++ /dev/null @@ -1,163 +0,0 @@ -# Introduction to `rzk-1` - -!!! warning "Work-in-progress" - The documentation is not yet up-to-date with all - the changes introduced in `rzk-0.2.0`.
- See [`rzk` changelog](https://github.com/fizruk/rzk/blob/release-v0.3.0/rzk/ChangeLog.md#v020---2022-04-20) for more details. - -`rzk` is an experimental proof assistant for synthetic ∞-categories. -`rzk-1` is an early version of the language supported by `rzk`. -The language is based on Riehl and Shulman's «Type Theory for Synthetic ∞-categories» ([https://arxiv.org/abs/1705.07442](https://arxiv.org/abs/1705.07442)). We will refer to Riehl and Shulman's Type Theory as RSTT. In this section, we introduce syntax, discuss features and some of the current limitations of the proof assistant. - -Overall, a program in `rzk-1` consists of a language pragma (specifying that we use `rzk-1` and not one of the other languages) followed by a sequence of commands. For now, we will only use `#def` command. - -Here is a small formalisation in an MLTT subset of `rzk-1`: - -```rzk -#lang rzk-1 - --- Flipping the arguments of a function. -#def flip - (A B : U) -- For any types A and B - (C : (x : A) -> (y : B) -> U) -- and a type family C - (f : (x : A) -> (y : B) -> C x y) -- given a function f : A -> B -> C - : (y : B) -> (x : A) -> C x y -- we construct a function of type B -> A -> C - := \y x -> f x y -- by swapping the arguments - --- Flipping a function twice is the same as not doing anything -#def flip-flip-is-id - (A B : U) -- For any types A and B - (C : (x : A) -> (y : B) -> U) -- and a type family C - (f : (x : A) -> (y : B) -> C x y) -- given a function f : A -> B -> C - : f = flip B A (\y x -> C x y) - (flip A B C f) -- flipping f twice is the same as f - := refl -- proof by reflexivity -``` - -Let us explain parts of this code: - -1. `#lang rzk-1` specifies that we are in using `rzk-1` language; -2. `--` starts a comment line (until the end of the line); -3. `#def : := ` defines a name `` to be equal to ``; the proof assistant will typecheck `` against type ``; -4. We define two terms here — `flip` and `flip-flip-is-id`; -5. `flip` is a function that takes 4 arguments and returns a function of two arguments. -6. `flip-flip-is-id` is a function that takes two types, a type family, and a function `f` and returns a value of an identity type `flip ... (flip ... f) = f`, indicating that flipping a function `f` twice gets us back to `f`. - -## Syntax - -Similarly to the three layers in RSTT, `rzk-1` has 3 universes: - -- `CUBE` is the universe of cubes, corresponding to the cube layer; -- `TOPE` is the universe of topes, corresponding to the tope layer; -- `U` is the universe of types, corresponding to the types and terms layer. - -### Cube layer - -All cubes live in `CUBE` universe. - -There are two built-in cubes: - -1. `1` cube is a unit cube with a single point `*_1` -2. `2` cube is a directed interval cube with points `0_2` and `1_2` - -It is also possible to have `CUBE` variables and make products of cubes: - -1. `I * J` is a product of cubes `I` and `J` -2. `(t, s)` is a point in `I * J` if `t : I` and `s : J` -3. if `ts : I * J`, then `first ts : I` and `second ts : J` - -You can usually use `(t, s)` both as a pattern, and a construction of a pair of points: - -```rzk --- Swap point components of a point in a cube I × I -#def swap - (I : CUBE) - : (I * I) -> I * I - := \(t, s) -> (s, t) -``` - -### Tope layer - -All topes live in `TOPE` universe. - -Here are all the ways to build a tope: - -1. Introduce a variable, e.g. `(psi : TOPE) -> ...`; - - - Usually, topes depend on point variables from some cube(s). To indicate that, we usually introduce topes as "functions" from some cube to `TOPE`. For example, `(psi : I -> TOPE) -> ...`. - -2. Use a constant: - - - top tope \(\top\) is written `TOP`; - - bottom tope \(\bot\) is written `BOT`; - - tope conjunction \(\psi \land \phi\) is written `psi /\ phi`; - - tope disjunction \(\psi \lor \phi\) is written `psi \/ phi`; - - equality tope \(t \equiv s\) is written `t === s`, whenever `t` and `s` are points of the same cube; - - inequality tope \(t \leq s\) is written `t <= s` whenever `t : 2` and `s : 2`. - -### Types and terms - -1. Function (dependent product) types \(\prod_{x : A} B\) are written `(x : A) -> B x` - - values of function types are \(\lambda\)-abstractions written in one of the following ways: - - `\x -> ` — this is usually fine; - - `\(x : A) -> ` — this sometimes helps the typechecker. - -2. Dependent sum type \(\sum_{x : A} B\) is written `∑ (x : A), B` or `Sigma (x : A), B` - - values of dependent sum types are pairs written as `(x, y)`; - - to access components of a dependent pair `p`, use `first p` and `second p`; - - `first` and `second` are not valid syntax without an argument! - -3. Identity (path) type \(x =_A y\) is written `x =_{A} y` - - specifying the type `A` is optional: `x = y` is valid syntax! - - the only value of an identity type is `refl_{x : A}` whose type is `x =_{A} x` whenever `x : A` - - specifying term and type is optional: `refl_{x}` and `refl` are both valid syntax; - - path induction is done using \(J\) path eliminator; for any type \(A\) and \(a : A\), type family - \(C : \prod_{x : A} ((a =_A x) \to \mathcal{U})\) - and \(d : C(a,\mathsf{refl}_a)\) - and \(x : A\) - and \(p : a =_A x\) - we have \(\mathcal{J}(A, a, C, d, x, p) : C(x, p)\); in `rzk-1` we write - `idJ(A, a, C, d, x, p)`; - - `idJ` is not valid syntax without exactly 6-tuple provided as an argument! - -4. Extension types \(\left\langle \prod_{t : I \mid \psi} A \vert ^{\phi} _{a} \right\rangle\) are written as `{t : I | psi t} -> A [ phi |-> a ]` - - specifying `[ phi |-> a ]` is optional, semantically defaults to `[ BOT |-> recBOT ]` (like in RSTT); - - specifying `psi` in `{t : I | psi}` is mandatory; - - values of function types are \(\lambda\)-abstractions written in one of the following ways: - - `\t -> ` or `λt → ` — this is usually fine; - - `\{t : I | psi} -> ` or `λ{t : I | psi} -> ` — this sometimes helps the typechecker; - -5. Types of functions from a shape \(\prod_{t : I \mid \psi} A\) are a specialised variant of extension types and are written `{t : I | psi} -> A` - - specifying the name of the argument is mandatory; i.e. `{I | psi} -> A` is invalid syntax! - - values of function types are \(\lambda\)-abstractions written in one of the following ways: - - `\t -> ` or `λt → ` — this is usually fine; - - `\{t : I | psi} -> ` or `λ{t : I | psi} -> ` — this sometimes helps the typechecker; - -### Tope disjuction elimination - -Following RSTT, `rzk-1` introduces two primitive terms for disjunction elimination: - -1. `recBOT` (also written `rec⊥`) corresponds to \(\mathsf{rec}_\bot\), has any type, and is valid whenever tope context is included in `BOT`; -2. `recOR(psi, phi, a_psi, a_phi)` (also written `rec∨(psi, phi, a_psi, a_phi)`) corresponds to \(\mathsf{rec}_\lor^{\psi, \phi}(a_\psi, a_\phi)\), is well-typed when `a_psi` is definitionally equal to `a_phi` under `psi /\ phi`. - -## Soundness - -First of all, in `rzk-1` we have "type-in-type", that is `U` has type `U`. -This is known to make the type system unsound, however, -it is usually considered acceptable in proof assistants. -And, since it simplifies implementation, `rzk-1` follows this convention. - -Additionally, unlike RSTT, `rzk-1` does not prevent cubes or topes to depend on types and terms. For example, the following definition typechecks: - -```rzk -#def weird - (A : U) - (I : A -> CUBE) - (x y : A) - : CUBE - := I x * I y -``` - -This likely leads to another inconsistency, but it will hardly lead to bugs in actual proofs of interest, -so current version embraces this treatment of universes. - diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 8d7371f90..c55c8b707 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -9,11 +9,27 @@ nav: - Getting Started: - Install: getting-started/install.md - Quickstart: getting-started/quickstart.rzk.md + - Publishing with MkDocs: getting-started/publishing-with-mkdocs.md - Changelog: getting-started/changelog.md - Reference: - - Introduction: rzk-1/introduction.rzk.md - - Sections and Variables: rzk-1/sections.rzk.md - - Rendering Diagrams: rzk-1/render.rzk.md + - Introduction: reference/introduction.rzk.md + - Cube layer: reference/cube-layer.rzk.md + - Tope layer: reference/tope-layer.rzk.md + - Dependent types: reference/type-layer.rzk.md + - Tope disjunction elimination: reference/tope-disjunction-elimination.rzk.md + - Extension types: reference/extension-types.rzk.md + - Organizational features: + - Sections and Variables: reference/sections.rzk.md + - Builtins: + - Directed interval: reference/builtins/directed-interval.rzk.md + - Unit type: reference/builtins/unit.rzk.md + - Commands: + - Define and Postulate: reference/commands/define-postulate.rzk.md + - Compute: reference/commands/compute.rzk.md + - Check: reference/commands/check.rzk.md + - Options: reference/commands/options.rzk.md + - Other: + - Rendering Diagrams: reference/render.rzk.md - Examples: - Weak tope disjunction elimination: examples/recId.rzk.md - Tools: @@ -42,6 +58,11 @@ markdown_extensions: permalink: true - pymdownx.arithmatex: generic: true + - attr_list + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + theme: name: material @@ -93,3 +114,4 @@ extra: plugins: - mike - rzk + - search diff --git a/docs/requirements.txt b/docs/requirements.txt index d9d4ed28d..c32519893 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,3 +2,4 @@ mkdocs-material mike python-markdown-math mkdocs-plugin-rzk==0.1.2 +pygments-rzk diff --git a/rzk/ChangeLog.md b/rzk/ChangeLog.md index 5bfe3a333..7630a8554 100644 --- a/rzk/ChangeLog.md +++ b/rzk/ChangeLog.md @@ -6,6 +6,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## v0.5.2 — 2022-07-05 + +This version introduces support for Unicode syntax, better recognition of Markdown code blocks and improves documentation a bit: + +- Support some Unicode syntax (see [#61](https://github.com/fizruk/rzk/pull/61)); +- Support curly braces syntax for code blocks (see [#64](https://github.com/fizruk/rzk/pull/64)); +- Update documentation a bit (see [07b520a6](https://github.com/fizruk/rzk/commit/07b520a67eb432105fad908202949c93a1639ca8) and [7cc7f383](https://github.com/fizruk/rzk/commit/7cc7f383b1785130277ed79d123c1dd357162d9d)); +- Factor out Pygments highlighting to https://github.com/fizruk/pygments-rzk; +- Use new cache action for Nix (see [#60](https://github.com/fizruk/rzk/pull/60)). + ## v0.5.1 — 2022-06-29 This version fixes `Unit` type and makes some changes to documentation: diff --git a/rzk/RzkLexer/README.md b/rzk/RzkLexer/README.md deleted file mode 100644 index 8ed1c9932..000000000 --- a/rzk/RzkLexer/README.md +++ /dev/null @@ -1,64 +0,0 @@ -# Pygments higlighter for Rzk - -This is a simple [Pygments](https://pygments.org) higlighter for Rzk, which can be used with [`minted` package](https://www.ctan.org/pkg/minted) when writing rzk code in LaTeX. - -## How to use - -### Install - -Clone this repository, and install the highlighter using [`pip` installer](https://pip.pypa.io/en/stable/): - -```sh -git clone https://github.com/fizruk/rzk.git -cd rzk # enter repository root -cd rzk/RzkLexer # enter the directory with RzkLexer -pip install . # install using pip -``` - -### Use in LaTeX - -In your LaTeX document: - -1. Include `minted` package: - -```tex -\package{minted} -``` - -2. Use `minted` environment with `rzk` language, for example: - -```tex -\begin{frame}[fragile] - \frametitle{\textsc{Rzk} highlighting in LaTeX with \texttt{minted}} - -A basic example: - -\tiny -\begin{minted}[linenos,frame=leftline,mathescape]{rzk} -#lang rzk-1 - -#section path-algebra - -#variable A : U -#variables x y z : A - --- path reversal -#define rev uses (A x y) - (p : x = y) -- A path from x to y in A. - : y = x -- The reversal will be defined by path induction on p. - := idJ(A, x, \y' p' -> y' = x, refl, y, p) - --- path composition by induction on the second path -#define concat - (p : x = y) -- A path from x to y in A. - (q : y = z) -- A path from y to z in A. - : (x = z) - := idJ(A, y, \z' q' -> (x = z'), p, z, q) - -#end path-algebra -\end{minted} - -\end{frame} -``` - -![Rendering rzk code in LaTeX (demo).](images/latex-highlighting-demo.png) \ No newline at end of file diff --git a/rzk/RzkLexer/images/latex-highlighting-demo.png b/rzk/RzkLexer/images/latex-highlighting-demo.png deleted file mode 100644 index 46029d916..000000000 Binary files a/rzk/RzkLexer/images/latex-highlighting-demo.png and /dev/null differ diff --git a/rzk/RzkLexer/rzklexer.egg-info/PKG-INFO b/rzk/RzkLexer/rzklexer.egg-info/PKG-INFO deleted file mode 100644 index 5d9abb526..000000000 --- a/rzk/RzkLexer/rzklexer.egg-info/PKG-INFO +++ /dev/null @@ -1,3 +0,0 @@ -Metadata-Version: 2.1 -Name: rzklexer -Version: 0.0.0 diff --git a/rzk/RzkLexer/rzklexer.egg-info/SOURCES.txt b/rzk/RzkLexer/rzklexer.egg-info/SOURCES.txt deleted file mode 100644 index 9f8054196..000000000 --- a/rzk/RzkLexer/rzklexer.egg-info/SOURCES.txt +++ /dev/null @@ -1,8 +0,0 @@ -README.md -setup.py -rzklexer/__init__.py -rzklexer.egg-info/PKG-INFO -rzklexer.egg-info/SOURCES.txt -rzklexer.egg-info/dependency_links.txt -rzklexer.egg-info/entry_points.txt -rzklexer.egg-info/top_level.txt \ No newline at end of file diff --git a/rzk/RzkLexer/rzklexer.egg-info/dependency_links.txt b/rzk/RzkLexer/rzklexer.egg-info/dependency_links.txt deleted file mode 100644 index 8b1378917..000000000 --- a/rzk/RzkLexer/rzklexer.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/rzk/RzkLexer/rzklexer.egg-info/entry_points.txt b/rzk/RzkLexer/rzklexer.egg-info/entry_points.txt deleted file mode 100644 index 8a1087529..000000000 --- a/rzk/RzkLexer/rzklexer.egg-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[pygments.lexers] -rzklexer = rzklexer:RzkLexer diff --git a/rzk/RzkLexer/rzklexer.egg-info/top_level.txt b/rzk/RzkLexer/rzklexer.egg-info/top_level.txt deleted file mode 100644 index 2da83d07b..000000000 --- a/rzk/RzkLexer/rzklexer.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -rzklexer diff --git a/rzk/RzkLexer/rzklexer/__init__.py b/rzk/RzkLexer/rzklexer/__init__.py deleted file mode 100644 index 900ee237e..000000000 --- a/rzk/RzkLexer/rzklexer/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -import pygments.lexer -from pygments.lexer import bygroups -from pygments.token import * -__all__ = ["RzkLexer"] -class RzkLexer(pygments.lexer.RegexLexer): - name = 'Rzk' - aliases = ['rzk'] - filenames = ['*.rzk'] - url = 'https://github.com/fizruk/rzk' - KEYWORDS = ['as', 'uses'] - def get_tokens_unprocessed(self, text): - for index, token, value in super(RzkLexer,self).get_tokens_unprocessed(text): - if token is Name and value in self.KEYWORDS: - yield index, Keyword, value - else: - yield index, token, value - tokens = { - 'root': [ - (r'--.*\n', Comment), - (r'\{-((.)(?\?\[\\\]\{\|\}][^\t\n\r !"#\(\),\.;:<>\?\[\\\]\{\|\}]*)', - bygroups(Name.Decorator, Name.Entity)), - (r' = | \* | === | <= | /\\ | \\/ ', Operator), - (r'(\(\s*)((([^\t\n\r !"#\(\),-\.;:<>\?\[\\\]\{\|\}][^\t\n\r !"#\(\),\.;:<>\?\[\\\]\{\|\}]*)\s*)+)(:)', - bygroups(Punctuation, Name.Variable, None, None, Punctuation)), - (r'(\\\s*)((([^\t\n\r !"#\(\),-\.;:\\\/=<>\?\[\\\]\{\|\}][^\t\n\r !"#\(\),\.;:<>\?\[\\\]\{\|\}]*)\s*)+)', - bygroups(Punctuation, Name.Variable)), - (r'(;|:|:=|\(|\)|_\b|,|\{|\||\}|\||\[|\]|<|>|\\|->)', Punctuation), - (r'((#assume|#variables|#variable)\b\s+)([^:]+)', - bygroups(Keyword.Declaration, None, Name.Variable)), - (r'((#postulate|#define|#def)\b\s+)([^\t\n\r !"#\(\),-\.;:<>\?\[\\\]\{\|\}][^\t\n\r !"#\(\),\.;:<>\?\[\\\]\{\|\}]*\s+)((uses\s+)(\()([^\(\)]+)(\)))?', - bygroups(Keyword, None, Name.Function, None, Keyword, Punctuation, Name.Variable, Punctuation)), - (r'"((.)(?\?\[\\\]\{\|\}])((.)(?\[\\\]\{\|\}]))*', Name), - (r'\?', Name), - (r'[a-zA-Z]([a-zA-Z]|\d|_|\')*', Name) - ] - } diff --git a/rzk/RzkLexer/setup.py b/rzk/RzkLexer/setup.py deleted file mode 100644 index 36d56507c..000000000 --- a/rzk/RzkLexer/setup.py +++ /dev/null @@ -1,11 +0,0 @@ -from setuptools import setup, find_packages - -setup ( - name='rzklexer', - packages=find_packages(), - entry_points = - """ - [pygments.lexers] - rzklexer = rzklexer:RzkLexer - """, -) diff --git a/rzk/package.yaml b/rzk/package.yaml index c6885b300..7c162c74d 100644 --- a/rzk/package.yaml +++ b/rzk/package.yaml @@ -1,5 +1,5 @@ name: rzk -version: 0.5.1 +version: 0.5.2 github: "fizruk/rzk" license: BSD3 author: "Nikolai Kudasov" diff --git a/rzk/rzk.cabal b/rzk/rzk.cabal index 764ab3f42..012fea8e3 100644 --- a/rzk/rzk.cabal +++ b/rzk/rzk.cabal @@ -5,7 +5,7 @@ cabal-version: 1.12 -- see: https://github.com/sol/hpack name: rzk -version: 0.5 +version: 0.5.2 synopsis: An experimental proof assistant for synthetic ∞-categories description: Please see the README on GitHub at category: Dependent Types diff --git a/rzk/rzk.nix b/rzk/rzk.nix index 0e7ed7cbc..66a21bd3c 100644 --- a/rzk/rzk.nix +++ b/rzk/rzk.nix @@ -3,7 +3,7 @@ }: mkDerivation { pname = "rzk"; - version = "0.5.1"; + version = "0.5.2"; src = ./.; isLibrary = true; isExecutable = true; diff --git a/rzk/src/Language/Rzk/Free/Syntax.hs b/rzk/src/Language/Rzk/Free/Syntax.hs index fb5019c5f..e5f45564d 100644 --- a/rzk/src/Language/Rzk/Free/Syntax.hs +++ b/rzk/src/Language/Rzk/Free/Syntax.hs @@ -23,6 +23,9 @@ import Data.String import Free.Scoped import Free.Scoped.TH +-- FIXME: use proper mechanisms for warnings +import Debug.Trace + import qualified Language.Rzk.Syntax as Rzk data RzkPosition = RzkPosition @@ -171,7 +174,41 @@ toScopePattern pat bvars = toTerm $ \z -> toTerm :: (VarIdent -> Term a) -> Rzk.Term -> Term a toTerm bvars = go where + deprecated t t' = trace msg (go t') + where + msg = unlines + [ "[DEPRECATED]: the following notation is deprecated and will be removed from future version of rzk:" + , " " <> Rzk.printTree t + , "instead consider using the following notation:" + , " " <> Rzk.printTree t' + ] + go = \case + -- Depracations + t@(Rzk.RecOrDeprecated loc psi phi a_psi a_phi) -> deprecated t + (Rzk.RecOr loc [Rzk.Restriction loc psi a_psi, Rzk.Restriction loc phi a_phi]) + t@(Rzk.TypeExtensionDeprecated loc shape type_) -> deprecated t + (Rzk.TypeFun loc shape type_) + + -- ASCII versions + Rzk.ASCII_CubeUnitStar loc -> go (Rzk.CubeUnitStar loc) + Rzk.ASCII_Cube2_0 loc -> go (Rzk.Cube2_0 loc) + Rzk.ASCII_Cube2_1 loc -> go (Rzk.Cube2_1 loc) + Rzk.ASCII_TopeTop loc -> go (Rzk.TopeTop loc) + Rzk.ASCII_TopeBottom loc -> go (Rzk.TopeBottom loc) + Rzk.ASCII_TopeEQ loc l r -> go (Rzk.TopeEQ loc l r) + Rzk.ASCII_TopeLEQ loc l r -> go (Rzk.TopeLEQ loc l r) + Rzk.ASCII_TopeAnd loc l r -> go (Rzk.TopeAnd loc l r) + Rzk.ASCII_TopeOr loc l r -> go (Rzk.TopeOr loc l r) + + Rzk.ASCII_TypeFun loc param ret -> go (Rzk.TypeFun loc param ret) + Rzk.ASCII_TypeSigma loc pat ty ret -> go (Rzk.TypeSigma loc pat ty ret) + Rzk.ASCII_Lambda loc pat ret -> go (Rzk.Lambda loc pat ret) + Rzk.ASCII_TypeExtensionDeprecated loc shape type_ -> go (Rzk.TypeExtensionDeprecated loc shape type_) + Rzk.ASCII_First loc term -> go (Rzk.First loc term) + Rzk.ASCII_Second loc term -> go (Rzk.Second loc term) + + Rzk.Var _loc x -> bvars (varIdent x) Rzk.Universe _loc -> Universe @@ -190,7 +227,9 @@ toTerm bvars = go Rzk.TopeAnd _loc l r -> TopeAnd (go l) (go r) Rzk.TopeOr _loc l r -> TopeOr (go l) (go r) Rzk.RecBottom _loc -> RecBottom - Rzk.RecOr _loc rs -> RecOr [ (go tope, go term) | Rzk.Restriction _loc tope term <- rs ] + Rzk.RecOr _loc rs -> RecOr $ flip map rs $ \case + Rzk.Restriction _loc tope term -> (go tope, go term) + Rzk.ASCII_Restriction _loc tope term -> (go tope, go term) Rzk.TypeId _loc x tA y -> TypeId (go x) (Just (go tA)) (go y) Rzk.TypeIdSimple _loc x y -> TypeId (go x) Nothing (go y) Rzk.TypeUnit _loc -> TypeUnit @@ -230,7 +269,9 @@ toTerm bvars = go (toScopePattern pat bvars (Rzk.Lambda _loc params body)) Rzk.TypeRestricted _loc ty rs -> - TypeRestricted (go ty) (map (\(Rzk.Restriction _loc tope term) -> (go tope, go term)) rs) + TypeRestricted (go ty) $ flip map rs $ \case + Rzk.Restriction _loc tope term -> (go tope, go term) + Rzk.ASCII_Restriction _loc tope term -> (go tope, go term) Rzk.Hole _loc _ident -> error "holes are not supported" diff --git a/rzk/src/Language/Rzk/Syntax.cf b/rzk/src/Language/Rzk/Syntax.cf index 61a5e318b..1c0dcabdb 100644 --- a/rzk/src/Language/Rzk/Syntax.cf +++ b/rzk/src/Language/Rzk/Syntax.cf @@ -78,7 +78,7 @@ ParamVarShape. ParamDecl ::= "{" "(" Pattern ":" Term ")" "|" Term "}" ; paramVarShape. ParamDecl ::= "{" Pattern ":" Term "|" Term "}" ; define paramVarShape pat cube tope = ParamVarShape pat cube tope ; -Restriction. Restriction ::= Term "|->" Term ; +Restriction. Restriction ::= Term "↦" Term ; separator nonempty Restriction "," ; -- Universes @@ -87,38 +87,36 @@ UniverseCube. Term7 ::= "CUBE" ; UniverseTope. Term7 ::= "TOPE" ; -- Cubes CubeUnit. Term7 ::= "1" ; -CubeUnitStar. Term7 ::= "*_1" ; +CubeUnitStar. Term7 ::= "*₁" ; Cube2. Term7 ::= "2" ; -Cube2_0. Term7 ::= "0_2" ; -Cube2_1. Term7 ::= "1_2" ; -CubeProduct. Term5 ::= Term5 "*" Term6 ; +Cube2_0. Term7 ::= "0₂" ; +Cube2_1. Term7 ::= "1₂" ; +CubeProduct. Term5 ::= Term5 "×" Term6 ; -- Topes -TopeTop. Term7 ::= "TOP" ; -TopeBottom. Term7 ::= "BOT" ; -TopeEQ. Term4 ::= Term5 "===" Term5 ; -TopeLEQ. Term4 ::= Term5 "<=" Term5 ; -TopeAnd. Term3 ::= Term4 "/\\" Term3 ; -TopeOr. Term2 ::= Term3 "\\/" Term2 ; +TopeTop. Term7 ::= "⊤" ; +TopeBottom. Term7 ::= "⊥" ; +TopeEQ. Term4 ::= Term5 "≡" Term5 ; +TopeLEQ. Term4 ::= Term5 "≤" Term5 ; +TopeAnd. Term3 ::= Term4 "∧" Term3 ; +TopeOr. Term2 ::= Term3 "∨" Term2 ; -- Tope disjunction elimination -RecBottom. Term7 ::= "recBOT" ; -RecOr. Term7 ::= "recOR" "(" [Restriction] ")" ; -recOr. Term7 ::= "recOR" "(" Term "," Term "," Term "," Term ")" ; -define recOr psi phi a b = RecOr [ Restriction psi a, Restriction phi b ] ; +RecBottom. Term7 ::= "recBOT" ; +RecOr. Term7 ::= "recOR" "(" [Restriction] ")" ; +RecOrDeprecated. Term7 ::= "recOR" "(" Term "," Term "," Term "," Term ")" ; -- Types -TypeFun. Term1 ::= ParamDecl "->" Term1 ; -TypeSigma. Term1 ::= "Sigma" "(" Pattern ":" Term ")" "," Term1 ; +TypeFun. Term1 ::= ParamDecl "→" Term1 ; +TypeSigma. Term1 ::= "Σ" "(" Pattern ":" Term ")" "," Term1 ; TypeUnit. Term7 ::= "Unit" ; TypeId. Term1 ::= Term2 "=_{" Term "}" Term2 ; TypeIdSimple. Term1 ::= Term2 "=" Term2 ; TypeRestricted. Term6 ::= Term6 "[" [Restriction] "]" ; -typeExtension. Term7 ::= "<" ParamDecl "->" Term ">" ; -define typeExtension param ret = TypeFun param ret ; +TypeExtensionDeprecated. Term7 ::= "<" ParamDecl "→" Term ">" ; -- Terms App. Term6 ::= Term6 Term7 ; -Lambda. Term1 ::= "\\" [Param] "->" Term1 ; +Lambda. Term1 ::= "\\" [Param] "→" Term1 ; Pair. Term7 ::= "(" Term "," Term ")" ; -First. Term6 ::= "first" Term7 ; -Second. Term6 ::= "second" Term7 ; +First. Term6 ::= "π₁" Term7 ; +Second. Term6 ::= "π₂" Term7 ; Unit. Term7 ::= "unit" ; Refl. Term7 ::= "refl"; ReflTerm. Term7 ::= "refl_{" Term "}" ; @@ -133,7 +131,37 @@ TypeAsc. Term ::= Term2 "as" Term1 ; separator nonempty Term "," ; coercions Term 7 ; --- Unicode syntax rules +-- ASCII version of some rules above + +ascii_CubeProduct. Term5 ::= Term5 "*" Term6 ; +define ascii_CubeProduct l r = CubeProduct l r ; + +ASCII_CubeUnitStar. Term7 ::= "*_1" ; +ASCII_Cube2_0. Term7 ::= "0_2" ; +ASCII_Cube2_1. Term7 ::= "1_2" ; + +ASCII_TopeTop. Term7 ::= "TOP" ; +ASCII_TopeBottom. Term7 ::= "BOT" ; +ASCII_TopeEQ. Term4 ::= Term5 "===" Term5 ; +ASCII_TopeLEQ. Term4 ::= Term5 "<=" Term5 ; +ASCII_TopeAnd. Term3 ::= Term4 "/\\" Term3 ; +ASCII_TopeOr. Term2 ::= Term3 "\\/" Term2 ; + +ASCII_TypeFun. Term1 ::= ParamDecl "->" Term1 ; +ASCII_TypeSigma. Term1 ::= "Sigma" "(" Pattern ":" Term ")" "," Term1 ; + +ASCII_Lambda. Term1 ::= "\\" [Param] "->" Term1 ; +ASCII_Restriction. Restriction ::= Term "|->" Term ; + +ASCII_TypeExtensionDeprecated. Term7 ::= "<" ParamDecl "->" Term ">" ; + +ASCII_First. Term6 ::= "first" Term7 ; +ASCII_Second. Term6 ::= "second" Term7 ; + +-- Alternative Unicode syntax rules + +unicode_TypeSigmaAlt. Term1 ::= "∑" "(" Pattern ":" Term ")" "," Term1 ; -- \sum +define unicode_TypeSigmaAlt pat fst snd = TypeSigma pat fst snd ; -- -- Universes -- unicode_Universe. Term7 ::= "𝒰" ; @@ -166,12 +194,6 @@ coercions Term 7 ; -- define unicode_RecBottom = RecBottom ; -- define unicode_RecOr rs = RecOr rs ; -- Types -unicode_TypeFun. Term1 ::= ParamDecl "→" Term1 ; -unicode_TypeSigma. Term1 ::= "Σ" "(" Pattern ":" Term ")" "," Term1 ; -- \Sigma -unicode_TypeSigmaAlt. Term1 ::= "∑" "(" Pattern ":" Term ")" "," Term1 ; -- \sum -define unicode_TypeFun arg ret = TypeFun arg ret ; -define unicode_TypeSigma pat fst snd = TypeSigma pat fst snd ; -define unicode_TypeSigmaAlt pat fst snd = TypeSigma pat fst snd ; -- -- Terms -- unicode_Lambda. Term1 ::= "λ" Param "→" Term1 ; -- unicode_First. Term6 ::= "π₁" Term7 ; diff --git a/rzk/src/Language/Rzk/Syntax.hs b/rzk/src/Language/Rzk/Syntax.hs index 723bf992c..e33caff91 100644 --- a/rzk/src/Language/Rzk/Syntax.hs +++ b/rzk/src/Language/Rzk/Syntax.hs @@ -40,21 +40,63 @@ tryExtractMarkdownCodeBlocks alias input | ("```" <> alias <> "\n") `List.isInfixOf` input = extractMarkdownCodeBlocks alias input | otherwise = input --- | Extract rzk code from a Markdown file +data LineType = NonCode | CodeOf String + +-- | Extract code for a given alias (e.g. "rzk" or "haskell") from a Markdown file +-- by replacing any lines that do not belong to the code in that language with blank lines. +-- This way the line numbers are preserved correctly from the original file. +-- +-- All of the following notations are supported to start a code block: -- --- >>> putStrLn $ detectMarkdownCodeBlocks "\n```rzk\n#lang rzk-1\n```\nasd asd\n```rzk\n#def x : U\n := U\n``` asda" +-- * @```rzk@ +-- * @```{.rzk title=\"Example\"}@ +-- * @``` { .rzk title=\"Example\" }@ +-- +-- >>> example = "Example:\n```rzk\n#lang rzk-1\n```\nasd asd\n```rzk\n#def x : U\n := U\n``` \nasda" +-- >>> putStrLn example +-- Example: +-- ```rzk +-- #lang rzk-1 +-- ``` +-- asd asd +-- ```rzk +-- #def x : U +-- := U +-- ``` +-- asda +-- >>> putStrLn $ extractMarkdownCodeBlocks "rzk" example +-- +-- -- #lang rzk-1 +-- +-- +-- -- #def x : U -- := U +-- +-- extractMarkdownCodeBlocks :: String -> String -> String -extractMarkdownCodeBlocks alias = unlines . blankNonCode True . map trim . lines +extractMarkdownCodeBlocks alias = unlines . blankNonCode NonCode . map trim . lines where - blankNonCode _toBlank [] = [] - blankNonCode True (line : lines_) - | line == "```" <> alias = "" : blankNonCode False lines_ - | otherwise = "" : blankNonCode True lines_ - blankNonCode False (line : lines_) - | line == "```" = "" : blankNonCode True lines_ - | otherwise = line : blankNonCode False lines_ + blankNonCode _prevType [] = [] + blankNonCode prevType (line : lines_) = + case prevType of + CodeOf lang + | line == "```" -> "" : blankNonCode NonCode lines_ + | lang == alias -> line : blankNonCode prevType lines_ + | otherwise -> "" : blankNonCode prevType lines_ + NonCode -> "" : blankNonCode (identifyCodeBlockStart line) lines_ trim = List.dropWhileEnd isSpace + +identifyCodeBlockStart :: String -> LineType +identifyCodeBlockStart line + | prefix == "```" = + case words suffix of + [] -> CodeOf "text" -- default to text + ('{':'.':lang) : _options -> CodeOf lang -- ``` {.rzk ... + "{" : ('.':lang) : _options -> CodeOf lang -- ``` { .rzk ... + lang : _options -> CodeOf lang -- ```rzk ... + | otherwise = NonCode + where + (prefix, suffix) = List.splitAt 3 line diff --git a/rzk/src/Language/Rzk/Syntax/Abs.hs b/rzk/src/Language/Rzk/Syntax/Abs.hs index 613883dba..285735204 100644 --- a/rzk/src/Language/Rzk/Syntax/Abs.hs +++ b/rzk/src/Language/Rzk/Syntax/Abs.hs @@ -90,7 +90,9 @@ data ParamDecl' a deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic) type Restriction = Restriction' BNFC'Position -data Restriction' a = Restriction a (Term' a) (Term' a) +data Restriction' a + = Restriction a (Term' a) (Term' a) + | ASCII_Restriction a (Term' a) (Term' a) deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic) type Term = Term' BNFC'Position @@ -112,12 +114,14 @@ data Term' a | TopeOr a (Term' a) (Term' a) | RecBottom a | RecOr a [Restriction' a] + | RecOrDeprecated a (Term' a) (Term' a) (Term' a) (Term' a) | TypeFun a (ParamDecl' a) (Term' a) | TypeSigma a (Pattern' a) (Term' a) (Term' a) | TypeUnit a | TypeId a (Term' a) (Term' a) (Term' a) | TypeIdSimple a (Term' a) (Term' a) | TypeRestricted a (Term' a) [Restriction' a] + | TypeExtensionDeprecated a (ParamDecl' a) (Term' a) | App a (Term' a) (Term' a) | Lambda a [Param' a] (Term' a) | Pair a (Term' a) (Term' a) @@ -131,6 +135,21 @@ data Term' a | Hole a (HoleIdent' a) | Var a (VarIdent' a) | TypeAsc a (Term' a) (Term' a) + | ASCII_CubeUnitStar a + | ASCII_Cube2_0 a + | ASCII_Cube2_1 a + | ASCII_TopeTop a + | ASCII_TopeBottom a + | ASCII_TopeEQ a (Term' a) (Term' a) + | ASCII_TopeLEQ a (Term' a) (Term' a) + | ASCII_TopeAnd a (Term' a) (Term' a) + | ASCII_TopeOr a (Term' a) (Term' a) + | ASCII_TypeFun a (ParamDecl' a) (Term' a) + | ASCII_TypeSigma a (Pattern' a) (Term' a) (Term' a) + | ASCII_Lambda a [Param' a] (Term' a) + | ASCII_TypeExtensionDeprecated a (ParamDecl' a) (Term' a) + | ASCII_First a (Term' a) + | ASCII_Second a (Term' a) deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic) commandPostulateNoParams :: a -> VarIdent' a -> DeclUsedVars' a -> Term' a -> Command' a @@ -160,17 +179,8 @@ paramVarType = \ _a var cube -> ParamVarType _a (PatternVar _a var) cube paramVarShape :: a -> Pattern' a -> Term' a -> Term' a -> ParamDecl' a paramVarShape = \ _a pat cube tope -> ParamVarShape _a pat cube tope -recOr :: a -> Term' a -> Term' a -> Term' a -> Term' a -> Term' a -recOr = \ _a psi phi a b -> RecOr _a [Restriction _a psi a, Restriction _a phi b] - -typeExtension :: a -> ParamDecl' a -> Term' a -> Term' a -typeExtension = \ _a param ret -> TypeFun _a param ret - -unicode_TypeFun :: a -> ParamDecl' a -> Term' a -> Term' a -unicode_TypeFun = \ _a arg ret -> TypeFun _a arg ret - -unicode_TypeSigma :: a -> Pattern' a -> Term' a -> Term' a -> Term' a -unicode_TypeSigma = \ _a pat fst snd -> TypeSigma _a pat fst snd +ascii_CubeProduct :: a -> Term' a -> Term' a -> Term' a +ascii_CubeProduct = \ _a l r -> CubeProduct _a l r unicode_TypeSigmaAlt :: a -> Pattern' a -> Term' a -> Term' a -> Term' a unicode_TypeSigmaAlt = \ _a pat fst snd -> TypeSigma _a pat fst snd @@ -261,6 +271,7 @@ instance HasPosition ParamDecl where instance HasPosition Restriction where hasPosition = \case Restriction p _ _ -> p + ASCII_Restriction p _ _ -> p instance HasPosition Term where hasPosition = \case @@ -281,12 +292,14 @@ instance HasPosition Term where TopeOr p _ _ -> p RecBottom p -> p RecOr p _ -> p + RecOrDeprecated p _ _ _ _ -> p TypeFun p _ _ -> p TypeSigma p _ _ _ -> p TypeUnit p -> p TypeId p _ _ _ -> p TypeIdSimple p _ _ -> p TypeRestricted p _ _ -> p + TypeExtensionDeprecated p _ _ -> p App p _ _ -> p Lambda p _ _ -> p Pair p _ _ -> p @@ -300,4 +313,19 @@ instance HasPosition Term where Hole p _ -> p Var p _ -> p TypeAsc p _ _ -> p + ASCII_CubeUnitStar p -> p + ASCII_Cube2_0 p -> p + ASCII_Cube2_1 p -> p + ASCII_TopeTop p -> p + ASCII_TopeBottom p -> p + ASCII_TopeEQ p _ _ -> p + ASCII_TopeLEQ p _ _ -> p + ASCII_TopeAnd p _ _ -> p + ASCII_TopeOr p _ _ -> p + ASCII_TypeFun p _ _ -> p + ASCII_TypeSigma p _ _ _ -> p + ASCII_Lambda p _ _ -> p + ASCII_TypeExtensionDeprecated p _ _ -> p + ASCII_First p _ -> p + ASCII_Second p _ -> p diff --git a/rzk/src/Language/Rzk/Syntax/Doc.txt b/rzk/src/Language/Rzk/Syntax/Doc.txt index fa4e03987..d8fe4b23b 100644 --- a/rzk/src/Language/Rzk/Syntax/Doc.txt +++ b/rzk/src/Language/Rzk/Syntax/Doc.txt @@ -36,7 +36,7 @@ The reserved words used in Syntax are the following: | ``TOPE`` | ``U`` | ``Unit`` | ``as`` | ``first`` | ``idJ`` | ``recBOT`` | ``recOR`` | ``refl`` | ``second`` | ``unit`` | ``uses`` - | ``Σ`` | | | + | ``Σ`` | ``π₁`` | ``π₂`` | The symbols used in Syntax are the following: | #lang | ; | rzk-1 | #set-option @@ -45,12 +45,15 @@ The symbols used in Syntax are the following: | #assume | #variable | #variables | #section | #end | #define | := | #def | ( | ) | _ | , - | { | | | } | |-> - | 1 | *_1 | 2 | 0_2 - | 1_2 | * | === | <= - | /\ | \/ | -> | =_{ - | [ | ] | < | > - | \ | refl_{ | → | ∑ + | { | | | } | ↦ + | 1 | *₁ | 2 | 0₂ + | 1₂ | × | ⊤ | ⊥ + | ≡ | ≤ | ∧ | ∨ + | → | =_{ | [ | ] + | < | > | \ | refl_{ + | * | *_1 | 0_2 | 1_2 + | === | <= | /\ | \/ + | -> | |-> | ∑ | ===Comments=== Single-line comments begin with --.Multiple-line comments are enclosed with {- and -}. @@ -107,24 +110,25 @@ All other symbols are terminals. | | **|** | ``(`` //VarIdent// ``:`` //Term// ``)`` | | **|** | ``{`` ``(`` //Pattern// ``:`` //Term// ``)`` ``|`` //Term// ``}`` | | **|** | ``{`` //Pattern// ``:`` //Term// ``|`` //Term// ``}`` - | //Restriction// | -> | //Term// ``|->`` //Term// + | //Restriction// | -> | //Term// ``↦`` //Term// + | | **|** | //Term// ``|->`` //Term// | //[Restriction]// | -> | //Restriction// | | **|** | //Restriction// ``,`` //[Restriction]// | //Term7// | -> | ``U`` | | **|** | ``CUBE`` | | **|** | ``TOPE`` | | **|** | ``1`` - | | **|** | ``*_1`` + | | **|** | ``*₁`` | | **|** | ``2`` - | | **|** | ``0_2`` - | | **|** | ``1_2`` - | | **|** | ``TOP`` - | | **|** | ``BOT`` + | | **|** | ``0₂`` + | | **|** | ``1₂`` + | | **|** | ``⊤`` + | | **|** | ``⊥`` | | **|** | ``recBOT`` | | **|** | ``recOR`` ``(`` //[Restriction]// ``)`` | | **|** | ``recOR`` ``(`` //Term// ``,`` //Term// ``,`` //Term// ``,`` //Term// ``)`` | | **|** | ``Unit`` - | | **|** | ``<`` //ParamDecl// ``->`` //Term// ``>`` + | | **|** | ``<`` //ParamDecl// ``→`` //Term// ``>`` | | **|** | ``(`` //Term// ``,`` //Term// ``)`` | | **|** | ``unit`` | | **|** | ``refl`` @@ -134,29 +138,43 @@ All other symbols are terminals. | | **|** | //HoleIdent// | | **|** | //VarIdent// | | **|** | ``(`` //Term// ``)`` - | //Term5// | -> | //Term5// ``*`` //Term6// + | | **|** | ``*_1`` + | | **|** | ``0_2`` + | | **|** | ``1_2`` + | | **|** | ``TOP`` + | | **|** | ``BOT`` + | | **|** | ``<`` //ParamDecl// ``->`` //Term// ``>`` + | //Term5// | -> | //Term5// ``×`` //Term6// | | **|** | //Term6// - | //Term4// | -> | //Term5// ``===`` //Term5// - | | **|** | //Term5// ``<=`` //Term5// + | | **|** | //Term5// ``*`` //Term6// + | //Term4// | -> | //Term5// ``≡`` //Term5// + | | **|** | //Term5// ``≤`` //Term5// | | **|** | //Term5// - | //Term3// | -> | //Term4// ``/\`` //Term3// + | | **|** | //Term5// ``===`` //Term5// + | | **|** | //Term5// ``<=`` //Term5// + | //Term3// | -> | //Term4// ``∧`` //Term3// | | **|** | //Term4// - | //Term2// | -> | //Term3// ``\/`` //Term2// + | | **|** | //Term4// ``/\`` //Term3// + | //Term2// | -> | //Term3// ``∨`` //Term2// | | **|** | //Term3// - | //Term1// | -> | //ParamDecl// ``->`` //Term1// - | | **|** | ``Sigma`` ``(`` //Pattern// ``:`` //Term// ``)`` ``,`` //Term1// + | | **|** | //Term3// ``\/`` //Term2// + | //Term1// | -> | //ParamDecl// ``→`` //Term1// + | | **|** | ``Σ`` ``(`` //Pattern// ``:`` //Term// ``)`` ``,`` //Term1// | | **|** | //Term2// ``=_{`` //Term// ``}`` //Term2// | | **|** | //Term2// ``=`` //Term2// - | | **|** | ``\`` //[Param]// ``->`` //Term1// + | | **|** | ``\`` //[Param]// ``→`` //Term1// | | **|** | //Term2// - | | **|** | //ParamDecl// ``→`` //Term1// - | | **|** | ``Σ`` ``(`` //Pattern// ``:`` //Term// ``)`` ``,`` //Term1// + | | **|** | //ParamDecl// ``->`` //Term1// + | | **|** | ``Sigma`` ``(`` //Pattern// ``:`` //Term// ``)`` ``,`` //Term1// + | | **|** | ``\`` //[Param]// ``->`` //Term1// | | **|** | ``∑`` ``(`` //Pattern// ``:`` //Term// ``)`` ``,`` //Term1// | //Term6// | -> | //Term6// ``[`` //[Restriction]// ``]`` | | **|** | //Term6// //Term7// + | | **|** | ``π₁`` //Term7// + | | **|** | ``π₂`` //Term7// + | | **|** | //Term7// | | **|** | ``first`` //Term7// | | **|** | ``second`` //Term7// - | | **|** | //Term7// | //Term// | -> | //Term2// ``as`` //Term1// | | **|** | //Term1// | //[Term]// | -> | //Term// diff --git a/rzk/src/Language/Rzk/Syntax/Layout.hs b/rzk/src/Language/Rzk/Syntax/Layout.hs index 72a94fbf9..535c8ed70 100644 --- a/rzk/src/Language/Rzk/Syntax/Layout.hs +++ b/rzk/src/Language/Rzk/Syntax/Layout.hs @@ -37,16 +37,16 @@ layoutStopWords = [] layoutOpen, layoutClose, layoutSep :: [TokSymbol] layoutOpen = List.nub $ mapMaybe (delimOpen . snd) layoutWords layoutClose = List.nub $ mapMaybe (delimClose . snd) layoutWords -layoutSep = List.nub $ TokSymbol ";" 29 : map (delimSep . snd) layoutWords +layoutSep = List.nub $ TokSymbol ";" 32 : map (delimSep . snd) layoutWords parenOpen, parenClose :: [TokSymbol] parenOpen = [ TokSymbol "(" 16 - , TokSymbol "[" 43 + , TokSymbol "[" 46 ] parenClose = [ TokSymbol ")" 17 - , TokSymbol "]" 46 + , TokSymbol "]" 49 ] -- | Report an error during layout resolution. @@ -74,7 +74,7 @@ resolveLayout topLayout = res Nothing [if topLayout then Implicit topDelim Definitive 1 else Explicit] where topDelim :: LayoutDelimiters - topDelim = LayoutDelimiters (TokSymbol ";" 29) Nothing Nothing + topDelim = LayoutDelimiters (TokSymbol ";" 32) Nothing Nothing res :: Maybe Token -- ^ The previous token, if any. -> [Block] -- ^ A stack of layout blocks. diff --git a/rzk/src/Language/Rzk/Syntax/Lex.hs b/rzk/src/Language/Rzk/Syntax/Lex.hs index a974d3856..1ea07c193 100644 --- a/rzk/src/Language/Rzk/Syntax/Lex.hs +++ b/rzk/src/Language/Rzk/Syntax/Lex.hs @@ -35,22 +35,23 @@ alex_tab_size :: Int alex_tab_size = 8 alex_base :: AlexAddr alex_base = AlexA# - "\xf8\xff\xff\xff\x93\xff\xff\xff\x92\xff\xff\xff\x9b\xff\xff\xff\x9a\xff\xff\xff\x97\xff\xff\xff\x98\xff\xff\xff\x96\xff\xff\xff\xa1\xff\xff\xff\xad\xff\xff\xff\x9c\xff\xff\xff\xaa\xff\xff\xff\xb0\xff\xff\xff\xa0\xff\xff\xff\xab\xff\xff\xff\xb2\xff\xff\xff\xb3\xff\xff\xff\xb1\xff\xff\xff\xb7\xff\xff\xff\xb5\xff\xff\xff\xa9\xff\xff\xff\xb8\xff\xff\xff\xb9\xff\xff\xff\xc8\xff\xff\xff\xaf\xff\xff\xff\xc3\xff\xff\xff\x01\x00\x00\x00\xbf\xff\xff\xff\xc0\xff\xff\xff\xc2\xff\xff\xff\xef\x00\x00\x00\xe6\x01\x00\x00\xdd\x02\x00\x00\xd4\x03\x00\x00\x00\x00\x00\x00\xa7\xff\xff\xff\x8e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x04\x00\x00\x86\x04\x00\x00\xc6\x04\x00\x00\xba\xff\xff\xff\xa8\xff\xff\xff\xbd\x05\x00\x00\xb4\x06\x00\x00\x34\x07\x00\x00\xb4\x07\x00\x00\xb4\x08\x00\x00\x2b\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x09\x00\x00\xdd\x09\x00\x00\x1d\x0a\x00\x00\xdb\x00\x00\x00\x9d\x0a\x00\x00\x1d\x0b\x00\x00\x1d\x0c\x00\x00\x93\x0c\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\xca\xff\xff\xff\x89\x0d\x00\x00\x89\x0e\x00\x00\x8a\x0e\x00\x00\x0a\x0f\x00\x00\xd4\x0c\x00\x00\x4b\x0f\x00\x00\xbc\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x10\x00\x00\x62\x11\x00\x00\x62\x12\x00\x00\x63\x12\x00\x00\xe3\x12\x00\x00\xfd\x0f\x00\x00\xd1\x10\x00\x00\x54\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x14\x00\x00\x42\x15\x00\x00\x39\x16\x00\x00\x30\x17\x00\x00\x27\x18\x00\x00\x1e\x19\x00\x00\x3a\x00\x00\x00\x0e\x00\x00\x00\x15\x1a\x00\x00\x0c\x1b\x00\x00\x03\x1c\x00\x00\xfa\x1c\x00\x00\xcb\xff\xff\xff\xd4\xff\xff\xff\xde\xff\xff\xff\xe3\xff\xff\xff\xe1\xff\xff\xff\xfb\xff\xff\xff\xe5\xff\xff\xff\xe7\xff\xff\xff\xe6\xff\xff\xff\xdf\xff\xff\xff\xe2\xff\xff\xff\xe0\xff\xff\xff\x24\x00\x00\x00\xe4\xff\xff\xff\xf4\xff\xff\xff\xe8\xff\xff\xff\xef\xff\xff\xff\xfd\xff\xff\xff\xf5\xff\xff\xff\xf1\x1d\x00\x00\x26\x00\x00\x00\x35\x00\x00\x00\xf7\xff\xff\xff\xff\xff\xff\xff\x03\x00\x00\x00\x37\x00\x00\x00\xe8\x1e\x00\x00\x2f\x00\x00\x00\x08\x00\x00\x00\xfe\xff\xff\xff\xfa\xff\xff\xff\x06\x00\x00\x00\x0a\x00\x00\x00"# + "\xf8\xff\xff\xff\xc9\xff\xff\xff\x86\xff\xff\xff\x87\xff\xff\xff\x89\xff\xff\xff\x77\xff\xff\xff\x75\xff\xff\xff\x6c\xff\xff\xff\x6b\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\xff\xff\xef\x00\x00\x00\xe2\xff\xff\xff\xac\xff\xff\xff\xaa\xff\xff\xff\xa6\xff\xff\xff\xe8\xff\xff\xff\xd8\xff\xff\xff\xe6\x01\x00\x00\xa9\xff\xff\xff\xb8\xff\xff\xff\xaf\xff\xff\xff\xb0\xff\xff\xff\xc6\xff\xff\xff\xb9\xff\xff\xff\xff\xff\xff\xff\xbf\xff\xff\xff\xc0\xff\xff\xff\xc1\xff\xff\xff\xd1\xff\xff\xff\xcc\xff\xff\xff\xd4\xff\xff\xff\xda\xff\xff\xff\xd9\xff\xff\xff\xd7\xff\xff\xff\xdd\xff\xff\xff\xdc\xff\xff\xff\xcf\xff\xff\xff\xc2\xff\xff\xff\x00\x00\x00\x00\x57\x02\x00\x00\x98\x02\x00\x00\xd8\x02\x00\x00\xa7\xff\xff\xff\xd0\xff\xff\xff\xb7\xff\xff\xff\xc3\xff\xff\xff\xde\xff\xff\xff\xcf\x03\x00\x00\xc6\x04\x00\x00\x46\x05\x00\x00\xc6\x05\x00\x00\xc6\x06\x00\x00\x3d\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x07\x00\x00\xef\x07\x00\x00\x2f\x08\x00\x00\xdb\x00\x00\x00\xaf\x08\x00\x00\x2f\x09\x00\x00\x2f\x0a\x00\x00\xa5\x0a\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\xd6\xff\xff\xff\x9b\x0b\x00\x00\x9b\x0c\x00\x00\x9c\x0c\x00\x00\x1c\x0d\x00\x00\xe6\x0a\x00\x00\x5d\x0d\x00\x00\xce\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x0e\x00\x00\x74\x0f\x00\x00\x74\x10\x00\x00\x75\x10\x00\x00\xf5\x10\x00\x00\x0f\x0e\x00\x00\xe3\x0e\x00\x00\x66\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x12\x00\x00\x54\x13\x00\x00\x4b\x14\x00\x00\x42\x15\x00\x00\x39\x16\x00\x00\x30\x17\x00\x00\xfa\x00\x00\x00\x24\x00\x00\x00\x27\x18\x00\x00\x1e\x19\x00\x00\x15\x1a\x00\x00\x0c\x1b\x00\x00\x03\x1c\x00\x00\x00\x00\x00\x00\xfa\x1c\x00\x00\xf1\x1d\x00\x00\xe8\x1e\x00\x00\xdf\x1f\x00\x00\xe4\xff\xff\xff\xec\xff\xff\xff\xee\xff\xff\xff\x31\x00\x00\x00\xf9\xff\xff\xff\xed\xff\xff\xff\x02\x00\x00\x00\xfe\xff\xff\xff\xfd\xff\xff\xff\xfa\xff\xff\xff\x05\x00\x00\x00\x04\x00\x00\x00\xfb\xff\xff\xff\x09\x00\x00\x00\x0b\x00\x00\x00\x06\x00\x00\x00\xfc\xff\xff\xff\x0c\x00\x00\x00\x0d\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x8e\x00\x00\x00\x86\x00\x00\x00\x8a\x00\x00\x00\x8c\x00\x00\x00\x91\x00\x00\x00\x94\x00\x00\x00\x93\x00\x00\x00\x96\x00\x00\x00\x97\x00\x00\x00\xa6\x00\x00\x00\x98\x00\x00\x00\x99\x00\x00\x00\x01\x00\x00\x00"# alex_table :: AlexAddr alex_table = AlexA# - "\x00\x00\x5e\x00\x5e\x00\x5d\x00\x5d\x00\x5e\x00\x02\x00\x03\x00\x0b\x00\x05\x00\x06\x00\x08\x00\x07\x00\x09\x00\x0a\x00\x22\x00\x0b\x00\x0d\x00\x0e\x00\x10\x00\x0f\x00\x11\x00\x14\x00\x15\x00\x5e\x00\xff\xff\x3e\x00\x69\x00\x64\x00\x12\x00\x17\x00\x22\x00\x22\x00\x22\x00\x62\x00\x19\x00\x22\x00\x40\x00\xff\xff\x77\x00\x2d\x00\x61\x00\x63\x00\x18\x00\x1c\x00\x6a\x00\x6d\x00\x1d\x00\x22\x00\x63\x00\x60\x00\x22\x00\x7f\x00\x7e\x00\x22\x00\x33\x00\x63\x00\x42\x00\x63\x00\x4e\x00\x70\x00\x01\x00\x22\x00\x22\x00\x2c\x00\x65\x00\x23\x00\x5e\x00\x5e\x00\x5e\x00\x5e\x00\x5e\x00\x66\x00\x67\x00\x22\x00\x22\x00\x7c\x00\x6a\x00\x1b\x00\x6e\x00\x84\x00\x6f\x00\x18\x00\x22\x00\x7d\x00\x22\x00\x6c\x00\x63\x00\x70\x00\x71\x00\x5e\x00\x72\x00\x41\x00\x73\x00\x68\x00\x6b\x00\x76\x00\x22\x00\x78\x00\x75\x00\x22\x00\x0b\x00\x22\x00\x13\x00\x7a\x00\x7b\x00\x5c\x00\x04\x00\x22\x00\x1a\x00\x16\x00\x81\x00\x74\x00\x0c\x00\x80\x00\x5f\x00\x79\x00\x22\x00\x82\x00\x83\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x24\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x2b\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\xff\xff\xff\xff\xff\xff\x3e\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3c\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x3d\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x39\x00\x3c\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x38\x00\x3b\x00\x34\x00\x34\x00\x34\x00\x37\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x46\x00\x44\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x47\x00\x45\x00\x4b\x00\x4b\x00\x4b\x00\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x43\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x44\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x52\x00\x50\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x53\x00\x51\x00\x57\x00\x57\x00\x57\x00\x54\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4d\x00\x52\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x52\x00\x50\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x53\x00\x51\x00\x57\x00\x57\x00\x57\x00\x54\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x4f\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x50\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x53\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x63\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5e\x00\x5d\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x63\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x22\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x58\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# + "\x00\x00\x62\x00\x62\x00\x61\x00\x61\x00\x62\x00\x69\x00\x67\x00\x67\x00\x04\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x0c\x00\x67\x00\x69\x00\x0f\x00\x10\x00\x80\x00\x12\x00\x69\x00\x15\x00\x62\x00\xff\xff\x42\x00\x21\x00\x69\x00\x17\x00\x67\x00\x67\x00\x69\x00\x69\x00\x66\x00\x18\x00\x69\x00\x44\x00\xff\xff\x13\x00\x31\x00\x65\x00\x67\x00\x19\x00\x1b\x00\x1a\x00\x1c\x00\x20\x00\x73\x00\x0e\x00\x64\x00\x69\x00\x01\x00\x68\x00\x69\x00\x37\x00\x1e\x00\x70\x00\x69\x00\x8b\x00\x24\x00\x22\x00\x1f\x00\x14\x00\x25\x00\x23\x00\x69\x00\x8f\x00\x02\x00\x30\x00\x78\x00\x69\x00\x45\x00\x67\x00\x87\x00\x67\x00\x67\x00\x75\x00\x46\x00\x16\x00\x7f\x00\x52\x00\x69\x00\x69\x00\x0d\x00\x69\x00\x2e\x00\x67\x00\x05\x00\x07\x00\x2c\x00\x6e\x00\x20\x00\x67\x00\x1d\x00\x69\x00\x67\x00\x72\x00\x6f\x00\x74\x00\x69\x00\x73\x00\x77\x00\x79\x00\x76\x00\x26\x00\x60\x00\x7a\x00\x7b\x00\x7e\x00\x7d\x00\x7c\x00\x81\x00\x8e\x00\x69\x00\x63\x00\x11\x00\x69\x00\x1a\x00\x80\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x06\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x08\x00\x0b\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x2d\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x00\x83\x00\xff\xff\x42\x00\x84\x00\x85\x00\x86\x00\x80\x00\x42\x00\x62\x00\x62\x00\x62\x00\x62\x00\x62\x00\x88\x00\x89\x00\x8a\x00\x71\x00\x8c\x00\x00\x00\x8d\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x62\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\xff\xff\xff\xff\xff\xff\x42\x00\x00\x00\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x03\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x69\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x2f\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x41\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3a\x00\x3d\x00\x40\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x39\x00\x3c\x00\x3f\x00\x38\x00\x38\x00\x38\x00\x3b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x47\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4a\x00\x48\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4b\x00\x49\x00\x4f\x00\x4f\x00\x4f\x00\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x47\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x48\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4e\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x53\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x56\x00\x54\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x57\x00\x55\x00\x5b\x00\x5b\x00\x5b\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x51\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x53\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x56\x00\x54\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x57\x00\x55\x00\x5b\x00\x5b\x00\x5b\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x53\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x59\x00\x54\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x5a\x00\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x67\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x62\x00\x62\x00\x61\x00\x61\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x67\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x2f\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x27\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x5c\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x35\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x28\x00\x2b\x00\x34\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x2a\x00\x33\x00\x09\x00\x09\x00\x09\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# alex_check :: AlexAddr alex_check = AlexA# - "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x73\x00\x75\x00\x6d\x00\x6f\x00\x73\x00\x75\x00\x74\x00\x6c\x00\x61\x00\x65\x00\x74\x00\x61\x00\x72\x00\x61\x00\x69\x00\x62\x00\x61\x00\x6e\x00\x20\x00\x21\x00\x22\x00\x23\x00\x65\x00\x6c\x00\x65\x00\x67\x00\x28\x00\x29\x00\x2a\x00\x74\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x63\x00\x69\x00\x6e\x00\x2d\x00\x6f\x00\x6e\x00\xa3\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x91\x00\x2d\x00\x92\x00\x2d\x00\x74\x00\x73\x00\x73\x00\x6b\x00\x86\x00\x63\x00\x88\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x65\x00\x68\x00\x3e\x00\x66\x00\x65\x00\x6e\x00\x68\x00\x6f\x00\x6f\x00\x2d\x00\x70\x00\x5b\x00\x5c\x00\x5d\x00\x77\x00\x5f\x00\x74\x00\x65\x00\x20\x00\x73\x00\x61\x00\x6e\x00\x63\x00\x64\x00\x65\x00\x64\x00\x2d\x00\x6e\x00\x3e\x00\x6e\x00\x2f\x00\x6c\x00\x69\x00\x66\x00\x72\x00\x70\x00\x3d\x00\x65\x00\x73\x00\x75\x00\x75\x00\x76\x00\x74\x00\x7b\x00\x7c\x00\x7d\x00\x70\x00\x6d\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6e\x00\x5b\x00\x5c\x00\x5d\x00\x72\x00\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00"# + "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x3d\x00\x81\x00\x91\x00\x82\x00\x81\x00\x82\x00\x97\x00\xa1\x00\xa3\x00\x80\x00\xa4\x00\x2f\x00\x66\x00\x69\x00\x6e\x00\x2d\x00\x3e\x00\x6e\x00\x20\x00\x21\x00\x22\x00\x23\x00\x64\x00\x6e\x00\xa7\x00\xa8\x00\x28\x00\x29\x00\x2a\x00\x73\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x65\x00\x2d\x00\x74\x00\x6f\x00\x6e\x00\x70\x00\x65\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x77\x00\x68\x00\x66\x00\x61\x00\x65\x00\x63\x00\x64\x00\x65\x00\x63\x00\x68\x00\x73\x00\x6d\x00\x82\x00\x82\x00\x6c\x00\x6b\x00\x6f\x00\x92\x00\x70\x00\xa4\x00\xa5\x00\x73\x00\x2d\x00\x75\x00\x76\x00\x2d\x00\x6e\x00\x5b\x00\x5c\x00\x5d\x00\x86\x00\x5f\x00\x88\x00\x89\x00\x8a\x00\x6f\x00\x6e\x00\xa6\x00\x2d\x00\x3e\x00\x82\x00\x74\x00\x69\x00\x65\x00\x67\x00\x63\x00\x61\x00\x6c\x00\x6e\x00\x65\x00\x72\x00\x62\x00\x61\x00\x61\x00\x72\x00\x69\x00\x61\x00\x70\x00\x65\x00\x7b\x00\x7c\x00\x7d\x00\x74\x00\x74\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x6c\x00\x75\x00\x0d\x00\x22\x00\x74\x00\x73\x00\x6f\x00\x6d\x00\x27\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x75\x00\x73\x00\x73\x00\x65\x00\x74\x00\xff\xff\x75\x00\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\x20\x00\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6e\x00\x5b\x00\x5c\x00\x5d\x00\x72\x00\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00"# alex_deflt :: AlexAddr alex_deflt = AlexA# - "\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x32\x00\x32\x00\x32\x00\xff\xff\x32\x00\x32\x00\x26\x00\x27\x00\x32\x00\x26\x00\x27\x00\x32\x00\x27\x00\x32\x00\x32\x00\x32\x00\xff\xff\xff\xff\x32\x00\x32\x00\xff\xff\x35\x00\x36\x00\x3e\x00\x35\x00\x36\x00\x3e\x00\xff\xff\xff\xff\xff\xff\x3e\x00\x3e\x00\xff\xff\xff\xff\xff\xff\x42\x00\x42\x00\xff\xff\xff\xff\x42\x00\x49\x00\x4a\x00\x42\x00\x49\x00\x4a\x00\xff\xff\x4e\x00\x4e\x00\x4e\x00\xff\xff\xff\xff\x4e\x00\x55\x00\x56\x00\x4e\x00\x55\x00\x56\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\xff\xff\xff\xff\x32\x00\x32\x00\x32\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# + "\x36\x00\xff\xff\x36\x00\x28\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x0a\x00\x28\x00\x36\x00\x36\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x36\x00\x0a\x00\x28\x00\x36\x00\x36\x00\x28\x00\x36\x00\x28\x00\x36\x00\x36\x00\x36\x00\xff\xff\xff\xff\x36\x00\x36\x00\xff\xff\x39\x00\x3a\x00\x42\x00\x39\x00\x3a\x00\x42\x00\xff\xff\xff\xff\xff\xff\x42\x00\x42\x00\xff\xff\xff\xff\xff\xff\x46\x00\x46\x00\xff\xff\xff\xff\x46\x00\x4d\x00\x4e\x00\x46\x00\x4d\x00\x4e\x00\xff\xff\x52\x00\x52\x00\x52\x00\xff\xff\xff\xff\x52\x00\x59\x00\x5a\x00\x52\x00\x59\x00\x5a\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\xff\xff\xff\xff\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\xff\xff\x36\x00\x36\x00\x36\x00\x36\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# -alex_accept = listArray (0 :: Int, 132) +alex_accept = listArray (0 :: Int, 143) [ AlexAccNone + , AlexAcc 28 , AlexAccNone , AlexAccNone , AlexAccNone @@ -61,6 +62,14 @@ alex_accept = listArray (0 :: Int, 132) , AlexAccNone , AlexAccNone , AlexAccNone + , AlexAcc 27 + , AlexAcc 26 + , AlexAccNone + , AlexAcc 25 + , AlexAccNone + , AlexAcc 24 + , AlexAccNone + , AlexAcc 23 , AlexAccNone , AlexAccNone , AlexAccNone @@ -76,14 +85,9 @@ alex_accept = listArray (0 :: Int, 132) , AlexAccNone , AlexAccNone , AlexAccNone - , AlexAcc 27 , AlexAccNone , AlexAccNone , AlexAccNone - , AlexAcc 26 - , AlexAcc 25 - , AlexAcc 24 - , AlexAcc 23 , AlexAcc 22 , AlexAccNone , AlexAccNone @@ -151,6 +155,19 @@ alex_accept = listArray (0 :: Int, 132) , AlexAcc 8 , AlexAcc 7 , AlexAcc 6 + , AlexAcc 5 + , AlexAcc 4 + , AlexAcc 3 + , AlexAcc 2 + , AlexAcc 1 + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAcc 0 + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccNone , AlexAccNone , AlexAccNone , AlexAccNone @@ -169,15 +186,9 @@ alex_accept = listArray (0 :: Int, 132) , AlexAccNone , AlexAccNone , AlexAccNone - , AlexAcc 5 , AlexAccNone - , AlexAcc 4 , AlexAccNone - , AlexAcc 3 , AlexAccNone - , AlexAcc 2 - , AlexAcc 1 - , AlexAcc 0 , AlexAccNone , AlexAccNone , AlexAccNone @@ -185,11 +196,12 @@ alex_accept = listArray (0 :: Int, 132) , AlexAccNone ] -alex_actions = array (0 :: Int, 28) - [ (27,alex_action_3) - , (26,alex_action_4) - , (25,alex_action_4) - , (24,alex_action_4) +alex_actions = array (0 :: Int, 29) + [ (28,alex_action_3) + , (27,alex_action_4) + , (26,alex_action_3) + , (25,alex_action_3) + , (24,alex_action_3) , (23,alex_action_4) , (22,alex_action_3) , (21,alex_action_4) @@ -208,11 +220,11 @@ alex_actions = array (0 :: Int, 28) , (8,alex_action_3) , (7,alex_action_3) , (6,alex_action_3) - , (5,alex_action_4) - , (4,alex_action_3) - , (3,alex_action_3) - , (2,alex_action_3) - , (1,alex_action_3) + , (5,alex_action_3) + , (4,alex_action_4) + , (3,alex_action_4) + , (2,alex_action_4) + , (1,alex_action_4) , (0,alex_action_3) ] @@ -321,38 +333,43 @@ eitherResIdent tv s = treeFind resWords -- | The keywords and symbols of the language organized as binary search tree. resWords :: BTree resWords = - b "===" 33 - (b ")" 17 - (b "#lang" 9 + b "CUBE" 40 + (b "*\8321" 20 + (b "#postulate" 10 (b "#compute-whnf" 5 (b "#compute" 3 (b "#check" 2 (b "#assume" 1 N N) N) (b "#compute-nf" 4 N N)) - (b "#define" 7 (b "#def" 6 N N) (b "#end" 8 N N))) - (b "#unset-option" 13 - (b "#section" 11 (b "#postulate" 10 N N) (b "#set-option" 12 N N)) - (b "#variables" 15 (b "#variable" 14 N N) (b "(" 16 N N)))) - (b "1_2" 25 - (b "->" 21 - (b "*_1" 19 (b "*" 18 N N) (b "," 20 N N)) - (b "0_2" 23 (b "/\\" 22 N N) (b "1" 24 N N))) - (b ";" 29 - (b ":" 27 (b "2" 26 N N) (b ":=" 28 N N)) - (b "<=" 31 (b "<" 30 N N) (b "=" 32 N N))))) - (b "idJ" 50 - (b "Unit" 42 - (b "Sigma" 38 - (b "BOT" 36 (b ">" 35 (b "=_{" 34 N N) N) (b "CUBE" 37 N N)) - (b "TOPE" 40 (b "TOP" 39 N N) (b "U" 41 N N))) - (b "]" 46 - (b "\\" 44 (b "[" 43 N N) (b "\\/" 45 N N)) - (b "as" 48 (b "_" 47 N N) (b "first" 49 N N)))) - (b "uses" 58 - (b "refl_{" 54 - (b "recOR" 52 (b "recBOT" 51 N N) (b "refl" 53 N N)) - (b "second" 56 (b "rzk-1" 55 N N) (b "unit" 57 N N))) - (b "}" 62 - (b "|" 60 (b "{" 59 N N) (b "|->" 61 N N)) - (b "\8594" 64 (b "\931" 63 N N) (b "\8721" 65 N N))))) + (b "#end" 8 (b "#define" 7 (b "#def" 6 N N) N) (b "#lang" 9 N N))) + (b "#variables" 15 + (b "#unset-option" 13 + (b "#set-option" 12 (b "#section" 11 N N) N) + (b "#variable" 14 N N)) + (b "*" 18 (b ")" 17 (b "(" 16 N N) N) (b "*_1" 19 N N)))) + (b ":" 30 + (b "0\8322" 25 + (b "/\\" 23 (b "->" 22 (b "," 21 N N) N) (b "0_2" 24 N N)) + (b "1\8322" 28 (b "1_2" 27 (b "1" 26 N N) N) (b "2" 29 N N))) + (b "=" 35 + (b "<" 33 (b ";" 32 (b ":=" 31 N N) N) (b "<=" 34 N N)) + (b ">" 38 (b "=_{" 37 (b "===" 36 N N) N) (b "BOT" 39 N N))))) + (b "unit" 60 + (b "_" 50 + (b "Unit" 45 + (b "TOPE" 43 (b "TOP" 42 (b "Sigma" 41 N N) N) (b "U" 44 N N)) + (b "\\/" 48 (b "\\" 47 (b "[" 46 N N) N) (b "]" 49 N N))) + (b "recOR" 55 + (b "idJ" 53 (b "first" 52 (b "as" 51 N N) N) (b "recBOT" 54 N N)) + (b "rzk-1" 58 + (b "refl_{" 57 (b "refl" 56 N N) N) (b "second" 59 N N)))) + (b "\8594" 70 + (b "}" 65 + (b "|" 63 (b "{" 62 (b "uses" 61 N N) N) (b "|->" 64 N N)) + (b "\960\8321" 68 + (b "\931" 67 (b "\215" 66 N N) N) (b "\960\8322" 69 N N))) + (b "\8801" 75 + (b "\8743" 73 + (b "\8721" 72 (b "\8614" 71 N N) N) (b "\8744" 74 N N)) + (b "\8868" 77 (b "\8804" 76 N N) (b "\8869" 78 N N))))) where b s n = B bs (TS bs n) where diff --git a/rzk/src/Language/Rzk/Syntax/Lex.x b/rzk/src/Language/Rzk/Syntax/Lex.x index de16ac7e6..928150240 100644 --- a/rzk/src/Language/Rzk/Syntax/Lex.x +++ b/rzk/src/Language/Rzk/Syntax/Lex.x @@ -28,7 +28,7 @@ $u = [. \n] -- universal: any character -- Symbols and non-identifier-like reserved words -@rsyms = \Σ | \# "lang" | \; | "rzk" \- "1" | \# "set" \- "option" | \= | \# "unset" \- "option" | \# "check" | \: | \# "compute" | \# "compute" \- "whnf" | \# "compute" \- "nf" | \# "postulate" | \# "assume" | \# "variable" | \# "variables" | \# "section" | \# "end" | \# "define" | \: \= | \# "def" | \( | \) | \_ | \, | \{ | \| | \} | \| \- \> | "1" | \* \_ "1" | "2" | "0" \_ "2" | "1" \_ "2" | \* | \= \= \= | \< \= | \/ \\ | \\ \/ | \- \> | \= \_ \{ | \[ | \] | \< | \> | \\ | "refl" \_ \{ | \→ | \∑ +@rsyms = \Σ | \π \₁ | \π \₂ | \# "lang" | \; | "rzk" \- "1" | \# "set" \- "option" | \= | \# "unset" \- "option" | \# "check" | \: | \# "compute" | \# "compute" \- "whnf" | \# "compute" \- "nf" | \# "postulate" | \# "assume" | \# "variable" | \# "variables" | \# "section" | \# "end" | \# "define" | \: \= | \# "def" | \( | \) | \_ | \, | \{ | \| | \} | \↦ | "1" | \* \₁ | "2" | "0" \₂ | "1" \₂ | \× | \⊤ | \⊥ | \≡ | \≤ | \∧ | \∨ | \→ | \= \_ \{ | \[ | \] | \< | \> | \\ | "refl" \_ \{ | \* | \* \_ "1" | "0" \_ "2" | "1" \_ "2" | \= \= \= | \< \= | \/ \\ | \\ \/ | \- \> | \| \- \> | \∑ :- @@ -166,38 +166,43 @@ eitherResIdent tv s = treeFind resWords -- | The keywords and symbols of the language organized as binary search tree. resWords :: BTree resWords = - b "===" 33 - (b ")" 17 - (b "#lang" 9 + b "CUBE" 40 + (b "*\8321" 20 + (b "#postulate" 10 (b "#compute-whnf" 5 (b "#compute" 3 (b "#check" 2 (b "#assume" 1 N N) N) (b "#compute-nf" 4 N N)) - (b "#define" 7 (b "#def" 6 N N) (b "#end" 8 N N))) - (b "#unset-option" 13 - (b "#section" 11 (b "#postulate" 10 N N) (b "#set-option" 12 N N)) - (b "#variables" 15 (b "#variable" 14 N N) (b "(" 16 N N)))) - (b "1_2" 25 - (b "->" 21 - (b "*_1" 19 (b "*" 18 N N) (b "," 20 N N)) - (b "0_2" 23 (b "/\\" 22 N N) (b "1" 24 N N))) - (b ";" 29 - (b ":" 27 (b "2" 26 N N) (b ":=" 28 N N)) - (b "<=" 31 (b "<" 30 N N) (b "=" 32 N N))))) - (b "idJ" 50 - (b "Unit" 42 - (b "Sigma" 38 - (b "BOT" 36 (b ">" 35 (b "=_{" 34 N N) N) (b "CUBE" 37 N N)) - (b "TOPE" 40 (b "TOP" 39 N N) (b "U" 41 N N))) - (b "]" 46 - (b "\\" 44 (b "[" 43 N N) (b "\\/" 45 N N)) - (b "as" 48 (b "_" 47 N N) (b "first" 49 N N)))) - (b "uses" 58 - (b "refl_{" 54 - (b "recOR" 52 (b "recBOT" 51 N N) (b "refl" 53 N N)) - (b "second" 56 (b "rzk-1" 55 N N) (b "unit" 57 N N))) - (b "}" 62 - (b "|" 60 (b "{" 59 N N) (b "|->" 61 N N)) - (b "\8594" 64 (b "\931" 63 N N) (b "\8721" 65 N N))))) + (b "#end" 8 (b "#define" 7 (b "#def" 6 N N) N) (b "#lang" 9 N N))) + (b "#variables" 15 + (b "#unset-option" 13 + (b "#set-option" 12 (b "#section" 11 N N) N) + (b "#variable" 14 N N)) + (b "*" 18 (b ")" 17 (b "(" 16 N N) N) (b "*_1" 19 N N)))) + (b ":" 30 + (b "0\8322" 25 + (b "/\\" 23 (b "->" 22 (b "," 21 N N) N) (b "0_2" 24 N N)) + (b "1\8322" 28 (b "1_2" 27 (b "1" 26 N N) N) (b "2" 29 N N))) + (b "=" 35 + (b "<" 33 (b ";" 32 (b ":=" 31 N N) N) (b "<=" 34 N N)) + (b ">" 38 (b "=_{" 37 (b "===" 36 N N) N) (b "BOT" 39 N N))))) + (b "unit" 60 + (b "_" 50 + (b "Unit" 45 + (b "TOPE" 43 (b "TOP" 42 (b "Sigma" 41 N N) N) (b "U" 44 N N)) + (b "\\/" 48 (b "\\" 47 (b "[" 46 N N) N) (b "]" 49 N N))) + (b "recOR" 55 + (b "idJ" 53 (b "first" 52 (b "as" 51 N N) N) (b "recBOT" 54 N N)) + (b "rzk-1" 58 + (b "refl_{" 57 (b "refl" 56 N N) N) (b "second" 59 N N)))) + (b "\8594" 70 + (b "}" 65 + (b "|" 63 (b "{" 62 (b "uses" 61 N N) N) (b "|->" 64 N N)) + (b "\960\8321" 68 + (b "\931" 67 (b "\215" 66 N N) N) (b "\960\8322" 69 N N))) + (b "\8801" 75 + (b "\8743" 73 + (b "\8721" 72 (b "\8614" 71 N N) N) (b "\8744" 74 N N)) + (b "\8868" 77 (b "\8804" 76 N N) (b "\8869" 78 N N))))) where b s n = B bs (TS bs n) where diff --git a/rzk/src/Language/Rzk/Syntax/Par.hs b/rzk/src/Language/Rzk/Syntax/Par.hs index d3e69daf8..433c1b296 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.hs +++ b/rzk/src/Language/Rzk/Syntax/Par.hs @@ -267,40 +267,40 @@ happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x happyExpList :: HappyAddr -happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xf3\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x08\x20\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x08\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x80\x00\x0a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x20\x80\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\xb7\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x01\x9f\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x1e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x07\x7e\x03\x18\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x81\xdf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x1e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x01\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x3e\xf0\x09\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe9\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x07\x7e\x0b\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x80\x00\x0a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x01\x9f\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x1e\xf0\x09\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x20\x80\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x3e\xf0\x09\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x0f\x7c\x02\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xfb\xc0\x27\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x20\x80\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x08\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x08\x20\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x80\x00\x02\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x08\x20\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x02\x08\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x1e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x08\x20\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x08\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x20\x80\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x80\x00\x02\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x1e\xf8\x0d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xb0\x07\x7e\x03\x18\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xec\x81\xdf\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xfb\xc0\x27\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x08\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x02\x00\x20\x80\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x80\x00\x00\x08\xa0\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x20\x00\x00\x02\x28\x20\x00\x00\x00\x00\x00\x00\x00\xfe\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x37\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7f\xe1\xb7\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\xf0\x17\x7e\x8b\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1e\xc1\x5f\xf8\x2d\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xe2\x11\xfc\x85\xdf\xa2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xf3\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x9f\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x01\x04\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x20\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x05\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x02\x28\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfc\x08\xf6\xc0\x6f\xc1\x80\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xf0\x17\x7e\x0b\x27\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x3f\x82\xbf\xf0\x5b\x38\x61\x03\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xf8\x11\xec\x01\x9f\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\x60\x0f\xfc\x06\x0c\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7b\xe0\x37\x60\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf1\x23\xd8\x03\xbf\x01\x03\x36\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x1e\xf8\x0d\x18\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfc\x08\xfe\xc2\x6f\xe1\x84\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xb0\x07\x7e\x03\x06\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x3f\x82\xbf\xf0\x5b\x38\x61\x03\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xf8\x11\xfc\x85\xdf\xc2\x09\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x05\x00\x00\x00\x01\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xb0\x0f\x7c\x02\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\xe0\x2f\xfd\x16\x4e\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7b\xe0\xb7\x60\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\xa0\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf1\x23\xd8\x03\x3e\x01\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xf8\x11\xfc\x85\xdf\xc2\x09\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\x60\x0f\xf8\x04\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x01\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfc\x08\xf6\x80\x4f\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xb0\x07\x7c\x02\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfc\x08\xf6\x81\x4f\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xf0\x17\x7e\x0b\x27\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\xfb\xc0\x27\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x3e\xf0\x09\x00\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\x50\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x01\x04\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x02\x08\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x80\x00\x02\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x20\x80\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\xe0\x2f\xfc\x16\x4e\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7f\xe1\xb7\x70\xc2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf1\x23\xf8\x0b\xbf\x85\x13\x36\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x5f\xf8\x2d\x9c\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xe7\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x00\x00\x10\x40\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\xe0\x2f\xfc\x16\x4e\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7f\xe1\xb7\x70\xc2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf1\x23\xf8\x0b\xbf\x85\x13\x36\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x5f\xf8\x2d\x9c\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfc\x08\xf6\xc0\x6f\xc0\x80\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xb0\x07\x7e\x03\x06\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x3f\x82\x3d\xf0\x1b\x30\x60\x03\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xf8\x11\xfc\x85\xdf\xc2\x09\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x20\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x10\x40\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\x10\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7f\xe1\xb7\x70\xc2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf1\x23\xf8\x0b\xbf\x85\x13\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x80\x00\x02\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7f\xe1\xb7\x70\xc2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf1\x23\xf8\x0b\xbf\x85\x13\x36\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x1e\xf8\x0d\x18\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfc\x08\xf6\xc0\x6f\xc0\x80\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xb0\x07\x7e\x03\x06\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x3f\x82\x3d\xf0\x1b\x30\x60\x03\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xf8\x11\xec\x81\xdf\x80\x01\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\x60\x0f\xfc\x06\x0c\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7b\xe0\x37\x60\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf1\x23\xd8\x03\xbf\x01\x03\x36\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x5f\xf8\x2d\x9c\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfc\x08\xfe\xc2\x6f\xe1\x84\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7f\xe1\xb7\x70\xc2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf1\x23\xf8\x0b\xbf\x85\x13\x36\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x5f\xf8\x2d\x9c\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfc\x08\xfe\xc2\x6f\xe1\x84\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x3f\x82\xbf\xf0\x5b\x38\x61\x03\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xf8\x11\xfc\x85\xdf\xc2\x09\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x5f\xf8\x2d\x9c\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x3f\x82\xbf\xf0\x5b\x38\x61\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf1\x23\xf8\x0b\xbf\x85\x13\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xb0\x0f\x7c\x02\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x3f\x82\x7d\xe0\x13\x00\x60\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x5f\xf8\x2d\x9c\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x10\x40\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xf0\x17\x7e\x0b\x27\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\xe0\x2f\xfc\x16\x4e\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7f\xe1\xb7\x70\xc2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x04\x00\x40\x00\x05\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x20\x00\x00\x02\x28\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x01\x00\x10\x40\x01\x00\x04\x00\x00\x00\x00\x00\x00\xc0\x9f\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xf8\x11\xfc\x85\xdf\xc2\x09\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\xe0\x2f\xfc\x16\x4e\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xf8\x11\xfc\x85\xdf\xc2\x09\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7f\xe1\xb7\x70\xc2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x5f\xf8\x2d\x9c\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x1e\xf8\x0d\x18\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xf0\x17\x7e\x0b\x27\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x3f\x82\xbf\xf0\x5b\x38\x61\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\xe0\x2f\xfc\x16\x4e\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf1\x23\xf8\x0b\xbf\x85\x13\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfc\x08\xfe\xc2\x6f\xe1\x84\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xf8\x11\xfc\x85\xdf\xc2\x09\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xf0\x17\x7e\x0b\x27\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xf0\x17\x7e\x0b\x27\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xf8\x11\xfc\x85\xdf\xc2\x09\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7f\xe1\xb7\x70\xc2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x5f\xf8\x2d\x9c\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\xe0\x2f\xfc\x16\x4e\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf1\x23\xf8\x0b\xbf\x85\x13\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\xe0\x2f\xfc\x16\x4e\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7f\xe1\xb7\x70\xc2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x5f\xf8\x2d\x9c\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x3f\x82\xbf\xf0\x5b\x38\x61\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xc6\x8f\xe0\x2f\xfc\x16\x4e\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x7e\x04\x7f\xe1\xb7\x70\xc2\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfc\x08\xfe\xc2\x6f\xe1\x84\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x3f\x82\xbf\xf0\x5b\x38\x61\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfc\x08\xfe\xc2\x6f\xe1\x84\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xf0\x17\x7e\x0b\x27\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x8c\x1f\xc1\x5f\xf8\x2d\x9c\xb0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xe3\x47\xf0\x17\x7e\x0b\x27\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# {-# NOINLINE happyExpListPerState #-} happyExpListPerState st = token_strs_expected - where token_strs = ["error","%dummy","%start_pModule_internal","%start_pHoleIdent_internal","%start_pVarIdent_internal","%start_pListVarIdent_internal","%start_pLanguageDecl_internal","%start_pLanguage_internal","%start_pCommand_internal","%start_pListCommand_internal","%start_pDeclUsedVars_internal","%start_pSectionName_internal","%start_pPattern_internal","%start_pListPattern_internal","%start_pParam_internal","%start_pListParam_internal","%start_pParamDecl_internal","%start_pRestriction_internal","%start_pListRestriction_internal","%start_pTerm7_internal","%start_pTerm5_internal","%start_pTerm4_internal","%start_pTerm3_internal","%start_pTerm2_internal","%start_pTerm1_internal","%start_pTerm6_internal","%start_pTerm_internal","%start_pListTerm_internal","String","VarIdentToken","HoleIdentToken","Module","HoleIdent","VarIdent","ListVarIdent","LanguageDecl","Language","Command","ListCommand","DeclUsedVars","SectionName","Pattern","ListPattern","Param","ListParam","ParamDecl","Restriction","ListRestriction","Term7","Term5","Term4","Term3","Term2","Term1","Term6","Term","ListTerm","'#assume'","'#check'","'#compute'","'#compute-nf'","'#compute-whnf'","'#def'","'#define'","'#end'","'#lang'","'#postulate'","'#section'","'#set-option'","'#unset-option'","'#variable'","'#variables'","'('","')'","'*'","'*_1'","','","'->'","'/\\\\'","'0_2'","'1'","'1_2'","'2'","':'","':='","';'","'<'","'<='","'='","'==='","'=_{'","'>'","'BOT'","'CUBE'","'Sigma'","'TOP'","'TOPE'","'U'","'Unit'","'['","'\\\\'","'\\\\/'","']'","'_'","'as'","'first'","'idJ'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'unit'","'uses'","'{'","'|'","'|->'","'}'","'\931'","'\8594'","'\8721'","L_quoted","L_VarIdentToken","L_HoleIdentToken","%eof"] - bit_start = st Prelude.* 126 - bit_end = (st Prelude.+ 1) Prelude.* 126 + where token_strs = ["error","%dummy","%start_pModule_internal","%start_pHoleIdent_internal","%start_pVarIdent_internal","%start_pListVarIdent_internal","%start_pLanguageDecl_internal","%start_pLanguage_internal","%start_pCommand_internal","%start_pListCommand_internal","%start_pDeclUsedVars_internal","%start_pSectionName_internal","%start_pPattern_internal","%start_pListPattern_internal","%start_pParam_internal","%start_pListParam_internal","%start_pParamDecl_internal","%start_pRestriction_internal","%start_pListRestriction_internal","%start_pTerm7_internal","%start_pTerm5_internal","%start_pTerm4_internal","%start_pTerm3_internal","%start_pTerm2_internal","%start_pTerm1_internal","%start_pTerm6_internal","%start_pTerm_internal","%start_pListTerm_internal","String","VarIdentToken","HoleIdentToken","Module","HoleIdent","VarIdent","ListVarIdent","LanguageDecl","Language","Command","ListCommand","DeclUsedVars","SectionName","Pattern","ListPattern","Param","ListParam","ParamDecl","Restriction","ListRestriction","Term7","Term5","Term4","Term3","Term2","Term1","Term6","Term","ListTerm","'#assume'","'#check'","'#compute'","'#compute-nf'","'#compute-whnf'","'#def'","'#define'","'#end'","'#lang'","'#postulate'","'#section'","'#set-option'","'#unset-option'","'#variable'","'#variables'","'('","')'","'*'","'*_1'","'*\8321'","','","'->'","'/\\\\'","'0_2'","'0\8322'","'1'","'1_2'","'1\8322'","'2'","':'","':='","';'","'<'","'<='","'='","'==='","'=_{'","'>'","'BOT'","'CUBE'","'Sigma'","'TOP'","'TOPE'","'U'","'Unit'","'['","'\\\\'","'\\\\/'","']'","'_'","'as'","'first'","'idJ'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'unit'","'uses'","'{'","'|'","'|->'","'}'","'\215'","'\931'","'\960\8321'","'\960\8322'","'\8594'","'\8614'","'\8721'","'\8743'","'\8744'","'\8801'","'\8804'","'\8868'","'\8869'","L_quoted","L_VarIdentToken","L_HoleIdentToken","%eof"] + bit_start = st Prelude.* 139 + bit_end = (st Prelude.+ 1) Prelude.* 139 read_bit = readArrayBit happyExpList bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1] - bits_indexed = Prelude.zip bits [0..125] + bits_indexed = Prelude.zip bits [0..138] token_strs_expected = Prelude.concatMap f bits_indexed f (Prelude.False, _) = [] f (Prelude.True, nr) = [token_strs Prelude.!! nr] happyActOffsets :: HappyAddr -happyActOffsets = HappyA# "\x03\x00\xce\xff\xd4\xff\xd4\xff\x16\x00\xf7\xff\x07\x07\x07\x07\x0f\x00\xf8\xff\x28\x00\x28\x00\x98\x00\x98\x00\x7d\x00\x4b\x00\x4b\x00\x47\x01\xf9\x00\xf9\x00\xf9\x00\xf9\x00\x4b\x00\xf9\x00\x4b\x00\x4b\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\x01\x00\x40\x00\x32\x00\xee\xff\x00\x00\xa4\x00\x6e\x00\x29\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x00\x47\x01\x78\x00\x00\x00\x81\x00\x00\x00\x4b\x00\x47\x01\x00\x00\x5a\x00\x90\x00\x9a\x00\x00\x00\x00\x00\x80\x00\xf1\xff\x4b\x00\x56\x00\x80\x00\x80\x00\x20\x01\x80\x00\x80\x00\xf4\xff\x80\x00\xa6\x00\x8b\x00\x6f\x00\xa1\x00\xa1\x00\x20\x01\x00\x00\x00\x00\x98\x00\xa1\x00\x6a\x00\x00\x00\x00\x00\x6a\x00\xa1\x00\x6a\x00\xa1\x00\x6a\x00\xa1\x00\x00\x00\xa1\x00\xa1\x00\xce\x00\xd0\x00\xae\x00\xb2\x00\x4b\x00\x4b\x00\x4b\x00\x4b\x00\xb2\x00\xb2\x00\xb2\x00\xb2\x00\xbd\x00\xbd\x00\xd1\x00\xd1\x00\xe3\x00\xe3\x00\x00\x00\xe3\x00\xfd\x00\xf2\x00\xf1\x00\xf1\x00\xf1\x00\xf1\x00\x07\x07\x00\x00\x00\x00\x26\x01\x31\x01\x32\x01\x00\x00\x21\x01\x3b\x01\x15\x01\x15\x01\x15\x01\x00\x00\x00\x00\x00\x00\x40\x01\x42\x01\x07\x07\x19\x01\x4e\x01\x00\x00\x4b\x01\x0d\x00\x4f\x01\x00\x00\x00\x00\x4b\x00\x4b\x00\x4b\x00\xf9\x00\xf9\x00\x4b\x00\x33\x00\x6a\x00\x6a\x00\x59\x01\x6a\x00\x00\x00\xea\xff\x4b\x00\x4b\x00\x00\x00\x54\x01\x6a\x00\x60\x01\x5b\x01\x5c\x01\x4b\x00\x4b\x00\xf9\x00\xf9\x00\xf9\x00\xf9\x00\x4b\x00\x4b\x00\x00\x00\x00\x00\x6c\x01\x6c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4b\x00\x4b\x00\x64\x01\x4b\x00\x6f\x01\x77\x01\xfd\xff\x4b\x00\x00\x00\xf9\xff\x4b\x00\x73\x01\x74\x01\x00\x00\x4b\x00\x5e\x01\x00\x00\x20\x01\x00\x00\x00\x00\x69\x01\x4b\x00\x6a\x00\x4b\x00\x92\x01\x00\x00\x4b\x00\x4b\x00\x57\x01\x58\x01\x5d\x01\x07\x07\x62\x01\x4b\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x01\x8e\x01\x4b\x00\x8f\x01\x4b\x00\x90\x01\x4b\x00\x00\x00\x00\x00\x00\x00\x8c\x01\xb8\x01\xc9\x01\x00\x00\xf9\x00\xcb\x01\x4b\x00\x4b\x00\x3d\x00\x4b\x00\x9f\x01\x4b\x00\x00\x00\x4b\x00\x00\x00\x4b\x00\xbb\x01\xce\x01\xec\x01\x00\x00\x00\x00\x00\x00\xef\x01\xed\x01\xee\x01\x00\x00\xf2\x01\x4b\x00\x00\x00\xf3\x01\xf4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\xfc\x01\x4b\x00\x07\x02\x4b\x00\x00\x00\x4b\x00\xc5\x01\x00\x00\x00\x00\x0b\x02\x4b\x00\x0c\x02\x4b\x00\xeb\x01\x17\x02\x1a\x02\xff\x01\x02\x02\x4b\x00\x4b\x00\x35\x02\x4b\x00\x39\x02\x3a\x02\x4b\x00\x00\x00\x4b\x00\x4b\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x02\x4b\x00\x4b\x00\x00\x00\x3d\x02\x43\x02\x00\x00\x00\x00\x4b\x00\x4f\x02\x4b\x00\x53\x02\x00\x00\x00\x00"# +happyActOffsets = HappyA# "\x0e\x00\xc9\xff\x09\x00\x09\x00\x6a\x00\x3b\x00\xb9\x07\xb9\x07\x44\x00\x33\x00\x6c\x00\x6c\x00\x2d\x00\x2d\x00\x9d\x00\x5e\x00\x5e\x00\x85\x01\xdc\x00\xdc\x00\xdc\x00\xdc\x00\x5e\x00\xdc\x00\x5e\x00\x5e\x00\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\x00\x00\xa5\x01\xeb\xff\xd7\xff\x5b\x00\x00\x00\x1b\x01\x83\x00\x49\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x85\x01\x97\x00\x00\x00\xad\x00\x00\x00\x5e\x00\x85\x01\x00\x00\x8f\x00\xbc\x00\x85\x01\x85\x01\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\xf1\xff\x5e\x00\x2a\x00\x62\x00\x62\x00\x5a\x01\x62\x00\x62\x00\x32\x00\x62\x00\xc2\x00\x7c\x00\xcf\xff\x7c\x00\x7c\x00\x5a\x01\x00\x00\x00\x00\x2d\x00\x7c\x00\x94\x00\x00\x00\x00\x00\x94\x00\x7c\x00\x94\x00\x7c\x00\x94\x00\x7c\x00\x00\x00\x7c\x00\x7c\x00\xbf\x00\xc3\x00\x8b\x00\x95\x00\x5e\x00\x5e\x00\x5e\x00\x5e\x00\x95\x00\x95\x00\x95\x00\x95\x00\xa2\x00\xa2\x00\xa3\x00\xa3\x00\xa0\x00\xa0\x00\x00\x00\xa0\x00\xc7\x00\xac\x00\xb0\x00\xb0\x00\xb0\x00\xb0\x00\xb9\x07\x00\x00\x00\x00\xec\x00\xf1\x00\xfb\x00\x00\x00\xf8\x00\xfc\x00\xe9\x00\xe9\x00\xe9\x00\x00\x00\x00\x00\x00\x00\x0a\x01\x12\x01\xb9\x07\xd7\x00\x1d\x01\x00\x00\x21\x01\x50\x00\x23\x01\x00\x00\x00\x00\x5e\x00\x5e\x00\x5e\x00\x5e\x00\xdc\x00\xdc\x00\xdc\x00\x5e\x00\x3a\x01\x94\x00\x00\x00\x00\x00\x94\x00\x2c\x01\x94\x00\x00\x00\xea\xff\x5e\x00\x5e\x00\x00\x00\xff\xff\x94\x00\x0a\x00\x40\x01\x48\x01\x5e\x00\x5e\x00\xdc\x00\xdc\x00\xdc\x00\xdc\x00\xdc\x00\xdc\x00\xdc\x00\xdc\x00\x5e\x00\x5e\x00\x00\x00\x00\x00\x10\x00\x10\x00\x10\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x5e\x00\x5e\x00\x5e\x00\x76\x01\x5e\x00\x5e\x00\x24\x01\x47\x01\xee\xff\x5e\x00\x00\x00\x4c\x00\x5e\x00\x7c\x01\x7d\x01\x00\x00\x5e\x00\x1c\x01\x00\x00\x5a\x01\x5a\x01\x00\x00\x00\x00\x00\x00\x4f\x01\x5e\x00\x94\x00\x5e\x00\x67\x01\x00\x00\x5e\x00\x5e\x00\x3e\x01\x87\x01\xa6\x01\xb9\x07\x5f\x01\x5e\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x86\x01\x5e\x00\x8b\x01\x5e\x00\x95\x01\x5e\x00\x00\x00\x00\x00\x00\x00\x80\x01\xa4\x01\xbe\x01\x00\x00\xdc\x00\xbf\x01\x5e\x00\x5e\x00\x1d\x00\x5e\x00\x90\x01\x5e\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x5e\x00\xb4\x01\xb5\x01\xc8\x01\xcb\x01\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x01\xd8\x01\xdd\x01\x00\x00\xe2\x01\x5e\x00\x00\x00\xe3\x01\xf5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x00\xff\x01\x5e\x00\x10\x02\x5e\x00\x00\x00\x5e\x00\xb9\x01\x00\x00\x00\x00\x12\x02\x5e\x00\x13\x02\x5e\x00\xf2\x01\x1f\x02\x22\x02\x11\x02\x16\x02\x5e\x00\x5e\x00\x41\x02\x5e\x00\x42\x02\x43\x02\x5e\x00\x00\x00\x5e\x00\x5e\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x02\x5e\x00\x5e\x00\x00\x00\x45\x02\x4c\x02\x00\x00\x00\x00\x5e\x00\x58\x02\x5e\x00\x67\x02\x00\x00\x00\x00"# happyGotoOffsets :: HappyAddr -happyGotoOffsets = HappyA# "\x95\x00\xa7\x00\x02\x00\x67\x00\x68\x02\x6b\x02\x6e\x02\x5d\x00\x69\x02\x54\x00\x88\x01\x25\x02\xf3\x00\xc5\x00\x94\x06\x05\x02\xb9\x01\xed\x00\x9b\x06\x8d\x06\x6f\x06\x40\x06\xb0\x05\xd0\x06\x20\x02\x9d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x01\x00\x00\x00\x00\x2b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x01\xda\x06\x00\x00\x00\x00\x00\x00\x00\x00\x46\x02\xe1\x06\x00\x00\x97\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x06\x51\x02\x00\x00\x00\x00\x00\x00\xef\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x06\x00\x00\x00\x00\x41\x01\x00\x00\x4b\x02\x00\x00\x00\x00\x98\x02\x00\x00\x71\x02\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x6c\x02\x77\x02\x92\x02\x9d\x02\x2a\x00\xde\x00\x1a\x01\x86\x00\x75\x02\x7a\x02\x24\x01\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x02\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x02\x8a\x02\x8f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x01\x3a\x01\x00\x00\x00\x00\x00\x00\x71\x02\x00\x00\x00\x00\x00\x00\xd4\x01\xb8\x02\xdf\x01\xd5\x06\x47\x06\xc3\x02\x00\x00\xbe\x02\xe3\x02\x00\x00\xe4\x02\x00\x00\x00\x00\xfa\x01\xde\x02\x00\x00\x00\x00\x09\x03\x00\x00\x00\x00\x00\x00\xab\x01\xba\x05\x4e\x06\x76\x06\xb2\x06\xb9\x06\xd4\x05\xde\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x02\x04\x03\x0f\x03\x00\x00\xf8\x05\x00\x00\x00\x00\x00\x00\x2a\x03\x00\x00\x00\x00\x35\x03\x00\x00\x00\x00\x00\x00\x50\x03\x00\x00\x00\x00\xef\x06\x00\x00\x00\x00\x00\x00\x5b\x03\x0a\x03\x76\x03\x00\x00\x00\x00\x81\x03\x9c\x03\x98\x01\xf1\x06\xf7\x06\x10\x01\x9b\x02\xa7\x03\xc2\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x03\x00\x00\xe8\x03\x00\x00\xf3\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x06\x00\x00\x0e\x04\x19\x04\x00\x00\x34\x04\x00\x00\x3f\x04\x00\x00\x5a\x04\x00\x00\x65\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x04\x00\x00\xa6\x04\x00\x00\xb1\x04\x00\x00\xcc\x04\xd6\x01\x00\x00\x00\x00\x00\x00\xd7\x04\x00\x00\xf2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x04\x18\x05\x00\x00\x02\x06\x00\x00\x00\x00\x23\x05\x00\x00\x1c\x06\x26\x06\x00\x00\x00\x00\x3e\x05\x00\x00\x49\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\x6f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x05\x00\x00\x95\x05\x00\x00\x00\x00\x00\x00"# +happyGotoOffsets = HappyA# "\x58\x01\x64\x00\xc1\x01\x2b\x00\x76\x02\x74\x02\x77\x02\x1b\x00\x73\x02\xdb\x00\x3f\x01\x7a\x02\x62\x01\xd9\x00\x16\x07\x5a\x02\x0e\x02\x0f\x00\x2a\x07\x09\x01\xf1\x06\xc9\x01\x2b\x06\x66\x07\x75\x02\xe4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x01\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x01\x88\x01\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x02\x09\x02\x00\x00\x7e\x01\x00\x00\x81\x07\x87\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x07\xa6\x02\x00\x00\x00\x00\x00\x00\x8e\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x07\x00\x00\x00\x00\x55\x01\x00\x00\xa0\x02\x00\x00\x00\x00\xb3\x01\x00\x00\xc6\x02\x00\x00\xc7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\xc1\x02\xcc\x02\xe7\x02\xf2\x02\xe9\x01\x02\x02\x07\x02\xf9\x00\x83\x02\x92\x02\x2b\x02\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x02\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x02\x97\x02\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa9\x00\x78\x01\x00\x00\x00\x00\x00\x00\xc6\x02\x00\x00\x00\x00\x00\x00\x29\x02\x0d\x03\x18\x03\x34\x02\x73\x07\x7a\x07\xc2\x06\x33\x03\x00\x00\xea\x01\x00\x00\x00\x00\xec\x02\x00\x00\xed\x02\x00\x00\x00\x00\x4f\x02\x3e\x03\x00\x00\x00\x00\x12\x03\x00\x00\x00\x00\x00\x00\x00\x02\x35\x06\xc9\x06\xe3\x06\x08\x07\x0f\x07\x38\x07\x45\x07\x4f\x07\x5c\x07\x4f\x06\x59\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x03\x64\x03\x7f\x03\x8a\x03\x00\x00\x73\x06\x7d\x06\x00\x00\x00\x00\x00\x00\xa5\x03\x00\x00\x00\x00\xb0\x03\x00\x00\x00\x00\x00\x00\xcb\x03\x00\x00\x00\x00\x8e\x07\x8e\x07\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x03\x13\x03\xf1\x03\x00\x00\x00\x00\xfc\x03\x17\x04\x97\x07\x9c\x07\xa9\x07\xb9\x00\xa4\x02\x22\x04\x3d\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x04\x00\x00\x63\x04\x00\x00\x6e\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x06\x00\x00\x89\x04\x94\x04\x00\x00\xaf\x04\x00\x00\xba\x04\x00\x00\xd5\x04\x00\x00\x00\x00\xe0\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x05\x00\x00\x21\x05\x00\x00\x2c\x05\x00\x00\x47\x05\x54\x01\x00\x00\x00\x00\x00\x00\x52\x05\x00\x00\x6d\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x05\x93\x05\x00\x00\x97\x06\x00\x00\x00\x00\x9e\x05\x00\x00\xa1\x06\xbb\x06\x00\x00\x00\x00\xb9\x05\x00\x00\xc4\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x05\xea\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x06\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00"# happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int# happyAdjustOffset off = off happyDefActions :: HappyAddr -happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\xc8\xff\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xff\xe0\xff\xe1\xff\x9c\xff\x9b\xff\x00\x00\x83\xff\x95\xff\x93\xff\x91\xff\x8b\xff\x81\xff\x98\xff\x80\xff\x00\x00\x00\x00\xad\xff\xab\xff\xae\xff\xaa\xff\xac\xff\x00\x00\xa8\xff\xb0\xff\x00\x00\xa9\xff\xaf\xff\xb1\xff\xa4\xff\x00\x00\x00\x00\x00\x00\xa7\xff\x00\x00\xa0\xff\x00\x00\x00\x00\xa1\xff\x00\x00\x00\x00\x00\x00\xe4\xff\xe3\xff\x00\x00\x00\x00\x00\x00\x8b\xff\x00\x00\x00\x00\x98\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb3\xff\x00\x00\x00\x00\x00\x00\x00\x00\xba\xff\xc3\xff\xbf\xff\xbc\xff\x00\x00\x00\x00\xc5\xff\xc4\xff\x00\x00\x00\x00\xc1\xff\x00\x00\x00\x00\x00\x00\xc6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\xff\x00\x00\x00\x00\xdf\xff\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\xe2\xff\xde\xff\x00\x00\x00\x00\x00\x00\xda\xff\x00\x00\x00\x00\xc8\xff\xc8\xff\xc8\xff\xd7\xff\xd6\xff\xd8\xff\x00\x00\x00\x00\xcb\xff\x00\x00\x00\x00\xc0\xff\x00\x00\xc1\xff\x00\x00\xbb\xff\x86\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\xff\x00\x00\x00\x00\x00\x00\x85\xff\x00\x00\x00\x00\x00\x00\x9b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xff\x90\xff\x97\xff\x96\xff\x94\xff\x92\xff\x82\xff\x7f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xff\x00\x00\x00\x00\x8d\xff\x99\xff\xb2\xff\xb4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\x00\x00\x00\x00\x00\x00\xdd\xff\xd1\xff\xd2\xff\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\xff\xd3\xff\xc9\xff\x00\x00\x00\x00\x00\x00\x87\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\x00\x00\x8c\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb9\xff\xb7\xff\xa3\xff\x00\x00\x00\x00\x00\x00\x9e\xff\x00\x00\x00\x00\xb8\xff\x00\x00\x00\x00\xa2\xff\x8e\xff\xbe\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\xff\x00\x00\xc7\xff\xd0\xff\xd5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\xff\x00\x00\x00\x00\xbd\xff\xcc\xff\x00\x00\xce\xff\x00\x00\xcf\xff\xcd\xff\x88\xff\x89\xff\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x00\x00\xb6\xff\xa5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff"# +happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\xc8\xff\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xff\xe0\xff\xe1\xff\x9b\xff\x9a\xff\x00\x00\x76\xff\x8d\xff\x89\xff\x86\xff\x7f\xff\x72\xff\x91\xff\x71\xff\x00\x00\x00\x00\x98\xff\xac\xff\x97\xff\xaa\xff\xad\xff\x96\xff\xa9\xff\xab\xff\x00\x00\x94\xff\xaf\xff\x00\x00\x95\xff\xae\xff\xb0\xff\xa3\xff\x00\x00\x00\x00\x00\x00\xa6\xff\x00\x00\x9f\xff\x00\x00\x00\x00\xa0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xff\xa7\xff\xe4\xff\xe3\xff\x00\x00\x00\x00\x00\x00\x7f\xff\x00\x00\x00\x00\x91\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb2\xff\x00\x00\x00\x00\x00\x00\x00\x00\xba\xff\xc3\xff\xbf\xff\xbc\xff\x00\x00\x00\x00\xc5\xff\xc4\xff\x00\x00\x00\x00\xc1\xff\x00\x00\x00\x00\x00\x00\xc6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\xff\x00\x00\x00\x00\xdf\xff\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\xe2\xff\xde\xff\x00\x00\x00\x00\x00\x00\xda\xff\x00\x00\x00\x00\xc8\xff\xc8\xff\xc8\xff\xd7\xff\xd6\xff\xd8\xff\x00\x00\x00\x00\xcb\xff\x00\x00\x00\x00\xc0\xff\x00\x00\xc1\xff\x00\x00\xbb\xff\x79\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xff\x78\xff\x00\x00\x00\x00\x00\x00\x74\xff\x00\x00\x00\x00\x00\x00\x75\xff\x00\x00\x00\x00\x00\x00\x9a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\xff\x7e\xff\x8e\xff\x8f\xff\x8c\xff\x8b\xff\x8a\xff\x88\xff\x87\xff\x85\xff\x73\xff\x70\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x99\xff\x00\x00\x00\x00\x81\xff\x92\xff\x90\xff\xb1\xff\xb4\xff\xb3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\x00\x00\x00\x00\x00\x00\xdd\xff\xd1\xff\xd2\xff\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\xff\xd3\xff\xc9\xff\x00\x00\x00\x00\x00\x00\x7a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\xff\x00\x00\x80\xff\x7c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\xff\xb7\xff\x93\xff\xa2\xff\x00\x00\x00\x00\x00\x00\x9d\xff\x00\x00\x00\x00\xb8\xff\x00\x00\x00\x00\xa1\xff\x82\xff\xbe\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\xff\x00\x00\xc7\xff\xd0\xff\xd5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\xff\x00\x00\x00\x00\xbd\xff\xcc\xff\x00\x00\xce\xff\x00\x00\xcf\xff\xcd\xff\x7b\xff\x83\xff\x00\x00\x00\x00\x00\x00\x7d\xff\x00\x00\x00\x00\xb6\xff\xa4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xff"# happyCheck :: HappyAddr -happyCheck = HappyA# "\xff\xff\x10\x00\x15\x00\x01\x00\x13\x00\x1b\x00\x12\x00\x05\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x09\x00\x14\x00\x20\x00\x1e\x00\x22\x00\x14\x00\x44\x00\x12\x00\x1b\x00\x24\x00\x25\x00\x43\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x10\x00\x30\x00\x09\x00\x1f\x00\x14\x00\x21\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x3e\x00\x10\x00\x39\x00\x01\x00\x13\x00\x40\x00\x37\x00\x05\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x43\x00\x44\x00\x45\x00\x1e\x00\x10\x00\x45\x00\x3d\x00\x43\x00\x2f\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x11\x00\x2c\x00\x39\x00\x14\x00\x2f\x00\x3a\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x43\x00\x38\x00\x39\x00\x42\x00\x3b\x00\x01\x00\x16\x00\x2f\x00\x3f\x00\x05\x00\x41\x00\x10\x00\x43\x00\x44\x00\x13\x00\x2d\x00\x0c\x00\x39\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x09\x00\x0a\x00\x01\x00\x1e\x00\x10\x00\x43\x00\x05\x00\x06\x00\x45\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x20\x00\x2c\x00\x22\x00\x3c\x00\x10\x00\x3e\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x14\x00\x38\x00\x39\x00\x10\x00\x3b\x00\x01\x00\x10\x00\x2f\x00\x3f\x00\x05\x00\x41\x00\x10\x00\x43\x00\x44\x00\x13\x00\x10\x00\x0c\x00\x39\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x03\x00\x2f\x00\x01\x00\x1e\x00\x07\x00\x43\x00\x05\x00\x06\x00\x10\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x10\x00\x02\x00\x10\x00\x04\x00\x3d\x00\x43\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x38\x00\x39\x00\x13\x00\x3b\x00\x15\x00\x14\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x43\x00\x44\x00\x1e\x00\x05\x00\x06\x00\x45\x00\x01\x00\x2f\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x45\x00\x39\x00\x0d\x00\x3b\x00\x0f\x00\x10\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x43\x00\x01\x00\x39\x00\x10\x00\x01\x00\x05\x00\x06\x00\x10\x00\x05\x00\x40\x00\x13\x00\x45\x00\x43\x00\x44\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1d\x00\x01\x00\x02\x00\x1e\x00\x04\x00\x05\x00\x45\x00\x01\x00\x43\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x09\x00\x0a\x00\x42\x00\x0d\x00\x14\x00\x0f\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x38\x00\x39\x00\x13\x00\x3b\x00\x09\x00\x0a\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x43\x00\x43\x00\x44\x00\x1e\x00\x01\x00\x09\x00\x0a\x00\x01\x00\x05\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x0d\x00\x01\x00\x0f\x00\x10\x00\x45\x00\x05\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x38\x00\x39\x00\x13\x00\x37\x00\x43\x00\x45\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x43\x00\x44\x00\x1e\x00\x05\x00\x06\x00\x20\x00\x01\x00\x1d\x00\x24\x00\x25\x00\x05\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x1b\x00\x1b\x00\x0d\x00\x3a\x00\x0f\x00\x10\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x10\x00\x1d\x00\x39\x00\x13\x00\x1b\x00\x43\x00\x1b\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x14\x00\x43\x00\x44\x00\x1e\x00\x1b\x00\x10\x00\x10\x00\x15\x00\x1b\x00\x24\x00\x25\x00\x10\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x1b\x00\x1b\x00\x1b\x00\x15\x00\x1b\x00\x1b\x00\x1b\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x12\x00\x1b\x00\x39\x00\x01\x00\x02\x00\x14\x00\x04\x00\x05\x00\x2f\x00\x2f\x00\x11\x00\x01\x00\x43\x00\x44\x00\x2f\x00\x05\x00\x1b\x00\x1b\x00\x39\x00\x39\x00\x3b\x00\x3b\x00\x14\x00\x0d\x00\x39\x00\x2e\x00\x3b\x00\x01\x00\x43\x00\x43\x00\x3e\x00\x05\x00\x01\x00\x02\x00\x43\x00\x04\x00\x05\x00\x11\x00\x42\x00\x0d\x00\x08\x00\x0f\x00\x10\x00\x1b\x00\x1b\x00\x1b\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x3c\x00\x11\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\x11\x00\x05\x00\x11\x00\x3e\x00\x23\x00\x11\x00\x01\x00\x02\x00\x0c\x00\x04\x00\x05\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x11\x00\x14\x00\x14\x00\x11\x00\x11\x00\x11\x00\x01\x00\x02\x00\x43\x00\x04\x00\x05\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x12\x00\x1c\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x1c\x00\x04\x00\x05\x00\x01\x00\x1c\x00\x1c\x00\x3e\x00\x05\x00\x14\x00\x01\x00\x02\x00\x14\x00\x04\x00\x05\x00\x11\x00\x0d\x00\x0e\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x3e\x00\x3c\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x14\x00\x04\x00\x05\x00\x01\x00\x14\x00\x14\x00\x3e\x00\x05\x00\x14\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x11\x00\x0d\x00\x0e\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x14\x00\x11\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x07\x00\x04\x00\x05\x00\x01\x00\x08\x00\x0b\x00\x00\x00\x05\x00\x09\x00\x01\x00\x02\x00\x00\x00\x04\x00\x05\x00\x11\x00\x0d\x00\x0e\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x08\x00\x0b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x0b\x00\x04\x00\x05\x00\x01\x00\x01\x00\x0b\x00\x00\x00\x05\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x01\x00\xff\xff\xff\xff\x05\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x01\x00\xff\xff\xff\xff\x05\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x01\x00\xff\xff\xff\xff\x05\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\xff\xff\x11\x00\xff\xff\x1a\x00\x14\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x1a\x00\x14\x00\x15\x00\xff\xff\xff\xff\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\xff\xff\x11\x00\x01\x00\x02\x00\x14\x00\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x14\x00\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x14\x00\x15\x00\xff\xff\xff\xff\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\x14\x00\x04\x00\x05\x00\xff\xff\xff\xff\x14\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x14\x00\x1a\x00\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\x14\x00\x05\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x0d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x14\x00\x0d\x00\xff\xff\x0f\x00\x10\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# +happyCheck = HappyA# "\xff\xff\x10\x00\x17\x00\x15\x00\x13\x00\x14\x00\x16\x00\x30\x00\x1e\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x40\x00\x01\x00\x02\x00\x21\x00\x04\x00\x05\x00\x16\x00\x47\x00\x09\x00\x27\x00\x28\x00\x51\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x16\x00\x4a\x00\x12\x00\x14\x00\x09\x00\x0a\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x41\x00\x01\x00\x3c\x00\x40\x00\x10\x00\x05\x00\x06\x00\x13\x00\x14\x00\x49\x00\x47\x00\x46\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x10\x00\x4d\x00\x4e\x00\x21\x00\x50\x00\x51\x00\x52\x00\x12\x00\x46\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x23\x00\x2f\x00\x25\x00\x46\x00\x32\x00\x42\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x50\x00\x3b\x00\x3c\x00\x3f\x00\x3e\x00\x41\x00\x32\x00\x10\x00\x15\x00\x43\x00\x44\x00\x45\x00\x15\x00\x02\x00\x48\x00\x04\x00\x3c\x00\x1e\x00\x3e\x00\x4d\x00\x4e\x00\x10\x00\x50\x00\x51\x00\x13\x00\x14\x00\x09\x00\x42\x00\x3a\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x10\x00\x50\x00\x23\x00\x21\x00\x25\x00\x3d\x00\x32\x00\x50\x00\x52\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x3c\x00\x2f\x00\x33\x00\x09\x00\x0a\x00\x4f\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x15\x00\x3b\x00\x3c\x00\x52\x00\x3e\x00\x10\x00\x32\x00\x10\x00\x50\x00\x43\x00\x44\x00\x45\x00\x10\x00\x01\x00\x48\x00\x10\x00\x3c\x00\x05\x00\x06\x00\x4d\x00\x4e\x00\x10\x00\x50\x00\x51\x00\x13\x00\x14\x00\x09\x00\x0a\x00\x52\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x01\x00\x50\x00\x10\x00\x21\x00\x05\x00\x06\x00\x32\x00\x09\x00\x0a\x00\x27\x00\x28\x00\x32\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x3c\x00\x10\x00\x10\x00\x52\x00\x10\x00\x3c\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x15\x00\x3b\x00\x3c\x00\x01\x00\x3e\x00\x01\x00\x52\x00\x05\x00\x50\x00\x05\x00\x44\x00\x45\x00\x20\x00\x50\x00\x50\x00\x0d\x00\x0c\x00\x0f\x00\x10\x00\x4d\x00\x4e\x00\x10\x00\x50\x00\x51\x00\x13\x00\x14\x00\x4f\x00\x52\x00\x50\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x01\x00\x01\x00\x50\x00\x21\x00\x05\x00\x05\x00\x06\x00\x3a\x00\x52\x00\x27\x00\x28\x00\x0c\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x01\x00\x02\x00\x20\x00\x04\x00\x05\x00\x1e\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x01\x00\x3b\x00\x3c\x00\x1e\x00\x05\x00\x23\x00\x20\x00\x14\x00\x15\x00\x16\x00\x44\x00\x45\x00\x0d\x00\x1a\x00\x0f\x00\x10\x00\x3d\x00\x50\x00\x1e\x00\x4d\x00\x4e\x00\x10\x00\x50\x00\x51\x00\x13\x00\x14\x00\x1e\x00\x16\x00\x15\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x15\x00\x01\x00\x02\x00\x21\x00\x04\x00\x05\x00\x1e\x00\x01\x00\x1e\x00\x27\x00\x28\x00\x05\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1e\x00\x11\x00\x0d\x00\x14\x00\x10\x00\x15\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x01\x00\x01\x00\x3c\x00\x11\x00\x05\x00\x05\x00\x03\x00\x1e\x00\x41\x00\x1e\x00\x07\x00\x0c\x00\x46\x00\x0d\x00\x01\x00\x0f\x00\x10\x00\x1e\x00\x05\x00\x4d\x00\x4e\x00\x10\x00\x50\x00\x51\x00\x13\x00\x14\x00\x0d\x00\x32\x00\x0f\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x11\x00\x01\x00\x3c\x00\x21\x00\x3e\x00\x05\x00\x06\x00\x01\x00\x31\x00\x27\x00\x28\x00\x05\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x01\x00\x02\x00\x0d\x00\x04\x00\x05\x00\x50\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1e\x00\x10\x00\x3c\x00\x10\x00\x13\x00\x14\x00\x1e\x00\x1e\x00\x14\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x08\x00\x1e\x00\x1e\x00\x21\x00\x4d\x00\x4e\x00\x1e\x00\x50\x00\x51\x00\x27\x00\x28\x00\x4f\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x1e\x00\x01\x00\x11\x00\x10\x00\x12\x00\x05\x00\x32\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3f\x00\x0d\x00\x3c\x00\x01\x00\x3c\x00\x1e\x00\x3e\x00\x05\x00\x22\x00\x01\x00\x24\x00\x01\x00\x02\x00\x05\x00\x04\x00\x05\x00\x11\x00\x11\x00\x41\x00\x4d\x00\x4e\x00\x0d\x00\x50\x00\x51\x00\x50\x00\x32\x00\x11\x00\x26\x00\x26\x00\x11\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x3c\x00\x1a\x00\x3e\x00\x01\x00\x02\x00\x42\x00\x04\x00\x05\x00\x01\x00\x01\x00\x11\x00\x15\x00\x05\x00\x05\x00\x4b\x00\x4c\x00\x15\x00\x11\x00\x11\x00\x11\x00\x50\x00\x0d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\x11\x00\x05\x00\x01\x00\x50\x00\x01\x00\x02\x00\x05\x00\x04\x00\x05\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x14\x00\x1f\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x01\x00\x04\x00\x05\x00\x1f\x00\x05\x00\x1f\x00\x1f\x00\x41\x00\x15\x00\x01\x00\x02\x00\x15\x00\x04\x00\x05\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x41\x00\x04\x00\x05\x00\x3f\x00\x15\x00\x15\x00\x15\x00\x41\x00\x15\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x12\x00\x15\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x01\x00\x08\x00\x07\x00\x0b\x00\x05\x00\x09\x00\x01\x00\x02\x00\x00\x00\x04\x00\x05\x00\x11\x00\x0d\x00\x0e\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\x00\x00\x08\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\x0b\x00\x04\x00\x05\x00\x01\x00\x0b\x00\x0b\x00\x00\x00\x05\x00\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0e\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0e\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x01\x00\xff\xff\xff\xff\x05\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x01\x00\x01\x00\xff\xff\xff\xff\x05\x00\x05\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\x0d\x00\x0d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\x11\x00\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\xff\xff\x1a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x11\x00\xff\xff\x1a\x00\x14\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x1a\x00\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x14\x00\x15\x00\xff\xff\xff\xff\x11\x00\xff\xff\x1a\x00\x14\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x1a\x00\x14\x00\x15\x00\xff\xff\xff\xff\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\x14\x00\x15\x00\xff\xff\xff\xff\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\xff\xff\x14\x00\x15\x00\xff\xff\xff\xff\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\x14\x00\x15\x00\xff\xff\xff\xff\x01\x00\x02\x00\x1a\x00\x04\x00\x05\x00\xff\xff\x14\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x1a\x00\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x14\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x1a\x00\x14\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x1a\x00\x14\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x14\x00\x05\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x14\x00\xff\xff\x0d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x0d\x00\x01\x00\x0f\x00\x10\x00\xff\xff\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\x0f\x00\x10\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# happyTable :: HappyAddr -happyTable = HappyA# "\x00\x00\x49\x00\xb7\x00\x1c\x00\x2c\x00\xc9\x00\x9f\x00\x7e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x7c\x00\xd8\x00\xa0\x00\x31\x00\xa1\x00\xfe\x00\x46\x00\x9f\x00\xfc\x00\x32\x00\x33\x00\x45\x00\x35\x00\x36\x00\x37\x00\x38\x00\x9c\x00\x63\x00\xb2\x00\x7c\x00\xb5\x00\xd8\x00\xb6\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xca\x00\x2b\x00\x41\x00\x1c\x00\x2c\x00\xb8\x00\x7a\x00\x8c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x45\x00\x46\x00\xff\xff\x31\x00\x63\x00\xff\xff\x9d\x00\x45\x00\x5d\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xcf\x00\x39\x00\x5e\x00\xd0\x00\xb0\x00\x68\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x45\x00\x40\x00\x41\x00\x1c\x00\x42\x00\x1c\x00\xb4\x00\x5d\x00\x43\x00\x64\x00\x44\x00\x2b\x00\x45\x00\x46\x00\x2c\x00\xb3\x00\x65\x00\x5e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x68\x00\x69\x00\x1c\x00\x31\x00\xa6\x00\x45\x00\x7c\x00\x7d\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\xa0\x00\x39\x00\xa1\x00\x0e\x01\x63\x00\x0f\x01\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xb1\x00\x40\x00\x41\x00\xad\x00\x42\x00\x1c\x00\xaa\x00\x5d\x00\x43\x00\x64\x00\x44\x00\x2b\x00\x45\x00\x46\x00\x2c\x00\xa9\x00\x89\x00\x5e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x80\x00\x5d\x00\x1c\x00\x31\x00\x81\x00\x45\x00\x7c\x00\x91\x00\xa4\x00\x32\x00\x33\x00\x5e\x00\x35\x00\x36\x00\x37\x00\x38\x00\x5c\x00\x1d\x00\xa3\x00\x7f\x00\x9d\x00\x45\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\x40\x00\x41\x00\x2c\x00\x42\x00\xba\xff\x9e\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x45\x00\x46\x00\x31\x00\x7c\x00\x85\x00\xff\xff\x1c\x00\x5d\x00\x32\x00\x33\x00\x57\x00\x35\x00\x36\x00\x37\x00\x38\x00\x9c\x00\xff\xff\x5e\x00\x58\x00\x5f\x00\x59\x00\x5a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x45\x00\x1c\x00\x41\x00\x94\x00\x1c\x00\x7c\x00\x83\x00\x2b\x00\x8b\x00\xba\xff\x2c\x00\xff\xff\x45\x00\x46\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x93\x00\x1c\x00\x1d\x00\x31\x00\x1e\x00\x1f\x00\xff\xff\x1c\x00\x45\x00\x32\x00\x33\x00\x57\x00\x35\x00\x36\x00\x37\x00\x38\x00\x68\x00\x82\x00\x1c\x00\x58\x00\x50\x00\x5f\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\x40\x00\x41\x00\x2c\x00\x42\x00\x68\x00\xda\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x45\x00\x45\x00\x46\x00\x31\x00\x1c\x00\x68\x00\xe8\x00\x1c\x00\x57\x00\x32\x00\x33\x00\x8a\x00\x35\x00\x36\x00\x37\x00\x38\x00\x58\x00\x1c\x00\x59\x00\xab\x00\xff\xff\x86\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\x40\x00\x41\x00\x2c\x00\x7a\x00\x45\x00\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x1c\x00\x45\x00\x46\x00\x31\x00\x7c\x00\xd9\x00\xe2\x00\x1c\x00\xe5\x00\x32\x00\x33\x00\x57\x00\x35\x00\x36\x00\x37\x00\x38\x00\x9c\x00\xe4\x00\xe3\x00\x58\x00\x68\x00\x59\x00\x99\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x49\x00\xe1\x00\x41\x00\x2c\x00\xdd\x00\x45\x00\xdc\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xd8\x00\x45\x00\x46\x00\x31\x00\xd9\x00\x5c\x00\x5c\x00\xc5\x00\xd7\x00\x32\x00\x33\x00\x5c\x00\x35\x00\x36\x00\x37\x00\x38\x00\xef\x00\xed\x00\xcc\x00\xc3\x00\xc2\x00\xc1\x00\xeb\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x9f\x00\x02\x01\x41\x00\x1c\x00\x1d\x00\x00\x01\x1e\x00\x1f\x00\x5d\x00\x5d\x00\xff\x00\x1c\x00\x45\x00\x46\x00\x5d\x00\x57\x00\xfa\x00\xf9\x00\x5e\x00\x5e\x00\x5f\x00\x5f\x00\x9a\x00\x63\x00\x5e\x00\xf6\x00\x5f\x00\x1c\x00\x45\x00\x45\x00\xf7\x00\x57\x00\x1c\x00\x1d\x00\x45\x00\x1e\x00\x1f\x00\xf2\x00\x1c\x00\x58\x00\x1d\x01\x59\x00\xed\x00\x1c\x01\x1a\x01\x18\x01\x1c\x00\x1d\x00\x20\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1c\x00\x1d\x00\x20\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xbf\x00\x16\x01\x15\x01\x20\x00\x51\x00\x52\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x53\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x14\x01\x64\x00\x12\x01\x0c\x01\x08\x01\x07\x01\x1c\x00\x1d\x00\x1d\x01\x1e\x00\x1f\x00\x20\x00\x51\x00\xd5\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x53\x00\x20\x00\x51\x00\xd3\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x53\x00\x1c\x00\x1d\x00\x06\x01\x1e\x00\x1f\x00\x2b\x01\x2a\x01\x29\x01\x28\x01\x26\x01\x25\x01\x1c\x00\x1d\x00\x45\x00\x1e\x00\x1f\x00\x20\x00\x51\x00\xc6\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xc7\x00\x20\x00\x54\x00\x23\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x53\x00\x1c\x00\x1d\x00\x21\x01\x1e\x00\x1f\x00\x1c\x00\x37\x01\x35\x01\x33\x01\x57\x00\x32\x01\x1c\x00\x1d\x00\x31\x01\x1e\x00\xae\x00\x20\x00\x60\x00\x61\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x46\x00\x20\x00\x30\x01\x2f\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa1\x00\x1c\x00\x1d\x00\x2c\x01\x1e\x00\x1f\x00\x1c\x00\x3e\x01\x3d\x01\x42\x01\x57\x00\x44\x01\x1c\x00\x1d\x00\x43\x01\x1e\x00\x1f\x00\x20\x00\x97\x00\x98\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa7\x00\x20\x00\x46\x01\x48\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xa1\x00\x1c\x00\x1d\x00\x7a\x00\x1e\x00\x1f\x00\x1c\x00\x78\x00\x66\x00\x88\x00\x57\x00\x77\x00\x1c\x00\x1d\x00\x87\x00\x1e\x00\x1f\x00\x20\x00\x60\x00\x95\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x90\x00\x20\x00\x84\x00\xdf\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8f\x00\x1c\x00\x1d\x00\xde\x00\x1e\x00\x1f\x00\x1c\x00\x1c\x00\xdd\x00\xe7\x00\x57\x00\x57\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\xa4\x00\x96\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8e\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x8d\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x00\x00\x00\x00\x57\x00\x57\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x94\x00\xcd\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xd4\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xd0\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x00\x00\x00\x00\x57\x00\x57\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\xcc\x00\xca\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xc5\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x04\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x00\x00\x00\x00\x57\x00\x57\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\xc3\x00\xf3\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x03\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x02\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xfc\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xfa\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf7\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf4\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf2\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xf0\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xef\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xe6\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xe5\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x1a\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x18\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x16\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x10\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0f\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0c\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0a\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x09\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x08\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x26\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x23\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x21\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x1f\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x1e\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x35\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x33\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x2d\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x2c\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x3b\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x38\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x37\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x40\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x3f\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x44\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x46\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\x4a\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\xbe\x00\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\xb9\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\xb8\x00\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\x00\x01\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\x3e\x01\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\x3a\x01\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x49\x00\x39\x01\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x4b\x00\x00\x00\x4c\x00\x21\x00\x22\x00\x23\x00\x24\x00\xd1\x00\x00\x00\x4c\x00\x21\x00\x22\x00\x23\x00\x24\x00\xbd\x00\x00\x00\x4c\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x12\x01\x00\x00\x4c\x00\x21\x00\x22\x00\x23\x00\x4d\x00\x00\x00\x00\x00\x4c\x00\x21\x00\x22\x00\x23\x00\xbc\x00\x1c\x00\x1d\x00\x4c\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x4e\x00\x00\x00\x55\x00\x00\x00\x4c\x00\x21\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x56\x00\x21\x00\x4f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x4c\x00\x1e\x00\x1f\x00\x00\x00\xad\x00\x1c\x00\x1d\x00\x21\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x56\x00\x00\x00\x00\x00\x00\x00\x21\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x21\x00\xba\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x4c\x00\x1e\x00\x1f\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x21\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x21\x00\x47\x00\x00\x00\x00\x00\x00\x00\xaa\x00\xd2\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\xa6\x00\x57\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x57\x00\x00\x00\x58\x00\x00\x00\x59\x00\xeb\x00\x00\x00\x9a\x00\x58\x00\x00\x00\x59\x00\xe9\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x00\x00\x00\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +happyTable = HappyA# "\x00\x00\x50\x00\xc0\x00\x15\x01\x2c\x00\x2d\x00\xc6\x00\xbe\x00\xde\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\xa4\x00\x1c\x00\x1d\x00\x34\x00\x1e\x00\x1f\x00\xd9\x00\xa5\x00\x83\x00\x35\x00\x36\x00\x4d\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xa3\x00\xd6\x00\xbf\x00\xa7\x00\x57\x00\x6f\x00\x70\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xdf\x00\x1c\x00\x44\x00\xa4\x00\x2b\x00\x83\x00\x84\x00\x2c\x00\x2d\x00\xc1\x00\xa5\x00\xc7\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x63\x00\x4a\x00\x4b\x00\x34\x00\x4c\x00\x4d\x00\xff\xff\xa7\x00\xda\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xa9\x00\x3c\x00\xaa\x00\xd7\x00\xbb\x00\xa8\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x4c\x00\x43\x00\x44\x00\x28\x01\x45\x00\x29\x01\x64\x00\x6a\x00\xef\x00\x46\x00\x47\x00\x48\x00\xef\x00\x1d\x00\x49\x00\x86\x00\x65\x00\x13\x01\x66\x00\x4a\x00\x4b\x00\x2b\x00\x4c\x00\x4d\x00\x2c\x00\x2d\x00\x83\x00\xa8\x00\x81\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x6a\x00\x4c\x00\xa9\x00\x34\x00\xaa\x00\x6f\x00\x64\x00\x4c\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x65\x00\x3c\x00\xbd\x00\x6f\x00\x89\x00\x1c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xbc\x00\x43\x00\x44\x00\xff\xff\x45\x00\xb8\x00\x64\x00\xb1\x00\x4c\x00\x46\x00\x47\x00\x48\x00\x6a\x00\x1c\x00\x49\x00\xb5\x00\x65\x00\x83\x00\x98\x00\x4a\x00\x4b\x00\x2b\x00\x4c\x00\x4d\x00\x2c\x00\x2d\x00\x6f\x00\xf1\x00\xff\xff\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x1c\x00\x4c\x00\xb4\x00\x34\x00\x83\x00\x8c\x00\x64\x00\x6f\x00\xff\x00\x35\x00\x36\x00\x64\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x65\x00\xaf\x00\xac\x00\xff\xff\x9b\x00\x65\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xa6\x00\x43\x00\x44\x00\x1c\x00\x45\x00\x1c\x00\xff\xff\x5e\x00\x4c\x00\x6b\x00\x47\x00\x48\x00\x9a\x00\x4c\x00\x4c\x00\x5f\x00\x6c\x00\x60\x00\x61\x00\x4a\x00\x4b\x00\x50\x00\x4c\x00\x4d\x00\x2c\x00\x2d\x00\x1c\x00\xff\xff\x4c\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x1c\x00\x1c\x00\x4c\x00\x34\x00\x6b\x00\x83\x00\x8a\x00\x81\x00\xff\xff\x35\x00\x36\x00\x90\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x1c\x00\x1d\x00\xfc\x00\x1e\x00\x1f\x00\xfb\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x1c\x00\x43\x00\x44\x00\xfa\x00\x5e\x00\xf9\x00\xf8\x00\x21\x00\x22\x00\x55\x00\x47\x00\x48\x00\x5f\x00\x53\x00\x60\x00\xb6\x00\x6f\x00\x4c\x00\xf4\x00\x4a\x00\x4b\x00\x50\x00\x4c\x00\x4d\x00\x2c\x00\x2d\x00\xf3\x00\xba\xff\xef\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x17\x01\x1c\x00\x1d\x00\x34\x00\x1e\x00\x1f\x00\xf0\x00\x1c\x00\xee\x00\x35\x00\x36\x00\x5e\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xa3\x00\xe1\x00\xe4\x00\x6a\x00\xa1\x00\x63\x00\xe5\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x1c\x00\x1c\x00\x44\x00\x16\x01\x6b\x00\x5e\x00\x87\x00\x06\x01\x0e\x01\xd5\x00\x88\x00\x37\x01\xba\xff\x5f\x00\x1c\x00\x60\x00\xa0\x00\xd4\x00\x5e\x00\x4a\x00\x4b\x00\x50\x00\x4c\x00\x4d\x00\x2c\x00\x2d\x00\x5f\x00\x64\x00\x66\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x09\x01\x1c\x00\x65\x00\x34\x00\x66\x00\x83\x00\xf0\x00\x1c\x00\x0d\x01\x35\x00\x36\x00\x5e\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xa3\x00\x1c\x00\x1d\x00\xaf\x00\x1e\x00\x1f\x00\x4c\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x1a\x01\x50\x00\x44\x00\x63\x00\x2c\x00\x2d\x00\x11\x01\x10\x01\xb5\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x37\x01\x36\x01\x04\x01\x34\x00\x4a\x00\x4b\x00\x34\x01\x4c\x00\x4d\x00\x35\x00\x36\x00\x1c\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x32\x01\x1c\x00\x2f\x01\x63\x00\xa7\x00\x5e\x00\x64\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x30\x01\x9d\x00\x44\x00\x1c\x00\x65\x00\x02\x01\x66\x00\x85\x00\xc2\x00\x1c\x00\xc3\x00\x1c\x00\x1d\x00\x5e\x00\x1e\x00\x1f\x00\x2e\x01\x2c\x01\x26\x01\x4a\x00\x4b\x00\x9b\x00\x4c\x00\x4d\x00\x4c\x00\x64\x00\x20\x01\x22\x01\x21\x01\x1f\x01\x21\x00\x22\x00\x23\x00\x24\x00\x52\x00\x65\x00\x53\x00\x66\x00\x1c\x00\x1d\x00\xa8\x00\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x45\x01\x44\x01\x93\x00\x5e\x00\xc4\x00\xc5\x00\x43\x01\x42\x01\x40\x01\x20\x00\x4c\x00\xe2\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x3f\x01\x92\x00\x1c\x00\x4c\x00\x1c\x00\x1d\x00\x91\x00\x1e\x00\x1f\x00\x1c\x00\x1d\x00\x20\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\xd2\x00\xb1\x00\x3d\x01\x20\x00\x58\x00\x59\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x5a\x00\x1c\x00\x1d\x00\x1c\x00\x1e\x00\x1f\x00\x3b\x01\x8d\x00\x51\x01\x4f\x01\x4d\x01\x4c\x01\x1c\x00\x1d\x00\x4b\x01\x1e\x00\x1f\x00\x20\x00\x58\x00\xec\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x5a\x00\x20\x00\x58\x00\xe9\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x5a\x00\x1c\x00\x1d\x00\x4a\x01\x1e\x00\x1f\x00\x49\x01\x46\x01\x58\x01\x57\x01\x5c\x01\x5e\x01\x1c\x00\x1d\x00\x5d\x01\x1e\x00\x1f\x00\x20\x00\x58\x00\xdb\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xdc\x00\x20\x00\x5b\x00\x60\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x5a\x00\x1c\x00\x1d\x00\x62\x01\x1e\x00\x1f\x00\x1c\x00\x7f\x00\x81\x00\x6d\x00\x5e\x00\x7e\x00\x1c\x00\x1d\x00\x8f\x00\x1e\x00\xb9\x00\x20\x00\x67\x00\x68\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x4d\x00\x20\x00\x8e\x00\x8b\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xaa\x00\x1c\x00\x1d\x00\xf6\x00\x1e\x00\x1f\x00\x1c\x00\xf5\x00\xf4\x00\xfe\x00\x5e\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x9e\x00\x9f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xb2\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xaa\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x67\x00\x9c\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x97\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x96\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x00\x00\x00\x00\x5e\x00\x5e\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\xe1\x00\xdf\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x95\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x94\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x1c\x00\x1c\x00\x00\x00\x00\x00\x5e\x00\x5e\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\xd7\x00\x0a\x01\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xeb\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xea\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xe5\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xda\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x1d\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x1c\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x1b\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x1a\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x13\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x11\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0e\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0b\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x09\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x07\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x06\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xfd\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xfc\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x34\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x32\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x30\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x2a\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x29\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x26\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x24\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x23\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x22\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x40\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x3d\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x3b\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x39\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x38\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x4f\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x4d\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x47\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x46\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x55\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x52\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x51\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x5a\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x59\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x5e\x01\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x60\x01\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x50\x00\x51\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x50\x00\xd1\x00\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x50\x00\xc8\x00\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x50\x00\xc7\x00\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x50\x00\x18\x01\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x50\x00\x17\x01\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x50\x00\x58\x01\x27\x00\x20\x00\x00\x00\x00\x00\x21\x00\x22\x00\x23\x00\x24\x00\x50\x00\x54\x01\x27\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x20\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x50\x00\x53\x01\x27\x00\x21\x00\x22\x00\x23\x00\x24\x00\xe6\x00\x00\x00\x53\x00\x21\x00\x22\x00\x23\x00\x24\x00\xd0\x00\x00\x00\x53\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\x24\x00\xcf\x00\x00\x00\x53\x00\x21\x00\x22\x00\x23\x00\x24\x00\x2c\x01\x00\x00\x53\x00\x21\x00\x22\x00\x23\x00\x54\x00\x1c\x00\x1d\x00\x53\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x21\x00\x22\x00\x23\x00\xce\x00\x00\x00\x00\x00\x53\x00\x21\x00\x22\x00\x23\x00\xcd\x00\x5c\x00\x00\x00\x53\x00\x21\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x5d\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x21\x00\x56\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x53\x00\x21\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x5d\x00\x21\x00\xcc\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x53\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\xcb\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x53\x00\x1e\x00\x1f\x00\x00\x00\x21\x00\xca\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x53\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\xc9\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x53\x00\x1e\x00\x1f\x00\x00\x00\x21\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x4e\x00\x00\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\x21\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\xe8\x00\x21\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x1f\x00\xe7\x00\xad\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\xac\x00\x5e\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x5e\x00\xa1\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x04\x01\x00\x00\x5f\x00\x1c\x00\x60\x00\x02\x01\x00\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x01\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# -happyReduceArr = Happy_Data_Array.array (26, 128) [ +happyReduceArr = Happy_Data_Array.array (26, 143) [ (26 , happyReduce_26), (27 , happyReduce_27), (28 , happyReduce_28), @@ -403,10 +403,25 @@ happyReduceArr = Happy_Data_Array.array (26, 128) [ (125 , happyReduce_125), (126 , happyReduce_126), (127 , happyReduce_127), - (128 , happyReduce_128) + (128 , happyReduce_128), + (129 , happyReduce_129), + (130 , happyReduce_130), + (131 , happyReduce_131), + (132 , happyReduce_132), + (133 , happyReduce_133), + (134 , happyReduce_134), + (135 , happyReduce_135), + (136 , happyReduce_136), + (137 , happyReduce_137), + (138 , happyReduce_138), + (139 , happyReduce_139), + (140 , happyReduce_140), + (141 , happyReduce_141), + (142 , happyReduce_142), + (143 , happyReduce_143) ] -happy_n_terms = 70 :: Prelude.Int +happy_n_terms = 83 :: Prelude.Int happy_n_nonterms = 29 :: Prelude.Int happyReduce_26 = happySpecReduce_1 0# happyReduction_26 @@ -954,15 +969,25 @@ happyReduction_75 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_76 = happySpecReduce_1 19# happyReduction_76 -happyReduction_76 happy_x_1 +happyReduce_76 = happySpecReduce_3 18# happyReduction_76 +happyReduction_76 happy_x_3 + happy_x_2 + happy_x_1 + = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> + case happyOut56 happy_x_3 of { (HappyWrap56 happy_var_3) -> + happyIn47 + ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) + )}} + +happyReduce_77 = happySpecReduce_1 19# happyReduction_77 +happyReduction_77 happy_x_1 = case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) -> happyIn48 ((fst happy_var_1, (:[]) (snd happy_var_1)) )} -happyReduce_77 = happySpecReduce_3 19# happyReduction_77 -happyReduction_77 happy_x_3 +happyReduce_78 = happySpecReduce_3 19# happyReduction_78 +happyReduction_78 happy_x_3 happy_x_2 happy_x_1 = case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) -> @@ -971,85 +996,85 @@ happyReduction_77 happy_x_3 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_78 = happySpecReduce_1 20# happyReduction_78 -happyReduction_78 happy_x_1 - = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Universe (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) - )} - happyReduce_79 = happySpecReduce_1 20# happyReduction_79 happyReduction_79 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseCube (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Universe (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} happyReduce_80 = happySpecReduce_1 20# happyReduction_80 happyReduction_80 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseTope (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseCube (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} happyReduce_81 = happySpecReduce_1 20# happyReduction_81 happyReduction_81 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseTope (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} happyReduce_82 = happySpecReduce_1 20# happyReduction_82 happyReduction_82 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} happyReduce_83 = happySpecReduce_1 20# happyReduction_83 happyReduction_83 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} happyReduce_84 = happySpecReduce_1 20# happyReduction_84 happyReduction_84 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} happyReduce_85 = happySpecReduce_1 20# happyReduction_85 happyReduction_85 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} happyReduce_86 = happySpecReduce_1 20# happyReduction_86 happyReduction_86 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} happyReduce_87 = happySpecReduce_1 20# happyReduction_87 happyReduction_87 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} happyReduce_88 = happySpecReduce_1 20# happyReduction_88 happyReduction_88 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn49 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + )} + +happyReduce_89 = happySpecReduce_1 20# happyReduction_89 +happyReduction_89 happy_x_1 + = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_89 = happyReduce 4# 20# happyReduction_89 -happyReduction_89 (happy_x_4 `HappyStk` +happyReduce_90 = happyReduce 4# 20# happyReduction_90 +happyReduction_90 (happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` happy_x_1 `HappyStk` @@ -1060,8 +1085,8 @@ happyReduction_89 (happy_x_4 `HappyStk` ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3)) ) `HappyStk` happyRest}} -happyReduce_90 = happyReduce 10# 20# happyReduction_90 -happyReduction_90 (happy_x_10 `HappyStk` +happyReduce_91 = happyReduce 10# 20# happyReduction_91 +happyReduction_91 (happy_x_10 `HappyStk` happy_x_9 `HappyStk` happy_x_8 `HappyStk` happy_x_7 `HappyStk` @@ -1078,18 +1103,18 @@ happyReduction_90 (happy_x_10 `HappyStk` case happyOut56 happy_x_7 of { (HappyWrap56 happy_var_7) -> case happyOut56 happy_x_9 of { (HappyWrap56 happy_var_9) -> happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.recOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9)) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecOrDeprecated (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9)) ) `HappyStk` happyRest}}}}} -happyReduce_91 = happySpecReduce_1 20# happyReduction_91 -happyReduction_91 happy_x_1 +happyReduce_92 = happySpecReduce_1 20# happyReduction_92 +happyReduction_92 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_92 = happyReduce 5# 20# happyReduction_92 -happyReduction_92 (happy_x_5 `HappyStk` +happyReduce_93 = happyReduce 5# 20# happyReduction_93 +happyReduction_93 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` @@ -1099,11 +1124,11 @@ happyReduction_92 (happy_x_5 `HappyStk` case happyOut46 happy_x_2 of { (HappyWrap46 happy_var_2) -> case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> happyIn49 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.typeExtension (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeExtensionDeprecated (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_93 = happyReduce 5# 20# happyReduction_93 -happyReduction_93 (happy_x_5 `HappyStk` +happyReduce_94 = happyReduce 5# 20# happyReduction_94 +happyReduction_94 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` @@ -1116,22 +1141,22 @@ happyReduction_93 (happy_x_5 `HappyStk` ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Pair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_94 = happySpecReduce_1 20# happyReduction_94 -happyReduction_94 happy_x_1 +happyReduce_95 = happySpecReduce_1 20# happyReduction_95 +happyReduction_95 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Unit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_95 = happySpecReduce_1 20# happyReduction_95 -happyReduction_95 happy_x_1 +happyReduce_96 = happySpecReduce_1 20# happyReduction_96 +happyReduction_96 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn49 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Refl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_96 = happySpecReduce_3 20# happyReduction_96 -happyReduction_96 happy_x_3 +happyReduce_97 = happySpecReduce_3 20# happyReduction_97 +happyReduction_97 happy_x_3 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> @@ -1140,8 +1165,8 @@ happyReduction_96 happy_x_3 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTerm (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) )}} -happyReduce_97 = happyReduce 5# 20# happyReduction_97 -happyReduction_97 (happy_x_5 `HappyStk` +happyReduce_98 = happyReduce 5# 20# happyReduction_98 +happyReduction_98 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` @@ -1154,8 +1179,8 @@ happyReduction_97 (happy_x_5 `HappyStk` ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTermType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_98 = happyReduce 14# 20# happyReduction_98 -happyReduction_98 (happy_x_14 `HappyStk` +happyReduce_99 = happyReduce 14# 20# happyReduction_99 +happyReduction_99 (happy_x_14 `HappyStk` happy_x_13 `HappyStk` happy_x_12 `HappyStk` happy_x_11 `HappyStk` @@ -1181,22 +1206,22 @@ happyReduction_98 (happy_x_14 `HappyStk` ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.IdJ (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9) (snd happy_var_11) (snd happy_var_13)) ) `HappyStk` happyRest}}}}}}} -happyReduce_99 = happySpecReduce_1 20# happyReduction_99 -happyReduction_99 happy_x_1 +happyReduce_100 = happySpecReduce_1 20# happyReduction_100 +happyReduction_100 happy_x_1 = case happyOut33 happy_x_1 of { (HappyWrap33 happy_var_1) -> happyIn49 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Hole (fst happy_var_1) (snd happy_var_1)) )} -happyReduce_100 = happySpecReduce_1 20# happyReduction_100 -happyReduction_100 happy_x_1 +happyReduce_101 = happySpecReduce_1 20# happyReduction_101 +happyReduction_101 happy_x_1 = case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> happyIn49 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Var (fst happy_var_1) (snd happy_var_1)) )} -happyReduce_101 = happySpecReduce_3 20# happyReduction_101 -happyReduction_101 happy_x_3 +happyReduce_102 = happySpecReduce_3 20# happyReduction_102 +happyReduction_102 happy_x_3 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> @@ -1205,8 +1230,57 @@ happyReduction_101 happy_x_3 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), (snd happy_var_2)) )}} -happyReduce_102 = happySpecReduce_3 21# happyReduction_102 -happyReduction_102 happy_x_3 +happyReduce_103 = happySpecReduce_1 20# happyReduction_103 +happyReduction_103 happy_x_1 + = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn49 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + )} + +happyReduce_104 = happySpecReduce_1 20# happyReduction_104 +happyReduction_104 happy_x_1 + = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn49 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + )} + +happyReduce_105 = happySpecReduce_1 20# happyReduction_105 +happyReduction_105 happy_x_1 + = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn49 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + )} + +happyReduce_106 = happySpecReduce_1 20# happyReduction_106 +happyReduction_106 happy_x_1 + = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn49 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + )} + +happyReduce_107 = happySpecReduce_1 20# happyReduction_107 +happyReduction_107 happy_x_1 + = case happyOutTok happy_x_1 of { happy_var_1 -> + happyIn49 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) + )} + +happyReduce_108 = happyReduce 5# 20# happyReduction_108 +happyReduction_108 (happy_x_5 `HappyStk` + happy_x_4 `HappyStk` + happy_x_3 `HappyStk` + happy_x_2 `HappyStk` + happy_x_1 `HappyStk` + happyRest) + = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut46 happy_x_2 of { (HappyWrap46 happy_var_2) -> + case happyOut56 happy_x_4 of { (HappyWrap56 happy_var_4) -> + happyIn49 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TypeExtensionDeprecated (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) + ) `HappyStk` happyRest}}} + +happyReduce_109 = happySpecReduce_3 21# happyReduction_109 +happyReduction_109 happy_x_3 happy_x_2 happy_x_1 = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> @@ -1215,15 +1289,25 @@ happyReduction_102 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_103 = happySpecReduce_1 21# happyReduction_103 -happyReduction_103 happy_x_1 +happyReduce_110 = happySpecReduce_1 21# happyReduction_110 +happyReduction_110 happy_x_1 = case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> happyIn50 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_104 = happySpecReduce_3 22# happyReduction_104 -happyReduction_104 happy_x_3 +happyReduce_111 = happySpecReduce_3 21# happyReduction_111 +happyReduction_111 happy_x_3 + happy_x_2 + happy_x_1 + = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> + case happyOut55 happy_x_3 of { (HappyWrap55 happy_var_3) -> + happyIn50 + ((fst happy_var_1, Language.Rzk.Syntax.Abs.ascii_CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) + )}} + +happyReduce_112 = happySpecReduce_3 22# happyReduction_112 +happyReduction_112 happy_x_3 happy_x_2 happy_x_1 = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> @@ -1232,8 +1316,8 @@ happyReduction_104 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_105 = happySpecReduce_3 22# happyReduction_105 -happyReduction_105 happy_x_3 +happyReduce_113 = happySpecReduce_3 22# happyReduction_113 +happyReduction_113 happy_x_3 happy_x_2 happy_x_1 = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> @@ -1242,15 +1326,35 @@ happyReduction_105 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_106 = happySpecReduce_1 22# happyReduction_106 -happyReduction_106 happy_x_1 +happyReduce_114 = happySpecReduce_1 22# happyReduction_114 +happyReduction_114 happy_x_1 = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> happyIn51 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_107 = happySpecReduce_3 23# happyReduction_107 -happyReduction_107 happy_x_3 +happyReduce_115 = happySpecReduce_3 22# happyReduction_115 +happyReduction_115 happy_x_3 + happy_x_2 + happy_x_1 + = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> + case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> + happyIn51 + ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) + )}} + +happyReduce_116 = happySpecReduce_3 22# happyReduction_116 +happyReduction_116 happy_x_3 + happy_x_2 + happy_x_1 + = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> + case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> + happyIn51 + ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) + )}} + +happyReduce_117 = happySpecReduce_3 23# happyReduction_117 +happyReduction_117 happy_x_3 happy_x_2 happy_x_1 = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> @@ -1259,15 +1363,25 @@ happyReduction_107 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_108 = happySpecReduce_1 23# happyReduction_108 -happyReduction_108 happy_x_1 +happyReduce_118 = happySpecReduce_1 23# happyReduction_118 +happyReduction_118 happy_x_1 = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> happyIn52 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_109 = happySpecReduce_3 24# happyReduction_109 -happyReduction_109 happy_x_3 +happyReduce_119 = happySpecReduce_3 23# happyReduction_119 +happyReduction_119 happy_x_3 + happy_x_2 + happy_x_1 + = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> + case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> + happyIn52 + ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) + )}} + +happyReduce_120 = happySpecReduce_3 24# happyReduction_120 +happyReduction_120 happy_x_3 happy_x_2 happy_x_1 = case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> @@ -1276,15 +1390,25 @@ happyReduction_109 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_110 = happySpecReduce_1 24# happyReduction_110 -happyReduction_110 happy_x_1 +happyReduce_121 = happySpecReduce_1 24# happyReduction_121 +happyReduction_121 happy_x_1 = case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> happyIn53 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_111 = happySpecReduce_3 25# happyReduction_111 -happyReduction_111 happy_x_3 +happyReduce_122 = happySpecReduce_3 24# happyReduction_122 +happyReduction_122 happy_x_3 + happy_x_2 + happy_x_1 + = case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> + case happyOut53 happy_x_3 of { (HappyWrap53 happy_var_3) -> + happyIn53 + ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) + )}} + +happyReduce_123 = happySpecReduce_3 25# happyReduction_123 +happyReduction_123 happy_x_3 happy_x_2 happy_x_1 = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> @@ -1293,8 +1417,8 @@ happyReduction_111 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_112 = happyReduce 8# 25# happyReduction_112 -happyReduction_112 (happy_x_8 `HappyStk` +happyReduce_124 = happyReduce 8# 25# happyReduction_124 +happyReduction_124 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -1311,8 +1435,8 @@ happyReduction_112 (happy_x_8 `HappyStk` ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8)) ) `HappyStk` happyRest}}}} -happyReduce_113 = happyReduce 5# 25# happyReduction_113 -happyReduction_113 (happy_x_5 `HappyStk` +happyReduce_125 = happyReduce 5# 25# happyReduction_125 +happyReduction_125 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` @@ -1325,8 +1449,8 @@ happyReduction_113 (happy_x_5 `HappyStk` ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeId (fst happy_var_1) (snd happy_var_1) (snd happy_var_3) (snd happy_var_5)) ) `HappyStk` happyRest}}} -happyReduce_114 = happySpecReduce_3 25# happyReduction_114 -happyReduction_114 happy_x_3 +happyReduce_126 = happySpecReduce_3 25# happyReduction_126 +happyReduction_126 happy_x_3 happy_x_2 happy_x_1 = case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> @@ -1335,8 +1459,8 @@ happyReduction_114 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeIdSimple (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_115 = happyReduce 4# 25# happyReduction_115 -happyReduction_115 (happy_x_4 `HappyStk` +happyReduce_127 = happyReduce 4# 25# happyReduction_127 +happyReduction_127 (happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` happy_x_1 `HappyStk` @@ -1348,25 +1472,25 @@ happyReduction_115 (happy_x_4 `HappyStk` ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_116 = happySpecReduce_1 25# happyReduction_116 -happyReduction_116 happy_x_1 +happyReduce_128 = happySpecReduce_1 25# happyReduction_128 +happyReduction_128 happy_x_1 = case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> happyIn54 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_117 = happySpecReduce_3 25# happyReduction_117 -happyReduction_117 happy_x_3 +happyReduce_129 = happySpecReduce_3 25# happyReduction_129 +happyReduction_129 happy_x_3 happy_x_2 happy_x_1 = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> case happyOut54 happy_x_3 of { (HappyWrap54 happy_var_3) -> happyIn54 - ((fst happy_var_1, Language.Rzk.Syntax.Abs.unicode_TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) + ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_118 = happyReduce 8# 25# happyReduction_118 -happyReduction_118 (happy_x_8 `HappyStk` +happyReduce_130 = happyReduce 8# 25# happyReduction_130 +happyReduction_130 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -1380,11 +1504,24 @@ happyReduction_118 (happy_x_8 `HappyStk` case happyOut56 happy_x_5 of { (HappyWrap56 happy_var_5) -> case happyOut54 happy_x_8 of { (HappyWrap54 happy_var_8) -> happyIn54 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8)) + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8)) ) `HappyStk` happyRest}}}} -happyReduce_119 = happyReduce 8# 25# happyReduction_119 -happyReduction_119 (happy_x_8 `HappyStk` +happyReduce_131 = happyReduce 4# 25# happyReduction_131 +happyReduction_131 (happy_x_4 `HappyStk` + happy_x_3 `HappyStk` + happy_x_2 `HappyStk` + happy_x_1 `HappyStk` + happyRest) + = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> + case happyOut54 happy_x_4 of { (HappyWrap54 happy_var_4) -> + happyIn54 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) + ) `HappyStk` happyRest}}} + +happyReduce_132 = happyReduce 8# 25# happyReduction_132 +happyReduction_132 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -1401,8 +1538,8 @@ happyReduction_119 (happy_x_8 `HappyStk` ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaAlt (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8)) ) `HappyStk` happyRest}}}} -happyReduce_120 = happyReduce 4# 26# happyReduction_120 -happyReduction_120 (happy_x_4 `HappyStk` +happyReduce_133 = happyReduce 4# 26# happyReduction_133 +happyReduction_133 (happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` happy_x_1 `HappyStk` @@ -1413,8 +1550,8 @@ happyReduction_120 (happy_x_4 `HappyStk` ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeRestricted (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) ) `HappyStk` happyRest}} -happyReduce_121 = happySpecReduce_2 26# happyReduction_121 -happyReduction_121 happy_x_2 +happyReduce_134 = happySpecReduce_2 26# happyReduction_134 +happyReduction_134 happy_x_2 happy_x_1 = case happyOut55 happy_x_1 of { (HappyWrap55 happy_var_1) -> case happyOut49 happy_x_2 of { (HappyWrap49 happy_var_2) -> @@ -1422,8 +1559,8 @@ happyReduction_121 happy_x_2 ((fst happy_var_1, Language.Rzk.Syntax.Abs.App (fst happy_var_1) (snd happy_var_1) (snd happy_var_2)) )}} -happyReduce_122 = happySpecReduce_2 26# happyReduction_122 -happyReduction_122 happy_x_2 +happyReduce_135 = happySpecReduce_2 26# happyReduction_135 +happyReduction_135 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> case happyOut49 happy_x_2 of { (HappyWrap49 happy_var_2) -> @@ -1431,8 +1568,8 @@ happyReduction_122 happy_x_2 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) )}} -happyReduce_123 = happySpecReduce_2 26# happyReduction_123 -happyReduction_123 happy_x_2 +happyReduce_136 = happySpecReduce_2 26# happyReduction_136 +happyReduction_136 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> case happyOut49 happy_x_2 of { (HappyWrap49 happy_var_2) -> @@ -1440,15 +1577,33 @@ happyReduction_123 happy_x_2 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) )}} -happyReduce_124 = happySpecReduce_1 26# happyReduction_124 -happyReduction_124 happy_x_1 +happyReduce_137 = happySpecReduce_1 26# happyReduction_137 +happyReduction_137 happy_x_1 = case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> happyIn55 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_125 = happySpecReduce_3 27# happyReduction_125 -happyReduction_125 happy_x_3 +happyReduce_138 = happySpecReduce_2 26# happyReduction_138 +happyReduction_138 happy_x_2 + happy_x_1 + = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_2 of { (HappyWrap49 happy_var_2) -> + happyIn55 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) + )}} + +happyReduce_139 = happySpecReduce_2 26# happyReduction_139 +happyReduction_139 happy_x_2 + happy_x_1 + = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_2 of { (HappyWrap49 happy_var_2) -> + happyIn55 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) + )}} + +happyReduce_140 = happySpecReduce_3 27# happyReduction_140 +happyReduction_140 happy_x_3 happy_x_2 happy_x_1 = case happyOut53 happy_x_1 of { (HappyWrap53 happy_var_1) -> @@ -1457,22 +1612,22 @@ happyReduction_125 happy_x_3 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeAsc (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_126 = happySpecReduce_1 27# happyReduction_126 -happyReduction_126 happy_x_1 +happyReduce_141 = happySpecReduce_1 27# happyReduction_141 +happyReduction_141 happy_x_1 = case happyOut54 happy_x_1 of { (HappyWrap54 happy_var_1) -> happyIn56 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_127 = happySpecReduce_1 28# happyReduction_127 -happyReduction_127 happy_x_1 +happyReduce_142 = happySpecReduce_1 28# happyReduction_142 +happyReduction_142 happy_x_1 = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> happyIn57 ((fst happy_var_1, (:[]) (snd happy_var_1)) )} -happyReduce_128 = happySpecReduce_3 28# happyReduction_128 -happyReduction_128 happy_x_3 +happyReduce_143 = happySpecReduce_3 28# happyReduction_143 +happyReduction_143 happy_x_3 happy_x_2 happy_x_1 = case happyOut56 happy_x_1 of { (HappyWrap56 happy_var_1) -> @@ -1482,7 +1637,7 @@ happyReduction_128 happy_x_3 )}} happyNewToken action sts stk [] = - happyDoAction 69# notHappyAtAll action sts stk [] + happyDoAction 82# notHappyAtAll action sts stk [] happyNewToken action sts stk (tk:tks) = let cont i = happyDoAction i tk action sts stk tks in @@ -1552,13 +1707,26 @@ happyNewToken action sts stk (tk:tks) = PT _ (TS _ 63) -> cont 63#; PT _ (TS _ 64) -> cont 64#; PT _ (TS _ 65) -> cont 65#; - PT _ (TL _) -> cont 66#; - PT _ (T_VarIdentToken _) -> cont 67#; - PT _ (T_HoleIdentToken _) -> cont 68#; + PT _ (TS _ 66) -> cont 66#; + PT _ (TS _ 67) -> cont 67#; + PT _ (TS _ 68) -> cont 68#; + PT _ (TS _ 69) -> cont 69#; + PT _ (TS _ 70) -> cont 70#; + PT _ (TS _ 71) -> cont 71#; + PT _ (TS _ 72) -> cont 72#; + PT _ (TS _ 73) -> cont 73#; + PT _ (TS _ 74) -> cont 74#; + PT _ (TS _ 75) -> cont 75#; + PT _ (TS _ 76) -> cont 76#; + PT _ (TS _ 77) -> cont 77#; + PT _ (TS _ 78) -> cont 78#; + PT _ (TL _) -> cont 79#; + PT _ (T_VarIdentToken _) -> cont 80#; + PT _ (T_HoleIdentToken _) -> cont 81#; _ -> happyError' ((tk:tks), []) } -happyError_ explist 69# tk tks = happyError' (tks, explist) +happyError_ explist 82# tk tks = happyError' (tks, explist) happyError_ explist _ tk tks = happyError' ((tk:tks), explist) happyThen :: () => Err a -> (a -> Err b) -> Err b diff --git a/rzk/src/Language/Rzk/Syntax/Par.info b/rzk/src/Language/Rzk/Syntax/Par.info index e79fe38ff..6a2fb9f76 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.info +++ b/rzk/src/Language/Rzk/Syntax/Par.info @@ -81,60 +81,75 @@ Grammar ParamDecl -> '(' VarIdent ':' Term ')' (72) ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' (73) ParamDecl -> '{' Pattern ':' Term '|' Term '}' (74) - Restriction -> Term '|->' Term (75) - ListRestriction -> Restriction (76) - ListRestriction -> Restriction ',' ListRestriction (77) - Term7 -> 'U' (78) - Term7 -> 'CUBE' (79) - Term7 -> 'TOPE' (80) - Term7 -> '1' (81) - Term7 -> '*_1' (82) - Term7 -> '2' (83) - Term7 -> '0_2' (84) - Term7 -> '1_2' (85) - Term7 -> 'TOP' (86) - Term7 -> 'BOT' (87) - Term7 -> 'recBOT' (88) - Term7 -> 'recOR' '(' ListRestriction ')' (89) - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' (90) - Term7 -> 'Unit' (91) - Term7 -> '<' ParamDecl '->' Term '>' (92) - Term7 -> '(' Term ',' Term ')' (93) - Term7 -> 'unit' (94) - Term7 -> 'refl' (95) - Term7 -> 'refl_{' Term '}' (96) - Term7 -> 'refl_{' Term ':' Term '}' (97) - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (98) - Term7 -> HoleIdent (99) - Term7 -> VarIdent (100) - Term7 -> '(' Term ')' (101) - Term5 -> Term5 '*' Term6 (102) - Term5 -> Term6 (103) - Term4 -> Term5 '===' Term5 (104) - Term4 -> Term5 '<=' Term5 (105) - Term4 -> Term5 (106) - Term3 -> Term4 '/\\' Term3 (107) - Term3 -> Term4 (108) - Term2 -> Term3 '\\/' Term2 (109) - Term2 -> Term3 (110) - Term1 -> ParamDecl '->' Term1 (111) - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 (112) - Term1 -> Term2 '=_{' Term '}' Term2 (113) - Term1 -> Term2 '=' Term2 (114) - Term1 -> '\\' ListParam '->' Term1 (115) - Term1 -> Term2 (116) - Term1 -> ParamDecl '→' Term1 (117) - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 (118) - Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 (119) - Term6 -> Term6 '[' ListRestriction ']' (120) - Term6 -> Term6 Term7 (121) - Term6 -> 'first' Term7 (122) - Term6 -> 'second' Term7 (123) - Term6 -> Term7 (124) - Term -> Term2 'as' Term1 (125) - Term -> Term1 (126) - ListTerm -> Term (127) - ListTerm -> Term ',' ListTerm (128) + Restriction -> Term '↦' Term (75) + Restriction -> Term '|->' Term (76) + ListRestriction -> Restriction (77) + ListRestriction -> Restriction ',' ListRestriction (78) + Term7 -> 'U' (79) + Term7 -> 'CUBE' (80) + Term7 -> 'TOPE' (81) + Term7 -> '1' (82) + Term7 -> '*₁' (83) + Term7 -> '2' (84) + Term7 -> '0₂' (85) + Term7 -> '1₂' (86) + Term7 -> '⊤' (87) + Term7 -> '⊥' (88) + Term7 -> 'recBOT' (89) + Term7 -> 'recOR' '(' ListRestriction ')' (90) + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' (91) + Term7 -> 'Unit' (92) + Term7 -> '<' ParamDecl '→' Term '>' (93) + Term7 -> '(' Term ',' Term ')' (94) + Term7 -> 'unit' (95) + Term7 -> 'refl' (96) + Term7 -> 'refl_{' Term '}' (97) + Term7 -> 'refl_{' Term ':' Term '}' (98) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (99) + Term7 -> HoleIdent (100) + Term7 -> VarIdent (101) + Term7 -> '(' Term ')' (102) + Term7 -> '*_1' (103) + Term7 -> '0_2' (104) + Term7 -> '1_2' (105) + Term7 -> 'TOP' (106) + Term7 -> 'BOT' (107) + Term7 -> '<' ParamDecl '->' Term '>' (108) + Term5 -> Term5 '×' Term6 (109) + Term5 -> Term6 (110) + Term5 -> Term5 '*' Term6 (111) + Term4 -> Term5 '≡' Term5 (112) + Term4 -> Term5 '≤' Term5 (113) + Term4 -> Term5 (114) + Term4 -> Term5 '===' Term5 (115) + Term4 -> Term5 '<=' Term5 (116) + Term3 -> Term4 '∧' Term3 (117) + Term3 -> Term4 (118) + Term3 -> Term4 '/\\' Term3 (119) + Term2 -> Term3 '∨' Term2 (120) + Term2 -> Term3 (121) + Term2 -> Term3 '\\/' Term2 (122) + Term1 -> ParamDecl '→' Term1 (123) + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 (124) + Term1 -> Term2 '=_{' Term '}' Term2 (125) + Term1 -> Term2 '=' Term2 (126) + Term1 -> '\\' ListParam '→' Term1 (127) + Term1 -> Term2 (128) + Term1 -> ParamDecl '->' Term1 (129) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 (130) + Term1 -> '\\' ListParam '->' Term1 (131) + Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 (132) + Term6 -> Term6 '[' ListRestriction ']' (133) + Term6 -> Term6 Term7 (134) + Term6 -> 'π₁' Term7 (135) + Term6 -> 'π₂' Term7 (136) + Term6 -> Term7 (137) + Term6 -> 'first' Term7 (138) + Term6 -> 'second' Term7 (139) + Term -> Term2 'as' Term1 (140) + Term -> Term1 (141) + ListTerm -> Term (142) + ListTerm -> Term ',' ListTerm (143) ----------------------------------------------------------------------------- Terminals @@ -158,52 +173,65 @@ Terminals ')' { PT _ (TS _ 17) } '*' { PT _ (TS _ 18) } '*_1' { PT _ (TS _ 19) } - ',' { PT _ (TS _ 20) } - '->' { PT _ (TS _ 21) } - '/\\' { PT _ (TS _ 22) } - '0_2' { PT _ (TS _ 23) } - '1' { PT _ (TS _ 24) } - '1_2' { PT _ (TS _ 25) } - '2' { PT _ (TS _ 26) } - ':' { PT _ (TS _ 27) } - ':=' { PT _ (TS _ 28) } - ';' { PT _ (TS _ 29) } - '<' { PT _ (TS _ 30) } - '<=' { PT _ (TS _ 31) } - '=' { PT _ (TS _ 32) } - '===' { PT _ (TS _ 33) } - '=_{' { PT _ (TS _ 34) } - '>' { PT _ (TS _ 35) } - 'BOT' { PT _ (TS _ 36) } - 'CUBE' { PT _ (TS _ 37) } - 'Sigma' { PT _ (TS _ 38) } - 'TOP' { PT _ (TS _ 39) } - 'TOPE' { PT _ (TS _ 40) } - 'U' { PT _ (TS _ 41) } - 'Unit' { PT _ (TS _ 42) } - '[' { PT _ (TS _ 43) } - '\\' { PT _ (TS _ 44) } - '\\/' { PT _ (TS _ 45) } - ']' { PT _ (TS _ 46) } - '_' { PT _ (TS _ 47) } - 'as' { PT _ (TS _ 48) } - 'first' { PT _ (TS _ 49) } - 'idJ' { PT _ (TS _ 50) } - 'recBOT' { PT _ (TS _ 51) } - 'recOR' { PT _ (TS _ 52) } - 'refl' { PT _ (TS _ 53) } - 'refl_{' { PT _ (TS _ 54) } - 'rzk-1' { PT _ (TS _ 55) } - 'second' { PT _ (TS _ 56) } - 'unit' { PT _ (TS _ 57) } - 'uses' { PT _ (TS _ 58) } - '{' { PT _ (TS _ 59) } - '|' { PT _ (TS _ 60) } - '|->' { PT _ (TS _ 61) } - '}' { PT _ (TS _ 62) } - 'Σ' { PT _ (TS _ 63) } - '→' { PT _ (TS _ 64) } - '∑' { PT _ (TS _ 65) } + '*₁' { PT _ (TS _ 20) } + ',' { PT _ (TS _ 21) } + '->' { PT _ (TS _ 22) } + '/\\' { PT _ (TS _ 23) } + '0_2' { PT _ (TS _ 24) } + '0₂' { PT _ (TS _ 25) } + '1' { PT _ (TS _ 26) } + '1_2' { PT _ (TS _ 27) } + '1₂' { PT _ (TS _ 28) } + '2' { PT _ (TS _ 29) } + ':' { PT _ (TS _ 30) } + ':=' { PT _ (TS _ 31) } + ';' { PT _ (TS _ 32) } + '<' { PT _ (TS _ 33) } + '<=' { PT _ (TS _ 34) } + '=' { PT _ (TS _ 35) } + '===' { PT _ (TS _ 36) } + '=_{' { PT _ (TS _ 37) } + '>' { PT _ (TS _ 38) } + 'BOT' { PT _ (TS _ 39) } + 'CUBE' { PT _ (TS _ 40) } + 'Sigma' { PT _ (TS _ 41) } + 'TOP' { PT _ (TS _ 42) } + 'TOPE' { PT _ (TS _ 43) } + 'U' { PT _ (TS _ 44) } + 'Unit' { PT _ (TS _ 45) } + '[' { PT _ (TS _ 46) } + '\\' { PT _ (TS _ 47) } + '\\/' { PT _ (TS _ 48) } + ']' { PT _ (TS _ 49) } + '_' { PT _ (TS _ 50) } + 'as' { PT _ (TS _ 51) } + 'first' { PT _ (TS _ 52) } + 'idJ' { PT _ (TS _ 53) } + 'recBOT' { PT _ (TS _ 54) } + 'recOR' { PT _ (TS _ 55) } + 'refl' { PT _ (TS _ 56) } + 'refl_{' { PT _ (TS _ 57) } + 'rzk-1' { PT _ (TS _ 58) } + 'second' { PT _ (TS _ 59) } + 'unit' { PT _ (TS _ 60) } + 'uses' { PT _ (TS _ 61) } + '{' { PT _ (TS _ 62) } + '|' { PT _ (TS _ 63) } + '|->' { PT _ (TS _ 64) } + '}' { PT _ (TS _ 65) } + '×' { PT _ (TS _ 66) } + 'Σ' { PT _ (TS _ 67) } + 'π₁' { PT _ (TS _ 68) } + 'π₂' { PT _ (TS _ 69) } + '→' { PT _ (TS _ 70) } + '↦' { PT _ (TS _ 71) } + '∑' { PT _ (TS _ 72) } + '∧' { PT _ (TS _ 73) } + '∨' { PT _ (TS _ 74) } + '≡' { PT _ (TS _ 75) } + '≤' { PT _ (TS _ 76) } + '⊤' { PT _ (TS _ 77) } + '⊥' { PT _ (TS _ 78) } L_quoted { PT _ (TL _) } L_VarIdentToken{ PT _ (T_VarIdentToken _) } L_HoleIdentToken{ PT _ (T_HoleIdentToken _) } @@ -255,17 +283,17 @@ Non-terminals Param rules 64, 65, 66 ListParam rules 67, 68 ParamDecl rules 69, 70, 71, 72, 73, 74 - Restriction rule 75 - ListRestriction rules 76, 77 - Term7 rules 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101 - Term5 rules 102, 103 - Term4 rules 104, 105, 106 - Term3 rules 107, 108 - Term2 rules 109, 110 - Term1 rules 111, 112, 113, 114, 115, 116, 117, 118, 119 - Term6 rules 120, 121, 122, 123, 124 - Term rules 125, 126 - ListTerm rules 127, 128 + Restriction rules 75, 76 + ListRestriction rules 77, 78 + Term7 rules 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 + Term5 rules 109, 110, 111 + Term4 rules 112, 113, 114, 115, 116 + Term3 rules 117, 118, 119 + Term2 rules 120, 121, 122 + Term1 rules 123, 124, 125, 126, 127, 128, 129, 130, 131, 132 + Term6 rules 133, 134, 135, 136, 137, 138, 139 + Term rules 140, 141 + ListTerm rules 142, 143 ----------------------------------------------------------------------------- States @@ -274,174 +302,174 @@ State 0 %start_pModule_internal -> . Module (rule 0) - '#lang' shift, and enter state 123 + '#lang' shift, and enter state 130 - Module goto state 128 - LanguageDecl goto state 129 + Module goto state 135 + LanguageDecl goto state 136 State 1 %start_pHoleIdent_internal -> . HoleIdent (rule 1) - L_HoleIdentTokenshift, and enter state 69 + L_HoleIdentTokenshift, and enter state 76 HoleIdentToken goto state 29 - HoleIdent goto state 127 + HoleIdent goto state 134 State 2 %start_pVarIdent_internal -> . VarIdent (rule 2) - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 126 + VarIdent goto state 133 State 3 %start_pListVarIdent_internal -> . ListVarIdent (rule 3) - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 124 - ListVarIdent goto state 125 + VarIdent goto state 131 + ListVarIdent goto state 132 State 4 %start_pLanguageDecl_internal -> . LanguageDecl (rule 4) - '#lang' shift, and enter state 123 + '#lang' shift, and enter state 130 - LanguageDecl goto state 122 + LanguageDecl goto state 129 State 5 %start_pLanguage_internal -> . Language (rule 5) - 'rzk-1' shift, and enter state 121 + 'rzk-1' shift, and enter state 128 - Language goto state 120 + Language goto state 127 State 6 %start_pCommand_internal -> . Command (rule 6) - '#assume' shift, and enter state 106 - '#check' shift, and enter state 107 - '#compute' shift, and enter state 108 - '#compute-nf' shift, and enter state 109 - '#compute-whnf'shift, and enter state 110 - '#def' shift, and enter state 111 - '#define' shift, and enter state 112 - '#postulate' shift, and enter state 113 - '#section' shift, and enter state 114 - '#set-option' shift, and enter state 115 - '#unset-option'shift, and enter state 116 - '#variable' shift, and enter state 117 - '#variables' shift, and enter state 118 - - Command goto state 119 + '#assume' shift, and enter state 113 + '#check' shift, and enter state 114 + '#compute' shift, and enter state 115 + '#compute-nf' shift, and enter state 116 + '#compute-whnf'shift, and enter state 117 + '#def' shift, and enter state 118 + '#define' shift, and enter state 119 + '#postulate' shift, and enter state 120 + '#section' shift, and enter state 121 + '#set-option' shift, and enter state 122 + '#unset-option'shift, and enter state 123 + '#variable' shift, and enter state 124 + '#variables' shift, and enter state 125 + + Command goto state 126 State 7 %start_pListCommand_internal -> . ListCommand (rule 7) - '#assume' shift, and enter state 106 - '#check' shift, and enter state 107 - '#compute' shift, and enter state 108 - '#compute-nf' shift, and enter state 109 - '#compute-whnf'shift, and enter state 110 - '#def' shift, and enter state 111 - '#define' shift, and enter state 112 - '#postulate' shift, and enter state 113 - '#section' shift, and enter state 114 - '#set-option' shift, and enter state 115 - '#unset-option'shift, and enter state 116 - '#variable' shift, and enter state 117 - '#variables' shift, and enter state 118 + '#assume' shift, and enter state 113 + '#check' shift, and enter state 114 + '#compute' shift, and enter state 115 + '#compute-nf' shift, and enter state 116 + '#compute-whnf'shift, and enter state 117 + '#def' shift, and enter state 118 + '#define' shift, and enter state 119 + '#postulate' shift, and enter state 120 + '#section' shift, and enter state 121 + '#set-option' shift, and enter state 122 + '#unset-option'shift, and enter state 123 + '#variable' shift, and enter state 124 + '#variables' shift, and enter state 125 %eof reduce using rule 52 - Command goto state 104 - ListCommand goto state 105 + Command goto state 111 + ListCommand goto state 112 State 8 %start_pDeclUsedVars_internal -> . DeclUsedVars (rule 8) - 'uses' shift, and enter state 103 + 'uses' shift, and enter state 110 %eof reduce using rule 55 - DeclUsedVars goto state 102 + DeclUsedVars goto state 109 State 9 %start_pSectionName_internal -> . SectionName (rule 9) - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 %eof reduce using rule 56 VarIdentToken goto state 28 - VarIdent goto state 100 - SectionName goto state 101 + VarIdent goto state 107 + SectionName goto state 108 State 10 %start_pPattern_internal -> . Pattern (rule 10) - '(' shift, and enter state 98 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 105 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 99 + VarIdent goto state 94 + Pattern goto state 106 State 11 %start_pListPattern_internal -> . ListPattern (rule 11) - '(' shift, and enter state 98 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 105 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 96 - ListPattern goto state 97 + VarIdent goto state 94 + Pattern goto state 103 + ListPattern goto state 104 State 12 %start_pParam_internal -> . Param (rule 12) - '(' shift, and enter state 91 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - '{' shift, and enter state 94 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 98 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + '{' shift, and enter state 101 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 88 - Param goto state 95 + VarIdent goto state 94 + Pattern goto state 95 + Param goto state 102 State 13 %start_pListParam_internal -> . ListParam (rule 13) - '(' shift, and enter state 91 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - '{' shift, and enter state 94 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 98 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + '{' shift, and enter state 101 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 88 - Param goto state 89 - ListParam goto state 90 + VarIdent goto state 94 + Pattern goto state 95 + Param goto state 96 + ListParam goto state 97 State 14 @@ -449,36 +477,43 @@ State 14 '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - ParamDecl goto state 85 + ParamDecl goto state 92 Term7 goto state 33 - Term6 goto state 86 + Term6 goto state 93 State 15 @@ -486,39 +521,46 @@ State 15 '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 ParamDecl goto state 32 - Restriction goto state 84 + Restriction goto state 91 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 @@ -526,7 +568,7 @@ State 15 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 83 + Term goto state 90 State 16 @@ -534,40 +576,47 @@ State 16 '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 ParamDecl goto state 32 - Restriction goto state 81 - ListRestrictiongoto state 82 + Restriction goto state 88 + ListRestrictiongoto state 89 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 @@ -575,103 +624,122 @@ State 16 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 83 + Term goto state 90 State 17 %start_pTerm7_internal -> . Term7 (rule 17) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'unit' shift, and enter state 67 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 80 + Term7 goto state 87 State 18 %start_pTerm5_internal -> . Term5 (rule 18) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term5 goto state 79 - Term6 goto state 76 + Term5 goto state 86 + Term6 goto state 83 State 19 %start_pTerm4_internal -> . Term4 (rule 19) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -679,36 +747,43 @@ State 19 VarIdent goto state 31 Term7 goto state 33 Term5 goto state 34 - Term4 goto state 78 - Term6 goto state 76 + Term4 goto state 85 + Term6 goto state 83 State 20 %start_pTerm3_internal -> . Term3 (rule 20) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -717,36 +792,43 @@ State 20 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 - Term3 goto state 77 - Term6 goto state 76 + Term3 goto state 84 + Term6 goto state 83 State 21 %start_pTerm2_internal -> . Term2 (rule 21) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -756,8 +838,8 @@ State 21 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 75 - Term6 goto state 76 + Term2 goto state 82 + Term6 goto state 83 State 22 @@ -765,32 +847,39 @@ State 22 '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -801,44 +890,51 @@ State 22 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 73 - Term1 goto state 74 + Term2 goto state 80 + Term1 goto state 81 Term6 goto state 39 State 23 %start_pTerm6_internal -> . Term6 (rule 23) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term6 goto state 71 + Term6 goto state 78 State 24 @@ -846,32 +942,39 @@ State 24 '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -885,7 +988,7 @@ State 24 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 70 + Term goto state 77 State 25 @@ -893,32 +996,39 @@ State 25 '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -959,12 +1069,15 @@ State 28 ')' reduce using rule 31 '*' reduce using rule 31 '*_1' reduce using rule 31 + '*₁' reduce using rule 31 ',' reduce using rule 31 '->' reduce using rule 31 '/\\' reduce using rule 31 '0_2' reduce using rule 31 + '0₂' reduce using rule 31 '1' reduce using rule 31 '1_2' reduce using rule 31 + '1₂' reduce using rule 31 '2' reduce using rule 31 ':' reduce using rule 31 ':=' reduce using rule 31 @@ -997,7 +1110,15 @@ State 28 '|' reduce using rule 31 '|->' reduce using rule 31 '}' reduce using rule 31 + '×' reduce using rule 31 '→' reduce using rule 31 + '↦' reduce using rule 31 + '∧' reduce using rule 31 + '∨' reduce using rule 31 + '≡' reduce using rule 31 + '≤' reduce using rule 31 + '⊤' reduce using rule 31 + '⊥' reduce using rule 31 L_VarIdentTokenreduce using rule 31 L_HoleIdentTokenreduce using rule 31 %eof reduce using rule 31 @@ -1011,12 +1132,15 @@ State 29 ')' reduce using rule 30 '*' reduce using rule 30 '*_1' reduce using rule 30 + '*₁' reduce using rule 30 ',' reduce using rule 30 '->' reduce using rule 30 '/\\' reduce using rule 30 '0_2' reduce using rule 30 + '0₂' reduce using rule 30 '1' reduce using rule 30 '1_2' reduce using rule 30 + '1₂' reduce using rule 30 '2' reduce using rule 30 ':' reduce using rule 30 ':=' reduce using rule 30 @@ -1046,7 +1170,15 @@ State 29 '|' reduce using rule 30 '|->' reduce using rule 30 '}' reduce using rule 30 + '×' reduce using rule 30 '→' reduce using rule 30 + '↦' reduce using rule 30 + '∧' reduce using rule 30 + '∨' reduce using rule 30 + '≡' reduce using rule 30 + '≤' reduce using rule 30 + '⊤' reduce using rule 30 + '⊥' reduce using rule 30 L_VarIdentTokenreduce using rule 30 L_HoleIdentTokenreduce using rule 30 %eof reduce using rule 30 @@ -1054,67 +1186,21 @@ State 29 State 30 - Term7 -> HoleIdent . (rule 99) - - '(' reduce using rule 99 - ')' reduce using rule 99 - '*' reduce using rule 99 - '*_1' reduce using rule 99 - ',' reduce using rule 99 - '->' reduce using rule 99 - '/\\' reduce using rule 99 - '0_2' reduce using rule 99 - '1' reduce using rule 99 - '1_2' reduce using rule 99 - '2' reduce using rule 99 - ':' reduce using rule 99 - ':=' reduce using rule 99 - ';' reduce using rule 99 - '<' reduce using rule 99 - '<=' reduce using rule 99 - '=' reduce using rule 99 - '===' reduce using rule 99 - '=_{' reduce using rule 99 - '>' reduce using rule 99 - 'BOT' reduce using rule 99 - 'CUBE' reduce using rule 99 - 'TOP' reduce using rule 99 - 'TOPE' reduce using rule 99 - 'U' reduce using rule 99 - 'Unit' reduce using rule 99 - '[' reduce using rule 99 - '\\/' reduce using rule 99 - ']' reduce using rule 99 - 'as' reduce using rule 99 - 'idJ' reduce using rule 99 - 'recBOT' reduce using rule 99 - 'recOR' reduce using rule 99 - 'refl' reduce using rule 99 - 'refl_{' reduce using rule 99 - 'unit' reduce using rule 99 - '|' reduce using rule 99 - '|->' reduce using rule 99 - '}' reduce using rule 99 - '→' reduce using rule 99 - L_VarIdentTokenreduce using rule 99 - L_HoleIdentTokenreduce using rule 99 - %eof reduce using rule 99 - - -State 31 - - Term7 -> VarIdent . (rule 100) + Term7 -> HoleIdent . (rule 100) '(' reduce using rule 100 ')' reduce using rule 100 '*' reduce using rule 100 '*_1' reduce using rule 100 + '*₁' reduce using rule 100 ',' reduce using rule 100 '->' reduce using rule 100 '/\\' reduce using rule 100 '0_2' reduce using rule 100 + '0₂' reduce using rule 100 '1' reduce using rule 100 '1_2' reduce using rule 100 + '1₂' reduce using rule 100 '2' reduce using rule 100 ':' reduce using rule 100 ':=' reduce using rule 100 @@ -1144,247 +1230,355 @@ State 31 '|' reduce using rule 100 '|->' reduce using rule 100 '}' reduce using rule 100 + '×' reduce using rule 100 '→' reduce using rule 100 + '↦' reduce using rule 100 + '∧' reduce using rule 100 + '∨' reduce using rule 100 + '≡' reduce using rule 100 + '≤' reduce using rule 100 + '⊤' reduce using rule 100 + '⊥' reduce using rule 100 L_VarIdentTokenreduce using rule 100 L_HoleIdentTokenreduce using rule 100 %eof reduce using rule 100 +State 31 + + Term7 -> VarIdent . (rule 101) + + '(' reduce using rule 101 + ')' reduce using rule 101 + '*' reduce using rule 101 + '*_1' reduce using rule 101 + '*₁' reduce using rule 101 + ',' reduce using rule 101 + '->' reduce using rule 101 + '/\\' reduce using rule 101 + '0_2' reduce using rule 101 + '0₂' reduce using rule 101 + '1' reduce using rule 101 + '1_2' reduce using rule 101 + '1₂' reduce using rule 101 + '2' reduce using rule 101 + ':' reduce using rule 101 + ':=' reduce using rule 101 + ';' reduce using rule 101 + '<' reduce using rule 101 + '<=' reduce using rule 101 + '=' reduce using rule 101 + '===' reduce using rule 101 + '=_{' reduce using rule 101 + '>' reduce using rule 101 + 'BOT' reduce using rule 101 + 'CUBE' reduce using rule 101 + 'TOP' reduce using rule 101 + 'TOPE' reduce using rule 101 + 'U' reduce using rule 101 + 'Unit' reduce using rule 101 + '[' reduce using rule 101 + '\\/' reduce using rule 101 + ']' reduce using rule 101 + 'as' reduce using rule 101 + 'idJ' reduce using rule 101 + 'recBOT' reduce using rule 101 + 'recOR' reduce using rule 101 + 'refl' reduce using rule 101 + 'refl_{' reduce using rule 101 + 'unit' reduce using rule 101 + '|' reduce using rule 101 + '|->' reduce using rule 101 + '}' reduce using rule 101 + '×' reduce using rule 101 + '→' reduce using rule 101 + '↦' reduce using rule 101 + '∧' reduce using rule 101 + '∨' reduce using rule 101 + '≡' reduce using rule 101 + '≤' reduce using rule 101 + '⊤' reduce using rule 101 + '⊥' reduce using rule 101 + L_VarIdentTokenreduce using rule 101 + L_HoleIdentTokenreduce using rule 101 + %eof reduce using rule 101 + + State 32 - Term1 -> ParamDecl . '->' Term1 (rule 111) - Term1 -> ParamDecl . '→' Term1 (rule 117) + Term1 -> ParamDecl . '→' Term1 (rule 123) + Term1 -> ParamDecl . '->' Term1 (rule 129) - '->' shift, and enter state 182 - '→' shift, and enter state 183 + '->' shift, and enter state 197 + '→' shift, and enter state 198 State 33 - Term6 -> Term7 . (rule 124) - - '(' reduce using rule 124 - ')' reduce using rule 124 - '*' reduce using rule 124 - '*_1' reduce using rule 124 - ',' reduce using rule 124 - '->' reduce using rule 124 - '/\\' reduce using rule 124 - '0_2' reduce using rule 124 - '1' reduce using rule 124 - '1_2' reduce using rule 124 - '2' reduce using rule 124 - ':' reduce using rule 124 - ':=' reduce using rule 124 - ';' reduce using rule 124 - '<' reduce using rule 124 - '<=' reduce using rule 124 - '=' reduce using rule 124 - '===' reduce using rule 124 - '=_{' reduce using rule 124 - '>' reduce using rule 124 - 'BOT' reduce using rule 124 - 'CUBE' reduce using rule 124 - 'TOP' reduce using rule 124 - 'TOPE' reduce using rule 124 - 'U' reduce using rule 124 - 'Unit' reduce using rule 124 - '[' reduce using rule 124 - '\\/' reduce using rule 124 - ']' reduce using rule 124 - 'as' reduce using rule 124 - 'idJ' reduce using rule 124 - 'recBOT' reduce using rule 124 - 'recOR' reduce using rule 124 - 'refl' reduce using rule 124 - 'refl_{' reduce using rule 124 - 'unit' reduce using rule 124 - '|' reduce using rule 124 - '|->' reduce using rule 124 - '}' reduce using rule 124 - '→' reduce using rule 124 - L_VarIdentTokenreduce using rule 124 - L_HoleIdentTokenreduce using rule 124 - %eof reduce using rule 124 + Term6 -> Term7 . (rule 137) + + '(' reduce using rule 137 + ')' reduce using rule 137 + '*' reduce using rule 137 + '*_1' reduce using rule 137 + '*₁' reduce using rule 137 + ',' reduce using rule 137 + '->' reduce using rule 137 + '/\\' reduce using rule 137 + '0_2' reduce using rule 137 + '0₂' reduce using rule 137 + '1' reduce using rule 137 + '1_2' reduce using rule 137 + '1₂' reduce using rule 137 + '2' reduce using rule 137 + ':' reduce using rule 137 + ':=' reduce using rule 137 + ';' reduce using rule 137 + '<' reduce using rule 137 + '<=' reduce using rule 137 + '=' reduce using rule 137 + '===' reduce using rule 137 + '=_{' reduce using rule 137 + '>' reduce using rule 137 + 'BOT' reduce using rule 137 + 'CUBE' reduce using rule 137 + 'TOP' reduce using rule 137 + 'TOPE' reduce using rule 137 + 'U' reduce using rule 137 + 'Unit' reduce using rule 137 + '[' reduce using rule 137 + '\\/' reduce using rule 137 + ']' reduce using rule 137 + 'as' reduce using rule 137 + 'idJ' reduce using rule 137 + 'recBOT' reduce using rule 137 + 'recOR' reduce using rule 137 + 'refl' reduce using rule 137 + 'refl_{' reduce using rule 137 + 'unit' reduce using rule 137 + '|' reduce using rule 137 + '|->' reduce using rule 137 + '}' reduce using rule 137 + '×' reduce using rule 137 + '→' reduce using rule 137 + '↦' reduce using rule 137 + '∧' reduce using rule 137 + '∨' reduce using rule 137 + '≡' reduce using rule 137 + '≤' reduce using rule 137 + '⊤' reduce using rule 137 + '⊥' reduce using rule 137 + L_VarIdentTokenreduce using rule 137 + L_HoleIdentTokenreduce using rule 137 + %eof reduce using rule 137 State 34 - Term5 -> Term5 . '*' Term6 (rule 102) - Term4 -> Term5 . '===' Term5 (rule 104) - Term4 -> Term5 . '<=' Term5 (rule 105) - Term4 -> Term5 . (rule 106) + Term5 -> Term5 . '×' Term6 (rule 109) + Term5 -> Term5 . '*' Term6 (rule 111) + Term4 -> Term5 . '≡' Term5 (rule 112) + Term4 -> Term5 . '≤' Term5 (rule 113) + Term4 -> Term5 . (rule 114) + Term4 -> Term5 . '===' Term5 (rule 115) + Term4 -> Term5 . '<=' Term5 (rule 116) - ')' reduce using rule 106 - '*' shift, and enter state 158 - ',' reduce using rule 106 - '/\\' reduce using rule 106 - ':' reduce using rule 106 - ':=' reduce using rule 106 - ';' reduce using rule 106 - '<=' shift, and enter state 180 - '=' reduce using rule 106 - '===' shift, and enter state 181 - '=_{' reduce using rule 106 - '>' reduce using rule 106 - '\\/' reduce using rule 106 - ']' reduce using rule 106 - 'as' reduce using rule 106 - '|' reduce using rule 106 - '|->' reduce using rule 106 - '}' reduce using rule 106 - %eof reduce using rule 106 + ')' reduce using rule 114 + '*' shift, and enter state 166 + ',' reduce using rule 114 + '/\\' reduce using rule 114 + ':' reduce using rule 114 + ':=' reduce using rule 114 + ';' reduce using rule 114 + '<=' shift, and enter state 193 + '=' reduce using rule 114 + '===' shift, and enter state 194 + '=_{' reduce using rule 114 + '>' reduce using rule 114 + '\\/' reduce using rule 114 + ']' reduce using rule 114 + 'as' reduce using rule 114 + '|' reduce using rule 114 + '|->' reduce using rule 114 + '}' reduce using rule 114 + '×' shift, and enter state 167 + '↦' reduce using rule 114 + '∧' reduce using rule 114 + '∨' reduce using rule 114 + '≡' shift, and enter state 195 + '≤' shift, and enter state 196 + %eof reduce using rule 114 State 35 - Term3 -> Term4 . '/\\' Term3 (rule 107) - Term3 -> Term4 . (rule 108) + Term3 -> Term4 . '∧' Term3 (rule 117) + Term3 -> Term4 . (rule 118) + Term3 -> Term4 . '/\\' Term3 (rule 119) - ')' reduce using rule 108 - ',' reduce using rule 108 - '/\\' shift, and enter state 179 - ':' reduce using rule 108 - ':=' reduce using rule 108 - ';' reduce using rule 108 - '=' reduce using rule 108 - '=_{' reduce using rule 108 - '>' reduce using rule 108 - '\\/' reduce using rule 108 - ']' reduce using rule 108 - 'as' reduce using rule 108 - '|' reduce using rule 108 - '|->' reduce using rule 108 - '}' reduce using rule 108 - %eof reduce using rule 108 + ')' reduce using rule 118 + ',' reduce using rule 118 + '/\\' shift, and enter state 191 + ':' reduce using rule 118 + ':=' reduce using rule 118 + ';' reduce using rule 118 + '=' reduce using rule 118 + '=_{' reduce using rule 118 + '>' reduce using rule 118 + '\\/' reduce using rule 118 + ']' reduce using rule 118 + 'as' reduce using rule 118 + '|' reduce using rule 118 + '|->' reduce using rule 118 + '}' reduce using rule 118 + '↦' reduce using rule 118 + '∧' shift, and enter state 192 + '∨' reduce using rule 118 + %eof reduce using rule 118 State 36 - Term2 -> Term3 . '\\/' Term2 (rule 109) - Term2 -> Term3 . (rule 110) + Term2 -> Term3 . '∨' Term2 (rule 120) + Term2 -> Term3 . (rule 121) + Term2 -> Term3 . '\\/' Term2 (rule 122) - ')' reduce using rule 110 - ',' reduce using rule 110 - ':' reduce using rule 110 - ':=' reduce using rule 110 - ';' reduce using rule 110 - '=' reduce using rule 110 - '=_{' reduce using rule 110 - '>' reduce using rule 110 - '\\/' shift, and enter state 178 - ']' reduce using rule 110 - 'as' reduce using rule 110 - '|' reduce using rule 110 - '|->' reduce using rule 110 - '}' reduce using rule 110 - %eof reduce using rule 110 + ')' reduce using rule 121 + ',' reduce using rule 121 + ':' reduce using rule 121 + ':=' reduce using rule 121 + ';' reduce using rule 121 + '=' reduce using rule 121 + '=_{' reduce using rule 121 + '>' reduce using rule 121 + '\\/' shift, and enter state 189 + ']' reduce using rule 121 + 'as' reduce using rule 121 + '|' reduce using rule 121 + '|->' reduce using rule 121 + '}' reduce using rule 121 + '↦' reduce using rule 121 + '∨' shift, and enter state 190 + %eof reduce using rule 121 State 37 - Term1 -> Term2 . '=_{' Term '}' Term2 (rule 113) - Term1 -> Term2 . '=' Term2 (rule 114) - Term1 -> Term2 . (rule 116) - Term -> Term2 . 'as' Term1 (rule 125) - - ')' reduce using rule 116 - ',' reduce using rule 116 - ':' reduce using rule 116 - ':=' reduce using rule 116 - ';' reduce using rule 116 - '=' shift, and enter state 159 - '=_{' shift, and enter state 160 - '>' reduce using rule 116 - ']' reduce using rule 116 - 'as' shift, and enter state 177 - '|' reduce using rule 116 - '|->' reduce using rule 116 - '}' reduce using rule 116 - %eof reduce using rule 116 + Term1 -> Term2 . '=_{' Term '}' Term2 (rule 125) + Term1 -> Term2 . '=' Term2 (rule 126) + Term1 -> Term2 . (rule 128) + Term -> Term2 . 'as' Term1 (rule 140) + + ')' reduce using rule 128 + ',' reduce using rule 128 + ':' reduce using rule 128 + ':=' reduce using rule 128 + ';' reduce using rule 128 + '=' shift, and enter state 168 + '=_{' shift, and enter state 169 + '>' reduce using rule 128 + ']' reduce using rule 128 + 'as' shift, and enter state 188 + '|' reduce using rule 128 + '|->' reduce using rule 128 + '}' reduce using rule 128 + '↦' reduce using rule 128 + %eof reduce using rule 128 State 38 - Term -> Term1 . (rule 126) + Term -> Term1 . (rule 141) - ')' reduce using rule 126 - ',' reduce using rule 126 - ':' reduce using rule 126 - ':=' reduce using rule 126 - ';' reduce using rule 126 - '>' reduce using rule 126 - ']' reduce using rule 126 - '|' reduce using rule 126 - '|->' reduce using rule 126 - '}' reduce using rule 126 - %eof reduce using rule 126 + ')' reduce using rule 141 + ',' reduce using rule 141 + ':' reduce using rule 141 + ':=' reduce using rule 141 + ';' reduce using rule 141 + '>' reduce using rule 141 + ']' reduce using rule 141 + '|' reduce using rule 141 + '|->' reduce using rule 141 + '}' reduce using rule 141 + '↦' reduce using rule 141 + %eof reduce using rule 141 State 39 ParamDecl -> Term6 . (rule 69) - Term5 -> Term6 . (rule 103) - Term6 -> Term6 . '[' ListRestriction ']' (rule 120) - Term6 -> Term6 . Term7 (rule 121) + Term5 -> Term6 . (rule 110) + Term6 -> Term6 . '[' ListRestriction ']' (rule 133) + Term6 -> Term6 . Term7 (rule 134) - '(' shift, and enter state 72 - ')' reduce using rule 103 - '*' reduce using rule 103 + '(' shift, and enter state 79 + ')' reduce using rule 110 + '*' reduce using rule 110 '*_1' shift, and enter state 43 - ',' reduce using rule 103 + '*₁' shift, and enter state 44 + ',' reduce using rule 110 '->' reduce using rule 69 - '/\\' reduce using rule 103 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - ':' reduce using rule 103 - ':=' reduce using rule 103 - ';' reduce using rule 103 - '<' shift, and enter state 48 - '<=' reduce using rule 103 - '=' reduce using rule 103 - '===' reduce using rule 103 - '=_{' reduce using rule 103 - '>' reduce using rule 103 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '[' shift, and enter state 155 - '\\/' reduce using rule 103 - ']' reduce using rule 103 - 'as' reduce using rule 103 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'unit' shift, and enter state 64 - '|' reduce using rule 103 - '|->' reduce using rule 103 - '}' reduce using rule 103 + '/\\' reduce using rule 110 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + ':' reduce using rule 110 + ':=' reduce using rule 110 + ';' reduce using rule 110 + '<' shift, and enter state 51 + '<=' reduce using rule 110 + '=' reduce using rule 110 + '===' reduce using rule 110 + '=_{' reduce using rule 110 + '>' reduce using rule 110 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '[' shift, and enter state 162 + '\\/' reduce using rule 110 + ']' reduce using rule 110 + 'as' reduce using rule 110 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'unit' shift, and enter state 67 + '|' reduce using rule 110 + '|->' reduce using rule 110 + '}' reduce using rule 110 + '×' reduce using rule 110 '→' reduce using rule 69 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 - %eof reduce using rule 103 + '↦' reduce using rule 110 + '∧' reduce using rule 110 + '∨' reduce using rule 110 + '≡' reduce using rule 110 + '≤' reduce using rule 110 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + %eof reduce using rule 110 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 154 + Term7 goto state 161 State 40 - ListTerm -> Term . (rule 127) - ListTerm -> Term . ',' ListTerm (rule 128) + ListTerm -> Term . (rule 142) + ListTerm -> Term . ',' ListTerm (rule 143) - ',' shift, and enter state 176 - %eof reduce using rule 127 + ',' shift, and enter state 187 + %eof reduce using rule 142 State 41 @@ -1398,43 +1592,50 @@ State 42 ParamDecl -> '(' . '_' ':' Term ')' (rule 70) ParamDecl -> '(' . VarIdent ':' Term ')' (rule 72) - Term7 -> '(' . Term ',' Term ')' (rule 93) - Term7 -> '(' . Term ')' (rule 101) + Term7 -> '(' . Term ',' Term ')' (rule 94) + Term7 -> '(' . Term ')' (rule 102) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - '_' shift, and enter state 175 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + '_' shift, and enter state 186 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 - VarIdent goto state 174 + VarIdent goto state 185 ParamDecl goto state 32 Term7 goto state 33 Term5 goto state 34 @@ -1443,22 +1644,265 @@ State 42 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 161 + Term goto state 170 State 43 - Term7 -> '*_1' . (rule 82) + Term7 -> '*_1' . (rule 103) - '(' reduce using rule 82 - ')' reduce using rule 82 - '*' reduce using rule 82 + '(' reduce using rule 103 + ')' reduce using rule 103 + '*' reduce using rule 103 + '*_1' reduce using rule 103 + '*₁' reduce using rule 103 + ',' reduce using rule 103 + '->' reduce using rule 103 + '/\\' reduce using rule 103 + '0_2' reduce using rule 103 + '0₂' reduce using rule 103 + '1' reduce using rule 103 + '1_2' reduce using rule 103 + '1₂' reduce using rule 103 + '2' reduce using rule 103 + ':' reduce using rule 103 + ':=' reduce using rule 103 + ';' reduce using rule 103 + '<' reduce using rule 103 + '<=' reduce using rule 103 + '=' reduce using rule 103 + '===' reduce using rule 103 + '=_{' reduce using rule 103 + '>' reduce using rule 103 + 'BOT' reduce using rule 103 + 'CUBE' reduce using rule 103 + 'TOP' reduce using rule 103 + 'TOPE' reduce using rule 103 + 'U' reduce using rule 103 + 'Unit' reduce using rule 103 + '[' reduce using rule 103 + '\\/' reduce using rule 103 + ']' reduce using rule 103 + 'as' reduce using rule 103 + 'idJ' reduce using rule 103 + 'recBOT' reduce using rule 103 + 'recOR' reduce using rule 103 + 'refl' reduce using rule 103 + 'refl_{' reduce using rule 103 + 'unit' reduce using rule 103 + '|' reduce using rule 103 + '|->' reduce using rule 103 + '}' reduce using rule 103 + '×' reduce using rule 103 + '→' reduce using rule 103 + '↦' reduce using rule 103 + '∧' reduce using rule 103 + '∨' reduce using rule 103 + '≡' reduce using rule 103 + '≤' reduce using rule 103 + '⊤' reduce using rule 103 + '⊥' reduce using rule 103 + L_VarIdentTokenreduce using rule 103 + L_HoleIdentTokenreduce using rule 103 + %eof reduce using rule 103 + + +State 44 + + Term7 -> '*₁' . (rule 83) + + '(' reduce using rule 83 + ')' reduce using rule 83 + '*' reduce using rule 83 + '*_1' reduce using rule 83 + '*₁' reduce using rule 83 + ',' reduce using rule 83 + '->' reduce using rule 83 + '/\\' reduce using rule 83 + '0_2' reduce using rule 83 + '0₂' reduce using rule 83 + '1' reduce using rule 83 + '1_2' reduce using rule 83 + '1₂' reduce using rule 83 + '2' reduce using rule 83 + ':' reduce using rule 83 + ':=' reduce using rule 83 + ';' reduce using rule 83 + '<' reduce using rule 83 + '<=' reduce using rule 83 + '=' reduce using rule 83 + '===' reduce using rule 83 + '=_{' reduce using rule 83 + '>' reduce using rule 83 + 'BOT' reduce using rule 83 + 'CUBE' reduce using rule 83 + 'TOP' reduce using rule 83 + 'TOPE' reduce using rule 83 + 'U' reduce using rule 83 + 'Unit' reduce using rule 83 + '[' reduce using rule 83 + '\\/' reduce using rule 83 + ']' reduce using rule 83 + 'as' reduce using rule 83 + 'idJ' reduce using rule 83 + 'recBOT' reduce using rule 83 + 'recOR' reduce using rule 83 + 'refl' reduce using rule 83 + 'refl_{' reduce using rule 83 + 'unit' reduce using rule 83 + '|' reduce using rule 83 + '|->' reduce using rule 83 + '}' reduce using rule 83 + '×' reduce using rule 83 + '→' reduce using rule 83 + '↦' reduce using rule 83 + '∧' reduce using rule 83 + '∨' reduce using rule 83 + '≡' reduce using rule 83 + '≤' reduce using rule 83 + '⊤' reduce using rule 83 + '⊥' reduce using rule 83 + L_VarIdentTokenreduce using rule 83 + L_HoleIdentTokenreduce using rule 83 + %eof reduce using rule 83 + + +State 45 + + Term7 -> '0_2' . (rule 104) + + '(' reduce using rule 104 + ')' reduce using rule 104 + '*' reduce using rule 104 + '*_1' reduce using rule 104 + '*₁' reduce using rule 104 + ',' reduce using rule 104 + '->' reduce using rule 104 + '/\\' reduce using rule 104 + '0_2' reduce using rule 104 + '0₂' reduce using rule 104 + '1' reduce using rule 104 + '1_2' reduce using rule 104 + '1₂' reduce using rule 104 + '2' reduce using rule 104 + ':' reduce using rule 104 + ':=' reduce using rule 104 + ';' reduce using rule 104 + '<' reduce using rule 104 + '<=' reduce using rule 104 + '=' reduce using rule 104 + '===' reduce using rule 104 + '=_{' reduce using rule 104 + '>' reduce using rule 104 + 'BOT' reduce using rule 104 + 'CUBE' reduce using rule 104 + 'TOP' reduce using rule 104 + 'TOPE' reduce using rule 104 + 'U' reduce using rule 104 + 'Unit' reduce using rule 104 + '[' reduce using rule 104 + '\\/' reduce using rule 104 + ']' reduce using rule 104 + 'as' reduce using rule 104 + 'idJ' reduce using rule 104 + 'recBOT' reduce using rule 104 + 'recOR' reduce using rule 104 + 'refl' reduce using rule 104 + 'refl_{' reduce using rule 104 + 'unit' reduce using rule 104 + '|' reduce using rule 104 + '|->' reduce using rule 104 + '}' reduce using rule 104 + '×' reduce using rule 104 + '→' reduce using rule 104 + '↦' reduce using rule 104 + '∧' reduce using rule 104 + '∨' reduce using rule 104 + '≡' reduce using rule 104 + '≤' reduce using rule 104 + '⊤' reduce using rule 104 + '⊥' reduce using rule 104 + L_VarIdentTokenreduce using rule 104 + L_HoleIdentTokenreduce using rule 104 + %eof reduce using rule 104 + + +State 46 + + Term7 -> '0₂' . (rule 85) + + '(' reduce using rule 85 + ')' reduce using rule 85 + '*' reduce using rule 85 + '*_1' reduce using rule 85 + '*₁' reduce using rule 85 + ',' reduce using rule 85 + '->' reduce using rule 85 + '/\\' reduce using rule 85 + '0_2' reduce using rule 85 + '0₂' reduce using rule 85 + '1' reduce using rule 85 + '1_2' reduce using rule 85 + '1₂' reduce using rule 85 + '2' reduce using rule 85 + ':' reduce using rule 85 + ':=' reduce using rule 85 + ';' reduce using rule 85 + '<' reduce using rule 85 + '<=' reduce using rule 85 + '=' reduce using rule 85 + '===' reduce using rule 85 + '=_{' reduce using rule 85 + '>' reduce using rule 85 + 'BOT' reduce using rule 85 + 'CUBE' reduce using rule 85 + 'TOP' reduce using rule 85 + 'TOPE' reduce using rule 85 + 'U' reduce using rule 85 + 'Unit' reduce using rule 85 + '[' reduce using rule 85 + '\\/' reduce using rule 85 + ']' reduce using rule 85 + 'as' reduce using rule 85 + 'idJ' reduce using rule 85 + 'recBOT' reduce using rule 85 + 'recOR' reduce using rule 85 + 'refl' reduce using rule 85 + 'refl_{' reduce using rule 85 + 'unit' reduce using rule 85 + '|' reduce using rule 85 + '|->' reduce using rule 85 + '}' reduce using rule 85 + '×' reduce using rule 85 + '→' reduce using rule 85 + '↦' reduce using rule 85 + '∧' reduce using rule 85 + '∨' reduce using rule 85 + '≡' reduce using rule 85 + '≤' reduce using rule 85 + '⊤' reduce using rule 85 + '⊥' reduce using rule 85 + L_VarIdentTokenreduce using rule 85 + L_HoleIdentTokenreduce using rule 85 + %eof reduce using rule 85 + + +State 47 + + Term7 -> '1' . (rule 82) + + '(' reduce using rule 82 + ')' reduce using rule 82 + '*' reduce using rule 82 '*_1' reduce using rule 82 + '*₁' reduce using rule 82 ',' reduce using rule 82 '->' reduce using rule 82 '/\\' reduce using rule 82 '0_2' reduce using rule 82 + '0₂' reduce using rule 82 '1' reduce using rule 82 '1_2' reduce using rule 82 + '1₂' reduce using rule 82 '2' reduce using rule 82 ':' reduce using rule 82 ':=' reduce using rule 82 @@ -1488,26 +1932,157 @@ State 43 '|' reduce using rule 82 '|->' reduce using rule 82 '}' reduce using rule 82 + '×' reduce using rule 82 '→' reduce using rule 82 + '↦' reduce using rule 82 + '∧' reduce using rule 82 + '∨' reduce using rule 82 + '≡' reduce using rule 82 + '≤' reduce using rule 82 + '⊤' reduce using rule 82 + '⊥' reduce using rule 82 L_VarIdentTokenreduce using rule 82 L_HoleIdentTokenreduce using rule 82 %eof reduce using rule 82 -State 44 +State 48 + + Term7 -> '1_2' . (rule 105) + + '(' reduce using rule 105 + ')' reduce using rule 105 + '*' reduce using rule 105 + '*_1' reduce using rule 105 + '*₁' reduce using rule 105 + ',' reduce using rule 105 + '->' reduce using rule 105 + '/\\' reduce using rule 105 + '0_2' reduce using rule 105 + '0₂' reduce using rule 105 + '1' reduce using rule 105 + '1_2' reduce using rule 105 + '1₂' reduce using rule 105 + '2' reduce using rule 105 + ':' reduce using rule 105 + ':=' reduce using rule 105 + ';' reduce using rule 105 + '<' reduce using rule 105 + '<=' reduce using rule 105 + '=' reduce using rule 105 + '===' reduce using rule 105 + '=_{' reduce using rule 105 + '>' reduce using rule 105 + 'BOT' reduce using rule 105 + 'CUBE' reduce using rule 105 + 'TOP' reduce using rule 105 + 'TOPE' reduce using rule 105 + 'U' reduce using rule 105 + 'Unit' reduce using rule 105 + '[' reduce using rule 105 + '\\/' reduce using rule 105 + ']' reduce using rule 105 + 'as' reduce using rule 105 + 'idJ' reduce using rule 105 + 'recBOT' reduce using rule 105 + 'recOR' reduce using rule 105 + 'refl' reduce using rule 105 + 'refl_{' reduce using rule 105 + 'unit' reduce using rule 105 + '|' reduce using rule 105 + '|->' reduce using rule 105 + '}' reduce using rule 105 + '×' reduce using rule 105 + '→' reduce using rule 105 + '↦' reduce using rule 105 + '∧' reduce using rule 105 + '∨' reduce using rule 105 + '≡' reduce using rule 105 + '≤' reduce using rule 105 + '⊤' reduce using rule 105 + '⊥' reduce using rule 105 + L_VarIdentTokenreduce using rule 105 + L_HoleIdentTokenreduce using rule 105 + %eof reduce using rule 105 + + +State 49 + + Term7 -> '1₂' . (rule 86) + + '(' reduce using rule 86 + ')' reduce using rule 86 + '*' reduce using rule 86 + '*_1' reduce using rule 86 + '*₁' reduce using rule 86 + ',' reduce using rule 86 + '->' reduce using rule 86 + '/\\' reduce using rule 86 + '0_2' reduce using rule 86 + '0₂' reduce using rule 86 + '1' reduce using rule 86 + '1_2' reduce using rule 86 + '1₂' reduce using rule 86 + '2' reduce using rule 86 + ':' reduce using rule 86 + ':=' reduce using rule 86 + ';' reduce using rule 86 + '<' reduce using rule 86 + '<=' reduce using rule 86 + '=' reduce using rule 86 + '===' reduce using rule 86 + '=_{' reduce using rule 86 + '>' reduce using rule 86 + 'BOT' reduce using rule 86 + 'CUBE' reduce using rule 86 + 'TOP' reduce using rule 86 + 'TOPE' reduce using rule 86 + 'U' reduce using rule 86 + 'Unit' reduce using rule 86 + '[' reduce using rule 86 + '\\/' reduce using rule 86 + ']' reduce using rule 86 + 'as' reduce using rule 86 + 'idJ' reduce using rule 86 + 'recBOT' reduce using rule 86 + 'recOR' reduce using rule 86 + 'refl' reduce using rule 86 + 'refl_{' reduce using rule 86 + 'unit' reduce using rule 86 + '|' reduce using rule 86 + '|->' reduce using rule 86 + '}' reduce using rule 86 + '×' reduce using rule 86 + '→' reduce using rule 86 + '↦' reduce using rule 86 + '∧' reduce using rule 86 + '∨' reduce using rule 86 + '≡' reduce using rule 86 + '≤' reduce using rule 86 + '⊤' reduce using rule 86 + '⊥' reduce using rule 86 + L_VarIdentTokenreduce using rule 86 + L_HoleIdentTokenreduce using rule 86 + %eof reduce using rule 86 - Term7 -> '0_2' . (rule 84) + +State 50 + + Term7 -> '2' . (rule 84) '(' reduce using rule 84 ')' reduce using rule 84 '*' reduce using rule 84 '*_1' reduce using rule 84 + '*₁' reduce using rule 84 ',' reduce using rule 84 '->' reduce using rule 84 '/\\' reduce using rule 84 '0_2' reduce using rule 84 + '0₂' reduce using rule 84 '1' reduce using rule 84 '1_2' reduce using rule 84 + '1₂' reduce using rule 84 '2' reduce using rule 84 ':' reduce using rule 84 ':=' reduce using rule 84 @@ -1537,259 +2112,329 @@ State 44 '|' reduce using rule 84 '|->' reduce using rule 84 '}' reduce using rule 84 + '×' reduce using rule 84 '→' reduce using rule 84 + '↦' reduce using rule 84 + '∧' reduce using rule 84 + '∨' reduce using rule 84 + '≡' reduce using rule 84 + '≤' reduce using rule 84 + '⊤' reduce using rule 84 + '⊥' reduce using rule 84 L_VarIdentTokenreduce using rule 84 L_HoleIdentTokenreduce using rule 84 %eof reduce using rule 84 -State 45 +State 51 - Term7 -> '1' . (rule 81) + Term7 -> '<' . ParamDecl '→' Term '>' (rule 93) + Term7 -> '<' . ParamDecl '->' Term '>' (rule 108) - '(' reduce using rule 81 - ')' reduce using rule 81 - '*' reduce using rule 81 - '*_1' reduce using rule 81 - ',' reduce using rule 81 - '->' reduce using rule 81 - '/\\' reduce using rule 81 - '0_2' reduce using rule 81 - '1' reduce using rule 81 - '1_2' reduce using rule 81 - '2' reduce using rule 81 - ':' reduce using rule 81 - ':=' reduce using rule 81 - ';' reduce using rule 81 - '<' reduce using rule 81 - '<=' reduce using rule 81 - '=' reduce using rule 81 - '===' reduce using rule 81 - '=_{' reduce using rule 81 - '>' reduce using rule 81 - 'BOT' reduce using rule 81 - 'CUBE' reduce using rule 81 - 'TOP' reduce using rule 81 - 'TOPE' reduce using rule 81 - 'U' reduce using rule 81 - 'Unit' reduce using rule 81 - '[' reduce using rule 81 - '\\/' reduce using rule 81 - ']' reduce using rule 81 - 'as' reduce using rule 81 - 'idJ' reduce using rule 81 - 'recBOT' reduce using rule 81 - 'recOR' reduce using rule 81 - 'refl' reduce using rule 81 - 'refl_{' reduce using rule 81 - 'unit' reduce using rule 81 - '|' reduce using rule 81 - '|->' reduce using rule 81 - '}' reduce using rule 81 - '→' reduce using rule 81 - L_VarIdentTokenreduce using rule 81 - L_HoleIdentTokenreduce using rule 81 - %eof reduce using rule 81 + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 184 + Term7 goto state 33 + Term6 goto state 93 -State 46 +State 52 - Term7 -> '1_2' . (rule 85) + Term7 -> 'BOT' . (rule 107) - '(' reduce using rule 85 - ')' reduce using rule 85 - '*' reduce using rule 85 - '*_1' reduce using rule 85 - ',' reduce using rule 85 - '->' reduce using rule 85 - '/\\' reduce using rule 85 - '0_2' reduce using rule 85 - '1' reduce using rule 85 - '1_2' reduce using rule 85 - '2' reduce using rule 85 - ':' reduce using rule 85 - ':=' reduce using rule 85 - ';' reduce using rule 85 - '<' reduce using rule 85 - '<=' reduce using rule 85 - '=' reduce using rule 85 - '===' reduce using rule 85 - '=_{' reduce using rule 85 - '>' reduce using rule 85 - 'BOT' reduce using rule 85 - 'CUBE' reduce using rule 85 - 'TOP' reduce using rule 85 - 'TOPE' reduce using rule 85 - 'U' reduce using rule 85 - 'Unit' reduce using rule 85 - '[' reduce using rule 85 - '\\/' reduce using rule 85 - ']' reduce using rule 85 - 'as' reduce using rule 85 - 'idJ' reduce using rule 85 - 'recBOT' reduce using rule 85 - 'recOR' reduce using rule 85 - 'refl' reduce using rule 85 - 'refl_{' reduce using rule 85 - 'unit' reduce using rule 85 - '|' reduce using rule 85 - '|->' reduce using rule 85 - '}' reduce using rule 85 - '→' reduce using rule 85 - L_VarIdentTokenreduce using rule 85 - L_HoleIdentTokenreduce using rule 85 - %eof reduce using rule 85 + '(' reduce using rule 107 + ')' reduce using rule 107 + '*' reduce using rule 107 + '*_1' reduce using rule 107 + '*₁' reduce using rule 107 + ',' reduce using rule 107 + '->' reduce using rule 107 + '/\\' reduce using rule 107 + '0_2' reduce using rule 107 + '0₂' reduce using rule 107 + '1' reduce using rule 107 + '1_2' reduce using rule 107 + '1₂' reduce using rule 107 + '2' reduce using rule 107 + ':' reduce using rule 107 + ':=' reduce using rule 107 + ';' reduce using rule 107 + '<' reduce using rule 107 + '<=' reduce using rule 107 + '=' reduce using rule 107 + '===' reduce using rule 107 + '=_{' reduce using rule 107 + '>' reduce using rule 107 + 'BOT' reduce using rule 107 + 'CUBE' reduce using rule 107 + 'TOP' reduce using rule 107 + 'TOPE' reduce using rule 107 + 'U' reduce using rule 107 + 'Unit' reduce using rule 107 + '[' reduce using rule 107 + '\\/' reduce using rule 107 + ']' reduce using rule 107 + 'as' reduce using rule 107 + 'idJ' reduce using rule 107 + 'recBOT' reduce using rule 107 + 'recOR' reduce using rule 107 + 'refl' reduce using rule 107 + 'refl_{' reduce using rule 107 + 'unit' reduce using rule 107 + '|' reduce using rule 107 + '|->' reduce using rule 107 + '}' reduce using rule 107 + '×' reduce using rule 107 + '→' reduce using rule 107 + '↦' reduce using rule 107 + '∧' reduce using rule 107 + '∨' reduce using rule 107 + '≡' reduce using rule 107 + '≤' reduce using rule 107 + '⊤' reduce using rule 107 + '⊥' reduce using rule 107 + L_VarIdentTokenreduce using rule 107 + L_HoleIdentTokenreduce using rule 107 + %eof reduce using rule 107 -State 47 +State 53 - Term7 -> '2' . (rule 83) + Term7 -> 'CUBE' . (rule 80) - '(' reduce using rule 83 - ')' reduce using rule 83 - '*' reduce using rule 83 - '*_1' reduce using rule 83 - ',' reduce using rule 83 - '->' reduce using rule 83 - '/\\' reduce using rule 83 - '0_2' reduce using rule 83 - '1' reduce using rule 83 - '1_2' reduce using rule 83 - '2' reduce using rule 83 - ':' reduce using rule 83 - ':=' reduce using rule 83 - ';' reduce using rule 83 - '<' reduce using rule 83 - '<=' reduce using rule 83 - '=' reduce using rule 83 - '===' reduce using rule 83 - '=_{' reduce using rule 83 - '>' reduce using rule 83 - 'BOT' reduce using rule 83 - 'CUBE' reduce using rule 83 - 'TOP' reduce using rule 83 - 'TOPE' reduce using rule 83 - 'U' reduce using rule 83 - 'Unit' reduce using rule 83 - '[' reduce using rule 83 - '\\/' reduce using rule 83 - ']' reduce using rule 83 - 'as' reduce using rule 83 - 'idJ' reduce using rule 83 - 'recBOT' reduce using rule 83 - 'recOR' reduce using rule 83 - 'refl' reduce using rule 83 - 'refl_{' reduce using rule 83 - 'unit' reduce using rule 83 - '|' reduce using rule 83 - '|->' reduce using rule 83 - '}' reduce using rule 83 - '→' reduce using rule 83 - L_VarIdentTokenreduce using rule 83 - L_HoleIdentTokenreduce using rule 83 - %eof reduce using rule 83 + '(' reduce using rule 80 + ')' reduce using rule 80 + '*' reduce using rule 80 + '*_1' reduce using rule 80 + '*₁' reduce using rule 80 + ',' reduce using rule 80 + '->' reduce using rule 80 + '/\\' reduce using rule 80 + '0_2' reduce using rule 80 + '0₂' reduce using rule 80 + '1' reduce using rule 80 + '1_2' reduce using rule 80 + '1₂' reduce using rule 80 + '2' reduce using rule 80 + ':' reduce using rule 80 + ':=' reduce using rule 80 + ';' reduce using rule 80 + '<' reduce using rule 80 + '<=' reduce using rule 80 + '=' reduce using rule 80 + '===' reduce using rule 80 + '=_{' reduce using rule 80 + '>' reduce using rule 80 + 'BOT' reduce using rule 80 + 'CUBE' reduce using rule 80 + 'TOP' reduce using rule 80 + 'TOPE' reduce using rule 80 + 'U' reduce using rule 80 + 'Unit' reduce using rule 80 + '[' reduce using rule 80 + '\\/' reduce using rule 80 + ']' reduce using rule 80 + 'as' reduce using rule 80 + 'idJ' reduce using rule 80 + 'recBOT' reduce using rule 80 + 'recOR' reduce using rule 80 + 'refl' reduce using rule 80 + 'refl_{' reduce using rule 80 + 'unit' reduce using rule 80 + '|' reduce using rule 80 + '|->' reduce using rule 80 + '}' reduce using rule 80 + '×' reduce using rule 80 + '→' reduce using rule 80 + '↦' reduce using rule 80 + '∧' reduce using rule 80 + '∨' reduce using rule 80 + '≡' reduce using rule 80 + '≤' reduce using rule 80 + '⊤' reduce using rule 80 + '⊥' reduce using rule 80 + L_VarIdentTokenreduce using rule 80 + L_HoleIdentTokenreduce using rule 80 + %eof reduce using rule 80 -State 48 +State 54 - Term7 -> '<' . ParamDecl '->' Term '>' (rule 92) + Term1 -> 'Sigma' . '(' Pattern ':' Term ')' ',' Term1 (rule 130) - '(' shift, and enter state 42 - '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '(' shift, and enter state 183 - VarIdentToken goto state 28 - HoleIdentToken goto state 29 - HoleIdent goto state 30 - VarIdent goto state 31 - ParamDecl goto state 173 - Term7 goto state 33 - Term6 goto state 86 -State 49 +State 55 - Term7 -> 'BOT' . (rule 87) + Term7 -> 'TOP' . (rule 106) - '(' reduce using rule 87 - ')' reduce using rule 87 - '*' reduce using rule 87 - '*_1' reduce using rule 87 - ',' reduce using rule 87 - '->' reduce using rule 87 - '/\\' reduce using rule 87 - '0_2' reduce using rule 87 - '1' reduce using rule 87 - '1_2' reduce using rule 87 - '2' reduce using rule 87 - ':' reduce using rule 87 - ':=' reduce using rule 87 - ';' reduce using rule 87 - '<' reduce using rule 87 - '<=' reduce using rule 87 - '=' reduce using rule 87 - '===' reduce using rule 87 - '=_{' reduce using rule 87 - '>' reduce using rule 87 - 'BOT' reduce using rule 87 - 'CUBE' reduce using rule 87 - 'TOP' reduce using rule 87 - 'TOPE' reduce using rule 87 - 'U' reduce using rule 87 - 'Unit' reduce using rule 87 - '[' reduce using rule 87 - '\\/' reduce using rule 87 - ']' reduce using rule 87 - 'as' reduce using rule 87 - 'idJ' reduce using rule 87 - 'recBOT' reduce using rule 87 - 'recOR' reduce using rule 87 - 'refl' reduce using rule 87 - 'refl_{' reduce using rule 87 - 'unit' reduce using rule 87 - '|' reduce using rule 87 - '|->' reduce using rule 87 - '}' reduce using rule 87 - '→' reduce using rule 87 - L_VarIdentTokenreduce using rule 87 - L_HoleIdentTokenreduce using rule 87 - %eof reduce using rule 87 + '(' reduce using rule 106 + ')' reduce using rule 106 + '*' reduce using rule 106 + '*_1' reduce using rule 106 + '*₁' reduce using rule 106 + ',' reduce using rule 106 + '->' reduce using rule 106 + '/\\' reduce using rule 106 + '0_2' reduce using rule 106 + '0₂' reduce using rule 106 + '1' reduce using rule 106 + '1_2' reduce using rule 106 + '1₂' reduce using rule 106 + '2' reduce using rule 106 + ':' reduce using rule 106 + ':=' reduce using rule 106 + ';' reduce using rule 106 + '<' reduce using rule 106 + '<=' reduce using rule 106 + '=' reduce using rule 106 + '===' reduce using rule 106 + '=_{' reduce using rule 106 + '>' reduce using rule 106 + 'BOT' reduce using rule 106 + 'CUBE' reduce using rule 106 + 'TOP' reduce using rule 106 + 'TOPE' reduce using rule 106 + 'U' reduce using rule 106 + 'Unit' reduce using rule 106 + '[' reduce using rule 106 + '\\/' reduce using rule 106 + ']' reduce using rule 106 + 'as' reduce using rule 106 + 'idJ' reduce using rule 106 + 'recBOT' reduce using rule 106 + 'recOR' reduce using rule 106 + 'refl' reduce using rule 106 + 'refl_{' reduce using rule 106 + 'unit' reduce using rule 106 + '|' reduce using rule 106 + '|->' reduce using rule 106 + '}' reduce using rule 106 + '×' reduce using rule 106 + '→' reduce using rule 106 + '↦' reduce using rule 106 + '∧' reduce using rule 106 + '∨' reduce using rule 106 + '≡' reduce using rule 106 + '≤' reduce using rule 106 + '⊤' reduce using rule 106 + '⊥' reduce using rule 106 + L_VarIdentTokenreduce using rule 106 + L_HoleIdentTokenreduce using rule 106 + %eof reduce using rule 106 + + +State 56 + + Term7 -> 'TOPE' . (rule 81) + + '(' reduce using rule 81 + ')' reduce using rule 81 + '*' reduce using rule 81 + '*_1' reduce using rule 81 + '*₁' reduce using rule 81 + ',' reduce using rule 81 + '->' reduce using rule 81 + '/\\' reduce using rule 81 + '0_2' reduce using rule 81 + '0₂' reduce using rule 81 + '1' reduce using rule 81 + '1_2' reduce using rule 81 + '1₂' reduce using rule 81 + '2' reduce using rule 81 + ':' reduce using rule 81 + ':=' reduce using rule 81 + ';' reduce using rule 81 + '<' reduce using rule 81 + '<=' reduce using rule 81 + '=' reduce using rule 81 + '===' reduce using rule 81 + '=_{' reduce using rule 81 + '>' reduce using rule 81 + 'BOT' reduce using rule 81 + 'CUBE' reduce using rule 81 + 'TOP' reduce using rule 81 + 'TOPE' reduce using rule 81 + 'U' reduce using rule 81 + 'Unit' reduce using rule 81 + '[' reduce using rule 81 + '\\/' reduce using rule 81 + ']' reduce using rule 81 + 'as' reduce using rule 81 + 'idJ' reduce using rule 81 + 'recBOT' reduce using rule 81 + 'recOR' reduce using rule 81 + 'refl' reduce using rule 81 + 'refl_{' reduce using rule 81 + 'unit' reduce using rule 81 + '|' reduce using rule 81 + '|->' reduce using rule 81 + '}' reduce using rule 81 + '×' reduce using rule 81 + '→' reduce using rule 81 + '↦' reduce using rule 81 + '∧' reduce using rule 81 + '∨' reduce using rule 81 + '≡' reduce using rule 81 + '≤' reduce using rule 81 + '⊤' reduce using rule 81 + '⊥' reduce using rule 81 + L_VarIdentTokenreduce using rule 81 + L_HoleIdentTokenreduce using rule 81 + %eof reduce using rule 81 -State 50 +State 57 - Term7 -> 'CUBE' . (rule 79) + Term7 -> 'U' . (rule 79) '(' reduce using rule 79 ')' reduce using rule 79 '*' reduce using rule 79 '*_1' reduce using rule 79 + '*₁' reduce using rule 79 ',' reduce using rule 79 '->' reduce using rule 79 '/\\' reduce using rule 79 '0_2' reduce using rule 79 + '0₂' reduce using rule 79 '1' reduce using rule 79 '1_2' reduce using rule 79 + '1₂' reduce using rule 79 '2' reduce using rule 79 ':' reduce using rule 79 ':=' reduce using rule 79 @@ -1819,341 +2464,378 @@ State 50 '|' reduce using rule 79 '|->' reduce using rule 79 '}' reduce using rule 79 + '×' reduce using rule 79 '→' reduce using rule 79 + '↦' reduce using rule 79 + '∧' reduce using rule 79 + '∨' reduce using rule 79 + '≡' reduce using rule 79 + '≤' reduce using rule 79 + '⊤' reduce using rule 79 + '⊥' reduce using rule 79 L_VarIdentTokenreduce using rule 79 L_HoleIdentTokenreduce using rule 79 %eof reduce using rule 79 -State 51 +State 58 - Term1 -> 'Sigma' . '(' Pattern ':' Term ')' ',' Term1 (rule 112) + Term7 -> 'Unit' . (rule 92) - '(' shift, and enter state 172 + '(' reduce using rule 92 + ')' reduce using rule 92 + '*' reduce using rule 92 + '*_1' reduce using rule 92 + '*₁' reduce using rule 92 + ',' reduce using rule 92 + '->' reduce using rule 92 + '/\\' reduce using rule 92 + '0_2' reduce using rule 92 + '0₂' reduce using rule 92 + '1' reduce using rule 92 + '1_2' reduce using rule 92 + '1₂' reduce using rule 92 + '2' reduce using rule 92 + ':' reduce using rule 92 + ':=' reduce using rule 92 + ';' reduce using rule 92 + '<' reduce using rule 92 + '<=' reduce using rule 92 + '=' reduce using rule 92 + '===' reduce using rule 92 + '=_{' reduce using rule 92 + '>' reduce using rule 92 + 'BOT' reduce using rule 92 + 'CUBE' reduce using rule 92 + 'TOP' reduce using rule 92 + 'TOPE' reduce using rule 92 + 'U' reduce using rule 92 + 'Unit' reduce using rule 92 + '[' reduce using rule 92 + '\\/' reduce using rule 92 + ']' reduce using rule 92 + 'as' reduce using rule 92 + 'idJ' reduce using rule 92 + 'recBOT' reduce using rule 92 + 'recOR' reduce using rule 92 + 'refl' reduce using rule 92 + 'refl_{' reduce using rule 92 + 'unit' reduce using rule 92 + '|' reduce using rule 92 + '|->' reduce using rule 92 + '}' reduce using rule 92 + '×' reduce using rule 92 + '→' reduce using rule 92 + '↦' reduce using rule 92 + '∧' reduce using rule 92 + '∨' reduce using rule 92 + '≡' reduce using rule 92 + '≤' reduce using rule 92 + '⊤' reduce using rule 92 + '⊥' reduce using rule 92 + L_VarIdentTokenreduce using rule 92 + L_HoleIdentTokenreduce using rule 92 + %eof reduce using rule 92 -State 52 +State 59 - Term7 -> 'TOP' . (rule 86) + Term1 -> '\\' . ListParam '→' Term1 (rule 127) + Term1 -> '\\' . ListParam '->' Term1 (rule 131) - '(' reduce using rule 86 - ')' reduce using rule 86 - '*' reduce using rule 86 - '*_1' reduce using rule 86 - ',' reduce using rule 86 - '->' reduce using rule 86 - '/\\' reduce using rule 86 - '0_2' reduce using rule 86 - '1' reduce using rule 86 - '1_2' reduce using rule 86 - '2' reduce using rule 86 - ':' reduce using rule 86 - ':=' reduce using rule 86 - ';' reduce using rule 86 - '<' reduce using rule 86 - '<=' reduce using rule 86 - '=' reduce using rule 86 - '===' reduce using rule 86 - '=_{' reduce using rule 86 - '>' reduce using rule 86 - 'BOT' reduce using rule 86 - 'CUBE' reduce using rule 86 - 'TOP' reduce using rule 86 - 'TOPE' reduce using rule 86 - 'U' reduce using rule 86 - 'Unit' reduce using rule 86 - '[' reduce using rule 86 - '\\/' reduce using rule 86 - ']' reduce using rule 86 - 'as' reduce using rule 86 - 'idJ' reduce using rule 86 - 'recBOT' reduce using rule 86 - 'recOR' reduce using rule 86 - 'refl' reduce using rule 86 - 'refl_{' reduce using rule 86 - 'unit' reduce using rule 86 - '|' reduce using rule 86 - '|->' reduce using rule 86 - '}' reduce using rule 86 - '→' reduce using rule 86 - L_VarIdentTokenreduce using rule 86 - L_HoleIdentTokenreduce using rule 86 - %eof reduce using rule 86 + '(' shift, and enter state 98 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + '{' shift, and enter state 101 + L_VarIdentTokenshift, and enter state 75 + VarIdentToken goto state 28 + VarIdent goto state 94 + Pattern goto state 95 + Param goto state 96 + ListParam goto state 182 -State 53 +State 60 - Term7 -> 'TOPE' . (rule 80) + Term6 -> 'first' . Term7 (rule 138) - '(' reduce using rule 80 - ')' reduce using rule 80 - '*' reduce using rule 80 - '*_1' reduce using rule 80 - ',' reduce using rule 80 - '->' reduce using rule 80 - '/\\' reduce using rule 80 - '0_2' reduce using rule 80 - '1' reduce using rule 80 - '1_2' reduce using rule 80 - '2' reduce using rule 80 - ':' reduce using rule 80 - ':=' reduce using rule 80 - ';' reduce using rule 80 - '<' reduce using rule 80 - '<=' reduce using rule 80 - '=' reduce using rule 80 - '===' reduce using rule 80 - '=_{' reduce using rule 80 - '>' reduce using rule 80 - 'BOT' reduce using rule 80 - 'CUBE' reduce using rule 80 - 'TOP' reduce using rule 80 - 'TOPE' reduce using rule 80 - 'U' reduce using rule 80 - 'Unit' reduce using rule 80 - '[' reduce using rule 80 - '\\/' reduce using rule 80 - ']' reduce using rule 80 - 'as' reduce using rule 80 - 'idJ' reduce using rule 80 - 'recBOT' reduce using rule 80 - 'recOR' reduce using rule 80 - 'refl' reduce using rule 80 - 'refl_{' reduce using rule 80 - 'unit' reduce using rule 80 - '|' reduce using rule 80 - '|->' reduce using rule 80 - '}' reduce using rule 80 - '→' reduce using rule 80 - L_VarIdentTokenreduce using rule 80 - L_HoleIdentTokenreduce using rule 80 - %eof reduce using rule 80 + '(' shift, and enter state 79 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'unit' shift, and enter state 67 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 181 -State 54 +State 61 - Term7 -> 'U' . (rule 78) + Term7 -> 'idJ' . '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 99) - '(' reduce using rule 78 - ')' reduce using rule 78 - '*' reduce using rule 78 - '*_1' reduce using rule 78 - ',' reduce using rule 78 - '->' reduce using rule 78 - '/\\' reduce using rule 78 - '0_2' reduce using rule 78 - '1' reduce using rule 78 - '1_2' reduce using rule 78 - '2' reduce using rule 78 - ':' reduce using rule 78 - ':=' reduce using rule 78 - ';' reduce using rule 78 - '<' reduce using rule 78 - '<=' reduce using rule 78 - '=' reduce using rule 78 - '===' reduce using rule 78 - '=_{' reduce using rule 78 - '>' reduce using rule 78 - 'BOT' reduce using rule 78 - 'CUBE' reduce using rule 78 - 'TOP' reduce using rule 78 - 'TOPE' reduce using rule 78 - 'U' reduce using rule 78 - 'Unit' reduce using rule 78 - '[' reduce using rule 78 - '\\/' reduce using rule 78 - ']' reduce using rule 78 - 'as' reduce using rule 78 - 'idJ' reduce using rule 78 - 'recBOT' reduce using rule 78 - 'recOR' reduce using rule 78 - 'refl' reduce using rule 78 - 'refl_{' reduce using rule 78 - 'unit' reduce using rule 78 - '|' reduce using rule 78 - '|->' reduce using rule 78 - '}' reduce using rule 78 - '→' reduce using rule 78 - L_VarIdentTokenreduce using rule 78 - L_HoleIdentTokenreduce using rule 78 - %eof reduce using rule 78 + '(' shift, and enter state 180 -State 55 +State 62 - Term7 -> 'Unit' . (rule 91) + Term7 -> 'recBOT' . (rule 89) - '(' reduce using rule 91 - ')' reduce using rule 91 - '*' reduce using rule 91 - '*_1' reduce using rule 91 - ',' reduce using rule 91 - '->' reduce using rule 91 - '/\\' reduce using rule 91 - '0_2' reduce using rule 91 - '1' reduce using rule 91 - '1_2' reduce using rule 91 - '2' reduce using rule 91 - ':' reduce using rule 91 - ':=' reduce using rule 91 - ';' reduce using rule 91 - '<' reduce using rule 91 - '<=' reduce using rule 91 - '=' reduce using rule 91 - '===' reduce using rule 91 - '=_{' reduce using rule 91 - '>' reduce using rule 91 - 'BOT' reduce using rule 91 - 'CUBE' reduce using rule 91 - 'TOP' reduce using rule 91 - 'TOPE' reduce using rule 91 - 'U' reduce using rule 91 - 'Unit' reduce using rule 91 - '[' reduce using rule 91 - '\\/' reduce using rule 91 - ']' reduce using rule 91 - 'as' reduce using rule 91 - 'idJ' reduce using rule 91 - 'recBOT' reduce using rule 91 - 'recOR' reduce using rule 91 - 'refl' reduce using rule 91 - 'refl_{' reduce using rule 91 - 'unit' reduce using rule 91 - '|' reduce using rule 91 - '|->' reduce using rule 91 - '}' reduce using rule 91 - '→' reduce using rule 91 - L_VarIdentTokenreduce using rule 91 - L_HoleIdentTokenreduce using rule 91 - %eof reduce using rule 91 + '(' reduce using rule 89 + ')' reduce using rule 89 + '*' reduce using rule 89 + '*_1' reduce using rule 89 + '*₁' reduce using rule 89 + ',' reduce using rule 89 + '->' reduce using rule 89 + '/\\' reduce using rule 89 + '0_2' reduce using rule 89 + '0₂' reduce using rule 89 + '1' reduce using rule 89 + '1_2' reduce using rule 89 + '1₂' reduce using rule 89 + '2' reduce using rule 89 + ':' reduce using rule 89 + ':=' reduce using rule 89 + ';' reduce using rule 89 + '<' reduce using rule 89 + '<=' reduce using rule 89 + '=' reduce using rule 89 + '===' reduce using rule 89 + '=_{' reduce using rule 89 + '>' reduce using rule 89 + 'BOT' reduce using rule 89 + 'CUBE' reduce using rule 89 + 'TOP' reduce using rule 89 + 'TOPE' reduce using rule 89 + 'U' reduce using rule 89 + 'Unit' reduce using rule 89 + '[' reduce using rule 89 + '\\/' reduce using rule 89 + ']' reduce using rule 89 + 'as' reduce using rule 89 + 'idJ' reduce using rule 89 + 'recBOT' reduce using rule 89 + 'recOR' reduce using rule 89 + 'refl' reduce using rule 89 + 'refl_{' reduce using rule 89 + 'unit' reduce using rule 89 + '|' reduce using rule 89 + '|->' reduce using rule 89 + '}' reduce using rule 89 + '×' reduce using rule 89 + '→' reduce using rule 89 + '↦' reduce using rule 89 + '∧' reduce using rule 89 + '∨' reduce using rule 89 + '≡' reduce using rule 89 + '≤' reduce using rule 89 + '⊤' reduce using rule 89 + '⊥' reduce using rule 89 + L_VarIdentTokenreduce using rule 89 + L_HoleIdentTokenreduce using rule 89 + %eof reduce using rule 89 + + +State 63 + + Term7 -> 'recOR' . '(' ListRestriction ')' (rule 90) + Term7 -> 'recOR' . '(' Term ',' Term ',' Term ',' Term ')' (rule 91) + + '(' shift, and enter state 179 + + +State 64 + + Term7 -> 'refl' . (rule 96) + + '(' reduce using rule 96 + ')' reduce using rule 96 + '*' reduce using rule 96 + '*_1' reduce using rule 96 + '*₁' reduce using rule 96 + ',' reduce using rule 96 + '->' reduce using rule 96 + '/\\' reduce using rule 96 + '0_2' reduce using rule 96 + '0₂' reduce using rule 96 + '1' reduce using rule 96 + '1_2' reduce using rule 96 + '1₂' reduce using rule 96 + '2' reduce using rule 96 + ':' reduce using rule 96 + ':=' reduce using rule 96 + ';' reduce using rule 96 + '<' reduce using rule 96 + '<=' reduce using rule 96 + '=' reduce using rule 96 + '===' reduce using rule 96 + '=_{' reduce using rule 96 + '>' reduce using rule 96 + 'BOT' reduce using rule 96 + 'CUBE' reduce using rule 96 + 'TOP' reduce using rule 96 + 'TOPE' reduce using rule 96 + 'U' reduce using rule 96 + 'Unit' reduce using rule 96 + '[' reduce using rule 96 + '\\/' reduce using rule 96 + ']' reduce using rule 96 + 'as' reduce using rule 96 + 'idJ' reduce using rule 96 + 'recBOT' reduce using rule 96 + 'recOR' reduce using rule 96 + 'refl' reduce using rule 96 + 'refl_{' reduce using rule 96 + 'unit' reduce using rule 96 + '|' reduce using rule 96 + '|->' reduce using rule 96 + '}' reduce using rule 96 + '×' reduce using rule 96 + '→' reduce using rule 96 + '↦' reduce using rule 96 + '∧' reduce using rule 96 + '∨' reduce using rule 96 + '≡' reduce using rule 96 + '≤' reduce using rule 96 + '⊤' reduce using rule 96 + '⊥' reduce using rule 96 + L_VarIdentTokenreduce using rule 96 + L_HoleIdentTokenreduce using rule 96 + %eof reduce using rule 96 -State 56 +State 65 - Term1 -> '\\' . ListParam '->' Term1 (rule 115) + Term7 -> 'refl_{' . Term '}' (rule 97) + Term7 -> 'refl_{' . Term ':' Term '}' (rule 98) - '(' shift, and enter state 91 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - '{' shift, and enter state 94 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 88 - Param goto state 89 - ListParam goto state 171 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 178 -State 57 +State 66 - Term6 -> 'first' . Term7 (rule 122) + Term6 -> 'second' . Term7 (rule 139) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'unit' shift, and enter state 67 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 170 - -State 58 - - Term7 -> 'idJ' . '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 98) - - '(' shift, and enter state 169 - - -State 59 - - Term7 -> 'recBOT' . (rule 88) - - '(' reduce using rule 88 - ')' reduce using rule 88 - '*' reduce using rule 88 - '*_1' reduce using rule 88 - ',' reduce using rule 88 - '->' reduce using rule 88 - '/\\' reduce using rule 88 - '0_2' reduce using rule 88 - '1' reduce using rule 88 - '1_2' reduce using rule 88 - '2' reduce using rule 88 - ':' reduce using rule 88 - ':=' reduce using rule 88 - ';' reduce using rule 88 - '<' reduce using rule 88 - '<=' reduce using rule 88 - '=' reduce using rule 88 - '===' reduce using rule 88 - '=_{' reduce using rule 88 - '>' reduce using rule 88 - 'BOT' reduce using rule 88 - 'CUBE' reduce using rule 88 - 'TOP' reduce using rule 88 - 'TOPE' reduce using rule 88 - 'U' reduce using rule 88 - 'Unit' reduce using rule 88 - '[' reduce using rule 88 - '\\/' reduce using rule 88 - ']' reduce using rule 88 - 'as' reduce using rule 88 - 'idJ' reduce using rule 88 - 'recBOT' reduce using rule 88 - 'recOR' reduce using rule 88 - 'refl' reduce using rule 88 - 'refl_{' reduce using rule 88 - 'unit' reduce using rule 88 - '|' reduce using rule 88 - '|->' reduce using rule 88 - '}' reduce using rule 88 - '→' reduce using rule 88 - L_VarIdentTokenreduce using rule 88 - L_HoleIdentTokenreduce using rule 88 - %eof reduce using rule 88 - - -State 60 + Term7 goto state 177 - Term7 -> 'recOR' . '(' ListRestriction ')' (rule 89) - Term7 -> 'recOR' . '(' Term ',' Term ',' Term ',' Term ')' (rule 90) - - '(' shift, and enter state 168 - - -State 61 +State 67 - Term7 -> 'refl' . (rule 95) + Term7 -> 'unit' . (rule 95) '(' reduce using rule 95 ')' reduce using rule 95 '*' reduce using rule 95 '*_1' reduce using rule 95 + '*₁' reduce using rule 95 ',' reduce using rule 95 '->' reduce using rule 95 '/\\' reduce using rule 95 '0_2' reduce using rule 95 + '0₂' reduce using rule 95 '1' reduce using rule 95 '1_2' reduce using rule 95 + '1₂' reduce using rule 95 '2' reduce using rule 95 ':' reduce using rule 95 ':=' reduce using rule 95 @@ -2183,171 +2865,244 @@ State 61 '|' reduce using rule 95 '|->' reduce using rule 95 '}' reduce using rule 95 + '×' reduce using rule 95 '→' reduce using rule 95 + '↦' reduce using rule 95 + '∧' reduce using rule 95 + '∨' reduce using rule 95 + '≡' reduce using rule 95 + '≤' reduce using rule 95 + '⊤' reduce using rule 95 + '⊥' reduce using rule 95 L_VarIdentTokenreduce using rule 95 L_HoleIdentTokenreduce using rule 95 %eof reduce using rule 95 -State 62 +State 68 - Term7 -> 'refl_{' . Term '}' (rule 96) - Term7 -> 'refl_{' . Term ':' Term '}' (rule 97) + ParamDecl -> '{' . Pattern ':' Term '}' (rule 71) + ParamDecl -> '{' . '(' Pattern ':' Term ')' '|' Term '}' (rule 73) + ParamDecl -> '{' . Pattern ':' Term '|' Term '}' (rule 74) - '(' shift, and enter state 42 - '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '(' shift, and enter state 176 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - HoleIdentToken goto state 29 - HoleIdent goto state 30 - VarIdent goto state 31 - ParamDecl goto state 32 - Term7 goto state 33 - Term5 goto state 34 - Term4 goto state 35 - Term3 goto state 36 - Term2 goto state 37 - Term1 goto state 38 - Term6 goto state 39 - Term goto state 167 + VarIdent goto state 94 + Pattern goto state 175 + +State 69 + + Term1 -> 'Σ' . '(' Pattern ':' Term ')' ',' Term1 (rule 124) + + '(' shift, and enter state 174 -State 63 - Term6 -> 'second' . Term7 (rule 123) +State 70 + + Term6 -> 'π₁' . Term7 (rule 135) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'unit' shift, and enter state 67 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 166 + Term7 goto state 173 -State 64 +State 71 - Term7 -> 'unit' . (rule 94) + Term6 -> 'π₂' . Term7 (rule 136) - '(' reduce using rule 94 - ')' reduce using rule 94 - '*' reduce using rule 94 - '*_1' reduce using rule 94 - ',' reduce using rule 94 - '->' reduce using rule 94 - '/\\' reduce using rule 94 - '0_2' reduce using rule 94 - '1' reduce using rule 94 - '1_2' reduce using rule 94 - '2' reduce using rule 94 - ':' reduce using rule 94 - ':=' reduce using rule 94 - ';' reduce using rule 94 - '<' reduce using rule 94 - '<=' reduce using rule 94 - '=' reduce using rule 94 - '===' reduce using rule 94 - '=_{' reduce using rule 94 - '>' reduce using rule 94 - 'BOT' reduce using rule 94 - 'CUBE' reduce using rule 94 - 'TOP' reduce using rule 94 - 'TOPE' reduce using rule 94 - 'U' reduce using rule 94 - 'Unit' reduce using rule 94 - '[' reduce using rule 94 - '\\/' reduce using rule 94 - ']' reduce using rule 94 - 'as' reduce using rule 94 - 'idJ' reduce using rule 94 - 'recBOT' reduce using rule 94 - 'recOR' reduce using rule 94 - 'refl' reduce using rule 94 - 'refl_{' reduce using rule 94 - 'unit' reduce using rule 94 - '|' reduce using rule 94 - '|->' reduce using rule 94 - '}' reduce using rule 94 - '→' reduce using rule 94 - L_VarIdentTokenreduce using rule 94 - L_HoleIdentTokenreduce using rule 94 - %eof reduce using rule 94 + '(' shift, and enter state 79 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'unit' shift, and enter state 67 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 172 -State 65 +State 72 - ParamDecl -> '{' . Pattern ':' Term '}' (rule 71) - ParamDecl -> '{' . '(' Pattern ':' Term ')' '|' Term '}' (rule 73) - ParamDecl -> '{' . Pattern ':' Term '|' Term '}' (rule 74) + Term1 -> '∑' . '(' Pattern ':' Term ')' ',' Term1 (rule 132) - '(' shift, and enter state 165 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 171 - VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 164 -State 66 +State 73 - Term1 -> 'Σ' . '(' Pattern ':' Term ')' ',' Term1 (rule 118) + Term7 -> '⊤' . (rule 87) - '(' shift, and enter state 163 + '(' reduce using rule 87 + ')' reduce using rule 87 + '*' reduce using rule 87 + '*_1' reduce using rule 87 + '*₁' reduce using rule 87 + ',' reduce using rule 87 + '->' reduce using rule 87 + '/\\' reduce using rule 87 + '0_2' reduce using rule 87 + '0₂' reduce using rule 87 + '1' reduce using rule 87 + '1_2' reduce using rule 87 + '1₂' reduce using rule 87 + '2' reduce using rule 87 + ':' reduce using rule 87 + ':=' reduce using rule 87 + ';' reduce using rule 87 + '<' reduce using rule 87 + '<=' reduce using rule 87 + '=' reduce using rule 87 + '===' reduce using rule 87 + '=_{' reduce using rule 87 + '>' reduce using rule 87 + 'BOT' reduce using rule 87 + 'CUBE' reduce using rule 87 + 'TOP' reduce using rule 87 + 'TOPE' reduce using rule 87 + 'U' reduce using rule 87 + 'Unit' reduce using rule 87 + '[' reduce using rule 87 + '\\/' reduce using rule 87 + ']' reduce using rule 87 + 'as' reduce using rule 87 + 'idJ' reduce using rule 87 + 'recBOT' reduce using rule 87 + 'recOR' reduce using rule 87 + 'refl' reduce using rule 87 + 'refl_{' reduce using rule 87 + 'unit' reduce using rule 87 + '|' reduce using rule 87 + '|->' reduce using rule 87 + '}' reduce using rule 87 + '×' reduce using rule 87 + '→' reduce using rule 87 + '↦' reduce using rule 87 + '∧' reduce using rule 87 + '∨' reduce using rule 87 + '≡' reduce using rule 87 + '≤' reduce using rule 87 + '⊤' reduce using rule 87 + '⊥' reduce using rule 87 + L_VarIdentTokenreduce using rule 87 + L_HoleIdentTokenreduce using rule 87 + %eof reduce using rule 87 -State 67 +State 74 - Term1 -> '∑' . '(' Pattern ':' Term ')' ',' Term1 (rule 119) + Term7 -> '⊥' . (rule 88) - '(' shift, and enter state 162 + '(' reduce using rule 88 + ')' reduce using rule 88 + '*' reduce using rule 88 + '*_1' reduce using rule 88 + '*₁' reduce using rule 88 + ',' reduce using rule 88 + '->' reduce using rule 88 + '/\\' reduce using rule 88 + '0_2' reduce using rule 88 + '0₂' reduce using rule 88 + '1' reduce using rule 88 + '1_2' reduce using rule 88 + '1₂' reduce using rule 88 + '2' reduce using rule 88 + ':' reduce using rule 88 + ':=' reduce using rule 88 + ';' reduce using rule 88 + '<' reduce using rule 88 + '<=' reduce using rule 88 + '=' reduce using rule 88 + '===' reduce using rule 88 + '=_{' reduce using rule 88 + '>' reduce using rule 88 + 'BOT' reduce using rule 88 + 'CUBE' reduce using rule 88 + 'TOP' reduce using rule 88 + 'TOPE' reduce using rule 88 + 'U' reduce using rule 88 + 'Unit' reduce using rule 88 + '[' reduce using rule 88 + '\\/' reduce using rule 88 + ']' reduce using rule 88 + 'as' reduce using rule 88 + 'idJ' reduce using rule 88 + 'recBOT' reduce using rule 88 + 'recOR' reduce using rule 88 + 'refl' reduce using rule 88 + 'refl_{' reduce using rule 88 + 'unit' reduce using rule 88 + '|' reduce using rule 88 + '|->' reduce using rule 88 + '}' reduce using rule 88 + '×' reduce using rule 88 + '→' reduce using rule 88 + '↦' reduce using rule 88 + '∧' reduce using rule 88 + '∨' reduce using rule 88 + '≡' reduce using rule 88 + '≤' reduce using rule 88 + '⊤' reduce using rule 88 + '⊥' reduce using rule 88 + L_VarIdentTokenreduce using rule 88 + L_HoleIdentTokenreduce using rule 88 + %eof reduce using rule 88 -State 68 +State 75 VarIdentToken -> L_VarIdentToken . (rule 27) @@ -2355,12 +3110,15 @@ State 68 ')' reduce using rule 27 '*' reduce using rule 27 '*_1' reduce using rule 27 + '*₁' reduce using rule 27 ',' reduce using rule 27 '->' reduce using rule 27 '/\\' reduce using rule 27 '0_2' reduce using rule 27 + '0₂' reduce using rule 27 '1' reduce using rule 27 '1_2' reduce using rule 27 + '1₂' reduce using rule 27 '2' reduce using rule 27 ':' reduce using rule 27 ':=' reduce using rule 27 @@ -2393,13 +3151,21 @@ State 68 '|' reduce using rule 27 '|->' reduce using rule 27 '}' reduce using rule 27 + '×' reduce using rule 27 '→' reduce using rule 27 + '↦' reduce using rule 27 + '∧' reduce using rule 27 + '∨' reduce using rule 27 + '≡' reduce using rule 27 + '≤' reduce using rule 27 + '⊤' reduce using rule 27 + '⊥' reduce using rule 27 L_VarIdentTokenreduce using rule 27 L_HoleIdentTokenreduce using rule 27 %eof reduce using rule 27 -State 69 +State 76 HoleIdentToken -> L_HoleIdentToken . (rule 28) @@ -2407,12 +3173,15 @@ State 69 ')' reduce using rule 28 '*' reduce using rule 28 '*_1' reduce using rule 28 + '*₁' reduce using rule 28 ',' reduce using rule 28 '->' reduce using rule 28 '/\\' reduce using rule 28 '0_2' reduce using rule 28 + '0₂' reduce using rule 28 '1' reduce using rule 28 '1_2' reduce using rule 28 + '1₂' reduce using rule 28 '2' reduce using rule 28 ':' reduce using rule 28 ':=' reduce using rule 28 @@ -2442,88 +3211,108 @@ State 69 '|' reduce using rule 28 '|->' reduce using rule 28 '}' reduce using rule 28 + '×' reduce using rule 28 '→' reduce using rule 28 + '↦' reduce using rule 28 + '∧' reduce using rule 28 + '∨' reduce using rule 28 + '≡' reduce using rule 28 + '≤' reduce using rule 28 + '⊤' reduce using rule 28 + '⊥' reduce using rule 28 L_VarIdentTokenreduce using rule 28 L_HoleIdentTokenreduce using rule 28 %eof reduce using rule 28 -State 70 +State 77 %start_pTerm_internal -> Term . (rule 24) %eof accept -State 71 +State 78 %start_pTerm6_internal -> Term6 . (rule 23) - Term6 -> Term6 . '[' ListRestriction ']' (rule 120) - Term6 -> Term6 . Term7 (rule 121) + Term6 -> Term6 . '[' ListRestriction ']' (rule 133) + Term6 -> Term6 . Term7 (rule 134) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '[' shift, and enter state 155 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '[' shift, and enter state 162 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'unit' shift, and enter state 67 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 %eof accept VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 154 + Term7 goto state 161 -State 72 +State 79 - Term7 -> '(' . Term ',' Term ')' (rule 93) - Term7 -> '(' . Term ')' (rule 101) + Term7 -> '(' . Term ',' Term ')' (rule 94) + Term7 -> '(' . Term ')' (rule 102) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -2537,204 +3326,226 @@ State 72 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 161 - -State 73 + Term goto state 170 - Term1 -> Term2 . '=_{' Term '}' Term2 (rule 113) - Term1 -> Term2 . '=' Term2 (rule 114) - Term1 -> Term2 . (rule 116) +State 80 - ')' reduce using rule 116 - ',' reduce using rule 116 - ':' reduce using rule 116 - ':=' reduce using rule 116 - ';' reduce using rule 116 - '=' shift, and enter state 159 - '=_{' shift, and enter state 160 - '>' reduce using rule 116 - ']' reduce using rule 116 - '|' reduce using rule 116 - '|->' reduce using rule 116 - '}' reduce using rule 116 - %eof reduce using rule 116 + Term1 -> Term2 . '=_{' Term '}' Term2 (rule 125) + Term1 -> Term2 . '=' Term2 (rule 126) + Term1 -> Term2 . (rule 128) + + ')' reduce using rule 128 + ',' reduce using rule 128 + ':' reduce using rule 128 + ':=' reduce using rule 128 + ';' reduce using rule 128 + '=' shift, and enter state 168 + '=_{' shift, and enter state 169 + '>' reduce using rule 128 + ']' reduce using rule 128 + '|' reduce using rule 128 + '|->' reduce using rule 128 + '}' reduce using rule 128 + '↦' reduce using rule 128 + %eof reduce using rule 128 -State 74 +State 81 %start_pTerm1_internal -> Term1 . (rule 22) %eof accept -State 75 +State 82 %start_pTerm2_internal -> Term2 . (rule 21) %eof accept -State 76 +State 83 - Term5 -> Term6 . (rule 103) - Term6 -> Term6 . '[' ListRestriction ']' (rule 120) - Term6 -> Term6 . Term7 (rule 121) + Term5 -> Term6 . (rule 110) + Term6 -> Term6 . '[' ListRestriction ']' (rule 133) + Term6 -> Term6 . Term7 (rule 134) - '(' shift, and enter state 72 - ')' reduce using rule 103 - '*' reduce using rule 103 + '(' shift, and enter state 79 + ')' reduce using rule 110 + '*' reduce using rule 110 '*_1' shift, and enter state 43 - ',' reduce using rule 103 - '/\\' reduce using rule 103 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - ':' reduce using rule 103 - ':=' reduce using rule 103 - ';' reduce using rule 103 - '<' shift, and enter state 48 - '<=' reduce using rule 103 - '=' reduce using rule 103 - '===' reduce using rule 103 - '=_{' reduce using rule 103 - '>' reduce using rule 103 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '[' shift, and enter state 155 - '\\/' reduce using rule 103 - ']' reduce using rule 103 - 'as' reduce using rule 103 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'unit' shift, and enter state 64 - '|' reduce using rule 103 - '|->' reduce using rule 103 - '}' reduce using rule 103 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 - %eof reduce using rule 103 + '*₁' shift, and enter state 44 + ',' reduce using rule 110 + '/\\' reduce using rule 110 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + ':' reduce using rule 110 + ':=' reduce using rule 110 + ';' reduce using rule 110 + '<' shift, and enter state 51 + '<=' reduce using rule 110 + '=' reduce using rule 110 + '===' reduce using rule 110 + '=_{' reduce using rule 110 + '>' reduce using rule 110 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '[' shift, and enter state 162 + '\\/' reduce using rule 110 + ']' reduce using rule 110 + 'as' reduce using rule 110 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'unit' shift, and enter state 67 + '|' reduce using rule 110 + '|->' reduce using rule 110 + '}' reduce using rule 110 + '×' reduce using rule 110 + '↦' reduce using rule 110 + '∧' reduce using rule 110 + '∨' reduce using rule 110 + '≡' reduce using rule 110 + '≤' reduce using rule 110 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + %eof reduce using rule 110 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 154 + Term7 goto state 161 -State 77 +State 84 %start_pTerm3_internal -> Term3 . (rule 20) %eof accept -State 78 +State 85 %start_pTerm4_internal -> Term4 . (rule 19) %eof accept -State 79 +State 86 %start_pTerm5_internal -> Term5 . (rule 18) - Term5 -> Term5 . '*' Term6 (rule 102) + Term5 -> Term5 . '×' Term6 (rule 109) + Term5 -> Term5 . '*' Term6 (rule 111) - '*' shift, and enter state 158 + '*' shift, and enter state 166 + '×' shift, and enter state 167 %eof accept -State 80 +State 87 %start_pTerm7_internal -> Term7 . (rule 17) %eof accept -State 81 +State 88 - ListRestriction -> Restriction . (rule 76) - ListRestriction -> Restriction . ',' ListRestriction (rule 77) + ListRestriction -> Restriction . (rule 77) + ListRestriction -> Restriction . ',' ListRestriction (rule 78) - ')' reduce using rule 76 - ',' shift, and enter state 157 - ']' reduce using rule 76 - %eof reduce using rule 76 + ')' reduce using rule 77 + ',' shift, and enter state 165 + ']' reduce using rule 77 + %eof reduce using rule 77 -State 82 +State 89 %start_pListRestriction_internal -> ListRestriction . (rule 16) %eof accept -State 83 +State 90 - Restriction -> Term . '|->' Term (rule 75) + Restriction -> Term . '↦' Term (rule 75) + Restriction -> Term . '|->' Term (rule 76) - '|->' shift, and enter state 156 + '|->' shift, and enter state 163 + '↦' shift, and enter state 164 -State 84 +State 91 %start_pRestriction_internal -> Restriction . (rule 15) %eof accept -State 85 +State 92 %start_pParamDecl_internal -> ParamDecl . (rule 14) %eof accept -State 86 +State 93 ParamDecl -> Term6 . (rule 69) - Term6 -> Term6 . '[' ListRestriction ']' (rule 120) - Term6 -> Term6 . Term7 (rule 121) + Term6 -> Term6 . '[' ListRestriction ']' (rule 133) + Term6 -> Term6 . Term7 (rule 134) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 '->' reduce using rule 69 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '[' shift, and enter state 155 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '[' shift, and enter state 162 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'unit' shift, and enter state 67 + '→' reduce using rule 69 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 %eof reduce using rule 69 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 154 + Term7 goto state 161 -State 87 +State 94 Pattern -> VarIdent . (rule 60) @@ -2746,11 +3557,12 @@ State 87 '_' reduce using rule 60 'unit' reduce using rule 60 '{' reduce using rule 60 + '→' reduce using rule 60 L_VarIdentTokenreduce using rule 60 %eof reduce using rule 60 -State 88 +State 95 Param -> Pattern . (rule 64) @@ -2760,53 +3572,55 @@ State 88 '_' reduce using rule 64 'unit' reduce using rule 64 '{' reduce using rule 64 + '→' reduce using rule 64 L_VarIdentTokenreduce using rule 64 %eof reduce using rule 64 -State 89 +State 96 ListParam -> Param . (rule 67) ListParam -> Param . ListParam (rule 68) - '(' shift, and enter state 91 + '(' shift, and enter state 98 '->' reduce using rule 67 ':' reduce using rule 67 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - '{' shift, and enter state 94 - L_VarIdentTokenshift, and enter state 68 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + '{' shift, and enter state 101 + '→' reduce using rule 67 + L_VarIdentTokenshift, and enter state 75 %eof reduce using rule 67 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 88 - Param goto state 89 - ListParam goto state 153 + VarIdent goto state 94 + Pattern goto state 95 + Param goto state 96 + ListParam goto state 160 -State 90 +State 97 %start_pListParam_internal -> ListParam . (rule 13) %eof accept -State 91 +State 98 Pattern -> '(' . Pattern ',' Pattern ')' (rule 61) Param -> '(' . ListPattern ':' Term ')' (rule 65) - '(' shift, and enter state 98 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 105 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 151 - ListPattern goto state 152 + VarIdent goto state 94 + Pattern goto state 158 + ListPattern goto state 159 -State 92 +State 99 Pattern -> '_' . (rule 58) @@ -2818,11 +3632,12 @@ State 92 '_' reduce using rule 58 'unit' reduce using rule 58 '{' reduce using rule 58 + '→' reduce using rule 58 L_VarIdentTokenreduce using rule 58 %eof reduce using rule 58 -State 93 +State 100 Pattern -> 'unit' . (rule 59) @@ -2834,75 +3649,76 @@ State 93 '_' reduce using rule 59 'unit' reduce using rule 59 '{' reduce using rule 59 + '→' reduce using rule 59 L_VarIdentTokenreduce using rule 59 %eof reduce using rule 59 -State 94 +State 101 Param -> '{' . Pattern ':' Term '|' Term '}' (rule 66) - '(' shift, and enter state 98 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 105 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 150 + VarIdent goto state 94 + Pattern goto state 157 -State 95 +State 102 %start_pParam_internal -> Param . (rule 12) %eof accept -State 96 +State 103 ListPattern -> Pattern . (rule 62) ListPattern -> Pattern . ListPattern (rule 63) - '(' shift, and enter state 98 + '(' shift, and enter state 105 ':' reduce using rule 62 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 %eof reduce using rule 62 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 96 - ListPattern goto state 149 + VarIdent goto state 94 + Pattern goto state 103 + ListPattern goto state 156 -State 97 +State 104 %start_pListPattern_internal -> ListPattern . (rule 11) %eof accept -State 98 +State 105 Pattern -> '(' . Pattern ',' Pattern ')' (rule 61) - '(' shift, and enter state 98 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 105 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 148 + VarIdent goto state 94 + Pattern goto state 155 -State 99 +State 106 %start_pPattern_internal -> Pattern . (rule 10) %eof accept -State 100 +State 107 SectionName -> VarIdent . (rule 57) @@ -2910,83 +3726,90 @@ State 100 %eof reduce using rule 57 -State 101 +State 108 %start_pSectionName_internal -> SectionName . (rule 9) %eof accept -State 102 +State 109 %start_pDeclUsedVars_internal -> DeclUsedVars . (rule 8) %eof accept -State 103 +State 110 DeclUsedVars -> 'uses' . '(' ListVarIdent ')' (rule 54) - '(' shift, and enter state 147 + '(' shift, and enter state 154 -State 104 +State 111 ListCommand -> Command . ';' ListCommand (rule 53) - ';' shift, and enter state 146 + ';' shift, and enter state 153 -State 105 +State 112 %start_pListCommand_internal -> ListCommand . (rule 7) %eof accept -State 106 +State 113 Command -> '#assume' . ListVarIdent ':' Term (rule 44) - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 124 - ListVarIdent goto state 145 + VarIdent goto state 131 + ListVarIdent goto state 152 -State 107 +State 114 Command -> '#check' . Term ':' Term (rule 38) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -3000,40 +3823,47 @@ State 107 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 144 + Term goto state 151 -State 108 +State 115 Command -> '#compute' . Term (rule 39) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -3047,40 +3877,47 @@ State 108 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 143 + Term goto state 150 -State 109 +State 116 Command -> '#compute-nf' . Term (rule 41) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -3094,40 +3931,47 @@ State 109 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 142 + Term goto state 149 -State 110 +State 117 Command -> '#compute-whnf' . Term (rule 40) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -3141,99 +3985,99 @@ State 110 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 141 + Term goto state 148 -State 111 +State 118 Command -> '#def' . VarIdent DeclUsedVars ListParam ':' Term ':=' Term (rule 50) Command -> '#def' . VarIdent DeclUsedVars ':' Term ':=' Term (rule 51) - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 140 + VarIdent goto state 147 -State 112 +State 119 Command -> '#define' . VarIdent DeclUsedVars ListParam ':' Term ':=' Term (rule 48) Command -> '#define' . VarIdent DeclUsedVars ':' Term ':=' Term (rule 49) - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 139 + VarIdent goto state 146 -State 113 +State 120 Command -> '#postulate' . VarIdent DeclUsedVars ListParam ':' Term (rule 42) Command -> '#postulate' . VarIdent DeclUsedVars ':' Term (rule 43) - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 138 + VarIdent goto state 145 -State 114 +State 121 Command -> '#section' . SectionName ';' ListCommand '#end' SectionName (rule 47) ';' reduce using rule 56 - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 100 - SectionName goto state 137 + VarIdent goto state 107 + SectionName goto state 144 -State 115 +State 122 Command -> '#set-option' . String '=' String (rule 36) L_quoted shift, and enter state 27 - String goto state 136 + String goto state 143 -State 116 +State 123 Command -> '#unset-option' . String (rule 37) L_quoted shift, and enter state 27 - String goto state 135 + String goto state 142 -State 117 +State 124 Command -> '#variable' . VarIdent ':' Term (rule 45) - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 134 + VarIdent goto state 141 -State 118 +State 125 Command -> '#variables' . ListVarIdent ':' Term (rule 46) - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 124 - ListVarIdent goto state 133 + VarIdent goto state 131 + ListVarIdent goto state 140 -State 119 +State 126 %start_pCommand_internal -> Command . (rule 6) %eof accept -State 120 +State 127 %start_pLanguage_internal -> Language . (rule 5) %eof accept -State 121 +State 128 Language -> 'rzk-1' . (rule 35) @@ -3241,93 +4085,93 @@ State 121 %eof reduce using rule 35 -State 122 +State 129 %start_pLanguageDecl_internal -> LanguageDecl . (rule 4) %eof accept -State 123 +State 130 LanguageDecl -> '#lang' . Language ';' (rule 34) - 'rzk-1' shift, and enter state 121 + 'rzk-1' shift, and enter state 128 - Language goto state 132 + Language goto state 139 -State 124 +State 131 ListVarIdent -> VarIdent . (rule 32) ListVarIdent -> VarIdent . ListVarIdent (rule 33) ')' reduce using rule 32 ':' reduce using rule 32 - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 %eof reduce using rule 32 VarIdentToken goto state 28 - VarIdent goto state 124 - ListVarIdent goto state 131 + VarIdent goto state 131 + ListVarIdent goto state 138 -State 125 +State 132 %start_pListVarIdent_internal -> ListVarIdent . (rule 3) %eof accept -State 126 +State 133 %start_pVarIdent_internal -> VarIdent . (rule 2) %eof accept -State 127 +State 134 %start_pHoleIdent_internal -> HoleIdent . (rule 1) %eof accept -State 128 +State 135 %start_pModule_internal -> Module . (rule 0) %eof accept -State 129 +State 136 Module -> LanguageDecl . ListCommand (rule 29) - '#assume' shift, and enter state 106 - '#check' shift, and enter state 107 - '#compute' shift, and enter state 108 - '#compute-nf' shift, and enter state 109 - '#compute-whnf'shift, and enter state 110 - '#def' shift, and enter state 111 - '#define' shift, and enter state 112 - '#postulate' shift, and enter state 113 - '#section' shift, and enter state 114 - '#set-option' shift, and enter state 115 - '#unset-option'shift, and enter state 116 - '#variable' shift, and enter state 117 - '#variables' shift, and enter state 118 + '#assume' shift, and enter state 113 + '#check' shift, and enter state 114 + '#compute' shift, and enter state 115 + '#compute-nf' shift, and enter state 116 + '#compute-whnf'shift, and enter state 117 + '#def' shift, and enter state 118 + '#define' shift, and enter state 119 + '#postulate' shift, and enter state 120 + '#section' shift, and enter state 121 + '#set-option' shift, and enter state 122 + '#unset-option'shift, and enter state 123 + '#variable' shift, and enter state 124 + '#variables' shift, and enter state 125 %eof reduce using rule 52 - Command goto state 104 - ListCommand goto state 130 + Command goto state 111 + ListCommand goto state 137 -State 130 +State 137 Module -> LanguageDecl ListCommand . (rule 29) %eof reduce using rule 29 -State 131 +State 138 ListVarIdent -> VarIdent ListVarIdent . (rule 33) @@ -3336,28 +4180,28 @@ State 131 %eof reduce using rule 33 -State 132 +State 139 LanguageDecl -> '#lang' Language . ';' (rule 34) - ';' shift, and enter state 228 + ';' shift, and enter state 251 -State 133 +State 140 Command -> '#variables' ListVarIdent . ':' Term (rule 46) - ':' shift, and enter state 227 + ':' shift, and enter state 250 -State 134 +State 141 Command -> '#variable' VarIdent . ':' Term (rule 45) - ':' shift, and enter state 226 + ':' shift, and enter state 249 -State 135 +State 142 Command -> '#unset-option' String . (rule 37) @@ -3365,21 +4209,21 @@ State 135 %eof reduce using rule 37 -State 136 +State 143 Command -> '#set-option' String . '=' String (rule 36) - '=' shift, and enter state 225 + '=' shift, and enter state 248 -State 137 +State 144 Command -> '#section' SectionName . ';' ListCommand '#end' SectionName (rule 47) - ';' shift, and enter state 224 + ';' shift, and enter state 247 -State 138 +State 145 Command -> '#postulate' VarIdent . DeclUsedVars ListParam ':' Term (rule 42) Command -> '#postulate' VarIdent . DeclUsedVars ':' Term (rule 43) @@ -3388,13 +4232,13 @@ State 138 ':' reduce using rule 55 '_' reduce using rule 55 'unit' reduce using rule 55 - 'uses' shift, and enter state 103 + 'uses' shift, and enter state 110 '{' reduce using rule 55 L_VarIdentTokenreduce using rule 55 - DeclUsedVars goto state 223 + DeclUsedVars goto state 246 -State 139 +State 146 Command -> '#define' VarIdent . DeclUsedVars ListParam ':' Term ':=' Term (rule 48) Command -> '#define' VarIdent . DeclUsedVars ':' Term ':=' Term (rule 49) @@ -3403,13 +4247,13 @@ State 139 ':' reduce using rule 55 '_' reduce using rule 55 'unit' reduce using rule 55 - 'uses' shift, and enter state 103 + 'uses' shift, and enter state 110 '{' reduce using rule 55 L_VarIdentTokenreduce using rule 55 - DeclUsedVars goto state 222 + DeclUsedVars goto state 245 -State 140 +State 147 Command -> '#def' VarIdent . DeclUsedVars ListParam ':' Term ':=' Term (rule 50) Command -> '#def' VarIdent . DeclUsedVars ':' Term ':=' Term (rule 51) @@ -3418,13 +4262,13 @@ State 140 ':' reduce using rule 55 '_' reduce using rule 55 'unit' reduce using rule 55 - 'uses' shift, and enter state 103 + 'uses' shift, and enter state 110 '{' reduce using rule 55 L_VarIdentTokenreduce using rule 55 - DeclUsedVars goto state 221 + DeclUsedVars goto state 244 -State 141 +State 148 Command -> '#compute-whnf' Term . (rule 40) @@ -3432,7 +4276,7 @@ State 141 %eof reduce using rule 40 -State 142 +State 149 Command -> '#compute-nf' Term . (rule 41) @@ -3440,7 +4284,7 @@ State 142 %eof reduce using rule 41 -State 143 +State 150 Command -> '#compute' Term . (rule 39) @@ -3448,61 +4292,61 @@ State 143 %eof reduce using rule 39 -State 144 +State 151 Command -> '#check' Term . ':' Term (rule 38) - ':' shift, and enter state 220 + ':' shift, and enter state 243 -State 145 +State 152 Command -> '#assume' ListVarIdent . ':' Term (rule 44) - ':' shift, and enter state 219 + ':' shift, and enter state 242 -State 146 +State 153 ListCommand -> Command ';' . ListCommand (rule 53) - '#assume' shift, and enter state 106 - '#check' shift, and enter state 107 - '#compute' shift, and enter state 108 - '#compute-nf' shift, and enter state 109 - '#compute-whnf'shift, and enter state 110 - '#def' shift, and enter state 111 - '#define' shift, and enter state 112 + '#assume' shift, and enter state 113 + '#check' shift, and enter state 114 + '#compute' shift, and enter state 115 + '#compute-nf' shift, and enter state 116 + '#compute-whnf'shift, and enter state 117 + '#def' shift, and enter state 118 + '#define' shift, and enter state 119 '#end' reduce using rule 52 - '#postulate' shift, and enter state 113 - '#section' shift, and enter state 114 - '#set-option' shift, and enter state 115 - '#unset-option'shift, and enter state 116 - '#variable' shift, and enter state 117 - '#variables' shift, and enter state 118 + '#postulate' shift, and enter state 120 + '#section' shift, and enter state 121 + '#set-option' shift, and enter state 122 + '#unset-option'shift, and enter state 123 + '#variable' shift, and enter state 124 + '#variables' shift, and enter state 125 %eof reduce using rule 52 - Command goto state 104 - ListCommand goto state 218 + Command goto state 111 + ListCommand goto state 241 -State 147 +State 154 DeclUsedVars -> 'uses' '(' . ListVarIdent ')' (rule 54) - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 124 - ListVarIdent goto state 217 + VarIdent goto state 131 + ListVarIdent goto state 240 -State 148 +State 155 Pattern -> '(' Pattern . ',' Pattern ')' (rule 61) - ',' shift, and enter state 215 + ',' shift, and enter state 238 -State 149 +State 156 ListPattern -> Pattern ListPattern . (rule 63) @@ -3510,136 +4354,209 @@ State 149 %eof reduce using rule 63 -State 150 +State 157 Param -> '{' Pattern . ':' Term '|' Term '}' (rule 66) - ':' shift, and enter state 216 + ':' shift, and enter state 239 -State 151 +State 158 Pattern -> '(' Pattern . ',' Pattern ')' (rule 61) ListPattern -> Pattern . (rule 62) ListPattern -> Pattern . ListPattern (rule 63) - '(' shift, and enter state 98 - ',' shift, and enter state 215 + '(' shift, and enter state 105 + ',' shift, and enter state 238 ':' reduce using rule 62 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 96 - ListPattern goto state 149 + VarIdent goto state 94 + Pattern goto state 103 + ListPattern goto state 156 -State 152 +State 159 Param -> '(' ListPattern . ':' Term ')' (rule 65) - ':' shift, and enter state 214 + ':' shift, and enter state 237 -State 153 +State 160 ListParam -> Param ListParam . (rule 68) '->' reduce using rule 68 ':' reduce using rule 68 + '→' reduce using rule 68 %eof reduce using rule 68 -State 154 +State 161 - Term6 -> Term6 Term7 . (rule 121) + Term6 -> Term6 Term7 . (rule 134) + + '(' reduce using rule 134 + ')' reduce using rule 134 + '*' reduce using rule 134 + '*_1' reduce using rule 134 + '*₁' reduce using rule 134 + ',' reduce using rule 134 + '->' reduce using rule 134 + '/\\' reduce using rule 134 + '0_2' reduce using rule 134 + '0₂' reduce using rule 134 + '1' reduce using rule 134 + '1_2' reduce using rule 134 + '1₂' reduce using rule 134 + '2' reduce using rule 134 + ':' reduce using rule 134 + ':=' reduce using rule 134 + ';' reduce using rule 134 + '<' reduce using rule 134 + '<=' reduce using rule 134 + '=' reduce using rule 134 + '===' reduce using rule 134 + '=_{' reduce using rule 134 + '>' reduce using rule 134 + 'BOT' reduce using rule 134 + 'CUBE' reduce using rule 134 + 'TOP' reduce using rule 134 + 'TOPE' reduce using rule 134 + 'U' reduce using rule 134 + 'Unit' reduce using rule 134 + '[' reduce using rule 134 + '\\/' reduce using rule 134 + ']' reduce using rule 134 + 'as' reduce using rule 134 + 'idJ' reduce using rule 134 + 'recBOT' reduce using rule 134 + 'recOR' reduce using rule 134 + 'refl' reduce using rule 134 + 'refl_{' reduce using rule 134 + 'unit' reduce using rule 134 + '|' reduce using rule 134 + '|->' reduce using rule 134 + '}' reduce using rule 134 + '×' reduce using rule 134 + '→' reduce using rule 134 + '↦' reduce using rule 134 + '∧' reduce using rule 134 + '∨' reduce using rule 134 + '≡' reduce using rule 134 + '≤' reduce using rule 134 + '⊤' reduce using rule 134 + '⊥' reduce using rule 134 + L_VarIdentTokenreduce using rule 134 + L_HoleIdentTokenreduce using rule 134 + %eof reduce using rule 134 - '(' reduce using rule 121 - ')' reduce using rule 121 - '*' reduce using rule 121 - '*_1' reduce using rule 121 - ',' reduce using rule 121 - '->' reduce using rule 121 - '/\\' reduce using rule 121 - '0_2' reduce using rule 121 - '1' reduce using rule 121 - '1_2' reduce using rule 121 - '2' reduce using rule 121 - ':' reduce using rule 121 - ':=' reduce using rule 121 - ';' reduce using rule 121 - '<' reduce using rule 121 - '<=' reduce using rule 121 - '=' reduce using rule 121 - '===' reduce using rule 121 - '=_{' reduce using rule 121 - '>' reduce using rule 121 - 'BOT' reduce using rule 121 - 'CUBE' reduce using rule 121 - 'TOP' reduce using rule 121 - 'TOPE' reduce using rule 121 - 'U' reduce using rule 121 - 'Unit' reduce using rule 121 - '[' reduce using rule 121 - '\\/' reduce using rule 121 - ']' reduce using rule 121 - 'as' reduce using rule 121 - 'idJ' reduce using rule 121 - 'recBOT' reduce using rule 121 - 'recOR' reduce using rule 121 - 'refl' reduce using rule 121 - 'refl_{' reduce using rule 121 - 'unit' reduce using rule 121 - '|' reduce using rule 121 - '|->' reduce using rule 121 - '}' reduce using rule 121 - '→' reduce using rule 121 - L_VarIdentTokenreduce using rule 121 - L_HoleIdentTokenreduce using rule 121 - %eof reduce using rule 121 +State 162 -State 155 + Term6 -> Term6 '[' . ListRestriction ']' (rule 133) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Restriction goto state 88 + ListRestrictiongoto state 236 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 90 + +State 163 - Term6 -> Term6 '[' . ListRestriction ']' (rule 120) + Restriction -> Term '|->' . Term (rule 76) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 ParamDecl goto state 32 - Restriction goto state 81 - ListRestrictiongoto state 213 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 @@ -3647,40 +4564,47 @@ State 155 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 83 + Term goto state 235 -State 156 +State 164 - Restriction -> Term '|->' . Term (rule 75) + Restriction -> Term '↦' . Term (rule 75) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -3694,48 +4618,55 @@ State 156 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 212 + Term goto state 234 -State 157 +State 165 - ListRestriction -> Restriction ',' . ListRestriction (rule 77) + ListRestriction -> Restriction ',' . ListRestriction (rule 78) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 ParamDecl goto state 32 - Restriction goto state 81 - ListRestrictiongoto state 211 + Restriction goto state 88 + ListRestrictiongoto state 233 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 @@ -3743,70 +4674,126 @@ State 157 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 83 + Term goto state 90 -State 158 +State 166 - Term5 -> Term5 '*' . Term6 (rule 102) + Term5 -> Term5 '*' . Term6 (rule 111) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term6 goto state 210 + Term6 goto state 232 -State 159 +State 167 - Term1 -> Term2 '=' . Term2 (rule 114) + Term5 -> Term5 '×' . Term6 (rule 109) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term6 goto state 231 + +State 168 + + Term1 -> Term2 '=' . Term2 (rule 126) + + '(' shift, and enter state 79 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -3816,41 +4803,48 @@ State 159 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 209 - Term6 goto state 76 + Term2 goto state 230 + Term6 goto state 83 -State 160 +State 169 - Term1 -> Term2 '=_{' . Term '}' Term2 (rule 113) + Term1 -> Term2 '=_{' . Term '}' Term2 (rule 125) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -3864,164 +4858,302 @@ State 160 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 208 + Term goto state 229 -State 161 +State 170 - Term7 -> '(' Term . ',' Term ')' (rule 93) - Term7 -> '(' Term . ')' (rule 101) + Term7 -> '(' Term . ',' Term ')' (rule 94) + Term7 -> '(' Term . ')' (rule 102) - ')' shift, and enter state 206 - ',' shift, and enter state 207 + ')' shift, and enter state 227 + ',' shift, and enter state 228 -State 162 +State 171 - Term1 -> '∑' '(' . Pattern ':' Term ')' ',' Term1 (rule 119) + Term1 -> '∑' '(' . Pattern ':' Term ')' ',' Term1 (rule 132) - '(' shift, and enter state 98 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 105 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 205 + VarIdent goto state 94 + Pattern goto state 226 -State 163 +State 172 - Term1 -> 'Σ' '(' . Pattern ':' Term ')' ',' Term1 (rule 118) + Term6 -> 'π₂' Term7 . (rule 136) + + '(' reduce using rule 136 + ')' reduce using rule 136 + '*' reduce using rule 136 + '*_1' reduce using rule 136 + '*₁' reduce using rule 136 + ',' reduce using rule 136 + '->' reduce using rule 136 + '/\\' reduce using rule 136 + '0_2' reduce using rule 136 + '0₂' reduce using rule 136 + '1' reduce using rule 136 + '1_2' reduce using rule 136 + '1₂' reduce using rule 136 + '2' reduce using rule 136 + ':' reduce using rule 136 + ':=' reduce using rule 136 + ';' reduce using rule 136 + '<' reduce using rule 136 + '<=' reduce using rule 136 + '=' reduce using rule 136 + '===' reduce using rule 136 + '=_{' reduce using rule 136 + '>' reduce using rule 136 + 'BOT' reduce using rule 136 + 'CUBE' reduce using rule 136 + 'TOP' reduce using rule 136 + 'TOPE' reduce using rule 136 + 'U' reduce using rule 136 + 'Unit' reduce using rule 136 + '[' reduce using rule 136 + '\\/' reduce using rule 136 + ']' reduce using rule 136 + 'as' reduce using rule 136 + 'idJ' reduce using rule 136 + 'recBOT' reduce using rule 136 + 'recOR' reduce using rule 136 + 'refl' reduce using rule 136 + 'refl_{' reduce using rule 136 + 'unit' reduce using rule 136 + '|' reduce using rule 136 + '|->' reduce using rule 136 + '}' reduce using rule 136 + '×' reduce using rule 136 + '→' reduce using rule 136 + '↦' reduce using rule 136 + '∧' reduce using rule 136 + '∨' reduce using rule 136 + '≡' reduce using rule 136 + '≤' reduce using rule 136 + '⊤' reduce using rule 136 + '⊥' reduce using rule 136 + L_VarIdentTokenreduce using rule 136 + L_HoleIdentTokenreduce using rule 136 + %eof reduce using rule 136 - '(' shift, and enter state 98 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + +State 173 + + Term6 -> 'π₁' Term7 . (rule 135) + + '(' reduce using rule 135 + ')' reduce using rule 135 + '*' reduce using rule 135 + '*_1' reduce using rule 135 + '*₁' reduce using rule 135 + ',' reduce using rule 135 + '->' reduce using rule 135 + '/\\' reduce using rule 135 + '0_2' reduce using rule 135 + '0₂' reduce using rule 135 + '1' reduce using rule 135 + '1_2' reduce using rule 135 + '1₂' reduce using rule 135 + '2' reduce using rule 135 + ':' reduce using rule 135 + ':=' reduce using rule 135 + ';' reduce using rule 135 + '<' reduce using rule 135 + '<=' reduce using rule 135 + '=' reduce using rule 135 + '===' reduce using rule 135 + '=_{' reduce using rule 135 + '>' reduce using rule 135 + 'BOT' reduce using rule 135 + 'CUBE' reduce using rule 135 + 'TOP' reduce using rule 135 + 'TOPE' reduce using rule 135 + 'U' reduce using rule 135 + 'Unit' reduce using rule 135 + '[' reduce using rule 135 + '\\/' reduce using rule 135 + ']' reduce using rule 135 + 'as' reduce using rule 135 + 'idJ' reduce using rule 135 + 'recBOT' reduce using rule 135 + 'recOR' reduce using rule 135 + 'refl' reduce using rule 135 + 'refl_{' reduce using rule 135 + 'unit' reduce using rule 135 + '|' reduce using rule 135 + '|->' reduce using rule 135 + '}' reduce using rule 135 + '×' reduce using rule 135 + '→' reduce using rule 135 + '↦' reduce using rule 135 + '∧' reduce using rule 135 + '∨' reduce using rule 135 + '≡' reduce using rule 135 + '≤' reduce using rule 135 + '⊤' reduce using rule 135 + '⊥' reduce using rule 135 + L_VarIdentTokenreduce using rule 135 + L_HoleIdentTokenreduce using rule 135 + %eof reduce using rule 135 + + +State 174 + + Term1 -> 'Σ' '(' . Pattern ':' Term ')' ',' Term1 (rule 124) + + '(' shift, and enter state 105 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 204 + VarIdent goto state 94 + Pattern goto state 225 -State 164 +State 175 ParamDecl -> '{' Pattern . ':' Term '}' (rule 71) ParamDecl -> '{' Pattern . ':' Term '|' Term '}' (rule 74) - ':' shift, and enter state 203 + ':' shift, and enter state 224 -State 165 +State 176 Pattern -> '(' . Pattern ',' Pattern ')' (rule 61) ParamDecl -> '{' '(' . Pattern ':' Term ')' '|' Term '}' (rule 73) - '(' shift, and enter state 98 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 105 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 202 - -State 166 + VarIdent goto state 94 + Pattern goto state 223 - Term6 -> 'second' Term7 . (rule 123) +State 177 - '(' reduce using rule 123 - ')' reduce using rule 123 - '*' reduce using rule 123 - '*_1' reduce using rule 123 - ',' reduce using rule 123 - '->' reduce using rule 123 - '/\\' reduce using rule 123 - '0_2' reduce using rule 123 - '1' reduce using rule 123 - '1_2' reduce using rule 123 - '2' reduce using rule 123 - ':' reduce using rule 123 - ':=' reduce using rule 123 - ';' reduce using rule 123 - '<' reduce using rule 123 - '<=' reduce using rule 123 - '=' reduce using rule 123 - '===' reduce using rule 123 - '=_{' reduce using rule 123 - '>' reduce using rule 123 - 'BOT' reduce using rule 123 - 'CUBE' reduce using rule 123 - 'TOP' reduce using rule 123 - 'TOPE' reduce using rule 123 - 'U' reduce using rule 123 - 'Unit' reduce using rule 123 - '[' reduce using rule 123 - '\\/' reduce using rule 123 - ']' reduce using rule 123 - 'as' reduce using rule 123 - 'idJ' reduce using rule 123 - 'recBOT' reduce using rule 123 - 'recOR' reduce using rule 123 - 'refl' reduce using rule 123 - 'refl_{' reduce using rule 123 - 'unit' reduce using rule 123 - '|' reduce using rule 123 - '|->' reduce using rule 123 - '}' reduce using rule 123 - '→' reduce using rule 123 - L_VarIdentTokenreduce using rule 123 - L_HoleIdentTokenreduce using rule 123 - %eof reduce using rule 123 + Term6 -> 'second' Term7 . (rule 139) + + '(' reduce using rule 139 + ')' reduce using rule 139 + '*' reduce using rule 139 + '*_1' reduce using rule 139 + '*₁' reduce using rule 139 + ',' reduce using rule 139 + '->' reduce using rule 139 + '/\\' reduce using rule 139 + '0_2' reduce using rule 139 + '0₂' reduce using rule 139 + '1' reduce using rule 139 + '1_2' reduce using rule 139 + '1₂' reduce using rule 139 + '2' reduce using rule 139 + ':' reduce using rule 139 + ':=' reduce using rule 139 + ';' reduce using rule 139 + '<' reduce using rule 139 + '<=' reduce using rule 139 + '=' reduce using rule 139 + '===' reduce using rule 139 + '=_{' reduce using rule 139 + '>' reduce using rule 139 + 'BOT' reduce using rule 139 + 'CUBE' reduce using rule 139 + 'TOP' reduce using rule 139 + 'TOPE' reduce using rule 139 + 'U' reduce using rule 139 + 'Unit' reduce using rule 139 + '[' reduce using rule 139 + '\\/' reduce using rule 139 + ']' reduce using rule 139 + 'as' reduce using rule 139 + 'idJ' reduce using rule 139 + 'recBOT' reduce using rule 139 + 'recOR' reduce using rule 139 + 'refl' reduce using rule 139 + 'refl_{' reduce using rule 139 + 'unit' reduce using rule 139 + '|' reduce using rule 139 + '|->' reduce using rule 139 + '}' reduce using rule 139 + '×' reduce using rule 139 + '→' reduce using rule 139 + '↦' reduce using rule 139 + '∧' reduce using rule 139 + '∨' reduce using rule 139 + '≡' reduce using rule 139 + '≤' reduce using rule 139 + '⊤' reduce using rule 139 + '⊥' reduce using rule 139 + L_VarIdentTokenreduce using rule 139 + L_HoleIdentTokenreduce using rule 139 + %eof reduce using rule 139 -State 167 +State 178 - Term7 -> 'refl_{' Term . '}' (rule 96) - Term7 -> 'refl_{' Term . ':' Term '}' (rule 97) + Term7 -> 'refl_{' Term . '}' (rule 97) + Term7 -> 'refl_{' Term . ':' Term '}' (rule 98) - ':' shift, and enter state 200 - '}' shift, and enter state 201 + ':' shift, and enter state 221 + '}' shift, and enter state 222 -State 168 +State 179 - Term7 -> 'recOR' '(' . ListRestriction ')' (rule 89) - Term7 -> 'recOR' '(' . Term ',' Term ',' Term ',' Term ')' (rule 90) + Term7 -> 'recOR' '(' . ListRestriction ')' (rule 90) + Term7 -> 'recOR' '(' . Term ',' Term ',' Term ',' Term ')' (rule 91) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 ParamDecl goto state 32 - Restriction goto state 81 - ListRestrictiongoto state 198 + Restriction goto state 88 + ListRestrictiongoto state 219 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 @@ -4029,40 +5161,47 @@ State 168 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 199 + Term goto state 220 -State 169 +State 180 - Term7 -> 'idJ' '(' . Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 98) + Term7 -> 'idJ' '(' . Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 99) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4076,165 +5215,197 @@ State 169 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 197 - -State 170 + Term goto state 218 - Term6 -> 'first' Term7 . (rule 122) +State 181 - '(' reduce using rule 122 - ')' reduce using rule 122 - '*' reduce using rule 122 - '*_1' reduce using rule 122 - ',' reduce using rule 122 - '->' reduce using rule 122 - '/\\' reduce using rule 122 - '0_2' reduce using rule 122 - '1' reduce using rule 122 - '1_2' reduce using rule 122 - '2' reduce using rule 122 - ':' reduce using rule 122 - ':=' reduce using rule 122 - ';' reduce using rule 122 - '<' reduce using rule 122 - '<=' reduce using rule 122 - '=' reduce using rule 122 - '===' reduce using rule 122 - '=_{' reduce using rule 122 - '>' reduce using rule 122 - 'BOT' reduce using rule 122 - 'CUBE' reduce using rule 122 - 'TOP' reduce using rule 122 - 'TOPE' reduce using rule 122 - 'U' reduce using rule 122 - 'Unit' reduce using rule 122 - '[' reduce using rule 122 - '\\/' reduce using rule 122 - ']' reduce using rule 122 - 'as' reduce using rule 122 - 'idJ' reduce using rule 122 - 'recBOT' reduce using rule 122 - 'recOR' reduce using rule 122 - 'refl' reduce using rule 122 - 'refl_{' reduce using rule 122 - 'unit' reduce using rule 122 - '|' reduce using rule 122 - '|->' reduce using rule 122 - '}' reduce using rule 122 - '→' reduce using rule 122 - L_VarIdentTokenreduce using rule 122 - L_HoleIdentTokenreduce using rule 122 - %eof reduce using rule 122 + Term6 -> 'first' Term7 . (rule 138) + + '(' reduce using rule 138 + ')' reduce using rule 138 + '*' reduce using rule 138 + '*_1' reduce using rule 138 + '*₁' reduce using rule 138 + ',' reduce using rule 138 + '->' reduce using rule 138 + '/\\' reduce using rule 138 + '0_2' reduce using rule 138 + '0₂' reduce using rule 138 + '1' reduce using rule 138 + '1_2' reduce using rule 138 + '1₂' reduce using rule 138 + '2' reduce using rule 138 + ':' reduce using rule 138 + ':=' reduce using rule 138 + ';' reduce using rule 138 + '<' reduce using rule 138 + '<=' reduce using rule 138 + '=' reduce using rule 138 + '===' reduce using rule 138 + '=_{' reduce using rule 138 + '>' reduce using rule 138 + 'BOT' reduce using rule 138 + 'CUBE' reduce using rule 138 + 'TOP' reduce using rule 138 + 'TOPE' reduce using rule 138 + 'U' reduce using rule 138 + 'Unit' reduce using rule 138 + '[' reduce using rule 138 + '\\/' reduce using rule 138 + ']' reduce using rule 138 + 'as' reduce using rule 138 + 'idJ' reduce using rule 138 + 'recBOT' reduce using rule 138 + 'recOR' reduce using rule 138 + 'refl' reduce using rule 138 + 'refl_{' reduce using rule 138 + 'unit' reduce using rule 138 + '|' reduce using rule 138 + '|->' reduce using rule 138 + '}' reduce using rule 138 + '×' reduce using rule 138 + '→' reduce using rule 138 + '↦' reduce using rule 138 + '∧' reduce using rule 138 + '∨' reduce using rule 138 + '≡' reduce using rule 138 + '≤' reduce using rule 138 + '⊤' reduce using rule 138 + '⊥' reduce using rule 138 + L_VarIdentTokenreduce using rule 138 + L_HoleIdentTokenreduce using rule 138 + %eof reduce using rule 138 -State 171 +State 182 - Term1 -> '\\' ListParam . '->' Term1 (rule 115) + Term1 -> '\\' ListParam . '→' Term1 (rule 127) + Term1 -> '\\' ListParam . '->' Term1 (rule 131) - '->' shift, and enter state 196 + '->' shift, and enter state 216 + '→' shift, and enter state 217 -State 172 +State 183 - Term1 -> 'Sigma' '(' . Pattern ':' Term ')' ',' Term1 (rule 112) + Term1 -> 'Sigma' '(' . Pattern ':' Term ')' ',' Term1 (rule 130) - '(' shift, and enter state 98 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 105 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 195 + VarIdent goto state 94 + Pattern goto state 215 -State 173 +State 184 - Term7 -> '<' ParamDecl . '->' Term '>' (rule 92) + Term7 -> '<' ParamDecl . '→' Term '>' (rule 93) + Term7 -> '<' ParamDecl . '->' Term '>' (rule 108) - '->' shift, and enter state 194 + '->' shift, and enter state 213 + '→' shift, and enter state 214 -State 174 +State 185 ParamDecl -> '(' VarIdent . ':' Term ')' (rule 72) - Term7 -> VarIdent . (rule 100) + Term7 -> VarIdent . (rule 101) - '(' reduce using rule 100 - ')' reduce using rule 100 - '*' reduce using rule 100 - '*_1' reduce using rule 100 - ',' reduce using rule 100 - '->' reduce using rule 100 - '/\\' reduce using rule 100 - '0_2' reduce using rule 100 - '1' reduce using rule 100 - '1_2' reduce using rule 100 - '2' reduce using rule 100 - ':' shift, and enter state 193 - '<' reduce using rule 100 - '<=' reduce using rule 100 - '=' reduce using rule 100 - '===' reduce using rule 100 - '=_{' reduce using rule 100 - 'BOT' reduce using rule 100 - 'CUBE' reduce using rule 100 - 'TOP' reduce using rule 100 - 'TOPE' reduce using rule 100 - 'U' reduce using rule 100 - 'Unit' reduce using rule 100 - '[' reduce using rule 100 - '\\/' reduce using rule 100 - 'as' reduce using rule 100 - 'idJ' reduce using rule 100 - 'recBOT' reduce using rule 100 - 'recOR' reduce using rule 100 - 'refl' reduce using rule 100 - 'refl_{' reduce using rule 100 - 'unit' reduce using rule 100 - '→' reduce using rule 100 - L_VarIdentTokenreduce using rule 100 - L_HoleIdentTokenreduce using rule 100 + '(' reduce using rule 101 + ')' reduce using rule 101 + '*' reduce using rule 101 + '*_1' reduce using rule 101 + '*₁' reduce using rule 101 + ',' reduce using rule 101 + '->' reduce using rule 101 + '/\\' reduce using rule 101 + '0_2' reduce using rule 101 + '0₂' reduce using rule 101 + '1' reduce using rule 101 + '1_2' reduce using rule 101 + '1₂' reduce using rule 101 + '2' reduce using rule 101 + ':' shift, and enter state 212 + '<' reduce using rule 101 + '<=' reduce using rule 101 + '=' reduce using rule 101 + '===' reduce using rule 101 + '=_{' reduce using rule 101 + 'BOT' reduce using rule 101 + 'CUBE' reduce using rule 101 + 'TOP' reduce using rule 101 + 'TOPE' reduce using rule 101 + 'U' reduce using rule 101 + 'Unit' reduce using rule 101 + '[' reduce using rule 101 + '\\/' reduce using rule 101 + 'as' reduce using rule 101 + 'idJ' reduce using rule 101 + 'recBOT' reduce using rule 101 + 'recOR' reduce using rule 101 + 'refl' reduce using rule 101 + 'refl_{' reduce using rule 101 + 'unit' reduce using rule 101 + '×' reduce using rule 101 + '→' reduce using rule 101 + '∧' reduce using rule 101 + '∨' reduce using rule 101 + '≡' reduce using rule 101 + '≤' reduce using rule 101 + '⊤' reduce using rule 101 + '⊥' reduce using rule 101 + L_VarIdentTokenreduce using rule 101 + L_HoleIdentTokenreduce using rule 101 -State 175 +State 186 ParamDecl -> '(' '_' . ':' Term ')' (rule 70) - ':' shift, and enter state 192 + ':' shift, and enter state 211 -State 176 +State 187 - ListTerm -> Term ',' . ListTerm (rule 128) + ListTerm -> Term ',' . ListTerm (rule 143) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4249,235 +5420,454 @@ State 176 Term1 goto state 38 Term6 goto state 39 Term goto state 40 - ListTerm goto state 191 + ListTerm goto state 210 + +State 188 + + Term -> Term2 'as' . Term1 (rule 140) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 80 + Term1 goto state 209 + Term6 goto state 39 + +State 189 + + Term2 -> Term3 '\\/' . Term2 (rule 122) + + '(' shift, and enter state 79 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 208 + Term6 goto state 83 + +State 190 + + Term2 -> Term3 '∨' . Term2 (rule 120) + + '(' shift, and enter state 79 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 207 + Term6 goto state 83 + +State 191 + + Term3 -> Term4 '/\\' . Term3 (rule 119) + + '(' shift, and enter state 79 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 206 + Term6 goto state 83 -State 177 +State 192 - Term -> Term2 'as' . Term1 (rule 125) + Term3 -> Term4 '∧' . Term3 (rule 117) - '(' shift, and enter state 42 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - ParamDecl goto state 32 Term7 goto state 33 Term5 goto state 34 Term4 goto state 35 - Term3 goto state 36 - Term2 goto state 73 - Term1 goto state 190 - Term6 goto state 39 + Term3 goto state 205 + Term6 goto state 83 -State 178 +State 193 - Term2 -> Term3 '\\/' . Term2 (rule 109) + Term4 -> Term5 '<=' . Term5 (rule 116) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term5 goto state 34 - Term4 goto state 35 - Term3 goto state 36 - Term2 goto state 189 - Term6 goto state 76 + Term5 goto state 204 + Term6 goto state 83 -State 179 +State 194 - Term3 -> Term4 '/\\' . Term3 (rule 107) + Term4 -> Term5 '===' . Term5 (rule 115) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term5 goto state 34 - Term4 goto state 35 - Term3 goto state 188 - Term6 goto state 76 + Term5 goto state 203 + Term6 goto state 83 -State 180 +State 195 - Term4 -> Term5 '<=' . Term5 (rule 105) + Term4 -> Term5 '≡' . Term5 (rule 112) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term5 goto state 187 - Term6 goto state 76 + Term5 goto state 202 + Term6 goto state 83 -State 181 +State 196 - Term4 -> Term5 '===' . Term5 (rule 104) + Term4 -> Term5 '≤' . Term5 (rule 113) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 Term7 goto state 33 - Term5 goto state 186 - Term6 goto state 76 + Term5 goto state 201 + Term6 goto state 83 -State 182 +State 197 - Term1 -> ParamDecl '->' . Term1 (rule 111) + Term1 -> ParamDecl '->' . Term1 (rule 129) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4488,42 +5878,49 @@ State 182 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 73 - Term1 goto state 185 + Term2 goto state 80 + Term1 goto state 200 Term6 goto state 39 -State 183 +State 198 - Term1 -> ParamDecl '→' . Term1 (rule 117) + Term1 -> ParamDecl '→' . Term1 (rule 123) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4534,189 +5931,368 @@ State 183 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 73 - Term1 goto state 184 + Term2 goto state 80 + Term1 goto state 199 Term6 goto state 39 -State 184 +State 199 + + Term1 -> ParamDecl '→' Term1 . (rule 123) + + ')' reduce using rule 123 + ',' reduce using rule 123 + ':' reduce using rule 123 + ':=' reduce using rule 123 + ';' reduce using rule 123 + '>' reduce using rule 123 + ']' reduce using rule 123 + '|' reduce using rule 123 + '|->' reduce using rule 123 + '}' reduce using rule 123 + '↦' reduce using rule 123 + %eof reduce using rule 123 + + +State 200 + + Term1 -> ParamDecl '->' Term1 . (rule 129) + + ')' reduce using rule 129 + ',' reduce using rule 129 + ':' reduce using rule 129 + ':=' reduce using rule 129 + ';' reduce using rule 129 + '>' reduce using rule 129 + ']' reduce using rule 129 + '|' reduce using rule 129 + '|->' reduce using rule 129 + '}' reduce using rule 129 + '↦' reduce using rule 129 + %eof reduce using rule 129 + + +State 201 + + Term5 -> Term5 . '×' Term6 (rule 109) + Term5 -> Term5 . '*' Term6 (rule 111) + Term4 -> Term5 '≤' Term5 . (rule 113) + + ')' reduce using rule 113 + '*' shift, and enter state 166 + ',' reduce using rule 113 + '/\\' reduce using rule 113 + ':' reduce using rule 113 + ':=' reduce using rule 113 + ';' reduce using rule 113 + '=' reduce using rule 113 + '=_{' reduce using rule 113 + '>' reduce using rule 113 + '\\/' reduce using rule 113 + ']' reduce using rule 113 + 'as' reduce using rule 113 + '|' reduce using rule 113 + '|->' reduce using rule 113 + '}' reduce using rule 113 + '×' shift, and enter state 167 + '↦' reduce using rule 113 + '∧' reduce using rule 113 + '∨' reduce using rule 113 + %eof reduce using rule 113 + + +State 202 + + Term5 -> Term5 . '×' Term6 (rule 109) + Term5 -> Term5 . '*' Term6 (rule 111) + Term4 -> Term5 '≡' Term5 . (rule 112) + + ')' reduce using rule 112 + '*' shift, and enter state 166 + ',' reduce using rule 112 + '/\\' reduce using rule 112 + ':' reduce using rule 112 + ':=' reduce using rule 112 + ';' reduce using rule 112 + '=' reduce using rule 112 + '=_{' reduce using rule 112 + '>' reduce using rule 112 + '\\/' reduce using rule 112 + ']' reduce using rule 112 + 'as' reduce using rule 112 + '|' reduce using rule 112 + '|->' reduce using rule 112 + '}' reduce using rule 112 + '×' shift, and enter state 167 + '↦' reduce using rule 112 + '∧' reduce using rule 112 + '∨' reduce using rule 112 + %eof reduce using rule 112 + + +State 203 + + Term5 -> Term5 . '×' Term6 (rule 109) + Term5 -> Term5 . '*' Term6 (rule 111) + Term4 -> Term5 '===' Term5 . (rule 115) + + ')' reduce using rule 115 + '*' shift, and enter state 166 + ',' reduce using rule 115 + '/\\' reduce using rule 115 + ':' reduce using rule 115 + ':=' reduce using rule 115 + ';' reduce using rule 115 + '=' reduce using rule 115 + '=_{' reduce using rule 115 + '>' reduce using rule 115 + '\\/' reduce using rule 115 + ']' reduce using rule 115 + 'as' reduce using rule 115 + '|' reduce using rule 115 + '|->' reduce using rule 115 + '}' reduce using rule 115 + '×' shift, and enter state 167 + '↦' reduce using rule 115 + '∧' reduce using rule 115 + '∨' reduce using rule 115 + %eof reduce using rule 115 + + +State 204 + + Term5 -> Term5 . '×' Term6 (rule 109) + Term5 -> Term5 . '*' Term6 (rule 111) + Term4 -> Term5 '<=' Term5 . (rule 116) + + ')' reduce using rule 116 + '*' shift, and enter state 166 + ',' reduce using rule 116 + '/\\' reduce using rule 116 + ':' reduce using rule 116 + ':=' reduce using rule 116 + ';' reduce using rule 116 + '=' reduce using rule 116 + '=_{' reduce using rule 116 + '>' reduce using rule 116 + '\\/' reduce using rule 116 + ']' reduce using rule 116 + 'as' reduce using rule 116 + '|' reduce using rule 116 + '|->' reduce using rule 116 + '}' reduce using rule 116 + '×' shift, and enter state 167 + '↦' reduce using rule 116 + '∧' reduce using rule 116 + '∨' reduce using rule 116 + %eof reduce using rule 116 + + +State 205 - Term1 -> ParamDecl '→' Term1 . (rule 117) + Term3 -> Term4 '∧' Term3 . (rule 117) ')' reduce using rule 117 ',' reduce using rule 117 ':' reduce using rule 117 ':=' reduce using rule 117 ';' reduce using rule 117 + '=' reduce using rule 117 + '=_{' reduce using rule 117 '>' reduce using rule 117 + '\\/' reduce using rule 117 ']' reduce using rule 117 + 'as' reduce using rule 117 '|' reduce using rule 117 '|->' reduce using rule 117 '}' reduce using rule 117 + '↦' reduce using rule 117 + '∨' reduce using rule 117 %eof reduce using rule 117 -State 185 - - Term1 -> ParamDecl '->' Term1 . (rule 111) - - ')' reduce using rule 111 - ',' reduce using rule 111 - ':' reduce using rule 111 - ':=' reduce using rule 111 - ';' reduce using rule 111 - '>' reduce using rule 111 - ']' reduce using rule 111 - '|' reduce using rule 111 - '|->' reduce using rule 111 - '}' reduce using rule 111 - %eof reduce using rule 111 - - -State 186 +State 206 - Term5 -> Term5 . '*' Term6 (rule 102) - Term4 -> Term5 '===' Term5 . (rule 104) + Term3 -> Term4 '/\\' Term3 . (rule 119) - ')' reduce using rule 104 - '*' shift, and enter state 158 - ',' reduce using rule 104 - '/\\' reduce using rule 104 - ':' reduce using rule 104 - ':=' reduce using rule 104 - ';' reduce using rule 104 - '=' reduce using rule 104 - '=_{' reduce using rule 104 - '>' reduce using rule 104 - '\\/' reduce using rule 104 - ']' reduce using rule 104 - 'as' reduce using rule 104 - '|' reduce using rule 104 - '|->' reduce using rule 104 - '}' reduce using rule 104 - %eof reduce using rule 104 + ')' reduce using rule 119 + ',' reduce using rule 119 + ':' reduce using rule 119 + ':=' reduce using rule 119 + ';' reduce using rule 119 + '=' reduce using rule 119 + '=_{' reduce using rule 119 + '>' reduce using rule 119 + '\\/' reduce using rule 119 + ']' reduce using rule 119 + 'as' reduce using rule 119 + '|' reduce using rule 119 + '|->' reduce using rule 119 + '}' reduce using rule 119 + '↦' reduce using rule 119 + '∨' reduce using rule 119 + %eof reduce using rule 119 -State 187 +State 207 - Term5 -> Term5 . '*' Term6 (rule 102) - Term4 -> Term5 '<=' Term5 . (rule 105) + Term2 -> Term3 '∨' Term2 . (rule 120) - ')' reduce using rule 105 - '*' shift, and enter state 158 - ',' reduce using rule 105 - '/\\' reduce using rule 105 - ':' reduce using rule 105 - ':=' reduce using rule 105 - ';' reduce using rule 105 - '=' reduce using rule 105 - '=_{' reduce using rule 105 - '>' reduce using rule 105 - '\\/' reduce using rule 105 - ']' reduce using rule 105 - 'as' reduce using rule 105 - '|' reduce using rule 105 - '|->' reduce using rule 105 - '}' reduce using rule 105 - %eof reduce using rule 105 + ')' reduce using rule 120 + ',' reduce using rule 120 + ':' reduce using rule 120 + ':=' reduce using rule 120 + ';' reduce using rule 120 + '=' reduce using rule 120 + '=_{' reduce using rule 120 + '>' reduce using rule 120 + ']' reduce using rule 120 + 'as' reduce using rule 120 + '|' reduce using rule 120 + '|->' reduce using rule 120 + '}' reduce using rule 120 + '↦' reduce using rule 120 + %eof reduce using rule 120 -State 188 +State 208 - Term3 -> Term4 '/\\' Term3 . (rule 107) + Term2 -> Term3 '\\/' Term2 . (rule 122) - ')' reduce using rule 107 - ',' reduce using rule 107 - ':' reduce using rule 107 - ':=' reduce using rule 107 - ';' reduce using rule 107 - '=' reduce using rule 107 - '=_{' reduce using rule 107 - '>' reduce using rule 107 - '\\/' reduce using rule 107 - ']' reduce using rule 107 - 'as' reduce using rule 107 - '|' reduce using rule 107 - '|->' reduce using rule 107 - '}' reduce using rule 107 - %eof reduce using rule 107 + ')' reduce using rule 122 + ',' reduce using rule 122 + ':' reduce using rule 122 + ':=' reduce using rule 122 + ';' reduce using rule 122 + '=' reduce using rule 122 + '=_{' reduce using rule 122 + '>' reduce using rule 122 + ']' reduce using rule 122 + 'as' reduce using rule 122 + '|' reduce using rule 122 + '|->' reduce using rule 122 + '}' reduce using rule 122 + '↦' reduce using rule 122 + %eof reduce using rule 122 -State 189 +State 209 - Term2 -> Term3 '\\/' Term2 . (rule 109) + Term -> Term2 'as' Term1 . (rule 140) - ')' reduce using rule 109 - ',' reduce using rule 109 - ':' reduce using rule 109 - ':=' reduce using rule 109 - ';' reduce using rule 109 - '=' reduce using rule 109 - '=_{' reduce using rule 109 - '>' reduce using rule 109 - ']' reduce using rule 109 - 'as' reduce using rule 109 - '|' reduce using rule 109 - '|->' reduce using rule 109 - '}' reduce using rule 109 - %eof reduce using rule 109 + ')' reduce using rule 140 + ',' reduce using rule 140 + ':' reduce using rule 140 + ':=' reduce using rule 140 + ';' reduce using rule 140 + '>' reduce using rule 140 + ']' reduce using rule 140 + '|' reduce using rule 140 + '|->' reduce using rule 140 + '}' reduce using rule 140 + '↦' reduce using rule 140 + %eof reduce using rule 140 -State 190 +State 210 - Term -> Term2 'as' Term1 . (rule 125) + ListTerm -> Term ',' ListTerm . (rule 143) - ')' reduce using rule 125 - ',' reduce using rule 125 - ':' reduce using rule 125 - ':=' reduce using rule 125 - ';' reduce using rule 125 - '>' reduce using rule 125 - ']' reduce using rule 125 - '|' reduce using rule 125 - '|->' reduce using rule 125 - '}' reduce using rule 125 - %eof reduce using rule 125 + %eof reduce using rule 143 -State 191 +State 211 - ListTerm -> Term ',' ListTerm . (rule 128) + ParamDecl -> '(' '_' ':' . Term ')' (rule 70) - %eof reduce using rule 128 + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 285 -State 192 +State 212 - ParamDecl -> '(' '_' ':' . Term ')' (rule 70) + ParamDecl -> '(' VarIdent ':' . Term ')' (rule 72) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4730,40 +6306,47 @@ State 192 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 260 + Term goto state 284 -State 193 +State 213 - ParamDecl -> '(' VarIdent ':' . Term ')' (rule 72) + Term7 -> '<' ParamDecl '->' . Term '>' (rule 108) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4777,40 +6360,47 @@ State 193 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 259 + Term goto state 283 -State 194 +State 214 - Term7 -> '<' ParamDecl '->' . Term '>' (rule 92) + Term7 -> '<' ParamDecl '→' . Term '>' (rule 93) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4824,47 +6414,54 @@ State 194 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 258 + Term goto state 282 -State 195 +State 215 - Term1 -> 'Sigma' '(' Pattern . ':' Term ')' ',' Term1 (rule 112) + Term1 -> 'Sigma' '(' Pattern . ':' Term ')' ',' Term1 (rule 130) - ':' shift, and enter state 257 + ':' shift, and enter state 281 -State 196 +State 216 - Term1 -> '\\' ListParam '->' . Term1 (rule 115) + Term1 -> '\\' ListParam '->' . Term1 (rule 131) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4875,65 +6472,127 @@ State 196 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 73 - Term1 goto state 256 + Term2 goto state 80 + Term1 goto state 280 Term6 goto state 39 -State 197 +State 217 + + Term1 -> '\\' ListParam '→' . Term1 (rule 127) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 - Term7 -> 'idJ' '(' Term . ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 98) + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 80 + Term1 goto state 279 + Term6 goto state 39 - ',' shift, and enter state 255 +State 218 + Term7 -> 'idJ' '(' Term . ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 99) -State 198 + ',' shift, and enter state 278 - Term7 -> 'recOR' '(' ListRestriction . ')' (rule 89) - ')' shift, and enter state 254 +State 219 + Term7 -> 'recOR' '(' ListRestriction . ')' (rule 90) -State 199 + ')' shift, and enter state 277 - Restriction -> Term . '|->' Term (rule 75) - Term7 -> 'recOR' '(' Term . ',' Term ',' Term ',' Term ')' (rule 90) - ',' shift, and enter state 253 - '|->' shift, and enter state 156 +State 220 + Restriction -> Term . '↦' Term (rule 75) + Restriction -> Term . '|->' Term (rule 76) + Term7 -> 'recOR' '(' Term . ',' Term ',' Term ',' Term ')' (rule 91) -State 200 + ',' shift, and enter state 276 + '|->' shift, and enter state 163 + '↦' shift, and enter state 164 + + +State 221 - Term7 -> 'refl_{' Term ':' . Term '}' (rule 97) + Term7 -> 'refl_{' Term ':' . Term '}' (rule 98) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -4947,99 +6606,117 @@ State 200 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 252 + Term goto state 275 -State 201 +State 222 - Term7 -> 'refl_{' Term '}' . (rule 96) + Term7 -> 'refl_{' Term '}' . (rule 97) - '(' reduce using rule 96 - ')' reduce using rule 96 - '*' reduce using rule 96 - '*_1' reduce using rule 96 - ',' reduce using rule 96 - '->' reduce using rule 96 - '/\\' reduce using rule 96 - '0_2' reduce using rule 96 - '1' reduce using rule 96 - '1_2' reduce using rule 96 - '2' reduce using rule 96 - ':' reduce using rule 96 - ':=' reduce using rule 96 - ';' reduce using rule 96 - '<' reduce using rule 96 - '<=' reduce using rule 96 - '=' reduce using rule 96 - '===' reduce using rule 96 - '=_{' reduce using rule 96 - '>' reduce using rule 96 - 'BOT' reduce using rule 96 - 'CUBE' reduce using rule 96 - 'TOP' reduce using rule 96 - 'TOPE' reduce using rule 96 - 'U' reduce using rule 96 - 'Unit' reduce using rule 96 - '[' reduce using rule 96 - '\\/' reduce using rule 96 - ']' reduce using rule 96 - 'as' reduce using rule 96 - 'idJ' reduce using rule 96 - 'recBOT' reduce using rule 96 - 'recOR' reduce using rule 96 - 'refl' reduce using rule 96 - 'refl_{' reduce using rule 96 - 'unit' reduce using rule 96 - '|' reduce using rule 96 - '|->' reduce using rule 96 - '}' reduce using rule 96 - '→' reduce using rule 96 - L_VarIdentTokenreduce using rule 96 - L_HoleIdentTokenreduce using rule 96 - %eof reduce using rule 96 + '(' reduce using rule 97 + ')' reduce using rule 97 + '*' reduce using rule 97 + '*_1' reduce using rule 97 + '*₁' reduce using rule 97 + ',' reduce using rule 97 + '->' reduce using rule 97 + '/\\' reduce using rule 97 + '0_2' reduce using rule 97 + '0₂' reduce using rule 97 + '1' reduce using rule 97 + '1_2' reduce using rule 97 + '1₂' reduce using rule 97 + '2' reduce using rule 97 + ':' reduce using rule 97 + ':=' reduce using rule 97 + ';' reduce using rule 97 + '<' reduce using rule 97 + '<=' reduce using rule 97 + '=' reduce using rule 97 + '===' reduce using rule 97 + '=_{' reduce using rule 97 + '>' reduce using rule 97 + 'BOT' reduce using rule 97 + 'CUBE' reduce using rule 97 + 'TOP' reduce using rule 97 + 'TOPE' reduce using rule 97 + 'U' reduce using rule 97 + 'Unit' reduce using rule 97 + '[' reduce using rule 97 + '\\/' reduce using rule 97 + ']' reduce using rule 97 + 'as' reduce using rule 97 + 'idJ' reduce using rule 97 + 'recBOT' reduce using rule 97 + 'recOR' reduce using rule 97 + 'refl' reduce using rule 97 + 'refl_{' reduce using rule 97 + 'unit' reduce using rule 97 + '|' reduce using rule 97 + '|->' reduce using rule 97 + '}' reduce using rule 97 + '×' reduce using rule 97 + '→' reduce using rule 97 + '↦' reduce using rule 97 + '∧' reduce using rule 97 + '∨' reduce using rule 97 + '≡' reduce using rule 97 + '≤' reduce using rule 97 + '⊤' reduce using rule 97 + '⊥' reduce using rule 97 + L_VarIdentTokenreduce using rule 97 + L_HoleIdentTokenreduce using rule 97 + %eof reduce using rule 97 -State 202 +State 223 Pattern -> '(' Pattern . ',' Pattern ')' (rule 61) ParamDecl -> '{' '(' Pattern . ':' Term ')' '|' Term '}' (rule 73) - ',' shift, and enter state 215 - ':' shift, and enter state 251 + ',' shift, and enter state 238 + ':' shift, and enter state 274 -State 203 +State 224 ParamDecl -> '{' Pattern ':' . Term '}' (rule 71) ParamDecl -> '{' Pattern ':' . Term '|' Term '}' (rule 74) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5053,103 +6730,121 @@ State 203 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 250 + Term goto state 273 -State 204 +State 225 - Term1 -> 'Σ' '(' Pattern . ':' Term ')' ',' Term1 (rule 118) + Term1 -> 'Σ' '(' Pattern . ':' Term ')' ',' Term1 (rule 124) - ':' shift, and enter state 249 + ':' shift, and enter state 272 -State 205 +State 226 - Term1 -> '∑' '(' Pattern . ':' Term ')' ',' Term1 (rule 119) + Term1 -> '∑' '(' Pattern . ':' Term ')' ',' Term1 (rule 132) - ':' shift, and enter state 248 + ':' shift, and enter state 271 -State 206 +State 227 - Term7 -> '(' Term ')' . (rule 101) + Term7 -> '(' Term ')' . (rule 102) - '(' reduce using rule 101 - ')' reduce using rule 101 - '*' reduce using rule 101 - '*_1' reduce using rule 101 - ',' reduce using rule 101 - '->' reduce using rule 101 - '/\\' reduce using rule 101 - '0_2' reduce using rule 101 - '1' reduce using rule 101 - '1_2' reduce using rule 101 - '2' reduce using rule 101 - ':' reduce using rule 101 - ':=' reduce using rule 101 - ';' reduce using rule 101 - '<' reduce using rule 101 - '<=' reduce using rule 101 - '=' reduce using rule 101 - '===' reduce using rule 101 - '=_{' reduce using rule 101 - '>' reduce using rule 101 - 'BOT' reduce using rule 101 - 'CUBE' reduce using rule 101 - 'TOP' reduce using rule 101 - 'TOPE' reduce using rule 101 - 'U' reduce using rule 101 - 'Unit' reduce using rule 101 - '[' reduce using rule 101 - '\\/' reduce using rule 101 - ']' reduce using rule 101 - 'as' reduce using rule 101 - 'idJ' reduce using rule 101 - 'recBOT' reduce using rule 101 - 'recOR' reduce using rule 101 - 'refl' reduce using rule 101 - 'refl_{' reduce using rule 101 - 'unit' reduce using rule 101 - '|' reduce using rule 101 - '|->' reduce using rule 101 - '}' reduce using rule 101 - '→' reduce using rule 101 - L_VarIdentTokenreduce using rule 101 - L_HoleIdentTokenreduce using rule 101 - %eof reduce using rule 101 + '(' reduce using rule 102 + ')' reduce using rule 102 + '*' reduce using rule 102 + '*_1' reduce using rule 102 + '*₁' reduce using rule 102 + ',' reduce using rule 102 + '->' reduce using rule 102 + '/\\' reduce using rule 102 + '0_2' reduce using rule 102 + '0₂' reduce using rule 102 + '1' reduce using rule 102 + '1_2' reduce using rule 102 + '1₂' reduce using rule 102 + '2' reduce using rule 102 + ':' reduce using rule 102 + ':=' reduce using rule 102 + ';' reduce using rule 102 + '<' reduce using rule 102 + '<=' reduce using rule 102 + '=' reduce using rule 102 + '===' reduce using rule 102 + '=_{' reduce using rule 102 + '>' reduce using rule 102 + 'BOT' reduce using rule 102 + 'CUBE' reduce using rule 102 + 'TOP' reduce using rule 102 + 'TOPE' reduce using rule 102 + 'U' reduce using rule 102 + 'Unit' reduce using rule 102 + '[' reduce using rule 102 + '\\/' reduce using rule 102 + ']' reduce using rule 102 + 'as' reduce using rule 102 + 'idJ' reduce using rule 102 + 'recBOT' reduce using rule 102 + 'recOR' reduce using rule 102 + 'refl' reduce using rule 102 + 'refl_{' reduce using rule 102 + 'unit' reduce using rule 102 + '|' reduce using rule 102 + '|->' reduce using rule 102 + '}' reduce using rule 102 + '×' reduce using rule 102 + '→' reduce using rule 102 + '↦' reduce using rule 102 + '∧' reduce using rule 102 + '∨' reduce using rule 102 + '≡' reduce using rule 102 + '≤' reduce using rule 102 + '⊤' reduce using rule 102 + '⊥' reduce using rule 102 + L_VarIdentTokenreduce using rule 102 + L_HoleIdentTokenreduce using rule 102 + %eof reduce using rule 102 -State 207 +State 228 - Term7 -> '(' Term ',' . Term ')' (rule 93) + Term7 -> '(' Term ',' . Term ')' (rule 94) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5163,98 +6858,175 @@ State 207 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 247 + Term goto state 270 -State 208 +State 229 - Term1 -> Term2 '=_{' Term . '}' Term2 (rule 113) + Term1 -> Term2 '=_{' Term . '}' Term2 (rule 125) - '}' shift, and enter state 246 + '}' shift, and enter state 269 -State 209 +State 230 - Term1 -> Term2 '=' Term2 . (rule 114) + Term1 -> Term2 '=' Term2 . (rule 126) - ')' reduce using rule 114 - ',' reduce using rule 114 - ':' reduce using rule 114 - ':=' reduce using rule 114 - ';' reduce using rule 114 - '>' reduce using rule 114 - ']' reduce using rule 114 - '|' reduce using rule 114 - '|->' reduce using rule 114 - '}' reduce using rule 114 - %eof reduce using rule 114 + ')' reduce using rule 126 + ',' reduce using rule 126 + ':' reduce using rule 126 + ':=' reduce using rule 126 + ';' reduce using rule 126 + '>' reduce using rule 126 + ']' reduce using rule 126 + '|' reduce using rule 126 + '|->' reduce using rule 126 + '}' reduce using rule 126 + '↦' reduce using rule 126 + %eof reduce using rule 126 + + +State 231 + + Term5 -> Term5 '×' Term6 . (rule 109) + Term6 -> Term6 . '[' ListRestriction ']' (rule 133) + Term6 -> Term6 . Term7 (rule 134) + + '(' shift, and enter state 79 + ')' reduce using rule 109 + '*' reduce using rule 109 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + ',' reduce using rule 109 + '/\\' reduce using rule 109 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + ':' reduce using rule 109 + ':=' reduce using rule 109 + ';' reduce using rule 109 + '<' shift, and enter state 51 + '<=' reduce using rule 109 + '=' reduce using rule 109 + '===' reduce using rule 109 + '=_{' reduce using rule 109 + '>' reduce using rule 109 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '[' shift, and enter state 162 + '\\/' reduce using rule 109 + ']' reduce using rule 109 + 'as' reduce using rule 109 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'unit' shift, and enter state 67 + '|' reduce using rule 109 + '|->' reduce using rule 109 + '}' reduce using rule 109 + '×' reduce using rule 109 + '↦' reduce using rule 109 + '∧' reduce using rule 109 + '∨' reduce using rule 109 + '≡' reduce using rule 109 + '≤' reduce using rule 109 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + %eof reduce using rule 109 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + Term7 goto state 161 -State 210 +State 232 - Term5 -> Term5 '*' Term6 . (rule 102) - Term6 -> Term6 . '[' ListRestriction ']' (rule 120) - Term6 -> Term6 . Term7 (rule 121) + Term5 -> Term5 '*' Term6 . (rule 111) + Term6 -> Term6 . '[' ListRestriction ']' (rule 133) + Term6 -> Term6 . Term7 (rule 134) - '(' shift, and enter state 72 - ')' reduce using rule 102 - '*' reduce using rule 102 + '(' shift, and enter state 79 + ')' reduce using rule 111 + '*' reduce using rule 111 '*_1' shift, and enter state 43 - ',' reduce using rule 102 - '/\\' reduce using rule 102 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - ':' reduce using rule 102 - ':=' reduce using rule 102 - ';' reduce using rule 102 - '<' shift, and enter state 48 - '<=' reduce using rule 102 - '=' reduce using rule 102 - '===' reduce using rule 102 - '=_{' reduce using rule 102 - '>' reduce using rule 102 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '[' shift, and enter state 155 - '\\/' reduce using rule 102 - ']' reduce using rule 102 - 'as' reduce using rule 102 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'unit' shift, and enter state 64 - '|' reduce using rule 102 - '|->' reduce using rule 102 - '}' reduce using rule 102 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 - %eof reduce using rule 102 + '*₁' shift, and enter state 44 + ',' reduce using rule 111 + '/\\' reduce using rule 111 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + ':' reduce using rule 111 + ':=' reduce using rule 111 + ';' reduce using rule 111 + '<' shift, and enter state 51 + '<=' reduce using rule 111 + '=' reduce using rule 111 + '===' reduce using rule 111 + '=_{' reduce using rule 111 + '>' reduce using rule 111 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '[' shift, and enter state 162 + '\\/' reduce using rule 111 + ']' reduce using rule 111 + 'as' reduce using rule 111 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'unit' shift, and enter state 67 + '|' reduce using rule 111 + '|->' reduce using rule 111 + '}' reduce using rule 111 + '×' reduce using rule 111 + '↦' reduce using rule 111 + '∧' reduce using rule 111 + '∨' reduce using rule 111 + '≡' reduce using rule 111 + '≤' reduce using rule 111 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + %eof reduce using rule 111 VarIdentToken goto state 28 HoleIdentToken goto state 29 HoleIdent goto state 30 VarIdent goto state 31 - Term7 goto state 154 + Term7 goto state 161 -State 211 +State 233 - ListRestriction -> Restriction ',' ListRestriction . (rule 77) + ListRestriction -> Restriction ',' ListRestriction . (rule 78) - ')' reduce using rule 77 - ']' reduce using rule 77 - %eof reduce using rule 77 + ')' reduce using rule 78 + ']' reduce using rule 78 + %eof reduce using rule 78 -State 212 +State 234 - Restriction -> Term '|->' Term . (rule 75) + Restriction -> Term '↦' Term . (rule 75) ')' reduce using rule 75 ',' reduce using rule 75 @@ -5262,45 +7034,62 @@ State 212 %eof reduce using rule 75 -State 213 +State 235 + + Restriction -> Term '|->' Term . (rule 76) + + ')' reduce using rule 76 + ',' reduce using rule 76 + ']' reduce using rule 76 + %eof reduce using rule 76 - Term6 -> Term6 '[' ListRestriction . ']' (rule 120) - ']' shift, and enter state 245 +State 236 + Term6 -> Term6 '[' ListRestriction . ']' (rule 133) -State 214 + ']' shift, and enter state 268 + + +State 237 Param -> '(' ListPattern ':' . Term ')' (rule 65) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5314,53 +7103,60 @@ State 214 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 244 + Term goto state 267 -State 215 +State 238 Pattern -> '(' Pattern ',' . Pattern ')' (rule 61) - '(' shift, and enter state 98 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 105 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 243 + VarIdent goto state 94 + Pattern goto state 266 -State 216 +State 239 Param -> '{' Pattern ':' . Term '|' Term '}' (rule 66) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5374,16 +7170,16 @@ State 216 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 242 + Term goto state 265 -State 217 +State 240 DeclUsedVars -> 'uses' '(' ListVarIdent . ')' (rule 54) - ')' shift, and enter state 241 + ')' shift, and enter state 264 -State 218 +State 241 ListCommand -> Command ';' ListCommand . (rule 53) @@ -5391,38 +7187,45 @@ State 218 %eof reduce using rule 53 -State 219 +State 242 Command -> '#assume' ListVarIdent ':' . Term (rule 44) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5436,40 +7239,47 @@ State 219 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 240 + Term goto state 263 -State 220 +State 243 Command -> '#check' Term ':' . Term (rule 38) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5483,124 +7293,131 @@ State 220 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 239 + Term goto state 262 -State 221 +State 244 Command -> '#def' VarIdent DeclUsedVars . ListParam ':' Term ':=' Term (rule 50) Command -> '#def' VarIdent DeclUsedVars . ':' Term ':=' Term (rule 51) - '(' shift, and enter state 91 - ':' shift, and enter state 238 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - '{' shift, and enter state 94 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 98 + ':' shift, and enter state 261 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + '{' shift, and enter state 101 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 88 - Param goto state 89 - ListParam goto state 237 + VarIdent goto state 94 + Pattern goto state 95 + Param goto state 96 + ListParam goto state 260 -State 222 +State 245 Command -> '#define' VarIdent DeclUsedVars . ListParam ':' Term ':=' Term (rule 48) Command -> '#define' VarIdent DeclUsedVars . ':' Term ':=' Term (rule 49) - '(' shift, and enter state 91 - ':' shift, and enter state 236 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - '{' shift, and enter state 94 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 98 + ':' shift, and enter state 259 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + '{' shift, and enter state 101 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 88 - Param goto state 89 - ListParam goto state 235 + VarIdent goto state 94 + Pattern goto state 95 + Param goto state 96 + ListParam goto state 258 -State 223 +State 246 Command -> '#postulate' VarIdent DeclUsedVars . ListParam ':' Term (rule 42) Command -> '#postulate' VarIdent DeclUsedVars . ':' Term (rule 43) - '(' shift, and enter state 91 - ':' shift, and enter state 234 - '_' shift, and enter state 92 - 'unit' shift, and enter state 93 - '{' shift, and enter state 94 - L_VarIdentTokenshift, and enter state 68 + '(' shift, and enter state 98 + ':' shift, and enter state 257 + '_' shift, and enter state 99 + 'unit' shift, and enter state 100 + '{' shift, and enter state 101 + L_VarIdentTokenshift, and enter state 75 VarIdentToken goto state 28 - VarIdent goto state 87 - Pattern goto state 88 - Param goto state 89 - ListParam goto state 233 + VarIdent goto state 94 + Pattern goto state 95 + Param goto state 96 + ListParam goto state 256 -State 224 +State 247 Command -> '#section' SectionName ';' . ListCommand '#end' SectionName (rule 47) - '#assume' shift, and enter state 106 - '#check' shift, and enter state 107 - '#compute' shift, and enter state 108 - '#compute-nf' shift, and enter state 109 - '#compute-whnf'shift, and enter state 110 - '#def' shift, and enter state 111 - '#define' shift, and enter state 112 + '#assume' shift, and enter state 113 + '#check' shift, and enter state 114 + '#compute' shift, and enter state 115 + '#compute-nf' shift, and enter state 116 + '#compute-whnf'shift, and enter state 117 + '#def' shift, and enter state 118 + '#define' shift, and enter state 119 '#end' reduce using rule 52 - '#postulate' shift, and enter state 113 - '#section' shift, and enter state 114 - '#set-option' shift, and enter state 115 - '#unset-option'shift, and enter state 116 - '#variable' shift, and enter state 117 - '#variables' shift, and enter state 118 + '#postulate' shift, and enter state 120 + '#section' shift, and enter state 121 + '#set-option' shift, and enter state 122 + '#unset-option'shift, and enter state 123 + '#variable' shift, and enter state 124 + '#variables' shift, and enter state 125 - Command goto state 104 - ListCommand goto state 232 + Command goto state 111 + ListCommand goto state 255 -State 225 +State 248 Command -> '#set-option' String '=' . String (rule 36) L_quoted shift, and enter state 27 - String goto state 231 + String goto state 254 -State 226 +State 249 Command -> '#variable' VarIdent ':' . Term (rule 45) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5614,40 +7431,47 @@ State 226 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 230 + Term goto state 253 -State 227 +State 250 Command -> '#variables' ListVarIdent ':' . Term (rule 46) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5661,9 +7485,9 @@ State 227 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 229 + Term goto state 252 -State 228 +State 251 LanguageDecl -> '#lang' Language ';' . (rule 34) @@ -5683,7 +7507,7 @@ State 228 %eof reduce using rule 34 -State 229 +State 252 Command -> '#variables' ListVarIdent ':' Term . (rule 46) @@ -5691,7 +7515,7 @@ State 229 %eof reduce using rule 46 -State 230 +State 253 Command -> '#variable' VarIdent ':' Term . (rule 45) @@ -5699,7 +7523,7 @@ State 230 %eof reduce using rule 45 -State 231 +State 254 Command -> '#set-option' String '=' String . (rule 36) @@ -5707,52 +7531,59 @@ State 231 %eof reduce using rule 36 -State 232 +State 255 Command -> '#section' SectionName ';' ListCommand . '#end' SectionName (rule 47) - '#end' shift, and enter state 284 + '#end' shift, and enter state 310 -State 233 +State 256 Command -> '#postulate' VarIdent DeclUsedVars ListParam . ':' Term (rule 42) - ':' shift, and enter state 283 + ':' shift, and enter state 309 -State 234 +State 257 Command -> '#postulate' VarIdent DeclUsedVars ':' . Term (rule 43) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5766,47 +7597,54 @@ State 234 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 282 + Term goto state 308 -State 235 +State 258 Command -> '#define' VarIdent DeclUsedVars ListParam . ':' Term ':=' Term (rule 48) - ':' shift, and enter state 281 + ':' shift, and enter state 307 -State 236 +State 259 Command -> '#define' VarIdent DeclUsedVars ':' . Term ':=' Term (rule 49) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5820,47 +7658,54 @@ State 236 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 280 + Term goto state 306 -State 237 +State 260 Command -> '#def' VarIdent DeclUsedVars ListParam . ':' Term ':=' Term (rule 50) - ':' shift, and enter state 279 + ':' shift, and enter state 305 -State 238 +State 261 Command -> '#def' VarIdent DeclUsedVars ':' . Term ':=' Term (rule 51) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -5874,9 +7719,9 @@ State 238 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 278 + Term goto state 304 -State 239 +State 262 Command -> '#check' Term ':' Term . (rule 38) @@ -5884,7 +7729,7 @@ State 239 %eof reduce using rule 38 -State 240 +State 263 Command -> '#assume' ListVarIdent ':' Term . (rule 44) @@ -5892,7 +7737,7 @@ State 240 %eof reduce using rule 44 -State 241 +State 264 DeclUsedVars -> 'uses' '(' ListVarIdent ')' . (rule 54) @@ -5905,103 +7750,121 @@ State 241 %eof reduce using rule 54 -State 242 +State 265 Param -> '{' Pattern ':' Term . '|' Term '}' (rule 66) - '|' shift, and enter state 277 + '|' shift, and enter state 303 -State 243 +State 266 Pattern -> '(' Pattern ',' Pattern . ')' (rule 61) - ')' shift, and enter state 276 + ')' shift, and enter state 302 -State 244 +State 267 Param -> '(' ListPattern ':' Term . ')' (rule 65) - ')' shift, and enter state 275 - + ')' shift, and enter state 301 -State 245 - Term6 -> Term6 '[' ListRestriction ']' . (rule 120) +State 268 - '(' reduce using rule 120 - ')' reduce using rule 120 - '*' reduce using rule 120 - '*_1' reduce using rule 120 - ',' reduce using rule 120 - '->' reduce using rule 120 - '/\\' reduce using rule 120 - '0_2' reduce using rule 120 - '1' reduce using rule 120 - '1_2' reduce using rule 120 - '2' reduce using rule 120 - ':' reduce using rule 120 - ':=' reduce using rule 120 - ';' reduce using rule 120 - '<' reduce using rule 120 - '<=' reduce using rule 120 - '=' reduce using rule 120 - '===' reduce using rule 120 - '=_{' reduce using rule 120 - '>' reduce using rule 120 - 'BOT' reduce using rule 120 - 'CUBE' reduce using rule 120 - 'TOP' reduce using rule 120 - 'TOPE' reduce using rule 120 - 'U' reduce using rule 120 - 'Unit' reduce using rule 120 - '[' reduce using rule 120 - '\\/' reduce using rule 120 - ']' reduce using rule 120 - 'as' reduce using rule 120 - 'idJ' reduce using rule 120 - 'recBOT' reduce using rule 120 - 'recOR' reduce using rule 120 - 'refl' reduce using rule 120 - 'refl_{' reduce using rule 120 - 'unit' reduce using rule 120 - '|' reduce using rule 120 - '|->' reduce using rule 120 - '}' reduce using rule 120 - '→' reduce using rule 120 - L_VarIdentTokenreduce using rule 120 - L_HoleIdentTokenreduce using rule 120 - %eof reduce using rule 120 + Term6 -> Term6 '[' ListRestriction ']' . (rule 133) + + '(' reduce using rule 133 + ')' reduce using rule 133 + '*' reduce using rule 133 + '*_1' reduce using rule 133 + '*₁' reduce using rule 133 + ',' reduce using rule 133 + '->' reduce using rule 133 + '/\\' reduce using rule 133 + '0_2' reduce using rule 133 + '0₂' reduce using rule 133 + '1' reduce using rule 133 + '1_2' reduce using rule 133 + '1₂' reduce using rule 133 + '2' reduce using rule 133 + ':' reduce using rule 133 + ':=' reduce using rule 133 + ';' reduce using rule 133 + '<' reduce using rule 133 + '<=' reduce using rule 133 + '=' reduce using rule 133 + '===' reduce using rule 133 + '=_{' reduce using rule 133 + '>' reduce using rule 133 + 'BOT' reduce using rule 133 + 'CUBE' reduce using rule 133 + 'TOP' reduce using rule 133 + 'TOPE' reduce using rule 133 + 'U' reduce using rule 133 + 'Unit' reduce using rule 133 + '[' reduce using rule 133 + '\\/' reduce using rule 133 + ']' reduce using rule 133 + 'as' reduce using rule 133 + 'idJ' reduce using rule 133 + 'recBOT' reduce using rule 133 + 'recOR' reduce using rule 133 + 'refl' reduce using rule 133 + 'refl_{' reduce using rule 133 + 'unit' reduce using rule 133 + '|' reduce using rule 133 + '|->' reduce using rule 133 + '}' reduce using rule 133 + '×' reduce using rule 133 + '→' reduce using rule 133 + '↦' reduce using rule 133 + '∧' reduce using rule 133 + '∨' reduce using rule 133 + '≡' reduce using rule 133 + '≤' reduce using rule 133 + '⊤' reduce using rule 133 + '⊥' reduce using rule 133 + L_VarIdentTokenreduce using rule 133 + L_HoleIdentTokenreduce using rule 133 + %eof reduce using rule 133 -State 246 +State 269 - Term1 -> Term2 '=_{' Term '}' . Term2 (rule 113) + Term1 -> Term2 '=_{' Term '}' . Term2 (rule 125) - '(' shift, and enter state 72 + '(' shift, and enter state 79 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6011,48 +7874,55 @@ State 246 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 274 - Term6 goto state 76 + Term2 goto state 300 + Term6 goto state 83 -State 247 +State 270 - Term7 -> '(' Term ',' Term . ')' (rule 93) + Term7 -> '(' Term ',' Term . ')' (rule 94) - ')' shift, and enter state 273 + ')' shift, and enter state 299 -State 248 +State 271 - Term1 -> '∑' '(' Pattern ':' . Term ')' ',' Term1 (rule 119) + Term1 -> '∑' '(' Pattern ':' . Term ')' ',' Term1 (rule 132) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6066,40 +7936,47 @@ State 248 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 272 + Term goto state 298 -State 249 +State 272 - Term1 -> 'Σ' '(' Pattern ':' . Term ')' ',' Term1 (rule 118) + Term1 -> 'Σ' '(' Pattern ':' . Term ')' ',' Term1 (rule 124) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6113,199 +7990,56 @@ State 249 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 271 + Term goto state 297 -State 250 +State 273 ParamDecl -> '{' Pattern ':' Term . '}' (rule 71) - ParamDecl -> '{' Pattern ':' Term . '|' Term '}' (rule 74) - - '|' shift, and enter state 269 - '}' shift, and enter state 270 - - -State 251 - - ParamDecl -> '{' '(' Pattern ':' . Term ')' '|' Term '}' (rule 73) - - '(' shift, and enter state 42 - '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 - - VarIdentToken goto state 28 - HoleIdentToken goto state 29 - HoleIdent goto state 30 - VarIdent goto state 31 - ParamDecl goto state 32 - Term7 goto state 33 - Term5 goto state 34 - Term4 goto state 35 - Term3 goto state 36 - Term2 goto state 37 - Term1 goto state 38 - Term6 goto state 39 - Term goto state 268 - -State 252 - - Term7 -> 'refl_{' Term ':' Term . '}' (rule 97) - - '}' shift, and enter state 267 - - -State 253 - - Term7 -> 'recOR' '(' Term ',' . Term ',' Term ',' Term ')' (rule 90) - - '(' shift, and enter state 42 - '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 - - VarIdentToken goto state 28 - HoleIdentToken goto state 29 - HoleIdent goto state 30 - VarIdent goto state 31 - ParamDecl goto state 32 - Term7 goto state 33 - Term5 goto state 34 - Term4 goto state 35 - Term3 goto state 36 - Term2 goto state 37 - Term1 goto state 38 - Term6 goto state 39 - Term goto state 266 - -State 254 - - Term7 -> 'recOR' '(' ListRestriction ')' . (rule 89) - - '(' reduce using rule 89 - ')' reduce using rule 89 - '*' reduce using rule 89 - '*_1' reduce using rule 89 - ',' reduce using rule 89 - '->' reduce using rule 89 - '/\\' reduce using rule 89 - '0_2' reduce using rule 89 - '1' reduce using rule 89 - '1_2' reduce using rule 89 - '2' reduce using rule 89 - ':' reduce using rule 89 - ':=' reduce using rule 89 - ';' reduce using rule 89 - '<' reduce using rule 89 - '<=' reduce using rule 89 - '=' reduce using rule 89 - '===' reduce using rule 89 - '=_{' reduce using rule 89 - '>' reduce using rule 89 - 'BOT' reduce using rule 89 - 'CUBE' reduce using rule 89 - 'TOP' reduce using rule 89 - 'TOPE' reduce using rule 89 - 'U' reduce using rule 89 - 'Unit' reduce using rule 89 - '[' reduce using rule 89 - '\\/' reduce using rule 89 - ']' reduce using rule 89 - 'as' reduce using rule 89 - 'idJ' reduce using rule 89 - 'recBOT' reduce using rule 89 - 'recOR' reduce using rule 89 - 'refl' reduce using rule 89 - 'refl_{' reduce using rule 89 - 'unit' reduce using rule 89 - '|' reduce using rule 89 - '|->' reduce using rule 89 - '}' reduce using rule 89 - '→' reduce using rule 89 - L_VarIdentTokenreduce using rule 89 - L_HoleIdentTokenreduce using rule 89 - %eof reduce using rule 89 + ParamDecl -> '{' Pattern ':' Term . '|' Term '}' (rule 74) + '|' shift, and enter state 295 + '}' shift, and enter state 296 -State 255 - Term7 -> 'idJ' '(' Term ',' . Term ',' Term ',' Term ',' Term ',' Term ')' (rule 98) +State 274 + + ParamDecl -> '{' '(' Pattern ':' . Term ')' '|' Term '}' (rule 73) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6319,57 +8053,54 @@ State 255 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 265 + Term goto state 294 -State 256 +State 275 - Term1 -> '\\' ListParam '->' Term1 . (rule 115) + Term7 -> 'refl_{' Term ':' Term . '}' (rule 98) - ')' reduce using rule 115 - ',' reduce using rule 115 - ':' reduce using rule 115 - ':=' reduce using rule 115 - ';' reduce using rule 115 - '>' reduce using rule 115 - ']' reduce using rule 115 - '|' reduce using rule 115 - '|->' reduce using rule 115 - '}' reduce using rule 115 - %eof reduce using rule 115 + '}' shift, and enter state 293 -State 257 +State 276 - Term1 -> 'Sigma' '(' Pattern ':' . Term ')' ',' Term1 (rule 112) + Term7 -> 'recOR' '(' Term ',' . Term ',' Term ',' Term ')' (rule 91) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6383,257 +8114,335 @@ State 257 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 264 - -State 258 - - Term7 -> '<' ParamDecl '->' Term . '>' (rule 92) - - '>' shift, and enter state 263 - - -State 259 - - ParamDecl -> '(' VarIdent ':' Term . ')' (rule 72) - - ')' shift, and enter state 262 + Term goto state 292 +State 277 -State 260 - - ParamDecl -> '(' '_' ':' Term . ')' (rule 70) - - ')' shift, and enter state 261 - - -State 261 - - ParamDecl -> '(' '_' ':' Term ')' . (rule 70) - - '->' reduce using rule 70 - '→' reduce using rule 70 - %eof reduce using rule 70 + Term7 -> 'recOR' '(' ListRestriction ')' . (rule 90) + '(' reduce using rule 90 + ')' reduce using rule 90 + '*' reduce using rule 90 + '*_1' reduce using rule 90 + '*₁' reduce using rule 90 + ',' reduce using rule 90 + '->' reduce using rule 90 + '/\\' reduce using rule 90 + '0_2' reduce using rule 90 + '0₂' reduce using rule 90 + '1' reduce using rule 90 + '1_2' reduce using rule 90 + '1₂' reduce using rule 90 + '2' reduce using rule 90 + ':' reduce using rule 90 + ':=' reduce using rule 90 + ';' reduce using rule 90 + '<' reduce using rule 90 + '<=' reduce using rule 90 + '=' reduce using rule 90 + '===' reduce using rule 90 + '=_{' reduce using rule 90 + '>' reduce using rule 90 + 'BOT' reduce using rule 90 + 'CUBE' reduce using rule 90 + 'TOP' reduce using rule 90 + 'TOPE' reduce using rule 90 + 'U' reduce using rule 90 + 'Unit' reduce using rule 90 + '[' reduce using rule 90 + '\\/' reduce using rule 90 + ']' reduce using rule 90 + 'as' reduce using rule 90 + 'idJ' reduce using rule 90 + 'recBOT' reduce using rule 90 + 'recOR' reduce using rule 90 + 'refl' reduce using rule 90 + 'refl_{' reduce using rule 90 + 'unit' reduce using rule 90 + '|' reduce using rule 90 + '|->' reduce using rule 90 + '}' reduce using rule 90 + '×' reduce using rule 90 + '→' reduce using rule 90 + '↦' reduce using rule 90 + '∧' reduce using rule 90 + '∨' reduce using rule 90 + '≡' reduce using rule 90 + '≤' reduce using rule 90 + '⊤' reduce using rule 90 + '⊥' reduce using rule 90 + L_VarIdentTokenreduce using rule 90 + L_HoleIdentTokenreduce using rule 90 + %eof reduce using rule 90 -State 262 - ParamDecl -> '(' VarIdent ':' Term ')' . (rule 72) +State 278 - '->' reduce using rule 72 - '→' reduce using rule 72 - %eof reduce using rule 72 + Term7 -> 'idJ' '(' Term ',' . Term ',' Term ',' Term ',' Term ',' Term ')' (rule 99) + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 -State 263 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 291 - Term7 -> '<' ParamDecl '->' Term '>' . (rule 92) +State 279 - '(' reduce using rule 92 - ')' reduce using rule 92 - '*' reduce using rule 92 - '*_1' reduce using rule 92 - ',' reduce using rule 92 - '->' reduce using rule 92 - '/\\' reduce using rule 92 - '0_2' reduce using rule 92 - '1' reduce using rule 92 - '1_2' reduce using rule 92 - '2' reduce using rule 92 - ':' reduce using rule 92 - ':=' reduce using rule 92 - ';' reduce using rule 92 - '<' reduce using rule 92 - '<=' reduce using rule 92 - '=' reduce using rule 92 - '===' reduce using rule 92 - '=_{' reduce using rule 92 - '>' reduce using rule 92 - 'BOT' reduce using rule 92 - 'CUBE' reduce using rule 92 - 'TOP' reduce using rule 92 - 'TOPE' reduce using rule 92 - 'U' reduce using rule 92 - 'Unit' reduce using rule 92 - '[' reduce using rule 92 - '\\/' reduce using rule 92 - ']' reduce using rule 92 - 'as' reduce using rule 92 - 'idJ' reduce using rule 92 - 'recBOT' reduce using rule 92 - 'recOR' reduce using rule 92 - 'refl' reduce using rule 92 - 'refl_{' reduce using rule 92 - 'unit' reduce using rule 92 - '|' reduce using rule 92 - '|->' reduce using rule 92 - '}' reduce using rule 92 - '→' reduce using rule 92 - L_VarIdentTokenreduce using rule 92 - L_HoleIdentTokenreduce using rule 92 - %eof reduce using rule 92 + Term1 -> '\\' ListParam '→' Term1 . (rule 127) + + ')' reduce using rule 127 + ',' reduce using rule 127 + ':' reduce using rule 127 + ':=' reduce using rule 127 + ';' reduce using rule 127 + '>' reduce using rule 127 + ']' reduce using rule 127 + '|' reduce using rule 127 + '|->' reduce using rule 127 + '}' reduce using rule 127 + '↦' reduce using rule 127 + %eof reduce using rule 127 -State 264 +State 280 - Term1 -> 'Sigma' '(' Pattern ':' Term . ')' ',' Term1 (rule 112) + Term1 -> '\\' ListParam '->' Term1 . (rule 131) - ')' shift, and enter state 298 + ')' reduce using rule 131 + ',' reduce using rule 131 + ':' reduce using rule 131 + ':=' reduce using rule 131 + ';' reduce using rule 131 + '>' reduce using rule 131 + ']' reduce using rule 131 + '|' reduce using rule 131 + '|->' reduce using rule 131 + '}' reduce using rule 131 + '↦' reduce using rule 131 + %eof reduce using rule 131 -State 265 +State 281 - Term7 -> 'idJ' '(' Term ',' Term . ',' Term ',' Term ',' Term ',' Term ')' (rule 98) + Term1 -> 'Sigma' '(' Pattern ':' . Term ')' ',' Term1 (rule 130) - ',' shift, and enter state 297 + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 290 -State 266 +State 282 - Term7 -> 'recOR' '(' Term ',' Term . ',' Term ',' Term ')' (rule 90) + Term7 -> '<' ParamDecl '→' Term . '>' (rule 93) - ',' shift, and enter state 296 + '>' shift, and enter state 289 -State 267 +State 283 - Term7 -> 'refl_{' Term ':' Term '}' . (rule 97) + Term7 -> '<' ParamDecl '->' Term . '>' (rule 108) - '(' reduce using rule 97 - ')' reduce using rule 97 - '*' reduce using rule 97 - '*_1' reduce using rule 97 - ',' reduce using rule 97 - '->' reduce using rule 97 - '/\\' reduce using rule 97 - '0_2' reduce using rule 97 - '1' reduce using rule 97 - '1_2' reduce using rule 97 - '2' reduce using rule 97 - ':' reduce using rule 97 - ':=' reduce using rule 97 - ';' reduce using rule 97 - '<' reduce using rule 97 - '<=' reduce using rule 97 - '=' reduce using rule 97 - '===' reduce using rule 97 - '=_{' reduce using rule 97 - '>' reduce using rule 97 - 'BOT' reduce using rule 97 - 'CUBE' reduce using rule 97 - 'TOP' reduce using rule 97 - 'TOPE' reduce using rule 97 - 'U' reduce using rule 97 - 'Unit' reduce using rule 97 - '[' reduce using rule 97 - '\\/' reduce using rule 97 - ']' reduce using rule 97 - 'as' reduce using rule 97 - 'idJ' reduce using rule 97 - 'recBOT' reduce using rule 97 - 'recOR' reduce using rule 97 - 'refl' reduce using rule 97 - 'refl_{' reduce using rule 97 - 'unit' reduce using rule 97 - '|' reduce using rule 97 - '|->' reduce using rule 97 - '}' reduce using rule 97 - '→' reduce using rule 97 - L_VarIdentTokenreduce using rule 97 - L_HoleIdentTokenreduce using rule 97 - %eof reduce using rule 97 + '>' shift, and enter state 288 -State 268 +State 284 - ParamDecl -> '{' '(' Pattern ':' Term . ')' '|' Term '}' (rule 73) + ParamDecl -> '(' VarIdent ':' Term . ')' (rule 72) - ')' shift, and enter state 295 + ')' shift, and enter state 287 -State 269 +State 285 - ParamDecl -> '{' Pattern ':' Term '|' . Term '}' (rule 74) + ParamDecl -> '(' '_' ':' Term . ')' (rule 70) - '(' shift, and enter state 42 - '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + ')' shift, and enter state 286 - VarIdentToken goto state 28 - HoleIdentToken goto state 29 - HoleIdent goto state 30 - VarIdent goto state 31 - ParamDecl goto state 32 - Term7 goto state 33 - Term5 goto state 34 - Term4 goto state 35 - Term3 goto state 36 - Term2 goto state 37 - Term1 goto state 38 - Term6 goto state 39 - Term goto state 294 -State 270 +State 286 - ParamDecl -> '{' Pattern ':' Term '}' . (rule 71) + ParamDecl -> '(' '_' ':' Term ')' . (rule 70) - '->' reduce using rule 71 - '→' reduce using rule 71 - %eof reduce using rule 71 + '->' reduce using rule 70 + '→' reduce using rule 70 + %eof reduce using rule 70 -State 271 +State 287 - Term1 -> 'Σ' '(' Pattern ':' Term . ')' ',' Term1 (rule 118) + ParamDecl -> '(' VarIdent ':' Term ')' . (rule 72) - ')' shift, and enter state 293 + '->' reduce using rule 72 + '→' reduce using rule 72 + %eof reduce using rule 72 -State 272 +State 288 - Term1 -> '∑' '(' Pattern ':' Term . ')' ',' Term1 (rule 119) + Term7 -> '<' ParamDecl '->' Term '>' . (rule 108) - ')' shift, and enter state 292 + '(' reduce using rule 108 + ')' reduce using rule 108 + '*' reduce using rule 108 + '*_1' reduce using rule 108 + '*₁' reduce using rule 108 + ',' reduce using rule 108 + '->' reduce using rule 108 + '/\\' reduce using rule 108 + '0_2' reduce using rule 108 + '0₂' reduce using rule 108 + '1' reduce using rule 108 + '1_2' reduce using rule 108 + '1₂' reduce using rule 108 + '2' reduce using rule 108 + ':' reduce using rule 108 + ':=' reduce using rule 108 + ';' reduce using rule 108 + '<' reduce using rule 108 + '<=' reduce using rule 108 + '=' reduce using rule 108 + '===' reduce using rule 108 + '=_{' reduce using rule 108 + '>' reduce using rule 108 + 'BOT' reduce using rule 108 + 'CUBE' reduce using rule 108 + 'TOP' reduce using rule 108 + 'TOPE' reduce using rule 108 + 'U' reduce using rule 108 + 'Unit' reduce using rule 108 + '[' reduce using rule 108 + '\\/' reduce using rule 108 + ']' reduce using rule 108 + 'as' reduce using rule 108 + 'idJ' reduce using rule 108 + 'recBOT' reduce using rule 108 + 'recOR' reduce using rule 108 + 'refl' reduce using rule 108 + 'refl_{' reduce using rule 108 + 'unit' reduce using rule 108 + '|' reduce using rule 108 + '|->' reduce using rule 108 + '}' reduce using rule 108 + '×' reduce using rule 108 + '→' reduce using rule 108 + '↦' reduce using rule 108 + '∧' reduce using rule 108 + '∨' reduce using rule 108 + '≡' reduce using rule 108 + '≤' reduce using rule 108 + '⊤' reduce using rule 108 + '⊥' reduce using rule 108 + L_VarIdentTokenreduce using rule 108 + L_HoleIdentTokenreduce using rule 108 + %eof reduce using rule 108 -State 273 +State 289 - Term7 -> '(' Term ',' Term ')' . (rule 93) + Term7 -> '<' ParamDecl '→' Term '>' . (rule 93) '(' reduce using rule 93 ')' reduce using rule 93 '*' reduce using rule 93 '*_1' reduce using rule 93 + '*₁' reduce using rule 93 ',' reduce using rule 93 '->' reduce using rule 93 '/\\' reduce using rule 93 '0_2' reduce using rule 93 + '0₂' reduce using rule 93 '1' reduce using rule 93 '1_2' reduce using rule 93 + '1₂' reduce using rule 93 '2' reduce using rule 93 ':' reduce using rule 93 ':=' reduce using rule 93 @@ -6663,30 +8472,264 @@ State 273 '|' reduce using rule 93 '|->' reduce using rule 93 '}' reduce using rule 93 + '×' reduce using rule 93 '→' reduce using rule 93 + '↦' reduce using rule 93 + '∧' reduce using rule 93 + '∨' reduce using rule 93 + '≡' reduce using rule 93 + '≤' reduce using rule 93 + '⊤' reduce using rule 93 + '⊥' reduce using rule 93 L_VarIdentTokenreduce using rule 93 L_HoleIdentTokenreduce using rule 93 %eof reduce using rule 93 -State 274 +State 290 - Term1 -> Term2 '=_{' Term '}' Term2 . (rule 113) + Term1 -> 'Sigma' '(' Pattern ':' Term . ')' ',' Term1 (rule 130) - ')' reduce using rule 113 - ',' reduce using rule 113 - ':' reduce using rule 113 - ':=' reduce using rule 113 - ';' reduce using rule 113 - '>' reduce using rule 113 - ']' reduce using rule 113 - '|' reduce using rule 113 - '|->' reduce using rule 113 - '}' reduce using rule 113 - %eof reduce using rule 113 + ')' shift, and enter state 324 -State 275 +State 291 + + Term7 -> 'idJ' '(' Term ',' Term . ',' Term ',' Term ',' Term ',' Term ')' (rule 99) + + ',' shift, and enter state 323 + + +State 292 + + Term7 -> 'recOR' '(' Term ',' Term . ',' Term ',' Term ')' (rule 91) + + ',' shift, and enter state 322 + + +State 293 + + Term7 -> 'refl_{' Term ':' Term '}' . (rule 98) + + '(' reduce using rule 98 + ')' reduce using rule 98 + '*' reduce using rule 98 + '*_1' reduce using rule 98 + '*₁' reduce using rule 98 + ',' reduce using rule 98 + '->' reduce using rule 98 + '/\\' reduce using rule 98 + '0_2' reduce using rule 98 + '0₂' reduce using rule 98 + '1' reduce using rule 98 + '1_2' reduce using rule 98 + '1₂' reduce using rule 98 + '2' reduce using rule 98 + ':' reduce using rule 98 + ':=' reduce using rule 98 + ';' reduce using rule 98 + '<' reduce using rule 98 + '<=' reduce using rule 98 + '=' reduce using rule 98 + '===' reduce using rule 98 + '=_{' reduce using rule 98 + '>' reduce using rule 98 + 'BOT' reduce using rule 98 + 'CUBE' reduce using rule 98 + 'TOP' reduce using rule 98 + 'TOPE' reduce using rule 98 + 'U' reduce using rule 98 + 'Unit' reduce using rule 98 + '[' reduce using rule 98 + '\\/' reduce using rule 98 + ']' reduce using rule 98 + 'as' reduce using rule 98 + 'idJ' reduce using rule 98 + 'recBOT' reduce using rule 98 + 'recOR' reduce using rule 98 + 'refl' reduce using rule 98 + 'refl_{' reduce using rule 98 + 'unit' reduce using rule 98 + '|' reduce using rule 98 + '|->' reduce using rule 98 + '}' reduce using rule 98 + '×' reduce using rule 98 + '→' reduce using rule 98 + '↦' reduce using rule 98 + '∧' reduce using rule 98 + '∨' reduce using rule 98 + '≡' reduce using rule 98 + '≤' reduce using rule 98 + '⊤' reduce using rule 98 + '⊥' reduce using rule 98 + L_VarIdentTokenreduce using rule 98 + L_HoleIdentTokenreduce using rule 98 + %eof reduce using rule 98 + + +State 294 + + ParamDecl -> '{' '(' Pattern ':' Term . ')' '|' Term '}' (rule 73) + + ')' shift, and enter state 321 + + +State 295 + + ParamDecl -> '{' Pattern ':' Term '|' . Term '}' (rule 74) + + '(' shift, and enter state 42 + '*_1' shift, and enter state 43 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 + + VarIdentToken goto state 28 + HoleIdentToken goto state 29 + HoleIdent goto state 30 + VarIdent goto state 31 + ParamDecl goto state 32 + Term7 goto state 33 + Term5 goto state 34 + Term4 goto state 35 + Term3 goto state 36 + Term2 goto state 37 + Term1 goto state 38 + Term6 goto state 39 + Term goto state 320 + +State 296 + + ParamDecl -> '{' Pattern ':' Term '}' . (rule 71) + + '->' reduce using rule 71 + '→' reduce using rule 71 + %eof reduce using rule 71 + + +State 297 + + Term1 -> 'Σ' '(' Pattern ':' Term . ')' ',' Term1 (rule 124) + + ')' shift, and enter state 319 + + +State 298 + + Term1 -> '∑' '(' Pattern ':' Term . ')' ',' Term1 (rule 132) + + ')' shift, and enter state 318 + + +State 299 + + Term7 -> '(' Term ',' Term ')' . (rule 94) + + '(' reduce using rule 94 + ')' reduce using rule 94 + '*' reduce using rule 94 + '*_1' reduce using rule 94 + '*₁' reduce using rule 94 + ',' reduce using rule 94 + '->' reduce using rule 94 + '/\\' reduce using rule 94 + '0_2' reduce using rule 94 + '0₂' reduce using rule 94 + '1' reduce using rule 94 + '1_2' reduce using rule 94 + '1₂' reduce using rule 94 + '2' reduce using rule 94 + ':' reduce using rule 94 + ':=' reduce using rule 94 + ';' reduce using rule 94 + '<' reduce using rule 94 + '<=' reduce using rule 94 + '=' reduce using rule 94 + '===' reduce using rule 94 + '=_{' reduce using rule 94 + '>' reduce using rule 94 + 'BOT' reduce using rule 94 + 'CUBE' reduce using rule 94 + 'TOP' reduce using rule 94 + 'TOPE' reduce using rule 94 + 'U' reduce using rule 94 + 'Unit' reduce using rule 94 + '[' reduce using rule 94 + '\\/' reduce using rule 94 + ']' reduce using rule 94 + 'as' reduce using rule 94 + 'idJ' reduce using rule 94 + 'recBOT' reduce using rule 94 + 'recOR' reduce using rule 94 + 'refl' reduce using rule 94 + 'refl_{' reduce using rule 94 + 'unit' reduce using rule 94 + '|' reduce using rule 94 + '|->' reduce using rule 94 + '}' reduce using rule 94 + '×' reduce using rule 94 + '→' reduce using rule 94 + '↦' reduce using rule 94 + '∧' reduce using rule 94 + '∨' reduce using rule 94 + '≡' reduce using rule 94 + '≤' reduce using rule 94 + '⊤' reduce using rule 94 + '⊥' reduce using rule 94 + L_VarIdentTokenreduce using rule 94 + L_HoleIdentTokenreduce using rule 94 + %eof reduce using rule 94 + + +State 300 + + Term1 -> Term2 '=_{' Term '}' Term2 . (rule 125) + + ')' reduce using rule 125 + ',' reduce using rule 125 + ':' reduce using rule 125 + ':=' reduce using rule 125 + ';' reduce using rule 125 + '>' reduce using rule 125 + ']' reduce using rule 125 + '|' reduce using rule 125 + '|->' reduce using rule 125 + '}' reduce using rule 125 + '↦' reduce using rule 125 + %eof reduce using rule 125 + + +State 301 Param -> '(' ListPattern ':' Term ')' . (rule 65) @@ -6696,11 +8739,12 @@ State 275 '_' reduce using rule 65 'unit' reduce using rule 65 '{' reduce using rule 65 + '→' reduce using rule 65 L_VarIdentTokenreduce using rule 65 %eof reduce using rule 65 -State 276 +State 302 Pattern -> '(' Pattern ',' Pattern ')' . (rule 61) @@ -6712,42 +8756,50 @@ State 276 '_' reduce using rule 61 'unit' reduce using rule 61 '{' reduce using rule 61 + '→' reduce using rule 61 L_VarIdentTokenreduce using rule 61 %eof reduce using rule 61 -State 277 +State 303 Param -> '{' Pattern ':' Term '|' . Term '}' (rule 66) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6761,47 +8813,54 @@ State 277 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 291 + Term goto state 317 -State 278 +State 304 Command -> '#def' VarIdent DeclUsedVars ':' Term . ':=' Term (rule 51) - ':=' shift, and enter state 290 + ':=' shift, and enter state 316 -State 279 +State 305 Command -> '#def' VarIdent DeclUsedVars ListParam ':' . Term ':=' Term (rule 50) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6815,47 +8874,54 @@ State 279 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 289 + Term goto state 315 -State 280 +State 306 Command -> '#define' VarIdent DeclUsedVars ':' Term . ':=' Term (rule 49) - ':=' shift, and enter state 288 + ':=' shift, and enter state 314 -State 281 +State 307 Command -> '#define' VarIdent DeclUsedVars ListParam ':' . Term ':=' Term (rule 48) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6869,9 +8935,9 @@ State 281 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 287 + Term goto state 313 -State 282 +State 308 Command -> '#postulate' VarIdent DeclUsedVars ':' Term . (rule 43) @@ -6879,38 +8945,45 @@ State 282 %eof reduce using rule 43 -State 283 +State 309 Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' . Term (rule 42) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -6924,21 +8997,21 @@ State 283 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 286 + Term goto state 312 -State 284 +State 310 Command -> '#section' SectionName ';' ListCommand '#end' . SectionName (rule 47) ';' reduce using rule 56 - L_VarIdentTokenshift, and enter state 68 + L_VarIdentTokenshift, and enter state 75 %eof reduce using rule 56 VarIdentToken goto state 28 - VarIdent goto state 100 - SectionName goto state 285 + VarIdent goto state 107 + SectionName goto state 311 -State 285 +State 311 Command -> '#section' SectionName ';' ListCommand '#end' SectionName . (rule 47) @@ -6946,7 +9019,7 @@ State 285 %eof reduce using rule 47 -State 286 +State 312 Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' Term . (rule 42) @@ -6954,45 +9027,52 @@ State 286 %eof reduce using rule 42 -State 287 +State 313 Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term . ':=' Term (rule 48) - ':=' shift, and enter state 310 + ':=' shift, and enter state 336 -State 288 +State 314 Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' . Term (rule 49) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7006,47 +9086,54 @@ State 288 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 309 + Term goto state 335 -State 289 +State 315 Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term . ':=' Term (rule 50) - ':=' shift, and enter state 308 + ':=' shift, and enter state 334 -State 290 +State 316 Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' . Term (rule 51) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7060,75 +9147,82 @@ State 290 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 307 + Term goto state 333 -State 291 +State 317 Param -> '{' Pattern ':' Term '|' Term . '}' (rule 66) - '}' shift, and enter state 306 + '}' shift, and enter state 332 -State 292 +State 318 - Term1 -> '∑' '(' Pattern ':' Term ')' . ',' Term1 (rule 119) + Term1 -> '∑' '(' Pattern ':' Term ')' . ',' Term1 (rule 132) - ',' shift, and enter state 305 + ',' shift, and enter state 331 -State 293 +State 319 - Term1 -> 'Σ' '(' Pattern ':' Term ')' . ',' Term1 (rule 118) + Term1 -> 'Σ' '(' Pattern ':' Term ')' . ',' Term1 (rule 124) - ',' shift, and enter state 304 + ',' shift, and enter state 330 -State 294 +State 320 ParamDecl -> '{' Pattern ':' Term '|' Term . '}' (rule 74) - '}' shift, and enter state 303 + '}' shift, and enter state 329 -State 295 +State 321 ParamDecl -> '{' '(' Pattern ':' Term ')' . '|' Term '}' (rule 73) - '|' shift, and enter state 302 + '|' shift, and enter state 328 -State 296 +State 322 - Term7 -> 'recOR' '(' Term ',' Term ',' . Term ',' Term ')' (rule 90) + Term7 -> 'recOR' '(' Term ',' Term ',' . Term ',' Term ')' (rule 91) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7142,40 +9236,47 @@ State 296 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 301 + Term goto state 327 -State 297 +State 323 - Term7 -> 'idJ' '(' Term ',' Term ',' . Term ',' Term ',' Term ',' Term ')' (rule 98) + Term7 -> 'idJ' '(' Term ',' Term ',' . Term ',' Term ',' Term ',' Term ')' (rule 99) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7189,47 +9290,54 @@ State 297 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 300 + Term goto state 326 -State 298 +State 324 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' . ',' Term1 (rule 112) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' . ',' Term1 (rule 130) - ',' shift, and enter state 299 + ',' shift, and enter state 325 -State 299 +State 325 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' . Term1 (rule 112) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' . Term1 (rule 130) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7240,56 +9348,63 @@ State 299 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 73 - Term1 goto state 318 + Term2 goto state 80 + Term1 goto state 344 Term6 goto state 39 -State 300 +State 326 - Term7 -> 'idJ' '(' Term ',' Term ',' Term . ',' Term ',' Term ',' Term ')' (rule 98) + Term7 -> 'idJ' '(' Term ',' Term ',' Term . ',' Term ',' Term ',' Term ')' (rule 99) - ',' shift, and enter state 317 + ',' shift, and enter state 343 -State 301 +State 327 - Term7 -> 'recOR' '(' Term ',' Term ',' Term . ',' Term ')' (rule 90) + Term7 -> 'recOR' '(' Term ',' Term ',' Term . ',' Term ')' (rule 91) - ',' shift, and enter state 316 + ',' shift, and enter state 342 -State 302 +State 328 ParamDecl -> '{' '(' Pattern ':' Term ')' '|' . Term '}' (rule 73) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7303,9 +9418,9 @@ State 302 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 315 + Term goto state 341 -State 303 +State 329 ParamDecl -> '{' Pattern ':' Term '|' Term '}' . (rule 74) @@ -7314,38 +9429,45 @@ State 303 %eof reduce using rule 74 -State 304 +State 330 - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' . Term1 (rule 118) + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' . Term1 (rule 124) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7356,42 +9478,49 @@ State 304 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 73 - Term1 goto state 314 + Term2 goto state 80 + Term1 goto state 340 Term6 goto state 39 -State 305 +State 331 - Term1 -> '∑' '(' Pattern ':' Term ')' ',' . Term1 (rule 119) + Term1 -> '∑' '(' Pattern ':' Term ')' ',' . Term1 (rule 132) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7402,11 +9531,11 @@ State 305 Term5 goto state 34 Term4 goto state 35 Term3 goto state 36 - Term2 goto state 73 - Term1 goto state 313 + Term2 goto state 80 + Term1 goto state 339 Term6 goto state 39 -State 306 +State 332 Param -> '{' Pattern ':' Term '|' Term '}' . (rule 66) @@ -7416,11 +9545,12 @@ State 306 '_' reduce using rule 66 'unit' reduce using rule 66 '{' reduce using rule 66 + '→' reduce using rule 66 L_VarIdentTokenreduce using rule 66 %eof reduce using rule 66 -State 307 +State 333 Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' Term . (rule 51) @@ -7428,38 +9558,45 @@ State 307 %eof reduce using rule 51 -State 308 +State 334 Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' . Term (rule 50) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7473,9 +9610,9 @@ State 308 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 312 + Term goto state 338 -State 309 +State 335 Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' Term . (rule 49) @@ -7483,38 +9620,45 @@ State 309 %eof reduce using rule 49 -State 310 +State 336 Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' . Term (rule 48) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7528,9 +9672,9 @@ State 310 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 311 + Term goto state 337 -State 311 +State 337 Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' Term . (rule 48) @@ -7538,7 +9682,7 @@ State 311 %eof reduce using rule 48 -State 312 +State 338 Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' Term . (rule 50) @@ -7546,79 +9690,88 @@ State 312 %eof reduce using rule 50 -State 313 +State 339 - Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 . (rule 119) + Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 . (rule 132) - ')' reduce using rule 119 - ',' reduce using rule 119 - ':' reduce using rule 119 - ':=' reduce using rule 119 - ';' reduce using rule 119 - '>' reduce using rule 119 - ']' reduce using rule 119 - '|' reduce using rule 119 - '|->' reduce using rule 119 - '}' reduce using rule 119 - %eof reduce using rule 119 + ')' reduce using rule 132 + ',' reduce using rule 132 + ':' reduce using rule 132 + ':=' reduce using rule 132 + ';' reduce using rule 132 + '>' reduce using rule 132 + ']' reduce using rule 132 + '|' reduce using rule 132 + '|->' reduce using rule 132 + '}' reduce using rule 132 + '↦' reduce using rule 132 + %eof reduce using rule 132 -State 314 +State 340 - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 . (rule 118) + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 . (rule 124) - ')' reduce using rule 118 - ',' reduce using rule 118 - ':' reduce using rule 118 - ':=' reduce using rule 118 - ';' reduce using rule 118 - '>' reduce using rule 118 - ']' reduce using rule 118 - '|' reduce using rule 118 - '|->' reduce using rule 118 - '}' reduce using rule 118 - %eof reduce using rule 118 + ')' reduce using rule 124 + ',' reduce using rule 124 + ':' reduce using rule 124 + ':=' reduce using rule 124 + ';' reduce using rule 124 + '>' reduce using rule 124 + ']' reduce using rule 124 + '|' reduce using rule 124 + '|->' reduce using rule 124 + '}' reduce using rule 124 + '↦' reduce using rule 124 + %eof reduce using rule 124 -State 315 +State 341 ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term . '}' (rule 73) - '}' shift, and enter state 321 + '}' shift, and enter state 347 -State 316 +State 342 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' . Term ')' (rule 90) + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' . Term ')' (rule 91) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7632,40 +9785,47 @@ State 316 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 320 + Term goto state 346 -State 317 +State 343 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' . Term ',' Term ',' Term ')' (rule 98) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' . Term ',' Term ',' Term ')' (rule 99) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7679,40 +9839,41 @@ State 317 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 319 + Term goto state 345 -State 318 +State 344 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 . (rule 112) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 . (rule 130) - ')' reduce using rule 112 - ',' reduce using rule 112 - ':' reduce using rule 112 - ':=' reduce using rule 112 - ';' reduce using rule 112 - '>' reduce using rule 112 - ']' reduce using rule 112 - '|' reduce using rule 112 - '|->' reduce using rule 112 - '}' reduce using rule 112 - %eof reduce using rule 112 + ')' reduce using rule 130 + ',' reduce using rule 130 + ':' reduce using rule 130 + ':=' reduce using rule 130 + ';' reduce using rule 130 + '>' reduce using rule 130 + ']' reduce using rule 130 + '|' reduce using rule 130 + '|->' reduce using rule 130 + '}' reduce using rule 130 + '↦' reduce using rule 130 + %eof reduce using rule 130 -State 319 +State 345 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term . ',' Term ',' Term ')' (rule 98) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term . ',' Term ',' Term ')' (rule 99) - ',' shift, and enter state 323 + ',' shift, and enter state 349 -State 320 +State 346 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term . ')' (rule 90) + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term . ')' (rule 91) - ')' shift, and enter state 322 + ')' shift, and enter state 348 -State 321 +State 347 ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' . (rule 73) @@ -7721,87 +9882,105 @@ State 321 %eof reduce using rule 73 -State 322 +State 348 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' . (rule 90) + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' . (rule 91) - '(' reduce using rule 90 - ')' reduce using rule 90 - '*' reduce using rule 90 - '*_1' reduce using rule 90 - ',' reduce using rule 90 - '->' reduce using rule 90 - '/\\' reduce using rule 90 - '0_2' reduce using rule 90 - '1' reduce using rule 90 - '1_2' reduce using rule 90 - '2' reduce using rule 90 - ':' reduce using rule 90 - ':=' reduce using rule 90 - ';' reduce using rule 90 - '<' reduce using rule 90 - '<=' reduce using rule 90 - '=' reduce using rule 90 - '===' reduce using rule 90 - '=_{' reduce using rule 90 - '>' reduce using rule 90 - 'BOT' reduce using rule 90 - 'CUBE' reduce using rule 90 - 'TOP' reduce using rule 90 - 'TOPE' reduce using rule 90 - 'U' reduce using rule 90 - 'Unit' reduce using rule 90 - '[' reduce using rule 90 - '\\/' reduce using rule 90 - ']' reduce using rule 90 - 'as' reduce using rule 90 - 'idJ' reduce using rule 90 - 'recBOT' reduce using rule 90 - 'recOR' reduce using rule 90 - 'refl' reduce using rule 90 - 'refl_{' reduce using rule 90 - 'unit' reduce using rule 90 - '|' reduce using rule 90 - '|->' reduce using rule 90 - '}' reduce using rule 90 - '→' reduce using rule 90 - L_VarIdentTokenreduce using rule 90 - L_HoleIdentTokenreduce using rule 90 - %eof reduce using rule 90 + '(' reduce using rule 91 + ')' reduce using rule 91 + '*' reduce using rule 91 + '*_1' reduce using rule 91 + '*₁' reduce using rule 91 + ',' reduce using rule 91 + '->' reduce using rule 91 + '/\\' reduce using rule 91 + '0_2' reduce using rule 91 + '0₂' reduce using rule 91 + '1' reduce using rule 91 + '1_2' reduce using rule 91 + '1₂' reduce using rule 91 + '2' reduce using rule 91 + ':' reduce using rule 91 + ':=' reduce using rule 91 + ';' reduce using rule 91 + '<' reduce using rule 91 + '<=' reduce using rule 91 + '=' reduce using rule 91 + '===' reduce using rule 91 + '=_{' reduce using rule 91 + '>' reduce using rule 91 + 'BOT' reduce using rule 91 + 'CUBE' reduce using rule 91 + 'TOP' reduce using rule 91 + 'TOPE' reduce using rule 91 + 'U' reduce using rule 91 + 'Unit' reduce using rule 91 + '[' reduce using rule 91 + '\\/' reduce using rule 91 + ']' reduce using rule 91 + 'as' reduce using rule 91 + 'idJ' reduce using rule 91 + 'recBOT' reduce using rule 91 + 'recOR' reduce using rule 91 + 'refl' reduce using rule 91 + 'refl_{' reduce using rule 91 + 'unit' reduce using rule 91 + '|' reduce using rule 91 + '|->' reduce using rule 91 + '}' reduce using rule 91 + '×' reduce using rule 91 + '→' reduce using rule 91 + '↦' reduce using rule 91 + '∧' reduce using rule 91 + '∨' reduce using rule 91 + '≡' reduce using rule 91 + '≤' reduce using rule 91 + '⊤' reduce using rule 91 + '⊥' reduce using rule 91 + L_VarIdentTokenreduce using rule 91 + L_HoleIdentTokenreduce using rule 91 + %eof reduce using rule 91 -State 323 +State 349 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' . Term ',' Term ')' (rule 98) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' . Term ',' Term ')' (rule 99) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7815,47 +9994,54 @@ State 323 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 324 + Term goto state 350 -State 324 +State 350 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term . ',' Term ')' (rule 98) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term . ',' Term ')' (rule 99) - ',' shift, and enter state 325 + ',' shift, and enter state 351 -State 325 +State 351 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' . Term ')' (rule 98) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' . Term ')' (rule 99) '(' shift, and enter state 42 '*_1' shift, and enter state 43 - '0_2' shift, and enter state 44 - '1' shift, and enter state 45 - '1_2' shift, and enter state 46 - '2' shift, and enter state 47 - '<' shift, and enter state 48 - 'BOT' shift, and enter state 49 - 'CUBE' shift, and enter state 50 - 'Sigma' shift, and enter state 51 - 'TOP' shift, and enter state 52 - 'TOPE' shift, and enter state 53 - 'U' shift, and enter state 54 - 'Unit' shift, and enter state 55 - '\\' shift, and enter state 56 - 'first' shift, and enter state 57 - 'idJ' shift, and enter state 58 - 'recBOT' shift, and enter state 59 - 'recOR' shift, and enter state 60 - 'refl' shift, and enter state 61 - 'refl_{' shift, and enter state 62 - 'second' shift, and enter state 63 - 'unit' shift, and enter state 64 - '{' shift, and enter state 65 - 'Σ' shift, and enter state 66 - '∑' shift, and enter state 67 - L_VarIdentTokenshift, and enter state 68 - L_HoleIdentTokenshift, and enter state 69 + '*₁' shift, and enter state 44 + '0_2' shift, and enter state 45 + '0₂' shift, and enter state 46 + '1' shift, and enter state 47 + '1_2' shift, and enter state 48 + '1₂' shift, and enter state 49 + '2' shift, and enter state 50 + '<' shift, and enter state 51 + 'BOT' shift, and enter state 52 + 'CUBE' shift, and enter state 53 + 'Sigma' shift, and enter state 54 + 'TOP' shift, and enter state 55 + 'TOPE' shift, and enter state 56 + 'U' shift, and enter state 57 + 'Unit' shift, and enter state 58 + '\\' shift, and enter state 59 + 'first' shift, and enter state 60 + 'idJ' shift, and enter state 61 + 'recBOT' shift, and enter state 62 + 'recOR' shift, and enter state 63 + 'refl' shift, and enter state 64 + 'refl_{' shift, and enter state 65 + 'second' shift, and enter state 66 + 'unit' shift, and enter state 67 + '{' shift, and enter state 68 + 'Σ' shift, and enter state 69 + 'π₁' shift, and enter state 70 + 'π₂' shift, and enter state 71 + '∑' shift, and enter state 72 + '⊤' shift, and enter state 73 + '⊥' shift, and enter state 74 + L_VarIdentTokenshift, and enter state 75 + L_HoleIdentTokenshift, and enter state 76 VarIdentToken goto state 28 HoleIdentToken goto state 29 @@ -7869,68 +10055,79 @@ State 325 Term2 goto state 37 Term1 goto state 38 Term6 goto state 39 - Term goto state 326 + Term goto state 352 -State 326 +State 352 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term . ')' (rule 98) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term . ')' (rule 99) - ')' shift, and enter state 327 + ')' shift, and enter state 353 -State 327 +State 353 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' . (rule 98) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' . (rule 99) - '(' reduce using rule 98 - ')' reduce using rule 98 - '*' reduce using rule 98 - '*_1' reduce using rule 98 - ',' reduce using rule 98 - '->' reduce using rule 98 - '/\\' reduce using rule 98 - '0_2' reduce using rule 98 - '1' reduce using rule 98 - '1_2' reduce using rule 98 - '2' reduce using rule 98 - ':' reduce using rule 98 - ':=' reduce using rule 98 - ';' reduce using rule 98 - '<' reduce using rule 98 - '<=' reduce using rule 98 - '=' reduce using rule 98 - '===' reduce using rule 98 - '=_{' reduce using rule 98 - '>' reduce using rule 98 - 'BOT' reduce using rule 98 - 'CUBE' reduce using rule 98 - 'TOP' reduce using rule 98 - 'TOPE' reduce using rule 98 - 'U' reduce using rule 98 - 'Unit' reduce using rule 98 - '[' reduce using rule 98 - '\\/' reduce using rule 98 - ']' reduce using rule 98 - 'as' reduce using rule 98 - 'idJ' reduce using rule 98 - 'recBOT' reduce using rule 98 - 'recOR' reduce using rule 98 - 'refl' reduce using rule 98 - 'refl_{' reduce using rule 98 - 'unit' reduce using rule 98 - '|' reduce using rule 98 - '|->' reduce using rule 98 - '}' reduce using rule 98 - '→' reduce using rule 98 - L_VarIdentTokenreduce using rule 98 - L_HoleIdentTokenreduce using rule 98 - %eof reduce using rule 98 + '(' reduce using rule 99 + ')' reduce using rule 99 + '*' reduce using rule 99 + '*_1' reduce using rule 99 + '*₁' reduce using rule 99 + ',' reduce using rule 99 + '->' reduce using rule 99 + '/\\' reduce using rule 99 + '0_2' reduce using rule 99 + '0₂' reduce using rule 99 + '1' reduce using rule 99 + '1_2' reduce using rule 99 + '1₂' reduce using rule 99 + '2' reduce using rule 99 + ':' reduce using rule 99 + ':=' reduce using rule 99 + ';' reduce using rule 99 + '<' reduce using rule 99 + '<=' reduce using rule 99 + '=' reduce using rule 99 + '===' reduce using rule 99 + '=_{' reduce using rule 99 + '>' reduce using rule 99 + 'BOT' reduce using rule 99 + 'CUBE' reduce using rule 99 + 'TOP' reduce using rule 99 + 'TOPE' reduce using rule 99 + 'U' reduce using rule 99 + 'Unit' reduce using rule 99 + '[' reduce using rule 99 + '\\/' reduce using rule 99 + ']' reduce using rule 99 + 'as' reduce using rule 99 + 'idJ' reduce using rule 99 + 'recBOT' reduce using rule 99 + 'recOR' reduce using rule 99 + 'refl' reduce using rule 99 + 'refl_{' reduce using rule 99 + 'unit' reduce using rule 99 + '|' reduce using rule 99 + '|->' reduce using rule 99 + '}' reduce using rule 99 + '×' reduce using rule 99 + '→' reduce using rule 99 + '↦' reduce using rule 99 + '∧' reduce using rule 99 + '∨' reduce using rule 99 + '≡' reduce using rule 99 + '≤' reduce using rule 99 + '⊤' reduce using rule 99 + '⊥' reduce using rule 99 + L_VarIdentTokenreduce using rule 99 + L_HoleIdentTokenreduce using rule 99 + %eof reduce using rule 99 ----------------------------------------------------------------------------- Grammar Totals ----------------------------------------------------------------------------- -Number of rules: 129 -Number of terminals: 68 +Number of rules: 144 +Number of terminals: 81 Number of non-terminals: 55 -Number of states: 328 +Number of states: 354 diff --git a/rzk/src/Language/Rzk/Syntax/Par.y b/rzk/src/Language/Rzk/Syntax/Par.y index 6fa73cbac..b1a176648 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.y +++ b/rzk/src/Language/Rzk/Syntax/Par.y @@ -92,52 +92,65 @@ import Language.Rzk.Syntax.Lex ')' { PT _ (TS _ 17) } '*' { PT _ (TS _ 18) } '*_1' { PT _ (TS _ 19) } - ',' { PT _ (TS _ 20) } - '->' { PT _ (TS _ 21) } - '/\\' { PT _ (TS _ 22) } - '0_2' { PT _ (TS _ 23) } - '1' { PT _ (TS _ 24) } - '1_2' { PT _ (TS _ 25) } - '2' { PT _ (TS _ 26) } - ':' { PT _ (TS _ 27) } - ':=' { PT _ (TS _ 28) } - ';' { PT _ (TS _ 29) } - '<' { PT _ (TS _ 30) } - '<=' { PT _ (TS _ 31) } - '=' { PT _ (TS _ 32) } - '===' { PT _ (TS _ 33) } - '=_{' { PT _ (TS _ 34) } - '>' { PT _ (TS _ 35) } - 'BOT' { PT _ (TS _ 36) } - 'CUBE' { PT _ (TS _ 37) } - 'Sigma' { PT _ (TS _ 38) } - 'TOP' { PT _ (TS _ 39) } - 'TOPE' { PT _ (TS _ 40) } - 'U' { PT _ (TS _ 41) } - 'Unit' { PT _ (TS _ 42) } - '[' { PT _ (TS _ 43) } - '\\' { PT _ (TS _ 44) } - '\\/' { PT _ (TS _ 45) } - ']' { PT _ (TS _ 46) } - '_' { PT _ (TS _ 47) } - 'as' { PT _ (TS _ 48) } - 'first' { PT _ (TS _ 49) } - 'idJ' { PT _ (TS _ 50) } - 'recBOT' { PT _ (TS _ 51) } - 'recOR' { PT _ (TS _ 52) } - 'refl' { PT _ (TS _ 53) } - 'refl_{' { PT _ (TS _ 54) } - 'rzk-1' { PT _ (TS _ 55) } - 'second' { PT _ (TS _ 56) } - 'unit' { PT _ (TS _ 57) } - 'uses' { PT _ (TS _ 58) } - '{' { PT _ (TS _ 59) } - '|' { PT _ (TS _ 60) } - '|->' { PT _ (TS _ 61) } - '}' { PT _ (TS _ 62) } - 'Σ' { PT _ (TS _ 63) } - '→' { PT _ (TS _ 64) } - '∑' { PT _ (TS _ 65) } + '*₁' { PT _ (TS _ 20) } + ',' { PT _ (TS _ 21) } + '->' { PT _ (TS _ 22) } + '/\\' { PT _ (TS _ 23) } + '0_2' { PT _ (TS _ 24) } + '0₂' { PT _ (TS _ 25) } + '1' { PT _ (TS _ 26) } + '1_2' { PT _ (TS _ 27) } + '1₂' { PT _ (TS _ 28) } + '2' { PT _ (TS _ 29) } + ':' { PT _ (TS _ 30) } + ':=' { PT _ (TS _ 31) } + ';' { PT _ (TS _ 32) } + '<' { PT _ (TS _ 33) } + '<=' { PT _ (TS _ 34) } + '=' { PT _ (TS _ 35) } + '===' { PT _ (TS _ 36) } + '=_{' { PT _ (TS _ 37) } + '>' { PT _ (TS _ 38) } + 'BOT' { PT _ (TS _ 39) } + 'CUBE' { PT _ (TS _ 40) } + 'Sigma' { PT _ (TS _ 41) } + 'TOP' { PT _ (TS _ 42) } + 'TOPE' { PT _ (TS _ 43) } + 'U' { PT _ (TS _ 44) } + 'Unit' { PT _ (TS _ 45) } + '[' { PT _ (TS _ 46) } + '\\' { PT _ (TS _ 47) } + '\\/' { PT _ (TS _ 48) } + ']' { PT _ (TS _ 49) } + '_' { PT _ (TS _ 50) } + 'as' { PT _ (TS _ 51) } + 'first' { PT _ (TS _ 52) } + 'idJ' { PT _ (TS _ 53) } + 'recBOT' { PT _ (TS _ 54) } + 'recOR' { PT _ (TS _ 55) } + 'refl' { PT _ (TS _ 56) } + 'refl_{' { PT _ (TS _ 57) } + 'rzk-1' { PT _ (TS _ 58) } + 'second' { PT _ (TS _ 59) } + 'unit' { PT _ (TS _ 60) } + 'uses' { PT _ (TS _ 61) } + '{' { PT _ (TS _ 62) } + '|' { PT _ (TS _ 63) } + '|->' { PT _ (TS _ 64) } + '}' { PT _ (TS _ 65) } + '×' { PT _ (TS _ 66) } + 'Σ' { PT _ (TS _ 67) } + 'π₁' { PT _ (TS _ 68) } + 'π₂' { PT _ (TS _ 69) } + '→' { PT _ (TS _ 70) } + '↦' { PT _ (TS _ 71) } + '∑' { PT _ (TS _ 72) } + '∧' { PT _ (TS _ 73) } + '∨' { PT _ (TS _ 74) } + '≡' { PT _ (TS _ 75) } + '≤' { PT _ (TS _ 76) } + '⊤' { PT _ (TS _ 77) } + '⊥' { PT _ (TS _ 78) } L_quoted { PT _ (TL _) } L_VarIdentToken { PT _ (T_VarIdentToken _) } L_HoleIdentToken { PT _ (T_HoleIdentToken _) } @@ -246,7 +259,8 @@ ParamDecl Restriction :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction) } Restriction - : Term '|->' Term { (fst $1, Language.Rzk.Syntax.Abs.Restriction (fst $1) (snd $1) (snd $3)) } + : Term '↦' Term { (fst $1, Language.Rzk.Syntax.Abs.Restriction (fst $1) (snd $1) (snd $3)) } + | Term '|->' Term { (fst $1, Language.Rzk.Syntax.Abs.ASCII_Restriction (fst $1) (snd $1) (snd $3)) } ListRestriction :: { (Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction]) } ListRestriction @@ -259,17 +273,17 @@ Term7 | 'CUBE' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.UniverseCube (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } | 'TOPE' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.UniverseTope (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } | '1' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CubeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } - | '*_1' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } + | '*₁' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } | '2' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Cube2 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } - | '0_2' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } - | '1_2' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } - | 'TOP' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } - | 'BOT' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } + | '0₂' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } + | '1₂' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } + | '⊤' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } + | '⊥' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } | 'recBOT' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.RecBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } | 'recOR' '(' ListRestriction ')' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.RecOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3)) } - | 'recOR' '(' Term ',' Term ',' Term ',' Term ')' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.recOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3) (snd $5) (snd $7) (snd $9)) } + | 'recOR' '(' Term ',' Term ',' Term ',' Term ')' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.RecOrDeprecated (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3) (snd $5) (snd $7) (snd $9)) } | 'Unit' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TypeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } - | '<' ParamDecl '->' Term '>' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.typeExtension (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } + | '<' ParamDecl '→' Term '>' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TypeExtensionDeprecated (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } | '(' Term ',' Term ')' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Pair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } | 'unit' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Unit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } | 'refl' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Refl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } @@ -279,47 +293,61 @@ Term7 | HoleIdent { (fst $1, Language.Rzk.Syntax.Abs.Hole (fst $1) (snd $1)) } | VarIdent { (fst $1, Language.Rzk.Syntax.Abs.Var (fst $1) (snd $1)) } | '(' Term ')' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), (snd $2)) } + | '*_1' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ASCII_CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } + | '0_2' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ASCII_Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } + | '1_2' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ASCII_Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } + | 'TOP' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ASCII_TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } + | 'BOT' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ASCII_TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1))) } + | '<' ParamDecl '->' Term '>' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ASCII_TypeExtensionDeprecated (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } Term5 :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term) } Term5 - : Term5 '*' Term6 { (fst $1, Language.Rzk.Syntax.Abs.CubeProduct (fst $1) (snd $1) (snd $3)) } + : Term5 '×' Term6 { (fst $1, Language.Rzk.Syntax.Abs.CubeProduct (fst $1) (snd $1) (snd $3)) } | Term6 { (fst $1, (snd $1)) } + | Term5 '*' Term6 { (fst $1, Language.Rzk.Syntax.Abs.ascii_CubeProduct (fst $1) (snd $1) (snd $3)) } Term4 :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term) } Term4 - : Term5 '===' Term5 { (fst $1, Language.Rzk.Syntax.Abs.TopeEQ (fst $1) (snd $1) (snd $3)) } - | Term5 '<=' Term5 { (fst $1, Language.Rzk.Syntax.Abs.TopeLEQ (fst $1) (snd $1) (snd $3)) } + : Term5 '≡' Term5 { (fst $1, Language.Rzk.Syntax.Abs.TopeEQ (fst $1) (snd $1) (snd $3)) } + | Term5 '≤' Term5 { (fst $1, Language.Rzk.Syntax.Abs.TopeLEQ (fst $1) (snd $1) (snd $3)) } | Term5 { (fst $1, (snd $1)) } + | Term5 '===' Term5 { (fst $1, Language.Rzk.Syntax.Abs.ASCII_TopeEQ (fst $1) (snd $1) (snd $3)) } + | Term5 '<=' Term5 { (fst $1, Language.Rzk.Syntax.Abs.ASCII_TopeLEQ (fst $1) (snd $1) (snd $3)) } Term3 :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term) } Term3 - : Term4 '/\\' Term3 { (fst $1, Language.Rzk.Syntax.Abs.TopeAnd (fst $1) (snd $1) (snd $3)) } + : Term4 '∧' Term3 { (fst $1, Language.Rzk.Syntax.Abs.TopeAnd (fst $1) (snd $1) (snd $3)) } | Term4 { (fst $1, (snd $1)) } + | Term4 '/\\' Term3 { (fst $1, Language.Rzk.Syntax.Abs.ASCII_TopeAnd (fst $1) (snd $1) (snd $3)) } Term2 :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term) } Term2 - : Term3 '\\/' Term2 { (fst $1, Language.Rzk.Syntax.Abs.TopeOr (fst $1) (snd $1) (snd $3)) } + : Term3 '∨' Term2 { (fst $1, Language.Rzk.Syntax.Abs.TopeOr (fst $1) (snd $1) (snd $3)) } | Term3 { (fst $1, (snd $1)) } + | Term3 '\\/' Term2 { (fst $1, Language.Rzk.Syntax.Abs.ASCII_TopeOr (fst $1) (snd $1) (snd $3)) } Term1 :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term) } Term1 - : ParamDecl '->' Term1 { (fst $1, Language.Rzk.Syntax.Abs.TypeFun (fst $1) (snd $1) (snd $3)) } - | 'Sigma' '(' Pattern ':' Term ')' ',' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3) (snd $5) (snd $8)) } + : ParamDecl '→' Term1 { (fst $1, Language.Rzk.Syntax.Abs.TypeFun (fst $1) (snd $1) (snd $3)) } + | 'Σ' '(' Pattern ':' Term ')' ',' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3) (snd $5) (snd $8)) } | Term2 '=_{' Term '}' Term2 { (fst $1, Language.Rzk.Syntax.Abs.TypeId (fst $1) (snd $1) (snd $3) (snd $5)) } | Term2 '=' Term2 { (fst $1, Language.Rzk.Syntax.Abs.TypeIdSimple (fst $1) (snd $1) (snd $3)) } - | '\\' ListParam '->' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } + | '\\' ListParam '→' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } | Term2 { (fst $1, (snd $1)) } - | ParamDecl '→' Term1 { (fst $1, Language.Rzk.Syntax.Abs.unicode_TypeFun (fst $1) (snd $1) (snd $3)) } - | 'Σ' '(' Pattern ':' Term ')' ',' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.unicode_TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3) (snd $5) (snd $8)) } + | ParamDecl '->' Term1 { (fst $1, Language.Rzk.Syntax.Abs.ASCII_TypeFun (fst $1) (snd $1) (snd $3)) } + | 'Sigma' '(' Pattern ':' Term ')' ',' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ASCII_TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3) (snd $5) (snd $8)) } + | '\\' ListParam '->' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ASCII_Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } | '∑' '(' Pattern ':' Term ')' ',' Term1 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaAlt (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3) (snd $5) (snd $8)) } Term6 :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term) } Term6 : Term6 '[' ListRestriction ']' { (fst $1, Language.Rzk.Syntax.Abs.TypeRestricted (fst $1) (snd $1) (snd $3)) } | Term6 Term7 { (fst $1, Language.Rzk.Syntax.Abs.App (fst $1) (snd $1) (snd $2)) } - | 'first' Term7 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } - | 'second' Term7 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } + | 'π₁' Term7 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } + | 'π₂' Term7 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } | Term7 { (fst $1, (snd $1)) } + | 'first' Term7 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ASCII_First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } + | 'second' Term7 { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.ASCII_Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } Term :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term) } Term diff --git a/rzk/src/Language/Rzk/Syntax/Print.hs b/rzk/src/Language/Rzk/Syntax/Print.hs index 050f2165c..f5d7c115e 100644 --- a/rzk/src/Language/Rzk/Syntax/Print.hs +++ b/rzk/src/Language/Rzk/Syntax/Print.hs @@ -40,9 +40,9 @@ render d = rend 0 False (map ($ "") $ d []) "" rend i p = \case "[" :ts -> char '[' . rend i False ts "(" :ts -> char '(' . rend i False ts --- "{" :ts -> onNewLine i p . showChar '{' . new (i+1) ts --- "}" : ";":ts -> onNewLine (i-1) p . showString "};" . new (i-1) ts --- "}" :ts -> onNewLine (i-1) p . showChar '}' . new (i-1) ts +-- "{" :ts -> onNewLine i p . showChar '{' . new (i+1) ts +-- "}" : ";":ts -> onNewLine (i-1) p . showString "};" . new (i-1) ts +-- "}" :ts -> onNewLine (i-1) p . showChar '}' . new (i-1) ts [";"] -> char ';' ";" :ts -> char ';' . new i ts t : ts@(s:_) | closingOrPunctuation s @@ -222,7 +222,8 @@ instance Print (Language.Rzk.Syntax.Abs.ParamDecl' a) where instance Print (Language.Rzk.Syntax.Abs.Restriction' a) where prt i = \case - Language.Rzk.Syntax.Abs.Restriction _ term1 term2 -> prPrec i 0 (concatD [prt 0 term1, doc (showString "|->"), prt 0 term2]) + Language.Rzk.Syntax.Abs.Restriction _ term1 term2 -> prPrec i 0 (concatD [prt 0 term1, doc (showString "\8614"), prt 0 term2]) + Language.Rzk.Syntax.Abs.ASCII_Restriction _ term1 term2 -> prPrec i 0 (concatD [prt 0 term1, doc (showString "|->"), prt 0 term2]) instance Print [Language.Rzk.Syntax.Abs.Restriction' a] where prt _ [] = concatD [] @@ -235,30 +236,32 @@ instance Print (Language.Rzk.Syntax.Abs.Term' a) where Language.Rzk.Syntax.Abs.UniverseCube _ -> prPrec i 7 (concatD [doc (showString "CUBE")]) Language.Rzk.Syntax.Abs.UniverseTope _ -> prPrec i 7 (concatD [doc (showString "TOPE")]) Language.Rzk.Syntax.Abs.CubeUnit _ -> prPrec i 7 (concatD [doc (showString "1")]) - Language.Rzk.Syntax.Abs.CubeUnitStar _ -> prPrec i 7 (concatD [doc (showString "*_1")]) + Language.Rzk.Syntax.Abs.CubeUnitStar _ -> prPrec i 7 (concatD [doc (showString "*\8321")]) Language.Rzk.Syntax.Abs.Cube2 _ -> prPrec i 7 (concatD [doc (showString "2")]) - Language.Rzk.Syntax.Abs.Cube2_0 _ -> prPrec i 7 (concatD [doc (showString "0_2")]) - Language.Rzk.Syntax.Abs.Cube2_1 _ -> prPrec i 7 (concatD [doc (showString "1_2")]) - Language.Rzk.Syntax.Abs.CubeProduct _ term1 term2 -> prPrec i 5 (concatD [prt 5 term1, doc (showString "*"), prt 6 term2]) - Language.Rzk.Syntax.Abs.TopeTop _ -> prPrec i 7 (concatD [doc (showString "TOP")]) - Language.Rzk.Syntax.Abs.TopeBottom _ -> prPrec i 7 (concatD [doc (showString "BOT")]) - Language.Rzk.Syntax.Abs.TopeEQ _ term1 term2 -> prPrec i 4 (concatD [prt 5 term1, doc (showString "==="), prt 5 term2]) - Language.Rzk.Syntax.Abs.TopeLEQ _ term1 term2 -> prPrec i 4 (concatD [prt 5 term1, doc (showString "<="), prt 5 term2]) - Language.Rzk.Syntax.Abs.TopeAnd _ term1 term2 -> prPrec i 3 (concatD [prt 4 term1, doc (showString "/\\"), prt 3 term2]) - Language.Rzk.Syntax.Abs.TopeOr _ term1 term2 -> prPrec i 2 (concatD [prt 3 term1, doc (showString "\\/"), prt 2 term2]) + Language.Rzk.Syntax.Abs.Cube2_0 _ -> prPrec i 7 (concatD [doc (showString "0\8322")]) + Language.Rzk.Syntax.Abs.Cube2_1 _ -> prPrec i 7 (concatD [doc (showString "1\8322")]) + Language.Rzk.Syntax.Abs.CubeProduct _ term1 term2 -> prPrec i 5 (concatD [prt 5 term1, doc (showString "\215"), prt 6 term2]) + Language.Rzk.Syntax.Abs.TopeTop _ -> prPrec i 7 (concatD [doc (showString "\8868")]) + Language.Rzk.Syntax.Abs.TopeBottom _ -> prPrec i 7 (concatD [doc (showString "\8869")]) + Language.Rzk.Syntax.Abs.TopeEQ _ term1 term2 -> prPrec i 4 (concatD [prt 5 term1, doc (showString "\8801"), prt 5 term2]) + Language.Rzk.Syntax.Abs.TopeLEQ _ term1 term2 -> prPrec i 4 (concatD [prt 5 term1, doc (showString "\8804"), prt 5 term2]) + Language.Rzk.Syntax.Abs.TopeAnd _ term1 term2 -> prPrec i 3 (concatD [prt 4 term1, doc (showString "\8743"), prt 3 term2]) + Language.Rzk.Syntax.Abs.TopeOr _ term1 term2 -> prPrec i 2 (concatD [prt 3 term1, doc (showString "\8744"), prt 2 term2]) Language.Rzk.Syntax.Abs.RecBottom _ -> prPrec i 7 (concatD [doc (showString "recBOT")]) Language.Rzk.Syntax.Abs.RecOr _ restrictions -> prPrec i 7 (concatD [doc (showString "recOR"), doc (showString "("), prt 0 restrictions, doc (showString ")")]) - Language.Rzk.Syntax.Abs.TypeFun _ paramdecl term -> prPrec i 1 (concatD [prt 0 paramdecl, doc (showString "->"), prt 1 term]) - Language.Rzk.Syntax.Abs.TypeSigma _ pattern_ term1 term2 -> prPrec i 1 (concatD [doc (showString "Sigma"), doc (showString "("), prt 0 pattern_, doc (showString ":"), prt 0 term1, doc (showString ")"), doc (showString ","), prt 1 term2]) + Language.Rzk.Syntax.Abs.RecOrDeprecated _ term1 term2 term3 term4 -> prPrec i 7 (concatD [doc (showString "recOR"), doc (showString "("), prt 0 term1, doc (showString ","), prt 0 term2, doc (showString ","), prt 0 term3, doc (showString ","), prt 0 term4, doc (showString ")")]) + Language.Rzk.Syntax.Abs.TypeFun _ paramdecl term -> prPrec i 1 (concatD [prt 0 paramdecl, doc (showString "\8594"), prt 1 term]) + Language.Rzk.Syntax.Abs.TypeSigma _ pattern_ term1 term2 -> prPrec i 1 (concatD [doc (showString "\931"), doc (showString "("), prt 0 pattern_, doc (showString ":"), prt 0 term1, doc (showString ")"), doc (showString ","), prt 1 term2]) Language.Rzk.Syntax.Abs.TypeUnit _ -> prPrec i 7 (concatD [doc (showString "Unit")]) Language.Rzk.Syntax.Abs.TypeId _ term1 term2 term3 -> prPrec i 1 (concatD [prt 2 term1, doc (showString "=_{"), prt 0 term2, doc (showString "}"), prt 2 term3]) Language.Rzk.Syntax.Abs.TypeIdSimple _ term1 term2 -> prPrec i 1 (concatD [prt 2 term1, doc (showString "="), prt 2 term2]) Language.Rzk.Syntax.Abs.TypeRestricted _ term restrictions -> prPrec i 6 (concatD [prt 6 term, doc (showString "["), prt 0 restrictions, doc (showString "]")]) + Language.Rzk.Syntax.Abs.TypeExtensionDeprecated _ paramdecl term -> prPrec i 7 (concatD [doc (showString "<"), prt 0 paramdecl, doc (showString "\8594"), prt 0 term, doc (showString ">")]) Language.Rzk.Syntax.Abs.App _ term1 term2 -> prPrec i 6 (concatD [prt 6 term1, prt 7 term2]) - Language.Rzk.Syntax.Abs.Lambda _ params term -> prPrec i 1 (concatD [doc (showString "\\"), prt 0 params, doc (showString "->"), prt 1 term]) + Language.Rzk.Syntax.Abs.Lambda _ params term -> prPrec i 1 (concatD [doc (showString "\\"), prt 0 params, doc (showString "\8594"), prt 1 term]) Language.Rzk.Syntax.Abs.Pair _ term1 term2 -> prPrec i 7 (concatD [doc (showString "("), prt 0 term1, doc (showString ","), prt 0 term2, doc (showString ")")]) - Language.Rzk.Syntax.Abs.First _ term -> prPrec i 6 (concatD [doc (showString "first"), prt 7 term]) - Language.Rzk.Syntax.Abs.Second _ term -> prPrec i 6 (concatD [doc (showString "second"), prt 7 term]) + Language.Rzk.Syntax.Abs.First _ term -> prPrec i 6 (concatD [doc (showString "\960\8321"), prt 7 term]) + Language.Rzk.Syntax.Abs.Second _ term -> prPrec i 6 (concatD [doc (showString "\960\8322"), prt 7 term]) Language.Rzk.Syntax.Abs.Unit _ -> prPrec i 7 (concatD [doc (showString "unit")]) Language.Rzk.Syntax.Abs.Refl _ -> prPrec i 7 (concatD [doc (showString "refl")]) Language.Rzk.Syntax.Abs.ReflTerm _ term -> prPrec i 7 (concatD [doc (showString "refl_{"), prt 0 term, doc (showString "}")]) @@ -267,6 +270,21 @@ instance Print (Language.Rzk.Syntax.Abs.Term' a) where Language.Rzk.Syntax.Abs.Hole _ holeident -> prPrec i 7 (concatD [prt 0 holeident]) Language.Rzk.Syntax.Abs.Var _ varident -> prPrec i 7 (concatD [prt 0 varident]) Language.Rzk.Syntax.Abs.TypeAsc _ term1 term2 -> prPrec i 0 (concatD [prt 2 term1, doc (showString "as"), prt 1 term2]) + Language.Rzk.Syntax.Abs.ASCII_CubeUnitStar _ -> prPrec i 7 (concatD [doc (showString "*_1")]) + Language.Rzk.Syntax.Abs.ASCII_Cube2_0 _ -> prPrec i 7 (concatD [doc (showString "0_2")]) + Language.Rzk.Syntax.Abs.ASCII_Cube2_1 _ -> prPrec i 7 (concatD [doc (showString "1_2")]) + Language.Rzk.Syntax.Abs.ASCII_TopeTop _ -> prPrec i 7 (concatD [doc (showString "TOP")]) + Language.Rzk.Syntax.Abs.ASCII_TopeBottom _ -> prPrec i 7 (concatD [doc (showString "BOT")]) + Language.Rzk.Syntax.Abs.ASCII_TopeEQ _ term1 term2 -> prPrec i 4 (concatD [prt 5 term1, doc (showString "==="), prt 5 term2]) + Language.Rzk.Syntax.Abs.ASCII_TopeLEQ _ term1 term2 -> prPrec i 4 (concatD [prt 5 term1, doc (showString "<="), prt 5 term2]) + Language.Rzk.Syntax.Abs.ASCII_TopeAnd _ term1 term2 -> prPrec i 3 (concatD [prt 4 term1, doc (showString "/\\"), prt 3 term2]) + Language.Rzk.Syntax.Abs.ASCII_TopeOr _ term1 term2 -> prPrec i 2 (concatD [prt 3 term1, doc (showString "\\/"), prt 2 term2]) + Language.Rzk.Syntax.Abs.ASCII_TypeFun _ paramdecl term -> prPrec i 1 (concatD [prt 0 paramdecl, doc (showString "->"), prt 1 term]) + Language.Rzk.Syntax.Abs.ASCII_TypeSigma _ pattern_ term1 term2 -> prPrec i 1 (concatD [doc (showString "Sigma"), doc (showString "("), prt 0 pattern_, doc (showString ":"), prt 0 term1, doc (showString ")"), doc (showString ","), prt 1 term2]) + Language.Rzk.Syntax.Abs.ASCII_Lambda _ params term -> prPrec i 1 (concatD [doc (showString "\\"), prt 0 params, doc (showString "->"), prt 1 term]) + Language.Rzk.Syntax.Abs.ASCII_TypeExtensionDeprecated _ paramdecl term -> prPrec i 7 (concatD [doc (showString "<"), prt 0 paramdecl, doc (showString "->"), prt 0 term, doc (showString ">")]) + Language.Rzk.Syntax.Abs.ASCII_First _ term -> prPrec i 6 (concatD [doc (showString "first"), prt 7 term]) + Language.Rzk.Syntax.Abs.ASCII_Second _ term -> prPrec i 6 (concatD [doc (showString "second"), prt 7 term]) instance Print [Language.Rzk.Syntax.Abs.Term' a] where prt _ [] = concatD [] diff --git a/rzk/src/Language/Rzk/Syntax/Skel.hs b/rzk/src/Language/Rzk/Syntax/Skel.hs index d96538151..cab4fa476 100644 --- a/rzk/src/Language/Rzk/Syntax/Skel.hs +++ b/rzk/src/Language/Rzk/Syntax/Skel.hs @@ -88,6 +88,7 @@ transParamDecl x = case x of transRestriction :: Show a => Language.Rzk.Syntax.Abs.Restriction' a -> Result transRestriction x = case x of Language.Rzk.Syntax.Abs.Restriction _ term1 term2 -> failure x + Language.Rzk.Syntax.Abs.ASCII_Restriction _ term1 term2 -> failure x transTerm :: Show a => Language.Rzk.Syntax.Abs.Term' a -> Result transTerm x = case x of @@ -108,12 +109,14 @@ transTerm x = case x of Language.Rzk.Syntax.Abs.TopeOr _ term1 term2 -> failure x Language.Rzk.Syntax.Abs.RecBottom _ -> failure x Language.Rzk.Syntax.Abs.RecOr _ restrictions -> failure x + Language.Rzk.Syntax.Abs.RecOrDeprecated _ term1 term2 term3 term4 -> failure x Language.Rzk.Syntax.Abs.TypeFun _ paramdecl term -> failure x Language.Rzk.Syntax.Abs.TypeSigma _ pattern_ term1 term2 -> failure x Language.Rzk.Syntax.Abs.TypeUnit _ -> failure x Language.Rzk.Syntax.Abs.TypeId _ term1 term2 term3 -> failure x Language.Rzk.Syntax.Abs.TypeIdSimple _ term1 term2 -> failure x Language.Rzk.Syntax.Abs.TypeRestricted _ term restrictions -> failure x + Language.Rzk.Syntax.Abs.TypeExtensionDeprecated _ paramdecl term -> failure x Language.Rzk.Syntax.Abs.App _ term1 term2 -> failure x Language.Rzk.Syntax.Abs.Lambda _ params term -> failure x Language.Rzk.Syntax.Abs.Pair _ term1 term2 -> failure x @@ -127,3 +130,18 @@ transTerm x = case x of Language.Rzk.Syntax.Abs.Hole _ holeident -> failure x Language.Rzk.Syntax.Abs.Var _ varident -> failure x Language.Rzk.Syntax.Abs.TypeAsc _ term1 term2 -> failure x + Language.Rzk.Syntax.Abs.ASCII_CubeUnitStar _ -> failure x + Language.Rzk.Syntax.Abs.ASCII_Cube2_0 _ -> failure x + Language.Rzk.Syntax.Abs.ASCII_Cube2_1 _ -> failure x + Language.Rzk.Syntax.Abs.ASCII_TopeTop _ -> failure x + Language.Rzk.Syntax.Abs.ASCII_TopeBottom _ -> failure x + Language.Rzk.Syntax.Abs.ASCII_TopeEQ _ term1 term2 -> failure x + Language.Rzk.Syntax.Abs.ASCII_TopeLEQ _ term1 term2 -> failure x + Language.Rzk.Syntax.Abs.ASCII_TopeAnd _ term1 term2 -> failure x + Language.Rzk.Syntax.Abs.ASCII_TopeOr _ term1 term2 -> failure x + Language.Rzk.Syntax.Abs.ASCII_TypeFun _ paramdecl term -> failure x + Language.Rzk.Syntax.Abs.ASCII_TypeSigma _ pattern_ term1 term2 -> failure x + Language.Rzk.Syntax.Abs.ASCII_Lambda _ params term -> failure x + Language.Rzk.Syntax.Abs.ASCII_TypeExtensionDeprecated _ paramdecl term -> failure x + Language.Rzk.Syntax.Abs.ASCII_First _ term -> failure x + Language.Rzk.Syntax.Abs.ASCII_Second _ term -> failure x diff --git a/rzk/src/Language/Rzk/VSCode/Tokenize.hs b/rzk/src/Language/Rzk/VSCode/Tokenize.hs index 83c66353c..138272f29 100644 --- a/rzk/src/Language/Rzk/VSCode/Tokenize.hs +++ b/rzk/src/Language/Rzk/VSCode/Tokenize.hs @@ -82,19 +82,28 @@ tokenizeTerm' varTokenType = go CubeUnit{} -> mkToken term vs_enum [vs_defaultLibrary] CubeUnitStar{} -> mkToken term vs_enumMember [vs_defaultLibrary] + ASCII_CubeUnitStar{} -> mkToken term vs_enumMember [vs_defaultLibrary] Cube2{} -> mkToken term vs_enum [vs_defaultLibrary] Cube2_0{} -> mkToken term vs_enumMember [vs_defaultLibrary] + ASCII_Cube2_0{} -> mkToken term vs_enumMember [vs_defaultLibrary] Cube2_1{} -> mkToken term vs_enumMember [vs_defaultLibrary] + ASCII_Cube2_1{} -> mkToken term vs_enumMember [vs_defaultLibrary] CubeProduct _loc l r -> foldMap go [l, r] TopeTop{} -> mkToken term vs_string [vs_defaultLibrary] + ASCII_TopeTop{} -> mkToken term vs_string [vs_defaultLibrary] TopeBottom{} -> mkToken term vs_string [vs_defaultLibrary] + ASCII_TopeBottom{} -> mkToken term vs_string [vs_defaultLibrary] TopeAnd _loc l r -> foldMap tokenizeTope [l, r] + ASCII_TopeAnd _loc l r -> foldMap tokenizeTope [l, r] TopeOr _loc l r -> foldMap tokenizeTope [l, r] + ASCII_TopeOr _loc l r -> foldMap tokenizeTope [l, r] TopeEQ _loc l r -> foldMap tokenizeTope [l, r] + ASCII_TopeEQ _loc l r -> foldMap tokenizeTope [l, r] TopeLEQ _loc l r -> foldMap tokenizeTope [l, r] + ASCII_TopeLEQ _loc l r -> foldMap tokenizeTope [l, r] RecBottom{} -> mkToken term vs_function [vs_defaultLibrary] RecOr _loc rs -> foldMap tokenizeRestriction rs @@ -102,10 +111,17 @@ tokenizeTerm' varTokenType = go TypeFun _loc paramDecl ret -> concat [ tokenizeParamDecl paramDecl , go ret ] + ASCII_TypeFun _loc paramDecl ret -> concat + [ tokenizeParamDecl paramDecl + , go ret ] TypeSigma loc pat a b -> concat [ mkToken (VarIdent loc "∑") vs_class [vs_defaultLibrary] , tokenizePattern pat , foldMap go [a, b] ] + ASCII_TypeSigma loc pat a b -> concat + [ mkToken (VarIdent loc "Sigma") vs_class [vs_defaultLibrary] + , tokenizePattern pat + , foldMap go [a, b] ] TypeId _loc x a y -> foldMap go [x, a, y] TypeIdSimple _loc x y -> foldMap go [x, y] @@ -117,12 +133,19 @@ tokenizeTerm' varTokenType = go Lambda _loc params body -> concat [ foldMap tokenizeParam params , go body ] + ASCII_Lambda loc params body -> go (Lambda loc params body) Pair _loc l r -> foldMap go [l, r] First loc t -> concat + [ mkToken (VarIdent loc "π₁") vs_function [vs_defaultLibrary] + , go t ] + ASCII_First loc t -> concat [ mkToken (VarIdent loc "first") vs_function [vs_defaultLibrary] , go t ] Second loc t -> concat + [ mkToken (VarIdent loc "π₂") vs_function [vs_defaultLibrary] + , go t ] + ASCII_Second loc t -> concat [ mkToken (VarIdent loc "second") vs_function [vs_defaultLibrary] , go t ] @@ -143,10 +166,17 @@ tokenizeTerm' varTokenType = go TypeAsc _loc t type_ -> foldMap go [t, type_] + RecOrDeprecated{} -> mkToken term vs_regexp [vs_deprecated] + TypeExtensionDeprecated{} -> mkToken term vs_regexp [vs_deprecated] + ASCII_TypeExtensionDeprecated{} -> mkToken term vs_regexp [vs_deprecated] + tokenizeRestriction :: Restriction -> [VSToken] tokenizeRestriction (Restriction _loc tope term) = concat [ tokenizeTope tope , tokenizeTerm term ] +tokenizeRestriction (ASCII_Restriction _loc tope term) = concat + [ tokenizeTope tope + , tokenizeTerm term ] tokenizeParamDecl :: ParamDecl -> [VSToken] tokenizeParamDecl = \case