diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -6,6 +6,43 @@
 and this project adheres to the
 [Haskell Package Versioning Policy](https://pvp.haskell.org/).
 
+## v0.11.1 — 2026-07-25
+
+This release adds higher inductive types: a `#!rzk #data` constructor may now return an identity type, declaring a path, and the generated eliminators gain one method and one propositional computation rule per path constructor. Declarations may re-ascribe the type of a generated eliminator or computation rule with a definitionally equal spelling of their own, which is what makes the generated types readable through a library `#!rzk transport`/`#!rzk ap`/`#!rzk apd`. Modal `#!rzk let mod` gains an explicit motive, and the playground deploys are fixed.
+
+Added:
+
+- **Path constructors in `#!rzk #data`** (see [#329](https://github.com/rzk-lang/rzk/pull/329)). A constructor whose return type is an identity `#!rzk l =_{D} r` declares a path between two points of the declared type, so higher inductive types in the style of the HoTT book are expressible. Each path constructor contributes a method to `#!rzk ind-D` and `#!rzk rec-D` (the equation between the images of its endpoints, over the path for `#!rzk ind-D`, spelled with transport through `#!rzk idJ`), and one computation rule per eliminator, named `#!rzk compute-ind-<D>-<con>` and `#!rzk compute-rec-<D>-<con>`. Computation follows the HoTT book: β stays definitional on point constructors and is propositional on path constructors, so nothing reduces when an eliminator meets a path. The circle, the propositional truncation, the pushout, and the interval are all declarable; the interval proves function extensionality (HoTT book, Lemma 6.3.2) and its relative form for functions out of a shape (RS17, Axiom 4.6), which is a `#!rzk #data` that changes the ambient theory.
+
+    ```rzk
+    #data S¹
+      :=
+        base
+      | loop : base =_{S¹} base
+    ```
+
+    Endpoints must be built from the declaration's own constructors and the constructor's fields. Path constructors are not supported in indexed families, and only paths between points are supported: an identity carrier or an identity-typed field (a higher path, as in the 0-truncation) is rejected.
+
+- **Re-ascription clauses `#!rzk eliminate with` and `#!rzk compute with`** (see [#328](https://github.com/rzk-lang/rzk/pull/328) for the eliminator clause and [#329](https://github.com/rzk-lang/rzk/pull/329) for the split and the computation-rule clause). A `#!rzk #data` declaration may give its own spelling of a generated eliminator's or computation rule's type. The checker verifies that the spelling is definitionally equal to the canonical generated one, with the type former and the constructors in scope, and stores the user's version; since definitionally equal types are interchangeable, the values and the computation rules are untouched. This matters most for path constructors, whose canonical types inline transport and `#!rzk ap`/`#!rzk apd` through `#!rzk idJ`, and which become readable when re-ascribed through library definitions. A mismatch is reported as a dedicated error printing the canonical type.
+
+- **Modal `#!rzk let mod` with an explicit motive**, contributed by [Islam Talipov](https://github.com/LIshy2) (see [#327](https://github.com/rzk-lang/rzk/pull/327)). Like `#!rzk match`, a modal binding now takes an optional motive after `#!rzk into`, which turns it into a dependent elimination of the modal value: the motive is checked at `#!rzk (z :ᵉˣᵗ inn T) → U`, the body against the motive at `#!rzk mod inn x`, and the binding itself has the motive at the value. This is the elimination rule of multimodal type theory, and it is what lets a modal binding prove a statement about the value it eliminates. It is needed whenever the goal mentions that value: `#!rzk ♭` has no η-rule, so without a motive nothing identifies the scrutinee with `#!rzk mod ♭ x`. The motive's codomain is restricted to `#!rzk U` for now, so a motive landing in `#!rzk CUBE` or `#!rzk TOPE` cannot be written.
+
+Changed:
+
+- **A `#!rzk match` whose goal ignores the scrutinee elaborates through `#!rzk rec-D`** (see [#329](https://github.com/rzk-lang/rzk/pull/329)). A path branch is then checked against the plain equation between the point branches, rather than against the dependent form over the path.
+
+Fixed:
+
+- **The playground deploys** (see [#326](https://github.com/rzk-lang/rzk/pull/326)). After v0.11.0 the playground served the pre-wasm v0.9.2 build and the versioned copies disappeared within the hour, from three deploy bugs that hid one another. The per-ref targets sat in root directories that `mike` owns and deletes on every docs deploy, so they now live under `playground/`; the deploy action's `single-commit` mode force-pushed a squashed branch from a stale base and silently discarded concurrent deploys, so it is off; and an absolute Vite base made one build valid at only one target, so the base is relative.
+
+CI / infrastructure:
+
+- The nix dev shell provides the parser generators, pinned to the versions the `parser-drift` lane uses (BNFC 2.9.6.3, alex 3.5.4.0, happy 2.2), contributed by [Islam Talipov](https://github.com/LIshy2) (see [#330](https://github.com/rzk-lang/rzk/pull/330)). Regenerating the parser previously needed tools from outside nix, and a version mismatch reads as spurious drift, since BNFC and happy stamp their version into the generated files.
+
+- The `#!rzk #data` eliminator construction moves into a new pure module `Rzk.TypeCheck.Decl.Data`, and the eliminator choice behind `#!rzk match` is parsed into an explicit plan (see [#331](https://github.com/rzk-lang/rzk/pull/331)). Behaviour-preserving.
+
+- The Russian modalities reference is typechecked and format-checked in CI, as the English one already was (see [#327](https://github.com/rzk-lang/rzk/pull/327)).
+
 ## v0.11.0 — 2026-07-21
 
 This release adds inductive types: the `#!rzk #data` command declares a datatype with generated induction and recursion principles, and `#!rzk match` expressions provide pattern-matching notation for them. It also removes the syntax forms deprecated since v0.5.0 (a breaking change for old code), adds lattice operations on the interval cubes, makes the hole inventory's suggestions reliable as insertable source text, and brings the browser playground back on the GHC WebAssembly backend.
diff --git a/grammar/Syntax.cf b/grammar/Syntax.cf
--- a/grammar/Syntax.cf
+++ b/grammar/Syntax.cf
@@ -78,8 +78,11 @@
 SomeConstructorType. ConstructorType ::= ":" Term ;
 NoConstructorType.   ConstructorType ::= ;
 
--- An optional re-ascription of a generated eliminator's type
-DataElim. DataElim ::= "eliminator" VarIdent ":" Term ;
+-- An optional re-ascription of a generated entry's type: the named
+-- eliminator ("eliminate with") or computation rule ("compute with")
+-- gets the user's definitionally equal spelling
+DataElim.    DataElim ::= "eliminate" "with" VarIdent ":" Term ;
+DataCompute. DataElim ::= "compute" "with" VarIdent ":" Term ;
 terminator DataElim "" ;
 
 -- A match branch: constructor name, one binder per method argument
@@ -204,6 +207,7 @@
 ModType.        Term7 ::= Modality Term7 ;
 ModExtract.     Term6 ::= "$extract$" ModComp Term7 ;
 LetMod.         Term1 ::= "let" "mod" ModComp Bind ":=" Term "in" Term ;
+LetModInto.     Term1 ::= "let" "mod" ModComp Bind ":=" Term "into" Term "in" Term ;
 First.          Term6 ::= "π₁" Term7 ;
 Second.         Term6 ::= "π₂" Term7 ;
 Unit.           Term7 ::= "unit" ;
diff --git a/rzk.cabal b/rzk.cabal
--- a/rzk.cabal
+++ b/rzk.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           rzk
-version:        0.11.0
+version:        0.11.1
 synopsis:       An experimental proof assistant for synthetic ∞-categories
 description:    Please see the README on GitHub at <https://github.com/rzk-lang/rzk#readme>
 category:       Dependent Types
@@ -22,14 +22,20 @@
     test/typecheck/SCHEMA.md
     test/typecheck/cases/happy-check.rzk
     test/typecheck/cases/happy-data-bool.rzk
+    test/typecheck/cases/happy-data-circle.rzk
     test/typecheck/cases/happy-data-coprod.rzk
+    test/typecheck/cases/happy-data-eliminator-reascription.rzk
     test/typecheck/cases/happy-data-empty.rzk
     test/typecheck/cases/happy-data-eta-short.rzk
+    test/typecheck/cases/happy-data-hit-reascription.rzk
     test/typecheck/cases/happy-data-hottbook-nat.rzk
     test/typecheck/cases/happy-data-indices-edge.rzk
+    test/typecheck/cases/happy-data-interval-funext.rzk
     test/typecheck/cases/happy-data-large-warning.rzk
     test/typecheck/cases/happy-data-list.rzk
     test/typecheck/cases/happy-data-nat.rzk
+    test/typecheck/cases/happy-data-prop-trunc.rzk
+    test/typecheck/cases/happy-data-pushout.rzk
     test/typecheck/cases/happy-data-rec-section.rzk
     test/typecheck/cases/happy-data-section.rzk
     test/typecheck/cases/happy-data-vec.rzk
@@ -49,6 +55,7 @@
     test/typecheck/cases/happy-modal-flat-recOR-under-op.rzk
     test/typecheck/cases/happy-modal-flat-under-op.rzk
     test/typecheck/cases/happy-modal-inv.rzk
+    test/typecheck/cases/happy-modal-let-into.rzk
     test/typecheck/cases/happy-modal-tope-unwrap.rzk
     test/typecheck/cases/happy-modal-topes.rzk
     test/typecheck/cases/happy-multivar-binder.rzk
@@ -75,13 +82,23 @@
     test/typecheck/cases/ill-bare-lambda-compute.rzk
     test/typecheck/cases/ill-bare-refl-compute.rzk
     test/typecheck/cases/ill-data-clash-generated.rzk
+    test/typecheck/cases/ill-data-compute-kind.rzk
+    test/typecheck/cases/ill-data-compute-mismatch.rzk
+    test/typecheck/cases/ill-data-compute-unknown.rzk
     test/typecheck/cases/ill-data-duplicate-constructor.rzk
-    test/typecheck/cases/ill-data-eliminator-clause.rzk
+    test/typecheck/cases/ill-data-eliminator-duplicate.rzk
+    test/typecheck/cases/ill-data-eliminator-mismatch.rzk
+    test/typecheck/cases/ill-data-eliminator-unknown.rzk
     test/typecheck/cases/ill-data-fun-field.rzk
     test/typecheck/cases/ill-data-index-mismatch.rzk
     test/typecheck/cases/ill-data-missing-return.rzk
     test/typecheck/cases/ill-data-negative.rzk
     test/typecheck/cases/ill-data-non-u-sort.rzk
+    test/typecheck/cases/ill-data-path-endpoint.rzk
+    test/typecheck/cases/ill-data-path-higher-field.rzk
+    test/typecheck/cases/ill-data-path-higher.rzk
+    test/typecheck/cases/ill-data-path-indexed.rzk
+    test/typecheck/cases/ill-data-path-unannotated.rzk
     test/typecheck/cases/ill-data-return-type.rzk
     test/typecheck/cases/ill-data-shape-field.rzk
     test/typecheck/cases/ill-duplicate.rzk
@@ -108,10 +125,12 @@
     test/typecheck/cases/ill-match-cannot-infer.rzk
     test/typecheck/cases/ill-match-duplicate-branch.rzk
     test/typecheck/cases/ill-match-missing-branch.rzk
+    test/typecheck/cases/ill-match-missing-path-branch.rzk
     test/typecheck/cases/ill-match-not-data.rzk
     test/typecheck/cases/ill-match-unknown-branch.rzk
     test/typecheck/cases/ill-modal-b-no-dist.rzk
     test/typecheck/cases/ill-modal-flat-no-commute.rzk
+    test/typecheck/cases/ill-modal-let-into-body.rzk
     test/typecheck/cases/ill-modal-not-modal.rzk
     test/typecheck/cases/ill-modal-op-at-plain.rzk
     test/typecheck/cases/ill-modal-op-under-flat.rzk
@@ -187,14 +206,20 @@
     test/typecheck/cases/warn-meta-prefix-strict-only.rzk
     test/typecheck/cases/happy-check.expect.yaml
     test/typecheck/cases/happy-data-bool.expect.yaml
+    test/typecheck/cases/happy-data-circle.expect.yaml
     test/typecheck/cases/happy-data-coprod.expect.yaml
+    test/typecheck/cases/happy-data-eliminator-reascription.expect.yaml
     test/typecheck/cases/happy-data-empty.expect.yaml
     test/typecheck/cases/happy-data-eta-short.expect.yaml
+    test/typecheck/cases/happy-data-hit-reascription.expect.yaml
     test/typecheck/cases/happy-data-hottbook-nat.expect.yaml
     test/typecheck/cases/happy-data-indices-edge.expect.yaml
+    test/typecheck/cases/happy-data-interval-funext.expect.yaml
     test/typecheck/cases/happy-data-large-warning.expect.yaml
     test/typecheck/cases/happy-data-list.expect.yaml
     test/typecheck/cases/happy-data-nat.expect.yaml
+    test/typecheck/cases/happy-data-prop-trunc.expect.yaml
+    test/typecheck/cases/happy-data-pushout.expect.yaml
     test/typecheck/cases/happy-data-rec-section.expect.yaml
     test/typecheck/cases/happy-data-section.expect.yaml
     test/typecheck/cases/happy-data-vec.expect.yaml
@@ -214,6 +239,7 @@
     test/typecheck/cases/happy-modal-flat-recOR-under-op.expect.yaml
     test/typecheck/cases/happy-modal-flat-under-op.expect.yaml
     test/typecheck/cases/happy-modal-inv.expect.yaml
+    test/typecheck/cases/happy-modal-let-into.expect.yaml
     test/typecheck/cases/happy-modal-tope-unwrap.expect.yaml
     test/typecheck/cases/happy-modal-topes.expect.yaml
     test/typecheck/cases/happy-multivar-binder.expect.yaml
@@ -240,13 +266,23 @@
     test/typecheck/cases/ill-bare-lambda-compute.expect.yaml
     test/typecheck/cases/ill-bare-refl-compute.expect.yaml
     test/typecheck/cases/ill-data-clash-generated.expect.yaml
+    test/typecheck/cases/ill-data-compute-kind.expect.yaml
+    test/typecheck/cases/ill-data-compute-mismatch.expect.yaml
+    test/typecheck/cases/ill-data-compute-unknown.expect.yaml
     test/typecheck/cases/ill-data-duplicate-constructor.expect.yaml
-    test/typecheck/cases/ill-data-eliminator-clause.expect.yaml
+    test/typecheck/cases/ill-data-eliminator-duplicate.expect.yaml
+    test/typecheck/cases/ill-data-eliminator-mismatch.expect.yaml
+    test/typecheck/cases/ill-data-eliminator-unknown.expect.yaml
     test/typecheck/cases/ill-data-fun-field.expect.yaml
     test/typecheck/cases/ill-data-index-mismatch.expect.yaml
     test/typecheck/cases/ill-data-missing-return.expect.yaml
     test/typecheck/cases/ill-data-negative.expect.yaml
     test/typecheck/cases/ill-data-non-u-sort.expect.yaml
+    test/typecheck/cases/ill-data-path-endpoint.expect.yaml
+    test/typecheck/cases/ill-data-path-higher-field.expect.yaml
+    test/typecheck/cases/ill-data-path-higher.expect.yaml
+    test/typecheck/cases/ill-data-path-indexed.expect.yaml
+    test/typecheck/cases/ill-data-path-unannotated.expect.yaml
     test/typecheck/cases/ill-data-return-type.expect.yaml
     test/typecheck/cases/ill-data-shape-field.expect.yaml
     test/typecheck/cases/ill-duplicate.expect.yaml
@@ -273,10 +309,12 @@
     test/typecheck/cases/ill-match-cannot-infer.expect.yaml
     test/typecheck/cases/ill-match-duplicate-branch.expect.yaml
     test/typecheck/cases/ill-match-missing-branch.expect.yaml
+    test/typecheck/cases/ill-match-missing-path-branch.expect.yaml
     test/typecheck/cases/ill-match-not-data.expect.yaml
     test/typecheck/cases/ill-match-unknown-branch.expect.yaml
     test/typecheck/cases/ill-modal-b-no-dist.expect.yaml
     test/typecheck/cases/ill-modal-flat-no-commute.expect.yaml
+    test/typecheck/cases/ill-modal-let-into-body.expect.yaml
     test/typecheck/cases/ill-modal-not-modal.expect.yaml
     test/typecheck/cases/ill-modal-op-at-plain.expect.yaml
     test/typecheck/cases/ill-modal-op-under-flat.expect.yaml
@@ -385,6 +423,7 @@
       Rzk.TypeCheck.BinderTypes
       Rzk.TypeCheck.Context
       Rzk.TypeCheck.Decl
+      Rzk.TypeCheck.Decl.Data
       Rzk.TypeCheck.Display
       Rzk.TypeCheck.Error
       Rzk.TypeCheck.Eval
diff --git a/src/Language/Rzk/Foil/Convert.hs b/src/Language/Rzk/Foil/Convert.hs
--- a/src/Language/Rzk/Foil/Convert.hs
+++ b/src/Language/Rzk/Foil/Convert.hs
@@ -295,11 +295,19 @@
       Rzk.ModExtract{} -> error "$extract$ is an internal term and cannot appear in source"
       Rzk.LetMod _loc comp (Rzk.BindPattern _ pat) val body ->
         let (app, inn) = Free.modCompToMods comp
-         in LetMod (toBinder pat) app inn Nothing (go val)
+         in LetMod (toBinder pat) app inn Nothing Nothing (go val)
               (toScopedPattern scope pat env body)
       Rzk.LetMod _loc comp (Rzk.BindPatternType _ pat ty) val body ->
         let (app, inn) = Free.modCompToMods comp
-         in LetMod (toBinder pat) app inn (Just (go ty)) (go val)
+         in LetMod (toBinder pat) app inn (Just (go ty)) Nothing (go val)
+              (toScopedPattern scope pat env body)
+      Rzk.LetModInto _loc comp (Rzk.BindPattern _ pat) val motive body ->
+        let (app, inn) = Free.modCompToMods comp
+         in LetMod (toBinder pat) app inn Nothing (Just (go motive)) (go val)
+              (toScopedPattern scope pat env body)
+      Rzk.LetModInto _loc comp (Rzk.BindPatternType _ pat ty) val motive body ->
+        let (app, inn) = Free.modCompToMods comp
+         in LetMod (toBinder pat) app inn (Just (go ty)) (Just (go motive)) (go val)
               (toScopedPattern scope pat env body)
 
     restriction = \case
diff --git a/src/Language/Rzk/Foil/Print.hs b/src/Language/Rzk/Foil/Print.hs
--- a/src/Language/Rzk/Foil/Print.hs
+++ b/src/Language/Rzk/Foil/Print.hs
@@ -210,11 +210,13 @@
     go (TypeModal m ty) = Rzk.ModType loc (goMod m) (go ty)
     go (ModApp m t) = Rzk.ModApp loc (goMod m) (go t)
     go (ModExtract app inn t) = Rzk.ModExtract loc (Rzk.Comp loc (goMod app) (goMod inn)) (go t)
-    go (LetMod z app inn mty val body) = withBinder1 z body $ \(z', body') ->
+    go (LetMod z app inn mty mmotive val body) = withBinder1 z body $ \(z', body') ->
       let bind = case mty of
             Nothing -> Rzk.BindPattern loc (binderToPattern z')
             Just ty -> Rzk.BindPatternType loc (binderToPattern z') (go ty)
-       in Rzk.LetMod loc (modsToModComp app inn) bind (go val) body'
+       in case mmotive of
+            Nothing     -> Rzk.LetMod loc (modsToModComp app inn) bind (go val) body'
+            Just motive -> Rzk.LetModInto loc (modsToModComp app inn) bind (go val) (go motive) body'
 
 -- | Peel a match branch's arm chain back into its binder patterns and body.
 --
diff --git a/src/Language/Rzk/Foil/Syntax.hs b/src/Language/Rzk/Foil/Syntax.hs
--- a/src/Language/Rzk/Foil/Syntax.hs
+++ b/src/Language/Rzk/Foil/Syntax.hs
@@ -131,7 +131,7 @@
     | TypeModalF TModality term
     | ModAppF TModality term
     | ModExtractF TModality TModality term
-    | LetModF Binder TModality TModality (Maybe term) term scope
+    | LetModF Binder TModality TModality (Maybe term) (Maybe term) term scope
     | HoleF (Maybe VarIdent)
     deriving (Eq, Functor, Foldable, Traversable, GHC.Generic)
 
@@ -507,7 +507,7 @@
 pattern TypeModalT info md ty = Node (AnnSig info (TypeModalF md ty))
 pattern ModAppT info md t = Node (AnnSig info (ModAppF md t))
 pattern ModExtractT info app inn t = Node (AnnSig info (ModExtractF app inn t))
-pattern LetModT info orig app inn mparam val body = Node (AnnSig info (LetModF orig app inn mparam val body))
+pattern LetModT info orig app inn mparam mmotive val body = Node (AnnSig info (LetModF orig app inn mparam mmotive val body))
 pattern HoleT info mname = Node (AnnSig info (HoleF mname))
 
 {-# COMPLETE Var, UniverseT, UniverseCubeT, UniverseTopeT, CubeUnitT,
@@ -569,7 +569,7 @@
 pattern TypeModal md ty = Node (TypeModalF md ty)
 pattern ModApp md t = Node (ModAppF md t)
 pattern ModExtract app inn t = Node (ModExtractF app inn t)
-pattern LetMod orig app inn mparam val body = Node (LetModF orig app inn mparam val body)
+pattern LetMod orig app inn mparam mmotive val body = Node (LetModF orig app inn mparam mmotive val body)
 pattern Hole mname = Node (HoleF mname)
 
 {-# COMPLETE Var, Universe, UniverseCube, UniverseTope, CubeUnit, CubeUnitStar,
@@ -753,10 +753,10 @@
 letT ty orig mparam val body = LetT (topeInfo ty) orig mparam val body
 
 letModT
-  :: TermT n -> Binder -> TModality -> TModality -> Maybe (TermT n) -> TermT n
-  -> ScopedTermT n -> TermT n
-letModT ty orig app inn mparam val body =
-  LetModT (topeInfo ty) orig app inn mparam val body
+  :: TermT n -> Binder -> TModality -> TModality -> Maybe (TermT n)
+  -> Maybe (TermT n) -> TermT n -> ScopedTermT n -> TermT n
+letModT ty orig app inn mparam mmotive val body =
+  LetModT (topeInfo ty) orig app inn mparam mmotive val body
 
 -- | @refl@ normalises to a bare @refl@: its endpoints are recoverable from the
 -- type, so they are dropped from the normal form.
diff --git a/src/Language/Rzk/Syntax/Abs.hs b/src/Language/Rzk/Syntax/Abs.hs
--- a/src/Language/Rzk/Syntax/Abs.hs
+++ b/src/Language/Rzk/Syntax/Abs.hs
@@ -90,7 +90,9 @@
   deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Generic)
 
 type DataElim = DataElim' BNFC'Position
-data DataElim' a = DataElim a (VarIdent' a) (Term' a)
+data DataElim' a
+    = DataElim a (VarIdent' a) (Term' a)
+    | DataCompute a (VarIdent' a) (Term' a)
   deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Generic)
 
 type MatchBranch = MatchBranch' BNFC'Position
@@ -214,6 +216,7 @@
     | ModType a (Modality' a) (Term' a)
     | ModExtract a (ModComp' a) (Term' a)
     | LetMod a (ModComp' a) (Bind' a) (Term' a) (Term' a)
+    | LetModInto a (ModComp' a) (Bind' a) (Term' a) (Term' a) (Term' a)
     | First a (Term' a)
     | Second a (Term' a)
     | Unit a
@@ -399,6 +402,7 @@
 instance HasPosition DataElim where
   hasPosition = \case
     DataElim p _ _ -> p
+    DataCompute p _ _ -> p
 
 instance HasPosition MatchBranch where
   hasPosition = \case
@@ -512,6 +516,7 @@
     ModType p _ _ -> p
     ModExtract p _ _ -> p
     LetMod p _ _ _ _ -> p
+    LetModInto p _ _ _ _ _ -> p
     First p _ -> p
     Second p _ -> p
     Unit p -> p
diff --git a/src/Language/Rzk/Syntax/Lex.hs b/src/Language/Rzk/Syntax/Lex.hs
--- a/src/Language/Rzk/Syntax/Lex.hs
+++ b/src/Language/Rzk/Syntax/Lex.hs
@@ -626,7 +626,7 @@
 -- | The keywords and symbols of the language organized as binary search tree.
 resWords :: BTree
 resWords =
-  b "Unit" 59
+  b "[" 60
     (b "0\8322" 30
        (b "#variable" 15
           (b "#define" 8
@@ -651,45 +651,45 @@
              (b ":_op" 42
                 (b ":_b" 40 (b ":_#" 39 N N) (b ":_id" 41 N N))
                 (b ":\9837" 44 (b ":\7506\7510" 43 N N) N)))
-          (b "BOT" 52
+          (b "CUBE" 53
              (b "===" 49
                 (b "<=" 47 (b ";" 46 N N) (b "=" 48 N N))
-                (b "=_{" 51 (b "=>" 50 N N) N))
-             (b "TOP" 56
-                (b "II" 54 (b "CUBE" 53 N N) (b "Sigma" 55 N N))
-                (b "U" 58 (b "TOPE" 57 N N) N)))))
-    (b "unflip_op" 89
-       (b "in" 74
-          (b "_op" 67
-             (b "]" 63
-                (b "\\" 61 (b "[" 60 N N) (b "\\/" 62 N N))
-                (b "_b" 65 (b "_#" 64 N N) (b "_id" 66 N N)))
-             (b "flip_op" 71
-                (b "eliminator" 69 (b "as" 68 N N) (b "first" 70 N N))
-                (b "idJ" 73 (b "flip\7506\7510" 72 N N) N)))
-          (b "recBOT" 82
-             (b "inv\7506\7510" 78
-                (b "into" 76 (b "inf" 75 N N) (b "inv_op" 77 N N))
-                (b "match" 80 (b "let" 79 N N) (b "mod" 81 N N)))
-             (b "rzk-1" 86
-                (b "refl" 84 (b "recOR" 83 N N) (b "refl_{" 85 N N))
-                (b "sup" 88 (b "second" 87 N N) N))))
-       (b "\8614" 104
-          (b "}" 97
-             (b "unit" 93
-                (b "uninv_op" 91
-                   (b "unflip\7506\7510" 90 N N) (b "uninv\7506\7510" 92 N N))
-                (b "|" 95 (b "uses" 94 N N) (b "|->" 96 N N)))
-             (b "\960\8322" 101
-                (b "\931" 99 (b "\215" 98 N N) (b "\960\8321" 100 N N))
-                (b "\8594" 103 (b "\7506\7510" 102 N N) N)))
-          (b "\8851" 111
-             (b "\8744" 108
-                (b "\8721" 106 (b "\8658" 105 N N) (b "\8743" 107 N N))
-                (b "\8804" 110 (b "\8801" 109 N N) N))
-             (b "\9837" 115
-                (b "\8868" 113 (b "\8852" 112 N N) (b "\8869" 114 N N))
-                (b "\120128" 117 (b "\9839" 116 N N) N)))))
+                (b "=_{" 51 (b "=>" 50 N N) (b "BOT" 52 N N)))
+             (b "TOPE" 57
+                (b "Sigma" 55 (b "II" 54 N N) (b "TOP" 56 N N))
+                (b "Unit" 59 (b "U" 58 N N) N)))))
+    (b "unflip_op" 90
+       (b "in" 75
+          (b "as" 68
+             (b "_#" 64
+                (b "\\/" 62 (b "\\" 61 N N) (b "]" 63 N N))
+                (b "_id" 66 (b "_b" 65 N N) (b "_op" 67 N N)))
+             (b "flip_op" 72
+                (b "eliminate" 70 (b "compute" 69 N N) (b "first" 71 N N))
+                (b "idJ" 74 (b "flip\7506\7510" 73 N N) N)))
+          (b "recBOT" 83
+             (b "inv\7506\7510" 79
+                (b "into" 77 (b "inf" 76 N N) (b "inv_op" 78 N N))
+                (b "match" 81 (b "let" 80 N N) (b "mod" 82 N N)))
+             (b "rzk-1" 87
+                (b "refl" 85 (b "recOR" 84 N N) (b "refl_{" 86 N N))
+                (b "sup" 89 (b "second" 88 N N) N))))
+       (b "\8594" 105
+          (b "|->" 98
+             (b "unit" 94
+                (b "uninv_op" 92
+                   (b "unflip\7506\7510" 91 N N) (b "uninv\7506\7510" 93 N N))
+                (b "with" 96 (b "uses" 95 N N) (b "|" 97 N N)))
+             (b "\960\8321" 102
+                (b "\215" 100 (b "}" 99 N N) (b "\931" 101 N N))
+                (b "\7506\7510" 104 (b "\960\8322" 103 N N) N)))
+          (b "\8851" 113
+             (b "\8743" 109
+                (b "\8658" 107 (b "\8614" 106 N N) (b "\8721" 108 N N))
+                (b "\8801" 111 (b "\8744" 110 N N) (b "\8804" 112 N N)))
+             (b "\9837" 117
+                (b "\8868" 115 (b "\8852" 114 N N) (b "\8869" 116 N N))
+                (b "\120128" 119 (b "\9839" 118 N N) N)))))
   where
   b s n = B bs (TS bs n)
     where
diff --git a/src/Language/Rzk/Syntax/Par.hs b/src/Language/Rzk/Syntax/Par.hs
--- a/src/Language/Rzk/Syntax/Par.hs
+++ b/src/Language/Rzk/Syntax/Par.hs
@@ -420,24 +420,24 @@
 
 
 {-# NOINLINE happyTokenStrings #-}
-happyTokenStrings = ["'#assume'","'#check'","'#compute'","'#compute-nf'","'#compute-whnf'","'#data'","'#def'","'#define'","'#end'","'#lang'","'#postulate'","'#section'","'#set-option'","'#unset-option'","'#variable'","'#variables'","'$extract$'","'('","')'","'*'","'*_1'","'*\8321'","','","'->'","'/'","'/\\\\'","'0_2'","'0_I'","'0\7522'","'0\8322'","'1'","'1_2'","'1_I'","'1\7522'","'1\8322'","'2'","':'","':='","':_#'","':_b'","':_id'","':_op'","':\7506\7510'","':\9837'","':\9839'","';'","'<='","'='","'==='","'=>'","'=_{'","'BOT'","'CUBE'","'II'","'Sigma'","'TOP'","'TOPE'","'U'","'Unit'","'['","'\\\\'","'\\\\/'","']'","'_#'","'_b'","'_id'","'_op'","'as'","'eliminator'","'first'","'flip_op'","'flip\7506\7510'","'idJ'","'in'","'inf'","'into'","'inv_op'","'inv\7506\7510'","'let'","'match'","'mod'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'sup'","'unflip_op'","'unflip\7506\7510'","'uninv_op'","'uninv\7506\7510'","'unit'","'uses'","'|'","'|->'","'}'","'\215'","'\931'","'\960\8321'","'\960\8322'","'\7506\7510'","'\8594'","'\8614'","'\8658'","'\8721'","'\8743'","'\8744'","'\8801'","'\8804'","'\8851'","'\8852'","'\8868'","'\8869'","'\9837'","'\9839'","'\120128'","L_quoted","L_VarIdentToken","L_HoleIdentToken","%eof"]
+happyTokenStrings = ["'#assume'","'#check'","'#compute'","'#compute-nf'","'#compute-whnf'","'#data'","'#def'","'#define'","'#end'","'#lang'","'#postulate'","'#section'","'#set-option'","'#unset-option'","'#variable'","'#variables'","'$extract$'","'('","')'","'*'","'*_1'","'*\8321'","','","'->'","'/'","'/\\\\'","'0_2'","'0_I'","'0\7522'","'0\8322'","'1'","'1_2'","'1_I'","'1\7522'","'1\8322'","'2'","':'","':='","':_#'","':_b'","':_id'","':_op'","':\7506\7510'","':\9837'","':\9839'","';'","'<='","'='","'==='","'=>'","'=_{'","'BOT'","'CUBE'","'II'","'Sigma'","'TOP'","'TOPE'","'U'","'Unit'","'['","'\\\\'","'\\\\/'","']'","'_#'","'_b'","'_id'","'_op'","'as'","'compute'","'eliminate'","'first'","'flip_op'","'flip\7506\7510'","'idJ'","'in'","'inf'","'into'","'inv_op'","'inv\7506\7510'","'let'","'match'","'mod'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'sup'","'unflip_op'","'unflip\7506\7510'","'uninv_op'","'uninv\7506\7510'","'unit'","'uses'","'with'","'|'","'|->'","'}'","'\215'","'\931'","'\960\8321'","'\960\8322'","'\7506\7510'","'\8594'","'\8614'","'\8658'","'\8721'","'\8743'","'\8744'","'\8801'","'\8804'","'\8851'","'\8852'","'\8868'","'\8869'","'\9837'","'\9839'","'\120128'","L_quoted","L_VarIdentToken","L_HoleIdentToken","%eof"]
 
 happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\xff\xff\xff\xff\x9d\xff\xff\xff\xb4\xff\xff\xff\xb4\xff\xff\xff\x29\x00\x00\x00\xe5\xff\xff\xff\x87\x0b\x00\x00\x87\x0b\x00\x00\xf1\xff\xff\xff\x0c\x00\x00\x00\x7c\x00\x00\x00\x4b\x00\x00\x00\x36\x00\x00\x00\x36\x00\x00\x00\x9a\x00\x00\x00\x81\x00\x00\x00\x81\x00\x00\x00\x4a\x00\x00\x00\x4a\x00\x00\x00\x3e\x00\x00\x00\x3e\x00\x00\x00\x3e\x00\x00\x00\x3e\x00\x00\x00\x49\x00\x00\x00\x49\x00\x00\x00\xdb\x00\x00\x00\x57\x00\x00\x00\xdb\x00\x00\x00\xdb\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x6e\x01\x00\x00\x6e\x01\x00\x00\xb4\x03\x00\x00\x07\x02\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\xff\x07\x02\x00\x00\x00\x00\x00\x00\xa4\x01\x00\x00\xed\xff\xff\xff\x18\x00\x00\x00\x2c\x00\x00\x00\x57\x01\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\x6b\x00\x00\x00\x6e\x01\x00\x00\xef\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\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x02\x00\x00\x07\x02\x00\x00\x07\x02\x00\x00\xf2\x00\x00\x00\x07\x02\x00\x00\x07\x02\x00\x00\x07\x02\x00\x00\xf4\xff\xff\xff\x07\x02\x00\x00\x6e\x01\x00\x00\x00\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x07\x02\x00\x00\x07\x02\x00\x00\x07\x02\x00\x00\x07\x02\x00\x00\x07\x02\x00\x00\x07\x02\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x07\x02\x00\x00\x07\x02\x00\x00\x00\x00\x00\x00\x03\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\x78\x00\x00\x00\x4e\x00\x00\x00\x78\x00\x00\x00\x0b\x01\x00\x00\xef\xff\xff\xff\x78\x00\x00\x00\xbb\x01\x00\x00\x78\x00\x00\x00\x78\x00\x00\x00\x0d\x00\x00\x00\x78\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x01\x00\x00\xbc\x00\x00\x00\xbc\x00\x00\x00\x33\x01\x00\x00\xd6\x00\x00\x00\xb7\xff\xff\xff\xd6\x00\x00\x00\x00\x00\x00\x00\x73\x0b\x00\x00\x3a\x01\x00\x00\xe0\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x00\x00\xe0\x00\x00\x00\xbb\x01\x00\x00\x35\x01\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\xec\x00\x00\x00\x08\x01\x00\x00\x28\x01\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x4d\x01\x00\x00\x0e\x01\x00\x00\x0e\x01\x00\x00\x28\x01\x00\x00\x0e\x01\x00\x00\x0e\x01\x00\x00\x5c\x00\x00\x00\x2a\x01\x00\x00\x15\x01\x00\x00\x15\x01\x00\x00\x4f\x01\x00\x00\x1c\x01\x00\x00\x1f\x01\x00\x00\x23\x01\x00\x00\x23\x01\x00\x00\xef\xff\xff\xff\x08\x00\x00\x00\x3f\x01\x00\x00\x2c\x01\x00\x00\x2c\x01\x00\x00\x2c\x01\x00\x00\x2f\x01\x00\x00\x34\x01\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x34\x01\x00\x00\x34\x01\x00\x00\xaa\x01\x00\x00\x88\x01\x00\x00\x4b\x01\x00\x00\x5b\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x5b\x01\x00\x00\x5b\x01\x00\x00\x5b\x01\x00\x00\x5b\x01\x00\x00\x5b\x01\x00\x00\x5b\x01\x00\x00\x75\x01\x00\x00\x75\x01\x00\x00\x7b\x01\x00\x00\x7b\x01\x00\x00\x73\x01\x00\x00\x73\x01\x00\x00\x00\x00\x00\x00\x73\x01\x00\x00\xa2\x01\x00\x00\x82\x01\x00\x00\x81\x01\x00\x00\x81\x01\x00\x00\x81\x01\x00\x00\x81\x01\x00\x00\x87\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x01\x00\x00\xdd\x01\x00\x00\xde\x01\x00\x00\x00\x00\x00\x00\xd9\x01\x00\x00\x00\x00\x00\x00\xac\x01\x00\x00\x00\x00\x00\x00\xac\x01\x00\x00\xac\x01\x00\x00\xac\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\xf5\x01\x00\x00\x87\x0b\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00\xf2\x01\x00\x00\xc7\x01\x00\x00\x00\x00\x00\x00\x1e\x02\x00\x00\x00\x00\x00\x00\x2e\x02\x00\x00\x00\x00\x00\x00\xe7\x01\x00\x00\xe4\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x28\x01\x00\x00\x70\x00\x00\x00\x7c\x0b\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x3d\x02\x00\x00\x28\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x6e\x01\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\x05\x00\x00\x00\xbf\x00\x00\x00\xef\xff\xff\xff\x28\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x02\x00\x00\x00\x00\x00\x00\xf9\xff\xff\xff\xef\xff\xff\xff\x07\x02\x00\x00\x02\x00\x00\x00\x2f\x02\x00\x00\x6e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x02\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x28\x01\x00\x00\x14\x0b\x00\x00\x07\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xbf\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x00\x00\x76\x00\x00\x00\x76\x00\x00\x00\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x85\x0b\x00\x00\x4a\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x53\x02\x00\x00\x00\x00\x00\x00\x28\x01\x00\x00\xef\xff\xff\xff\xf4\x01\x00\x00\x07\x02\x00\x00\x00\x00\x00\x00\x5b\x02\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x0b\x00\x00\x66\x02\x00\x00\x97\x0b\x00\x00\x6b\x02\x00\x00\x33\x02\x00\x00\x00\x00\x00\x00\xbb\x01\x00\x00\xbb\x01\x00\x00\xbb\x01\x00\x00\xbb\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\x28\x01\x00\x00\x5c\x02\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x02\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xc5\x00\x00\x00\xde\x00\x00\x00\xf9\x00\x00\x00\x2b\x01\x00\x00\x26\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x00\x00\xef\xff\xff\xff\x7e\x02\x00\x00\xef\xff\xff\xff\xa7\x02\x00\x00\xef\xff\xff\xff\xad\x02\x00\x00\xb1\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\x21\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\xbf\x00\x00\x00\x28\x01\x00\x00\xef\xff\xff\xff\x28\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x43\x02\x00\x00\x00\x00\x00\x00\xc5\x02\x00\x00\xcc\x02\x00\x00\x92\x02\x00\x00\xc8\x02\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x28\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x89\x00\x00\x00\xdf\x00\x00\x00\x90\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xe1\x02\x00\x00\xec\x02\x00\x00\xf5\x02\x00\x00\xf3\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x9b\x02\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x01\x03\x00\x00\x17\x03\x00\x00\x1a\x03\x00\x00\x1d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x25\x03\x00\x00\x00\x00\x00\x00\x29\x03\x00\x00\xef\xff\xff\xff\x40\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x4f\x03\x00\x00\xef\xff\xff\xff\x51\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x54\x03\x00\x00\x6a\x03\x00\x00\x6b\x03\x00\x00\xfe\x02\x00\x00\x69\x03\x00\x00\x6e\x03\x00\x00\x73\x03\x00\x00\x74\x03\x00\x00\x6c\x03\x00\x00\x00\x00\x00\x00\x5a\x03\x00\x00\xef\xff\xff\xff\x8e\x03\x00\x00\x8f\x03\x00\x00\x92\x03\x00\x00\x99\x03\x00\x00\x9a\x03\x00\x00\x9b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x98\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\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\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x03\x00\x00\xef\xff\xff\xff\x9f\x03\x00\x00\xef\xff\xff\xff\xa4\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+happyActOffsets = HappyA# "\xff\xff\xff\xff\x9d\xff\xff\xff\xa9\xff\xff\xff\xa9\xff\xff\xff\x2a\x00\x00\x00\xe3\xff\xff\xff\xe9\x0b\x00\x00\xe9\x0b\x00\x00\x14\x00\x00\x00\xd5\xff\xff\xff\x3a\x00\x00\x00\x63\x00\x00\x00\x2b\x00\x00\x00\x2b\x00\x00\x00\x96\x00\x00\x00\xbd\xff\xff\xff\xbd\xff\xff\xff\x5f\x00\x00\x00\x5f\x00\x00\x00\x85\x00\x00\x00\x85\x00\x00\x00\x85\x00\x00\x00\x85\x00\x00\x00\xc4\x00\x00\x00\xc4\x00\x00\x00\xd4\x00\x00\x00\x59\x00\x00\x00\xd4\x00\x00\x00\xd4\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x8f\x01\x00\x00\x8f\x01\x00\x00\x73\x03\x00\x00\xf7\x01\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\xff\xf7\x01\x00\x00\x00\x00\x00\x00\x91\x01\x00\x00\xed\xff\xff\xff\x42\x00\x00\x00\x51\x00\x00\x00\x43\x01\x00\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x7c\x00\x00\x00\x8f\x01\x00\x00\xef\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\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x12\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf4\xff\xff\xff\xf7\x01\x00\x00\x8f\x01\x00\x00\x00\x00\x00\x00\x1a\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\x21\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\x27\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\xc0\x00\x00\x00\x76\x00\x00\x00\xc0\x00\x00\x00\xf5\x00\x00\x00\xef\xff\xff\xff\xc0\x00\x00\x00\xa9\x01\x00\x00\xc0\x00\x00\x00\xc0\x00\x00\x00\x0d\x00\x00\x00\xc0\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\xd9\x00\x00\x00\xd9\x00\x00\x00\x3f\x01\x00\x00\xe1\x00\x00\x00\xb2\xff\xff\xff\xe1\x00\x00\x00\x00\x00\x00\x00\xd5\x0b\x00\x00\x5e\x01\x00\x00\x07\x01\x00\x00\x13\x01\x00\x00\x00\x00\x00\x00\x07\x01\x00\x00\x07\x01\x00\x00\xa9\x01\x00\x00\x65\x01\x00\x00\x18\x01\x00\x00\x00\x00\x00\x00\x15\x01\x00\x00\x18\x01\x00\x00\x16\x01\x00\x00\x18\x01\x00\x00\x00\x00\x00\x00\x83\x01\x00\x00\x25\x01\x00\x00\x25\x01\x00\x00\x16\x01\x00\x00\x25\x01\x00\x00\x25\x01\x00\x00\x48\x01\x00\x00\x47\x01\x00\x00\x2f\x01\x00\x00\x2f\x01\x00\x00\xbd\xff\xff\xff\x2f\x01\x00\x00\x4f\x01\x00\x00\x51\x01\x00\x00\x53\x01\x00\x00\x53\x01\x00\x00\xef\xff\xff\xff\x09\x00\x00\x00\x73\x01\x00\x00\x8d\x01\x00\x00\x8d\x01\x00\x00\x8d\x01\x00\x00\x74\x01\x00\x00\x95\x01\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x95\x01\x00\x00\x95\x01\x00\x00\x15\x02\x00\x00\x00\x02\x00\x00\xb8\x01\x00\x00\xbb\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xbb\x01\x00\x00\xbb\x01\x00\x00\xbb\x01\x00\x00\xbb\x01\x00\x00\xbb\x01\x00\x00\xbb\x01\x00\x00\xbd\x01\x00\x00\xbd\x01\x00\x00\xcc\x01\x00\x00\xcc\x01\x00\x00\xd4\x01\x00\x00\xd4\x01\x00\x00\x00\x00\x00\x00\xd4\x01\x00\x00\xf0\x01\x00\x00\xe0\x01\x00\x00\x05\x02\x00\x00\x05\x02\x00\x00\x05\x02\x00\x00\x05\x02\x00\x00\xe9\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x02\x00\x00\x44\x02\x00\x00\x5d\x02\x00\x00\x00\x00\x00\x00\x59\x02\x00\x00\x00\x00\x00\x00\x2b\x02\x00\x00\x00\x00\x00\x00\x2b\x02\x00\x00\x2b\x02\x00\x00\x2b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x02\x00\x00\x6c\x02\x00\x00\xe9\x0b\x00\x00\x19\x02\x00\x00\x00\x00\x00\x00\xbd\xff\xff\xff\x19\x02\x00\x00\x00\x00\x00\x00\x9c\x02\x00\x00\x00\x00\x00\x00\x4b\x02\x00\x00\x4b\x02\x00\x00\x00\x00\x00\x00\x4b\x02\x00\x00\xe6\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x16\x01\x00\x00\x41\x00\x00\x00\xde\x0b\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xb3\x02\x00\x00\x16\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x8f\x01\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\x06\x00\x00\x00\xa7\x00\x00\x00\xef\xff\xff\xff\x16\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\xf9\xff\xff\xff\xef\xff\xff\xff\xf7\x01\x00\x00\x03\x00\x00\x00\xa7\x02\x00\x00\x8f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x16\x01\x00\x00\x6f\x0b\x00\x00\xf7\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x01\x00\x00\x2c\x01\x00\x00\x2c\x01\x00\x00\x2c\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\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xe7\x0b\x00\x00\xc5\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xcb\x02\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\xef\xff\xff\xff\x7a\x02\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\xe5\x02\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x0b\x00\x00\xe2\x02\x00\x00\xf9\x0b\x00\x00\xe3\x02\x00\x00\x9d\x02\x00\x00\x00\x00\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\xa9\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\x16\x01\x00\x00\xc4\x02\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\xe4\x02\x00\x00\xf3\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x0e\x00\x00\x00\x60\x00\x00\x00\x79\x00\x00\x00\xc8\x00\x00\x00\xbe\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x03\x00\x00\xef\xff\xff\xff\x1a\x03\x00\x00\xef\xff\xff\xff\x1b\x03\x00\x00\xef\xff\xff\xff\x3d\x03\x00\x00\x40\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x29\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\xa7\x00\x00\x00\x16\x01\x00\x00\xef\xff\xff\xff\x16\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xf2\x02\x00\x00\x00\x00\x00\x00\x42\x03\x00\x00\x58\x03\x00\x00\x21\x03\x00\x00\x48\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x3c\x00\x00\x00\x96\x01\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x60\x03\x00\x00\x63\x03\x00\x00\x65\x03\x00\x00\x7b\x03\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x1e\x03\x00\x00\x00\x00\x00\x00\x80\x03\x00\x00\x81\x03\x00\x00\x8f\x03\x00\x00\x90\x03\x00\x00\x91\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x03\x00\x00\x00\x00\x00\x00\x82\x03\x00\x00\xef\xff\xff\xff\x8c\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x8d\x03\x00\x00\xef\xff\xff\xff\x9b\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x94\x03\x00\x00\xaf\x03\x00\x00\xb0\x03\x00\x00\xb2\x03\x00\x00\xb3\x03\x00\x00\xb5\x03\x00\x00\xb6\x03\x00\x00\xb7\x03\x00\x00\xb8\x03\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\xef\xff\xff\xff\xba\x03\x00\x00\xbb\x03\x00\x00\xbc\x03\x00\x00\xc1\x03\x00\x00\xc3\x03\x00\x00\xce\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xc0\x03\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\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\x84\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xd9\x03\x00\x00\xef\xff\xff\xff\xde\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
 
 happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x3c\x01\x00\x00\x1f\x00\x00\x00\x67\x01\x00\x00\x61\x01\x00\x00\xaa\x03\x00\x00\xab\x03\x00\x00\xb2\x03\x00\x00\xfa\xff\xff\xff\xaf\x03\x00\x00\x52\x02\x00\x00\xc7\x03\x00\x00\xc8\x03\x00\x00\xb6\x00\x00\x00\x36\x02\x00\x00\xc4\x03\x00\x00\xd2\x03\x00\x00\x4c\x00\x00\x00\xc3\x00\x00\x00\xb3\x01\x00\x00\x19\x00\x00\x00\x05\x03\x00\x00\x01\x0a\x00\x00\x44\x03\x00\x00\x3b\x03\x00\x00\x2e\x0b\x00\x00\x9d\x02\x00\x00\xf8\x09\x00\x00\xb3\x02\x00\x00\x86\x01\x00\x00\x0d\x03\x00\x00\x95\x02\x00\x00\xb7\x03\x00\x00\x67\x00\x00\x00\xc1\x03\x00\x00\x5f\x02\x00\x00\x03\x0a\x00\x00\xe8\x09\x00\x00\xbe\x09\x00\x00\xbf\x01\x00\x00\x41\x0a\x00\x00\xbb\x08\x00\x00\x39\x03\x00\x00\x4b\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\x73\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x00\x00\x00\x49\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\x45\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x0a\x00\x00\x8e\x0a\x00\x00\x9a\x0a\x00\x00\x00\x00\x00\x00\xa1\x0a\x00\x00\xa6\x0a\x00\x00\xad\x0a\x00\x00\xc3\x02\x00\x00\xb3\x0a\x00\x00\xc5\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x03\x00\x00\xb9\x0a\x00\x00\xc0\x0a\x00\x00\xc8\x0a\x00\x00\xcf\x0a\x00\x00\xd5\x0a\x00\x00\xdb\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x0a\x00\x00\xe7\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x0a\x00\x00\x78\x03\x00\x00\x00\x00\x00\x00\xee\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x0b\x00\x00\x00\x00\x00\x00\x20\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x00\x00\x00\x00\x00\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x03\x00\x00\x3e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x02\x00\x00\x00\x00\x00\x00\xa7\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\x34\x02\x00\x00\xc6\x03\x00\x00\xd6\x03\x00\x00\xf5\x03\x00\x00\x05\x04\x00\x00\xb5\x01\x00\x00\xc1\x01\x00\x00\xe9\x01\x00\x00\x0b\x03\x00\x00\x17\x02\x00\x00\x76\x03\x00\x00\xe9\x03\x00\x00\xea\x03\x00\x00\x4d\x02\x00\x00\x9a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x03\x00\x00\xc9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x03\x00\x00\x00\x00\x00\x00\xf9\x03\x00\x00\xfa\x03\x00\x00\xfd\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x00\x00\x00\x83\x03\x00\x00\x00\x00\x00\x00\xea\x00\x00\x00\x43\x03\x00\x00\x00\x00\x00\x00\xe4\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x02\x00\x00\x00\x00\x00\x00\x24\x04\x00\x00\x34\x04\x00\x00\x00\x00\x00\x00\x31\x0a\x00\x00\x71\x0b\x00\x00\xe7\x03\x00\x00\x00\x00\x00\x00\x53\x04\x00\x00\x00\x00\x00\x00\xc1\x02\x00\x00\x00\x00\x00\x00\x9d\x01\x00\x00\x63\x04\x00\x00\x82\x04\x00\x00\x92\x04\x00\x00\xb1\x04\x00\x00\xd1\x02\x00\x00\xeb\x03\x00\x00\x51\x0a\x00\x00\x5d\x0a\x00\x00\x63\x0a\x00\x00\x6c\x0a\x00\x00\x00\x00\x00\x00\xab\x08\x00\x00\xc1\x04\x00\x00\xef\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x02\x00\x00\xfa\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x0b\x00\x00\xe0\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x03\x00\x00\xe8\x03\x00\x00\x09\x0b\x00\x00\x65\x02\x00\x00\xca\x08\x00\x00\x94\x09\x00\x00\xa3\x09\x00\x00\xce\x09\x00\x00\xd9\x09\x00\x00\x0f\x0a\x00\x00\x1a\x0a\x00\x00\x2a\x0a\x00\x00\x36\x0a\x00\x00\x00\x00\x00\x00\xda\x08\x00\x00\xe9\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\xf0\x04\x00\x00\x00\x00\x00\x00\x0f\x05\x00\x00\x1f\x05\x00\x00\xed\x03\x00\x00\x00\x00\x00\x00\xf9\x08\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x03\x00\x00\x3e\x05\x00\x00\x82\x03\x00\x00\x10\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x03\x00\x00\x00\x00\x00\x00\xf0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x0b\x00\x00\x16\x0b\x00\x00\x16\x0b\x00\x00\x16\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x05\x00\x00\x7d\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x05\x00\x00\xac\x05\x00\x00\x00\x00\x00\x00\xcb\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x05\x00\x00\xfa\x05\x00\x00\x42\x0b\x00\x00\x4d\x0b\x00\x00\x54\x0b\x00\x00\x5d\x0b\x00\x00\x0e\x04\x00\x00\x0a\x06\x00\x00\x29\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x06\x00\x00\x00\x00\x00\x00\x58\x06\x00\x00\x00\x00\x00\x00\x68\x06\x00\x00\x01\x04\x00\x00\x03\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\xaf\x09\x00\x00\xea\x01\x00\x00\x87\x06\x00\x00\x01\x02\x00\x00\x97\x06\x00\x00\xb6\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\xc6\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x02\x00\x00\xe5\x06\x00\x00\xf5\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x84\x02\x00\x00\x00\x00\x00\x00\x24\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x07\x00\x00\x53\x07\x00\x00\x00\x00\x00\x00\xb1\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\x68\x0b\x00\x00\x00\x00\x00\x00\x72\x07\x00\x00\x00\x00\x00\x00\x82\x07\x00\x00\x07\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x07\x00\x00\x00\x00\x00\x00\xb1\x07\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\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\x18\x09\x00\x00\x27\x09\x00\x00\x37\x09\x00\x00\x00\x00\x00\x00\x2e\x08\x00\x00\x00\x00\x00\x00\x46\x09\x00\x00\x56\x09\x00\x00\x65\x09\x00\x00\x75\x09\x00\x00\x84\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x08\x00\x00\x00\x00\x00\x00\x5d\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\x6d\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+happyGotoOffsets = HappyA# "\x8a\x00\x00\x00\x95\x00\x00\x00\x08\x01\x00\x00\x4c\x01\x00\x00\xec\x03\x00\x00\xbf\x03\x00\x00\xed\x03\x00\x00\xe3\x00\x00\x00\xee\x03\x00\x00\xba\x02\x00\x00\xef\x03\x00\x00\xf0\x03\x00\x00\x4e\x02\x00\x00\x72\x01\x00\x00\xe9\x03\x00\x00\xeb\x03\x00\x00\x31\x01\x00\x00\xdc\x01\x00\x00\xd1\x00\x00\x00\xae\x01\x00\x00\xc3\x0b\x00\x00\x16\x00\x00\x00\x7b\x0b\x00\x00\xa8\x0b\x00\x00\x04\x03\x00\x00\x8b\x02\x00\x00\x3f\x0a\x00\x00\x1f\x01\x00\x00\xd3\x01\x00\x00\xfb\x02\x00\x00\x83\x02\x00\x00\xdd\x03\x00\x00\x23\x01\x00\x00\xd7\x03\x00\x00\xd5\x01\x00\x00\x4f\x0a\x00\x00\x30\x0a\x00\x00\x06\x0a\x00\x00\xc1\x09\x00\x00\x88\x0a\x00\x00\xe8\x08\x00\x00\x27\x03\x00\x00\x3c\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\xbf\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x01\x00\x00\x37\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\x30\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x0a\x00\x00\xdb\x0a\x00\x00\xe1\x0a\x00\x00\x00\x00\x00\x00\xe8\x0a\x00\x00\xed\x0a\x00\x00\xf2\x0a\x00\x00\xa1\x02\x00\x00\xfd\x0a\x00\x00\xdf\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x03\x00\x00\x03\x0b\x00\x00\x14\x0b\x00\x00\x19\x0b\x00\x00\x1f\x0b\x00\x00\x25\x0b\x00\x00\x2a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x0b\x00\x00\x3b\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x0b\x00\x00\x66\x03\x00\x00\x00\x00\x00\x00\x41\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x0b\x00\x00\x00\x00\x00\x00\xc6\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x03\x00\x00\xdd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x02\x00\x00\x00\x00\x00\x00\x95\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\x06\x02\x00\x00\xb4\x03\x00\x00\xc4\x03\x00\x00\xe3\x03\x00\x00\xf3\x03\x00\x00\xee\x01\x00\x00\xf4\x01\x00\x00\x5a\x02\x00\x00\x31\x03\x00\x00\xb7\x02\x00\x00\x64\x03\x00\x00\x02\x04\x00\x00\x03\x04\x00\x00\x39\x03\x00\x00\x24\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x03\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\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\xfc\x03\x00\x00\x00\x00\x00\x00\x06\x04\x00\x00\x07\x04\x00\x00\x15\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x01\x00\x00\xfd\x02\x00\x00\x00\x00\x00\x00\xfd\x01\x00\x00\xb9\x02\x00\x00\x00\x00\x00\x00\x10\x04\x00\x00\x00\x00\x00\x00\x6d\x03\x00\x00\x75\x03\x00\x00\x00\x00\x00\x00\x81\x02\x00\x00\x00\x00\x00\x00\x12\x04\x00\x00\x22\x04\x00\x00\x00\x00\x00\x00\xad\x0b\x00\x00\xd3\x0b\x00\x00\x01\x04\x00\x00\x00\x00\x00\x00\x41\x04\x00\x00\x00\x00\x00\x00\xaf\x02\x00\x00\x00\x00\x00\x00\x26\x02\x00\x00\x51\x04\x00\x00\x70\x04\x00\x00\x80\x04\x00\x00\x9f\x04\x00\x00\xbf\x02\x00\x00\x00\x04\x00\x00\x95\x0a\x00\x00\xa4\x0a\x00\x00\xaa\x0a\x00\x00\xb4\x0a\x00\x00\x00\x00\x00\x00\xd0\x09\x00\x00\xaf\x04\x00\x00\x3a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x02\x00\x00\x56\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x0b\x00\x00\xce\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x02\x00\x00\x04\x04\x00\x00\x63\x0b\x00\x00\x53\x02\x00\x00\xf7\x08\x00\x00\xdc\x09\x00\x00\xeb\x09\x00\x00\x15\x0a\x00\x00\x25\x0a\x00\x00\x5e\x0a\x00\x00\x69\x0a\x00\x00\x76\x0a\x00\x00\x7d\x0a\x00\x00\x00\x00\x00\x00\x07\x09\x00\x00\x16\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x04\x00\x00\x00\x00\x00\x00\xfd\x04\x00\x00\x0d\x05\x00\x00\x05\x04\x00\x00\x00\x00\x00\x00\x26\x09\x00\x00\x35\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x02\x00\x00\x2c\x05\x00\x00\x2e\x03\x00\x00\x68\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x04\x00\x00\x00\x00\x00\x00\x09\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x0b\x00\x00\x6d\x0b\x00\x00\x6d\x0b\x00\x00\x6d\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x05\x00\x00\x6b\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x05\x00\x00\x9a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x05\x00\x00\xc9\x05\x00\x00\x9b\x01\x00\x00\x9d\x0b\x00\x00\x9f\x0b\x00\x00\xa6\x0b\x00\x00\x2a\x04\x00\x00\xe8\x05\x00\x00\xf8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x06\x00\x00\x00\x00\x00\x00\x27\x06\x00\x00\x00\x00\x00\x00\x46\x06\x00\x00\x1d\x04\x00\x00\x21\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x06\x00\x00\x75\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\xfb\x09\x00\x00\xb4\x02\x00\x00\x85\x06\x00\x00\xf0\x02\x00\x00\xa4\x06\x00\x00\xb4\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\xd3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x03\x00\x00\xe3\x06\x00\x00\x02\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x07\x00\x00\x00\x00\x00\x00\x72\x02\x00\x00\x00\x00\x00\x00\x31\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x07\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x70\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\xba\x0b\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x8f\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x07\x00\x00\x00\x00\x00\x00\xbe\x07\x00\x00\x00\x00\x00\x00\xce\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x07\x00\x00\x00\x00\x00\x00\xfd\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\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\x45\x09\x00\x00\x54\x09\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x2c\x08\x00\x00\x4b\x08\x00\x00\x00\x00\x00\x00\x73\x09\x00\x00\x83\x09\x00\x00\x92\x09\x00\x00\xa2\x09\x00\x00\xb1\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x08\x00\x00\x00\x00\x00\x00\x7a\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\x8a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa9\x08\x00\x00\x00\x00\x00\x00\xb9\x08\x00\x00\x00\x00\x00\x00\xd8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
 
 happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\xb4\xff\xff\xff\xb3\xff\xff\xff\xb0\xff\xff\xff\xae\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xff\xff\xff\x00\x00\x00\x00\xa6\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\x00\x00\xd4\xff\xff\xff\xcf\xff\xff\xff\xd0\xff\xff\xff\x54\xff\xff\xff\x53\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x2c\xff\xff\xff\x42\xff\xff\xff\x3e\xff\xff\xff\x3b\xff\xff\xff\x1e\xff\xff\xff\x46\xff\xff\xff\x15\xff\xff\xff\x14\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xff\xff\xff\x6b\xff\xff\xff\x50\xff\xff\xff\x4d\xff\xff\xff\x66\xff\xff\xff\x69\xff\xff\xff\x6c\xff\xff\xff\x4f\xff\xff\xff\x4c\xff\xff\xff\x65\xff\xff\xff\x68\xff\xff\xff\x6a\xff\xff\xff\x4a\xff\xff\xff\x6e\xff\xff\xff\x4e\xff\xff\xff\x00\x00\x00\x00\x4b\xff\xff\xff\x6d\xff\xff\xff\x6f\xff\xff\xff\x60\xff\xff\xff\x00\x00\x00\x00\x7c\xff\xff\xff\x7e\xff\xff\xff\x79\xff\xff\xff\x7a\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\x62\xff\xff\xff\x00\x00\x00\x00\x5a\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\x5b\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xff\xff\xff\x00\x00\x00\x00\x64\xff\xff\xff\x63\xff\xff\xff\x7f\xff\xff\xff\x7d\xff\xff\xff\x67\xff\xff\xff\xd3\xff\xff\xff\xd2\xff\xff\xff\x00\x00\x00\x00\x1e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xff\xff\xff\x72\xff\xff\xff\x73\xff\xff\xff\x70\xff\xff\xff\x74\xff\xff\xff\x76\xff\xff\xff\x75\xff\xff\xff\x78\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x81\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\xff\xff\x00\x00\x00\x00\x85\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xff\xff\xff\x8e\xff\xff\xff\x00\x00\x00\x00\x95\xff\xff\xff\x90\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xff\xff\xff\x97\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xff\xff\xff\xab\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\xb2\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\xb3\xff\xff\xff\x00\x00\x00\x00\xb3\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\xcb\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\xd1\xff\xff\xff\xcd\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xff\xff\x00\x00\x00\x00\xbf\xff\xff\xff\xb4\xff\xff\xff\xbe\xff\xff\xff\xb4\xff\xff\xff\xb4\xff\xff\xff\xb4\xff\xff\xff\xc6\xff\xff\xff\xc5\xff\xff\xff\xc7\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\x00\x00\x00\x00\xb1\xff\xff\xff\xa6\xff\xff\xff\x00\x00\x00\x00\xac\xff\xff\xff\xa8\xff\xff\xff\xa9\xff\xff\xff\x00\x00\x00\x00\xa5\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xff\xff\xff\x00\x00\x00\x00\x9a\xff\xff\xff\x00\x00\x00\x00\x8f\xff\xff\xff\x00\x00\x00\x00\x30\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\x2d\xff\xff\xff\x2e\xff\xff\xff\x00\x00\x00\x00\x37\xff\xff\xff\x36\xff\xff\xff\x33\xff\xff\xff\x32\xff\xff\xff\x00\x00\x00\x00\x28\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\x39\xff\xff\xff\x38\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x35\xff\xff\xff\x34\xff\xff\xff\x29\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\x5c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x27\xff\xff\xff\x1d\xff\xff\xff\x43\xff\xff\xff\x44\xff\xff\xff\x41\xff\xff\xff\x40\xff\xff\xff\x3f\xff\xff\xff\x3d\xff\xff\xff\x3c\xff\xff\xff\x3a\xff\xff\xff\x16\xff\xff\xff\x13\xff\xff\xff\x2f\xff\xff\xff\x00\x00\x00\x00\x52\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\x2a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x59\xff\xff\xff\x2b\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\xff\xff\xff\x48\xff\xff\xff\x47\xff\xff\xff\x49\xff\xff\xff\x45\xff\xff\xff\x77\xff\xff\xff\x80\xff\xff\xff\x83\xff\xff\xff\x82\xff\xff\xff\x87\xff\xff\xff\x86\xff\xff\xff\x84\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x96\xff\xff\xff\xa3\xff\xff\xff\xa1\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9f\xff\xff\xff\x00\x00\x00\x00\xad\xff\xff\xff\xaa\xff\xff\xff\xaf\xff\xff\xff\x00\x00\x00\x00\xb6\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb0\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\xcc\xff\xff\xff\xc0\xff\xff\xff\xc1\xff\xff\xff\xca\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\xae\xff\xff\xff\xb0\xff\xff\xff\xc8\xff\xff\xff\xc2\xff\xff\xff\xb5\xff\xff\xff\xa7\xff\xff\xff\xa4\xff\xff\xff\xa2\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x31\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\x61\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\xff\xff\x19\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\x89\xff\xff\xff\x00\x00\x00\x00\x5f\xff\xff\xff\x00\x00\x00\x00\x8b\xff\xff\xff\x00\x00\x00\x00\x87\xff\xff\xff\x86\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xff\xff\xff\x00\x00\x00\x00\x58\xff\xff\xff\x87\xff\xff\xff\x86\xff\xff\xff\x00\x00\x00\x00\x87\xff\xff\xff\x00\x00\x00\x00\x23\xff\xff\xff\x9c\xff\xff\xff\x00\x00\x00\x00\x92\xff\xff\xff\x00\x00\x00\x00\x94\xff\xff\xff\x00\x00\x00\x00\xae\xff\xff\xff\xb8\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xff\xff\xff\x00\x00\x00\x00\xc4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\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\x21\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\x88\xff\xff\xff\x5e\xff\xff\xff\x8a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xff\xff\xff\x91\xff\xff\xff\x93\xff\xff\xff\xba\xff\xff\xff\x00\x00\x00\x00\xbc\xff\xff\xff\x00\x00\x00\x00\xbd\xff\xff\xff\xbb\xff\xff\xff\x17\xff\xff\xff\x18\xff\xff\xff\x24\xff\xff\xff\x25\xff\xff\xff\x26\xff\xff\xff\x1f\xff\xff\xff\x00\x00\x00\x00\x1a\xff\xff\xff\x1b\xff\xff\xff\x1c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xff\xff\xff"#
+happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\xb4\xff\xff\xff\xb3\xff\xff\xff\xb0\xff\xff\xff\xae\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xff\xff\xff\x00\x00\x00\x00\xa5\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\x00\x00\xd4\xff\xff\xff\xcf\xff\xff\xff\xd0\xff\xff\xff\x53\xff\xff\xff\x52\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x2b\xff\xff\xff\x41\xff\xff\xff\x3d\xff\xff\xff\x3a\xff\xff\xff\x1c\xff\xff\xff\x45\xff\xff\xff\x13\xff\xff\xff\x12\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xff\xff\xff\x6a\xff\xff\xff\x4f\xff\xff\xff\x4c\xff\xff\xff\x65\xff\xff\xff\x68\xff\xff\xff\x6b\xff\xff\xff\x4e\xff\xff\xff\x4b\xff\xff\xff\x64\xff\xff\xff\x67\xff\xff\xff\x69\xff\xff\xff\x49\xff\xff\xff\x6d\xff\xff\xff\x4d\xff\xff\xff\x00\x00\x00\x00\x4a\xff\xff\xff\x6c\xff\xff\xff\x6e\xff\xff\xff\x5f\xff\xff\xff\x00\x00\x00\x00\x7b\xff\xff\xff\x7d\xff\xff\xff\x78\xff\xff\xff\x79\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\x61\xff\xff\xff\x00\x00\x00\x00\x59\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\x5a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xff\xff\xff\x00\x00\x00\x00\x63\xff\xff\xff\x62\xff\xff\xff\x7e\xff\xff\xff\x7c\xff\xff\xff\x66\xff\xff\xff\xd3\xff\xff\xff\xd2\xff\xff\xff\x00\x00\x00\x00\x1c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xff\xff\xff\x71\xff\xff\xff\x72\xff\xff\xff\x6f\xff\xff\xff\x73\xff\xff\xff\x75\xff\xff\xff\x74\xff\xff\xff\x77\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x80\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xff\xff\xff\x00\x00\x00\x00\x84\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xff\xff\xff\x8d\xff\xff\xff\x00\x00\x00\x00\x94\xff\xff\xff\x8f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xff\xff\xff\x96\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x99\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa5\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\xa8\xff\xff\xff\xab\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\xb2\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\xb3\xff\xff\xff\x00\x00\x00\x00\xb3\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\xcb\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\xd1\xff\xff\xff\xcd\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xff\xff\x00\x00\x00\x00\xbf\xff\xff\xff\xb4\xff\xff\xff\xbe\xff\xff\xff\xb4\xff\xff\xff\xb4\xff\xff\xff\xb4\xff\xff\xff\xc6\xff\xff\xff\xc5\xff\xff\xff\xc7\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\x00\x00\x00\x00\xb1\xff\xff\xff\xa5\xff\xff\xff\x00\x00\x00\x00\xac\xff\xff\xff\xa8\xff\xff\xff\xa9\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xff\xff\xff\x00\x00\x00\x00\x99\xff\xff\xff\x00\x00\x00\x00\x8e\xff\xff\xff\x00\x00\x00\x00\x2f\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\x2c\xff\xff\xff\x2d\xff\xff\xff\x00\x00\x00\x00\x36\xff\xff\xff\x35\xff\xff\xff\x32\xff\xff\xff\x31\xff\xff\xff\x00\x00\x00\x00\x27\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\x38\xff\xff\xff\x37\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x34\xff\xff\xff\x33\xff\xff\xff\x28\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\x5b\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x26\xff\xff\xff\x1b\xff\xff\xff\x42\xff\xff\xff\x43\xff\xff\xff\x40\xff\xff\xff\x3f\xff\xff\xff\x3e\xff\xff\xff\x3c\xff\xff\xff\x3b\xff\xff\xff\x39\xff\xff\xff\x14\xff\xff\xff\x11\xff\xff\xff\x2e\xff\xff\xff\x00\x00\x00\x00\x51\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\x29\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x58\xff\xff\xff\x2a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\xff\xff\xff\x47\xff\xff\xff\x46\xff\xff\xff\x48\xff\xff\xff\x44\xff\xff\xff\x76\xff\xff\xff\x7f\xff\xff\xff\x82\xff\xff\xff\x81\xff\xff\xff\x86\xff\xff\xff\x85\xff\xff\xff\x83\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x95\xff\xff\xff\xa2\xff\xff\xff\xa0\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xad\xff\xff\xff\xaa\xff\xff\xff\xaf\xff\xff\xff\x00\x00\x00\x00\xb6\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb0\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\xcc\xff\xff\xff\xc0\xff\xff\xff\xc1\xff\xff\xff\xca\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\xae\xff\xff\xff\xb0\xff\xff\xff\xc8\xff\xff\xff\xc2\xff\xff\xff\xb5\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa3\xff\xff\xff\xa1\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x30\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\x60\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xff\xff\xff\x17\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\x88\xff\xff\xff\x00\x00\x00\x00\x5e\xff\xff\xff\x00\x00\x00\x00\x8a\xff\xff\xff\x00\x00\x00\x00\x86\xff\xff\xff\x85\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xff\xff\xff\x00\x00\x00\x00\x57\xff\xff\xff\x86\xff\xff\xff\x85\xff\xff\xff\x00\x00\x00\x00\x86\xff\xff\xff\x00\x00\x00\x00\x22\xff\xff\xff\x9b\xff\xff\xff\x00\x00\x00\x00\x91\xff\xff\xff\x00\x00\x00\x00\x93\xff\xff\xff\x00\x00\x00\x00\xa6\xff\xff\xff\xa7\xff\xff\xff\xae\xff\xff\xff\xb8\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xff\xff\xff\x00\x00\x00\x00\xc4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\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\x20\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\x87\xff\xff\xff\x5d\xff\xff\xff\x89\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\x54\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xff\xff\xff\x90\xff\xff\xff\x92\xff\xff\xff\xba\xff\xff\xff\x00\x00\x00\x00\xbc\xff\xff\xff\x00\x00\x00\x00\xbd\xff\xff\xff\xbb\xff\xff\xff\x15\xff\xff\xff\x16\xff\xff\xff\x23\xff\xff\xff\x24\xff\xff\xff\x25\xff\xff\xff\x00\x00\x00\x00\x1e\xff\xff\xff\x00\x00\x00\x00\x18\xff\xff\xff\x19\xff\xff\xff\x1a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1d\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xff\xff\xff"#
 
 happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\xff\xff\x12\x00\x00\x00\x13\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x1b\x00\x00\x00\x19\x00\x00\x00\x0b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x13\x00\x00\x00\x79\x00\x00\x00\x33\x00\x00\x00\x61\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x13\x00\x00\x00\x19\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x69\x00\x00\x00\x02\x00\x00\x00\x15\x00\x00\x00\x04\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x78\x00\x00\x00\x3e\x00\x00\x00\x26\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x0b\x00\x00\x00\x14\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x14\x00\x00\x00\x4c\x00\x00\x00\x57\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x52\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x6a\x00\x00\x00\x4d\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x5e\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x3f\x00\x00\x00\x68\x00\x00\x00\x6c\x00\x00\x00\x6b\x00\x00\x00\x62\x00\x00\x00\x13\x00\x00\x00\x31\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x34\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x5e\x00\x00\x00\x78\x00\x00\x00\x79\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x68\x00\x00\x00\x78\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x63\x00\x00\x00\x45\x00\x00\x00\x27\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x31\x00\x00\x00\x78\x00\x00\x00\x60\x00\x00\x00\x34\x00\x00\x00\x13\x00\x00\x00\x78\x00\x00\x00\x6d\x00\x00\x00\x60\x00\x00\x00\x7a\x00\x00\x00\x18\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x15\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x33\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x5e\x00\x00\x00\x14\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x26\x00\x00\x00\x4c\x00\x00\x00\x14\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x5e\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x78\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x5e\x00\x00\x00\x05\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x14\x00\x00\x00\x26\x00\x00\x00\x78\x00\x00\x00\x78\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x0f\x00\x00\x00\x6a\x00\x00\x00\x46\x00\x00\x00\x05\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x5e\x00\x00\x00\x78\x00\x00\x00\x79\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x18\x00\x00\x00\x78\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x14\x00\x00\x00\x13\x00\x00\x00\x63\x00\x00\x00\x77\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x7a\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x78\x00\x00\x00\x60\x00\x00\x00\x13\x00\x00\x00\x26\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x60\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x14\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x18\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x26\x00\x00\x00\x13\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x13\x00\x00\x00\x4c\x00\x00\x00\x13\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x13\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x13\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x13\x00\x00\x00\x26\x00\x00\x00\x1a\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x5e\x00\x00\x00\x65\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x7a\x00\x00\x00\x78\x00\x00\x00\x79\x00\x00\x00\x5e\x00\x00\x00\x5e\x00\x00\x00\x13\x00\x00\x00\x5e\x00\x00\x00\x78\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x07\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x5e\x00\x00\x00\x5e\x00\x00\x00\x18\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x7a\x00\x00\x00\x26\x00\x00\x00\x18\x00\x00\x00\x78\x00\x00\x00\x78\x00\x00\x00\x4a\x00\x00\x00\x78\x00\x00\x00\x5e\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x7a\x00\x00\x00\x26\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x01\x00\x00\x00\x78\x00\x00\x00\x78\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x5e\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x05\x00\x00\x00\x19\x00\x00\x00\x78\x00\x00\x00\x67\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x7a\x00\x00\x00\x78\x00\x00\x00\x79\x00\x00\x00\x7a\x00\x00\x00\x5e\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x5e\x00\x00\x00\x60\x00\x00\x00\x05\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7a\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x46\x00\x00\x00\x7a\x00\x00\x00\x78\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x16\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x60\x00\x00\x00\x78\x00\x00\x00\x4a\x00\x00\x00\x05\x00\x00\x00\x78\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x7a\x00\x00\x00\x78\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x7a\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x5e\x00\x00\x00\x01\x00\x00\x00\x2f\x00\x00\x00\x05\x00\x00\x00\x15\x00\x00\x00\x05\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x13\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x13\x00\x00\x00\x78\x00\x00\x00\x79\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x78\x00\x00\x00\x30\x00\x00\x00\x67\x00\x00\x00\x32\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x22\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x77\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x78\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x57\x00\x00\x00\x78\x00\x00\x00\x7a\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x16\x00\x00\x00\x2f\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x4a\x00\x00\x00\x05\x00\x00\x00\x63\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x31\x00\x00\x00\x5f\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x26\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x5e\x00\x00\x00\x13\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x78\x00\x00\x00\x67\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x01\x00\x00\x00\x78\x00\x00\x00\x79\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x46\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x05\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x78\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x26\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x4a\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x18\x00\x00\x00\x27\x00\x00\x00\x05\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x0c\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x5e\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x1d\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x78\x00\x00\x00\x22\x00\x00\x00\x67\x00\x00\x00\x14\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x18\x00\x00\x00\x78\x00\x00\x00\x79\x00\x00\x00\x22\x00\x00\x00\x1d\x00\x00\x00\x18\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x62\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x40\x00\x00\x00\x77\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x62\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x1c\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x05\x00\x00\x00\x1e\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x27\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x13\x00\x00\x00\x16\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x16\x00\x00\x00\x4b\x00\x00\x00\x1d\x00\x00\x00\x1c\x00\x00\x00\x14\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x1e\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x78\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x0c\x00\x00\x00\x16\x00\x00\x00\x16\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1e\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x14\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x1c\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x27\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x11\x00\x00\x00\x27\x00\x00\x00\x16\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x16\x00\x00\x00\x1a\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x16\x00\x00\x00\x22\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x27\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x1d\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x22\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x4b\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x08\x00\x00\x00\x1d\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x14\x00\x00\x00\x22\x00\x00\x00\x0b\x00\x00\x00\x09\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x0d\x00\x00\x00\x11\x00\x00\x00\x0e\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1d\x00\x00\x00\x12\x00\x00\x00\x24\x00\x00\x00\x24\x00\x00\x00\x22\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x08\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x0b\x00\x00\x00\x0b\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x24\x00\x00\x00\x24\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x0d\x00\x00\x00\x24\x00\x00\x00\x1d\x00\x00\x00\x24\x00\x00\x00\x24\x00\x00\x00\x0e\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x01\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x19\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x14\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x18\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\x26\x00\x00\x00\x25\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x0d\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x1a\x00\x00\x00\x1b\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x19\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\x17\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\xff\xff\xff\xff\x0c\x00\x00\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x12\x00\x00\x00\x13\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x1b\x00\x00\x00\x19\x00\x00\x00\x0b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x63\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x7b\x00\x00\x00\x33\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x6b\x00\x00\x00\x18\x00\x00\x00\x26\x00\x00\x00\x19\x00\x00\x00\x13\x00\x00\x00\x15\x00\x00\x00\x7a\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x16\x00\x00\x00\x3e\x00\x00\x00\x18\x00\x00\x00\x26\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x26\x00\x00\x00\x0b\x00\x00\x00\x14\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x58\x00\x00\x00\x4d\x00\x00\x00\x14\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x53\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x14\x00\x00\x00\x4e\x00\x00\x00\x6c\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x18\x00\x00\x00\x6a\x00\x00\x00\x6e\x00\x00\x00\x6d\x00\x00\x00\x64\x00\x00\x00\x14\x00\x00\x00\x4c\x00\x00\x00\x26\x00\x00\x00\x4e\x00\x00\x00\x18\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x6a\x00\x00\x00\x65\x00\x00\x00\x13\x00\x00\x00\x60\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x3f\x00\x00\x00\x31\x00\x00\x00\x7a\x00\x00\x00\x62\x00\x00\x00\x34\x00\x00\x00\x26\x00\x00\x00\x14\x00\x00\x00\x7a\x00\x00\x00\x7c\x00\x00\x00\x27\x00\x00\x00\x62\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x07\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x45\x00\x00\x00\x02\x00\x00\x00\x13\x00\x00\x00\x04\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x62\x00\x00\x00\x26\x00\x00\x00\x5f\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x4d\x00\x00\x00\x31\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x34\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x6f\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x26\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x5f\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x62\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x13\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x79\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x5f\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x26\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x4d\x00\x00\x00\x18\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x7c\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x7a\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x13\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x05\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x5f\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x13\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x7c\x00\x00\x00\x1e\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x15\x00\x00\x00\x7a\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x1a\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x5f\x00\x00\x00\x5f\x00\x00\x00\x7c\x00\x00\x00\x13\x00\x00\x00\x18\x00\x00\x00\x1e\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x19\x00\x00\x00\x7c\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x5f\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x5f\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x33\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x7c\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x65\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x7c\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x05\x00\x00\x00\x7c\x00\x00\x00\x5f\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x1e\x00\x00\x00\x15\x00\x00\x00\x5f\x00\x00\x00\x0d\x00\x00\x00\x62\x00\x00\x00\x14\x00\x00\x00\x7c\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x61\x00\x00\x00\x16\x00\x00\x00\x61\x00\x00\x00\x05\x00\x00\x00\x6c\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x30\x00\x00\x00\x7a\x00\x00\x00\x32\x00\x00\x00\x16\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x7c\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x62\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x01\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x05\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x01\x00\x00\x00\x65\x00\x00\x00\x22\x00\x00\x00\x69\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x7c\x00\x00\x00\x13\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x7c\x00\x00\x00\x69\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x13\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x05\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x2f\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x7c\x00\x00\x00\x7a\x00\x00\x00\x79\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x1e\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x01\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x58\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x01\x00\x00\x00\x7c\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x5f\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x2f\x00\x00\x00\x0f\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x69\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x26\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x1d\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x7c\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x31\x00\x00\x00\x60\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x7a\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x1c\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x1c\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x26\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x0c\x00\x00\x00\x16\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x16\x00\x00\x00\x18\x00\x00\x00\x1d\x00\x00\x00\x1c\x00\x00\x00\x27\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x64\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x40\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x16\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x26\x00\x00\x00\x16\x00\x00\x00\x20\x00\x00\x00\x14\x00\x00\x00\x22\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x79\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x0c\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x16\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x22\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x13\x00\x00\x00\x64\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x4c\x00\x00\x00\x01\x00\x00\x00\x27\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x18\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x7a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x27\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x27\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x27\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x27\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x4c\x00\x00\x00\x1d\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x14\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x18\x00\x00\x00\x14\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x0b\x00\x00\x00\x11\x00\x00\x00\x24\x00\x00\x00\x0d\x00\x00\x00\x12\x00\x00\x00\x0e\x00\x00\x00\x22\x00\x00\x00\x1d\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x22\x00\x00\x00\x08\x00\x00\x00\x0b\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x0b\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x0b\x00\x00\x00\x11\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x24\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x24\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x24\x00\x00\x00\x24\x00\x00\x00\x0d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\x0e\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x14\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x25\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x05\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\x1a\x00\x00\x00\x1b\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1a\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\x01\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x05\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x17\x00\x00\x00\x16\x00\x00\x00\x17\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\x16\x00\x00\x00\x17\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x17\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\xff\xff\xff\xff\x0c\x00\x00\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\xbf\x00\x00\x00\xc0\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x97\x00\x00\x00\x32\x01\x00\x00\x39\x01\x00\x00\xd5\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x54\x01\x00\x00\x78\x00\x00\x00\x74\x01\x00\x00\x08\x01\x00\x00\x49\x01\x00\x00\x2d\x00\x00\x00\xa1\x00\x00\x00\x4e\x01\x00\x00\x4a\x01\x00\x00\x92\x00\x00\x00\x58\x01\x00\x00\x09\x01\x00\x00\x2e\x00\x00\x00\x0c\x01\x00\x00\xd8\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x77\x00\x00\x00\x53\x00\x00\x00\xb3\x00\x00\x00\xa8\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xd5\x00\x00\x00\xca\x01\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\xc8\x01\x00\x00\x5c\x00\x00\x00\xd3\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x22\x01\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x75\x01\x00\x00\x55\x01\x00\x00\xbf\x00\x00\x00\x97\x00\x00\x00\x98\x00\x00\x00\x6d\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x30\x01\x00\x00\x3a\x01\x00\x00\x33\x01\x00\x00\x71\x00\x00\x00\x59\x01\x00\x00\xa1\x00\x00\x00\x11\x01\x00\x00\xad\x00\x00\x00\xae\x00\x00\x00\x12\x01\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x98\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x4f\x01\x00\x00\x77\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x97\x00\x00\x00\x0d\x01\x00\x00\x2f\x01\x00\x00\xb9\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x0e\x01\x00\x00\x0f\x01\x00\x00\x11\x01\x00\x00\x77\x00\x00\x00\xcb\x01\x00\x00\x12\x01\x00\x00\x97\x00\x00\x00\x77\x00\x00\x00\x31\x01\x00\x00\xc9\x01\x00\x00\xff\xff\xff\xff\x6c\x01\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x0c\x01\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xfa\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x8b\x00\x00\x00\x2c\x01\x00\x00\xad\x00\x00\x00\xf6\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x98\x00\x00\x00\xb5\x01\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\xbb\x00\x00\x00\x5c\x00\x00\x00\xb1\x01\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x98\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x77\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\xbf\x00\x00\x00\xdb\x00\x00\x00\x98\x00\x00\x00\xb3\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\xc6\x01\x00\x00\xb3\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\xc7\x01\x00\x00\x2d\x00\x00\x00\xb6\x00\x00\x00\xfb\x00\x00\x00\xb0\x00\x00\x00\xa9\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x98\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x3d\x00\x00\x00\x7d\x00\x00\x00\x2e\x01\x00\x00\x77\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xac\x00\x00\x00\xa1\x00\x00\x00\x0d\x01\x00\x00\x2d\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\xff\xff\xff\xff\x0e\x01\x00\x00\x0f\x01\x00\x00\x77\x00\x00\x00\xb6\x01\x00\x00\x2b\x01\x00\x00\xbb\x00\x00\x00\xbf\x00\x00\x00\x7b\x01\x00\x00\x97\x00\x00\x00\xa1\x00\x00\x00\xb2\x01\x00\x00\xa1\x00\x00\x00\xff\xff\xff\xff\xb3\x01\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xb4\x01\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\xad\x00\x00\x00\x79\x01\x00\x00\x97\x00\x00\x00\xa1\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x8f\x01\x00\x00\x26\x01\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x1e\x01\x00\x00\x5c\x00\x00\x00\xa1\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x16\x01\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x13\x01\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x7d\x00\x00\x00\x8d\x01\x00\x00\x0b\x01\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x98\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\xff\xff\xff\xff\x77\x00\x00\x00\x78\x00\x00\x00\x98\x00\x00\x00\x98\x00\x00\x00\x97\x00\x00\x00\x98\x00\x00\x00\x77\x00\x00\x00\xa1\x00\x00\x00\xd9\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xda\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x03\x01\x00\x00\x98\x00\x00\x00\x98\x00\x00\x00\x0a\x01\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xff\xff\xff\xff\x8b\x01\x00\x00\x05\x01\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\x5b\x00\x00\x00\x77\x00\x00\x00\x98\x00\x00\x00\x8b\x00\x00\x00\x51\x01\x00\x00\xff\xff\xff\xff\x01\x01\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\xfd\x00\x00\x00\xd5\x00\x00\x00\xd6\x00\x00\x00\x2d\x00\x00\x00\x6c\x00\x00\x00\x7d\x00\x00\x00\x2d\x00\x00\x00\xd7\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xf5\x00\x00\x00\x8c\xff\xff\xff\x77\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\xff\xff\xff\xff\x77\x00\x00\x00\x78\x00\x00\x00\xff\xff\xff\xff\x98\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\x98\x00\x00\x00\xf8\x00\x00\x00\x92\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xff\xff\xff\xff\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x03\x01\x00\x00\xb0\x00\x00\x00\xff\xff\xff\xff\x77\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x93\x00\x00\x00\xff\xff\xff\xff\x2d\x00\x00\x00\xf2\x00\x00\x00\x77\x00\x00\x00\x5b\x00\x00\x00\x92\x00\x00\x00\x77\x00\x00\x00\x94\x00\x00\x00\x95\x00\x00\x00\xff\xff\xff\xff\x77\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\xff\xff\xff\xff\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x93\x00\x00\x00\x2d\x00\x00\x00\x6c\x00\x00\x00\x2d\x00\x00\x00\xee\x00\x00\x00\xa9\x00\x00\x00\x0c\x01\x00\x00\xe7\x00\x00\x00\x94\x00\x00\x00\x6a\x01\x00\x00\xef\x00\x00\x00\x70\x00\x00\x00\x8c\xff\xff\xff\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xff\xff\xff\xff\xe6\x00\x00\x00\xaa\x00\x00\x00\xab\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x7d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x77\x00\x00\x00\x34\x01\x00\x00\x70\x00\x00\x00\x35\x01\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x32\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xe5\x00\x00\x00\x92\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x77\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x03\x01\x00\x00\xd3\x00\x00\x00\x77\x00\x00\x00\xff\xff\xff\xff\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x93\x00\x00\x00\x86\x01\x00\x00\x2d\x00\x00\x00\x85\x01\x00\x00\x84\x01\x00\x00\x5b\x00\x00\x00\x92\x00\x00\x00\x0d\x01\x00\x00\x94\x00\x00\x00\xc3\x01\x00\x00\x83\x01\x00\x00\xbf\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x36\x01\x00\x00\x37\x01\x00\x00\x0e\x01\x00\x00\x0f\x01\x00\x00\x7e\x01\x00\x00\x93\x00\x00\x00\x2d\x00\x00\x00\x6c\x00\x00\x00\x7d\x00\x00\x00\x7d\x01\x00\x00\xe3\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x94\x00\x00\x00\xc1\x01\x00\x00\x77\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\xb0\x00\x00\x00\xd5\x00\x00\x00\xec\x00\x00\x00\xb3\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x77\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\xb3\x00\x00\x00\xb4\x00\x00\x00\xb5\x00\x00\x00\x03\x01\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x5b\x00\x00\x00\xdf\x00\x00\x00\x2d\x00\x00\x00\x77\x01\x00\x00\x6c\x01\x00\x00\x53\x01\x00\x00\xbb\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\xbc\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xab\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x6c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x31\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xa8\x01\x00\x00\x77\x00\x00\x00\x32\x00\x00\x00\x70\x00\x00\x00\xa3\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x9f\x01\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x32\x00\x00\x00\x31\x00\x00\x00\x9d\x01\x00\x00\x82\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x45\x01\x00\x00\x94\x01\x00\x00\x2d\x00\x00\x00\x9c\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xa9\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x9a\x01\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\xd5\x00\x00\x00\xde\x00\x00\x00\x31\x00\x00\x00\x92\x00\x00\x00\xd3\x01\x00\x00\xd1\x01\x00\x00\xbf\x01\x00\x00\x32\x00\x00\x00\xaa\x00\x00\x00\x75\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\xe9\x01\x00\x00\x31\x00\x00\x00\x9b\x00\x00\x00\x2d\x00\x00\x00\x8e\x00\x00\x00\x8f\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x9c\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\xcf\x01\x00\x00\xd5\x00\x00\x00\xdc\x00\x00\x00\xb3\x00\x00\x00\x98\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xb9\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xbb\x00\x00\x00\xbe\x01\x00\x00\x9b\x00\x00\x00\xb4\x00\x00\x00\xf0\x00\x00\x00\x93\x00\x00\x00\xbc\x01\x00\x00\x31\x00\x00\x00\x20\x01\x00\x00\xbd\x01\x00\x00\x8e\x00\x00\x00\x6c\x01\x00\x00\x32\x00\x00\x00\x94\x00\x00\x00\xb8\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\xbb\x01\x00\x00\x2d\x00\x00\x00\x8e\x00\x00\x00\x65\x01\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\xe8\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xe7\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x5c\x01\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x92\x00\x00\x00\xe6\x01\x00\x00\x92\x00\x00\x00\xe5\x01\x00\x00\x2d\x00\x00\x00\x5d\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xbb\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x77\x00\x00\x00\xe1\x01\x00\x00\xe0\x01\x00\x00\xf9\x01\x00\x00\xe4\x00\x00\x00\x5a\x01\x00\x00\x4b\x01\x00\x00\x31\x00\x00\x00\xa6\x00\x00\x00\xa7\x00\x00\x00\x8e\x00\x00\x00\x56\x01\x00\x00\x32\x00\x00\x00\x5b\x01\x00\x00\x4c\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\xdf\x01\x00\x00\x2d\x00\x00\x00\x91\x00\x00\x00\xde\x01\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\xdd\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x9b\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\xa6\x01\x00\x00\xb3\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xb9\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xf2\x00\x00\x00\xd8\x01\x00\x00\x9d\x00\x00\x00\xb4\x00\x00\x00\x78\x01\x00\x00\x9d\x00\x00\x00\xa1\x00\x00\x00\x31\x00\x00\x00\x9a\x01\x00\x00\x9e\x00\x00\x00\xf3\x00\x00\x00\xa2\x00\x00\x00\x32\x00\x00\x00\xa3\x00\x00\x00\xa4\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x78\x00\x00\x00\x31\x00\x00\x00\xd6\x01\x00\x00\xfc\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2b\x01\x00\x00\x00\x02\x00\x00\x2d\x00\x00\x00\xfe\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xbb\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xfb\x01\x00\x00\xfa\x01\x00\x00\xf4\x01\x00\x00\xf8\x01\x00\x00\xe2\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x31\x00\x00\x00\xf7\x01\x00\x00\xa9\x00\x00\x00\xd5\x00\x00\x00\x7a\x01\x00\x00\x32\x00\x00\x00\xf6\x01\x00\x00\xf5\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x1c\x01\x00\x00\x31\x00\x00\x00\xaa\x00\x00\x00\xa4\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x0f\x01\x00\x00\xf3\x01\x00\x00\xf1\x01\x00\x00\xf0\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xef\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xee\x01\x00\x00\xed\x01\x00\x00\xec\x01\x00\x00\x09\x02\x00\x00\xd3\x00\x00\x00\x2d\x00\x00\x00\xd1\x00\x00\x00\x31\x00\x00\x00\x0e\x02\x00\x00\xa9\x00\x00\x00\x10\x02\x00\x00\x12\x02\x00\x00\x32\x00\x00\x00\xbd\x00\x00\x00\xd0\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf4\x00\x00\x00\x31\x00\x00\x00\xaa\x00\x00\x00\xe1\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xef\x00\x00\x00\xb9\x00\x00\x00\xb1\x00\x00\x00\xb7\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x8d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x31\x00\x00\x00\xb0\x00\x00\x00\x83\x00\x00\x00\x05\x01\x00\x00\x1e\x01\x00\x00\x32\x00\x00\x00\xe1\x00\x00\x00\xe0\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xeb\x00\x00\x00\x31\x00\x00\x00\xdd\x00\x00\x00\x77\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xea\x00\x00\x00\x81\x01\x00\x00\x80\x01\x00\x00\x7f\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x6e\x01\x00\x00\x47\x01\x00\x00\x64\x01\x00\x00\x88\x01\x00\x00\xcc\x01\x00\x00\xcb\x01\x00\x00\xab\x01\x00\x00\x31\x00\x00\x00\x9f\x01\x00\x00\x05\x01\x00\x00\xd8\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe9\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x72\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x71\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6d\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x69\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x68\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x67\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x66\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x5e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x4f\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xaf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xae\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xad\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xa5\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xa1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x98\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x97\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x96\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x95\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x94\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x92\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x91\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x87\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x86\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xcf\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xcd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc2\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbf\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb7\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xea\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe3\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe2\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xda\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd6\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd3\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xfe\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xfc\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x07\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x01\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x00\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x0c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x0e\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x10\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x5f\x01\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x7a\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x44\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x3b\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x3a\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\xa9\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\xa8\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x0b\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x0a\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x09\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x06\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x05\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x04\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x03\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x02\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x43\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x42\x01\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\xc4\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x41\x01\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x40\x01\x00\x00\x2d\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x92\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x80\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x99\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\xa5\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x3f\x01\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x3e\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x70\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x3d\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x3c\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x63\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x62\x01\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x01\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x60\x01\x00\x00\x00\x00\x00\x00\x37\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x01\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x28\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x27\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x26\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x24\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x23\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x22\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1f\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1b\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1a\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x19\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x18\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x17\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x16\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x14\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x13\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x01\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x59\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x50\x01\x00\x00\x00\x00\x00\x00\x49\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x4a\x01\x00\x00\x00\x00\x00\x00\x46\x01\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\xa3\x01\x00\x00\xfd\x00\x00\x00\xfe\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x4b\x01\x00\x00\x01\x01\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x2d\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x9e\x00\x00\x00\x9f\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x8f\x01\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x92\x00\x00\x00\x9d\x00\x00\x00\x9e\x00\x00\x00\x90\x01\x00\x00\x2d\x00\x00\x00\x9e\x00\x00\x00\x29\x01\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\xff\x00\x00\x00\x9e\x00\x00\x00\x8d\x01\x00\x00\x2d\x00\x00\x00\x9d\x00\x00\x00\xa6\x00\x00\x00\xfb\x00\x00\x00\x92\x00\x00\x00\x9e\x00\x00\x00\x8b\x01\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x9e\x00\x00\x00\x89\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\xdb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\xf8\x00\x00\x00\xa6\x00\x00\x00\xfb\x00\x00\x00\xc2\x00\x00\x00\xc3\x00\x00\x00\xc4\x00\x00\x00\xc5\x00\x00\x00\xc6\x00\x00\x00\xc7\x00\x00\x00\xc8\x00\x00\x00\xc9\x00\x00\x00\xca\x00\x00\x00\x00\x00\x00\x00\xcb\x00\x00\x00\xcc\x00\x00\x00\xcd\x00\x00\x00\xce\x00\x00\x00\xcf\x00\x00\x00\xd0\x00\x00\x00\x07\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x70\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xad\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xa1\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x9e\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\xb0\x00\x00\x00\xb1\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x97\x00\x00\x00\x34\x01\x00\x00\x3b\x01\x00\x00\xd6\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x0a\x01\x00\x00\x56\x01\x00\x00\x2d\x00\x00\x00\x78\x00\x00\x00\x76\x01\x00\x00\x4b\x01\x00\x00\x92\x00\x00\x00\xa1\x00\x00\x00\x0b\x01\x00\x00\x4c\x01\x00\x00\x5a\x01\x00\x00\x50\x01\x00\x00\xa1\x00\x00\x00\x0e\x01\x00\x00\x77\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\xa2\x00\x00\x00\x53\x00\x00\x00\xa5\x00\x00\x00\xb4\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xbc\x00\x00\x00\xd6\x00\x00\x00\xce\x01\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\xd4\x00\x00\x00\x5c\x00\x00\x00\xcc\x01\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x24\x01\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x77\x00\x00\x00\xb9\x01\x00\x00\x57\x01\x00\x00\x77\x01\x00\x00\x98\x00\x00\x00\x97\x00\x00\x00\x6d\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x6e\x01\x00\x00\x3c\x01\x00\x00\x35\x01\x00\x00\x71\x00\x00\x00\x5b\x01\x00\x00\xca\x01\x00\x00\xf9\x01\x00\x00\xbc\x00\x00\x00\xfa\x01\x00\x00\xcb\x01\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x98\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x98\x00\x00\x00\x77\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x51\x01\x00\x00\x0f\x01\x00\x00\xa1\x00\x00\x00\xc0\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x32\x01\x00\x00\x13\x01\x00\x00\x77\x00\x00\x00\xcf\x01\x00\x00\x14\x01\x00\x00\x92\x01\x00\x00\xb5\x01\x00\x00\x77\x00\x00\x00\xff\xff\xff\xff\xba\x00\x00\x00\xcd\x01\x00\x00\xa1\x00\x00\x00\xda\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xdb\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x31\x01\x00\x00\x2e\x00\x00\x00\x97\x00\x00\x00\xd9\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xba\x01\x00\x00\x90\x01\x00\x00\x98\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x77\x00\x00\x00\x5c\x00\x00\x00\x13\x01\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x14\x01\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x33\x01\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x3d\x00\x00\x00\x7d\x00\x00\x00\x77\x00\x00\x00\xb4\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x98\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\xb6\x01\x00\x00\xa9\x00\x00\x00\xa1\x00\x00\x00\x98\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\xa1\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x2d\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x98\x00\x00\x00\xaa\x00\x00\x00\xab\x00\x00\x00\x97\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xc0\x00\x00\x00\xc1\x00\x00\x00\x8e\x01\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x77\x00\x00\x00\x5c\x00\x00\x00\x30\x01\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\xff\xff\xff\xff\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x77\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\xa1\x00\x00\x00\x7d\x00\x00\x00\x2d\x00\x00\x00\x2d\x01\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xd8\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x98\x00\x00\x00\x92\x00\x00\x00\x28\x01\x00\x00\x97\x00\x00\x00\x98\x00\x00\x00\xa1\x00\x00\x00\x97\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x20\x01\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\x98\x00\x00\x00\x18\x01\x00\x00\x93\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x15\x01\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\x98\x00\x00\x00\x77\x00\x00\x00\x92\x00\x00\x00\x5b\x00\x00\x00\x0e\x01\x00\x00\x77\x00\x00\x00\xad\x00\x00\x00\xae\x00\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x0d\x01\x00\x00\x5e\x01\x00\x00\xd6\x00\x00\x00\xd7\x00\x00\x00\x98\x00\x00\x00\x6c\x00\x00\x00\xff\xff\xff\xff\x7d\x00\x00\x00\x0c\x01\x00\x00\x5f\x01\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x97\x00\x00\x00\x8b\xff\xff\xff\xff\xff\xff\xff\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\xff\xff\xff\xff\x98\x00\x00\x00\x2d\x00\x00\x00\x98\x00\x00\x00\x98\x00\x00\x00\x07\x01\x00\x00\xb4\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xfc\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\xb5\x00\x00\x00\xb6\x00\x00\x00\xff\xff\xff\xff\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x2d\x00\x00\x00\x8b\x00\x00\x00\x2e\x01\x00\x00\x03\x01\x00\x00\x92\x00\x00\x00\x77\x00\x00\x00\x5b\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\x0f\x01\x00\x00\xad\x00\x00\x00\xf8\x00\x00\x00\xff\xff\xff\xff\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\xff\x00\x00\x00\x2d\x00\x00\x00\x5c\x01\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x92\x00\x00\x00\xff\xff\xff\xff\x6c\x00\x00\x00\xc0\x00\x00\x00\xdc\x00\x00\x00\x5d\x01\x00\x00\x0e\x01\x00\x00\x98\x00\x00\x00\x92\x01\x00\x00\xfa\x00\x00\x00\xb7\x01\x00\x00\xff\xff\xff\xff\x70\x00\x00\x00\x8b\xff\xff\xff\xb8\x01\x00\x00\x2d\x00\x00\x00\xf8\x00\x00\x00\x9d\x00\x00\x00\xf7\x00\x00\x00\x92\x00\x00\x00\xfd\x00\x00\x00\x9e\x00\x00\x00\x93\x01\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x7d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x36\x01\x00\x00\x77\x00\x00\x00\x37\x01\x00\x00\xa8\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\xff\xff\xff\xff\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x2d\x00\x00\x00\xf3\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x92\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xc0\x00\x00\x00\x7e\x01\x00\x00\x2d\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xa9\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\x8b\x00\x00\x00\x53\x01\x00\x00\x93\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\xac\x00\x00\x00\x94\x00\x00\x00\x95\x00\x00\x00\xe8\x00\x00\x00\x5b\x00\x00\x00\x2d\x00\x00\x00\x0f\x01\x00\x00\x32\x00\x00\x00\x70\x00\x00\x00\xe7\x00\x00\x00\x82\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x38\x01\x00\x00\x39\x01\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x2d\x00\x00\x00\x6c\x00\x00\x00\xff\xff\xff\xff\x7d\x00\x00\x00\xd6\x00\x00\x00\xed\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xad\x00\x00\x00\x7c\x01\x00\x00\xff\xff\xff\xff\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\xf0\x00\x00\x00\xd6\x00\x00\x00\xdf\x00\x00\x00\x92\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xef\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\xff\xff\xff\xff\x77\x00\x00\x00\x2d\x00\x00\x00\x4d\x01\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x93\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x4e\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x5b\x00\x00\x00\x2d\x00\x00\x00\x94\x00\x00\x00\x6c\x01\x00\x00\x77\x00\x00\x00\xb4\x00\x00\x00\xd4\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xb5\x00\x00\x00\xf1\x00\x00\x00\xb4\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x6c\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\x89\x01\x00\x00\xb7\x00\x00\x00\x32\x00\x00\x00\xe6\x00\x00\x00\x70\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x88\x01\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x31\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x47\x01\x00\x00\xff\xff\xff\xff\x2d\x00\x00\x00\x87\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xa9\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x86\x01\x00\x00\xc0\x00\x00\x00\x2d\x00\x00\x00\xd6\x00\x00\x00\xdd\x00\x00\x00\x31\x00\x00\x00\x92\x00\x00\x00\x81\x01\x00\x00\x80\x01\x00\x00\x77\x00\x00\x00\x32\x00\x00\x00\xaa\x00\x00\x00\x77\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\xef\x01\x00\x00\x31\x00\x00\x00\x9b\x00\x00\x00\x2d\x00\x00\x00\x8e\x00\x00\x00\x8f\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x9c\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x9b\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\xe4\x00\x00\x00\x22\x01\x00\x00\xb4\x00\x00\x00\xbc\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xb4\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x77\x00\x00\x00\xbd\x00\x00\x00\x9b\x00\x00\x00\xb5\x00\x00\x00\x7b\x01\x00\x00\x93\x00\x00\x00\x6e\x01\x00\x00\x31\x00\x00\x00\xaa\x01\x00\x00\x55\x01\x00\x00\x8e\x00\x00\x00\x6e\x01\x00\x00\x32\x00\x00\x00\x94\x00\x00\x00\xc7\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\xaf\x01\x00\x00\x2d\x00\x00\x00\x8e\x00\x00\x00\x67\x01\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\xac\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xf3\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x9d\x00\x00\x00\x77\x00\x00\x00\x92\x00\x00\x00\x92\x00\x00\x00\x9e\x00\x00\x00\xf4\x00\x00\x00\xa7\x01\x00\x00\xa3\x01\x00\x00\xa1\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xa0\x01\x00\x00\xd6\x00\x00\x00\x7d\x01\x00\x00\x9e\x01\x00\x00\x2d\x00\x00\x00\x93\x00\x00\x00\x05\x01\x00\x00\x31\x00\x00\x00\x92\x00\x00\x00\x99\x01\x00\x00\x8e\x00\x00\x00\x58\x01\x00\x00\x32\x00\x00\x00\x94\x00\x00\x00\xc5\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\x98\x01\x00\x00\x9d\x00\x00\x00\x91\x00\x00\x00\x97\x01\x00\x00\x32\x00\x00\x00\x9e\x00\x00\x00\x9f\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xd9\x01\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\xa9\x00\x00\x00\x92\x00\x00\x00\x92\x00\x00\x00\xbc\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xe5\x00\x00\x00\xe0\x00\x00\x00\x93\x00\x00\x00\xd7\x01\x00\x00\xd5\x01\x00\x00\xaa\x00\x00\x00\xa8\x01\x00\x00\x31\x00\x00\x00\x9e\x01\x00\x00\x9d\x00\x00\x00\x94\x00\x00\x00\xbc\x01\x00\x00\x32\x00\x00\x00\x9e\x00\x00\x00\x2b\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x78\x00\x00\x00\x31\x00\x00\x00\xc2\x01\x00\x00\xc3\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2d\x01\x00\x00\xba\x00\x00\x00\x2d\x00\x00\x00\xbc\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xbc\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xc1\x01\x00\x00\xc0\x01\x00\x00\x2d\x00\x00\x00\xbf\x01\x00\x00\xe3\x00\x00\x00\x2d\x00\x00\x00\x79\x01\x00\x00\x31\x00\x00\x00\xee\x01\x00\x00\xa9\x00\x00\x00\x2d\x00\x00\x00\xed\x01\x00\x00\x32\x00\x00\x00\xec\x01\x00\x00\x78\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x1e\x01\x00\x00\x31\x00\x00\x00\xaa\x00\x00\x00\xe7\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x11\x01\x00\x00\xeb\x01\x00\x00\xe7\x01\x00\x00\xe6\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x77\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x31\x00\x00\x00\xe5\x01\x00\x00\xe4\x01\x00\x00\xe3\x01\x00\x00\xba\x00\x00\x00\x32\x00\x00\x00\x03\x02\x00\x00\xde\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf5\x00\x00\x00\x31\x00\x00\x00\xdc\x01\x00\x00\x07\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf0\x00\x00\x00\x05\x02\x00\x00\x02\x02\x00\x00\x01\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xd2\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x02\x00\x00\xff\x01\x00\x00\xfb\x01\x00\x00\xfe\x01\x00\x00\xfd\x01\x00\x00\xfc\x01\x00\x00\x16\x02\x00\x00\x31\x00\x00\x00\xf7\x01\x00\x00\xf6\x01\x00\x00\xf5\x01\x00\x00\xf4\x01\x00\x00\x32\x00\x00\x00\xf3\x01\x00\x00\x11\x02\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xec\x00\x00\x00\x31\x00\x00\x00\xf2\x01\x00\x00\x18\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xeb\x00\x00\x00\x1a\x02\x00\x00\x1c\x02\x00\x00\xd4\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xd1\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xbe\x00\x00\x00\xb2\x00\x00\x00\x83\x00\x00\x00\xba\x00\x00\x00\xb1\x00\x00\x00\xb8\x00\x00\x00\x8d\x00\x00\x00\x31\x00\x00\x00\x20\x01\x00\x00\xe2\x00\x00\x00\xe1\x00\x00\x00\x07\x01\x00\x00\x32\x00\x00\x00\xde\x00\x00\x00\x84\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xea\x00\x00\x00\x31\x00\x00\x00\x83\x01\x00\x00\x82\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe9\x00\x00\x00\x81\x01\x00\x00\x7a\x01\x00\x00\x66\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x70\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x49\x01\x00\x00\xaf\x01\x00\x00\x8b\x01\x00\x00\xd2\x01\x00\x00\xa3\x01\x00\x00\x07\x01\x00\x00\xd1\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\xde\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x74\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x73\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6f\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6a\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x69\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x68\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x60\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x51\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb2\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xa9\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xa5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9c\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9a\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x99\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x95\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x94\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x8a\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x89\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd7\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd3\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xcf\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc4\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbd\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xba\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xee\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe8\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xdf\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xdc\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xda\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x05\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x03\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf7\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x0f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x0e\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x08\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x07\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x14\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x16\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x18\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x1a\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x7a\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x46\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x3d\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x3c\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\xad\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\xac\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x13\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x12\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x11\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x0d\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x0c\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x0b\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x0a\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x09\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x61\x01\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x45\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x44\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\xc8\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x43\x01\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x42\x01\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x41\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x3f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x3e\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x64\x01\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x62\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x39\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x03\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x29\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x28\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x24\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x21\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1d\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1b\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1a\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x16\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x15\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x03\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x01\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x52\x01\x00\x00\x4b\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x48\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\xa7\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\xa2\x00\x00\x00\x03\x01\x00\x00\xa3\x00\x00\x00\xa4\x00\x00\x00\x4d\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x9e\x00\x00\x00\x01\x01\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x90\x01\x00\x00\x9e\x00\x00\x00\x8e\x01\x00\x00\x2d\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x9e\x00\x00\x00\x8c\x01\x00\x00\xa1\x00\x00\x00\xa2\x00\x00\x00\x2d\x00\x00\x00\xa3\x00\x00\x00\x72\x01\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x00\x00\x2d\x00\x00\x00\xa3\x00\x00\x00\xe1\x01\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\xa6\x00\x00\x00\xa7\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x01\x00\x00\xa6\x00\x00\x00\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\xfd\x00\x00\x00\xc3\x00\x00\x00\xc4\x00\x00\x00\xc5\x00\x00\x00\xc6\x00\x00\x00\xc7\x00\x00\x00\xc8\x00\x00\x00\xc9\x00\x00\x00\xca\x00\x00\x00\xcb\x00\x00\x00\x00\x00\x00\x00\xcc\x00\x00\x00\xcd\x00\x00\x00\xce\x00\x00\x00\xcf\x00\x00\x00\xd0\x00\x00\x00\xd1\x00\x00\x00\x09\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x72\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xb1\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xa5\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xa2\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (43, 236) [
+happyReduceArr = Happy_Data_Array.array (43, 238) [
         (43 , happyReduce_43),
         (44 , happyReduce_44),
         (45 , happyReduce_45),
@@ -631,16 +631,18 @@
         (233 , happyReduce_233),
         (234 , happyReduce_234),
         (235 , happyReduce_235),
-        (236 , happyReduce_236)
+        (236 , happyReduce_236),
+        (237 , happyReduce_237),
+        (238 , happyReduce_238)
         ]
 
 happyRuleArr :: HappyAddr
-happyRuleArr = HappyA# "\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x03\x00\x00\x00\x0b\x00\x00\x00\x04\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x0d\x00\x00\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x03\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x03\x00\x00\x00\x11\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x04\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x15\x00\x00\x00\x03\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x07\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x17\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x03\x00\x00\x00\x1a\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1b\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x03\x00\x00\x00\x1d\x00\x00\x00\x01\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1f\x00\x00\x00\x01\x00\x00\x00\x1f\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x21\x00\x00\x00\x01\x00\x00\x00\x21\x00\x00\x00\x03\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x03\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x07\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x0e\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x07\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x01\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x01\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x05\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x06\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2c\x00\x00\x00\x03\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x2d\x00\x00\x00\x01\x00\x00\x00\x2d\x00\x00\x00\x03\x00\x00\x00"#
+happyRuleArr = HappyA# "\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x03\x00\x00\x00\x0b\x00\x00\x00\x04\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x0d\x00\x00\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x03\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x03\x00\x00\x00\x11\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x05\x00\x00\x00\x12\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x15\x00\x00\x00\x03\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x07\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x17\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x03\x00\x00\x00\x1a\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1b\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x03\x00\x00\x00\x1d\x00\x00\x00\x01\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1f\x00\x00\x00\x01\x00\x00\x00\x1f\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x21\x00\x00\x00\x01\x00\x00\x00\x21\x00\x00\x00\x03\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x03\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x07\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x0e\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x07\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x01\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x01\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x05\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x06\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x0a\x00\x00\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2c\x00\x00\x00\x03\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x2d\x00\x00\x00\x01\x00\x00\x00\x2d\x00\x00\x00\x03\x00\x00\x00"#
 
 happyCatchStates :: [Happy_Prelude.Int]
 happyCatchStates = []
 
-happy_n_terms = 123 :: Happy_Prelude.Int
+happy_n_terms = 125 :: Happy_Prelude.Int
 happy_n_nonterms = 46 :: Happy_Prelude.Int
 
 happy_n_starts = 43 :: Happy_Prelude.Int
@@ -1108,26 +1110,41 @@
                  ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoConstructorType Language.Rzk.Syntax.Abs.BNFC'NoPosition)
         )
 
-happyReduce_88 = happyReduce 4# 18# happyReduction_88
-happyReduction_88 (happy_x_4 `HappyStk`
+happyReduce_88 = happyReduce 5# 18# happyReduction_88
+happyReduction_88 (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 happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> 
-        case happyOut91 happy_x_4 of { (HappyWrap91 happy_var_4) -> 
+        case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> 
+        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
         happyIn65
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.DataElim (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.DataElim (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5))
         ) `HappyStk` happyRest}}}
 
-happyReduce_89 = happySpecReduce_0  19# happyReduction_89
-happyReduction_89  =  happyIn66
+happyReduce_89 = happyReduce 5# 18# happyReduction_89
+happyReduction_89 (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 happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> 
+        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> 
+        happyIn65
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.DataCompute (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5))
+        ) `HappyStk` happyRest}}}
+
+happyReduce_90 = happySpecReduce_0  19# happyReduction_90
+happyReduction_90  =  happyIn66
                  ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, [])
         )
 
-happyReduce_90 = happySpecReduce_2  19# happyReduction_90
-happyReduction_90 happy_x_2
+happyReduce_91 = happySpecReduce_2  19# happyReduction_91
+happyReduction_91 happy_x_2
         happy_x_1
          =  case happyOut65 happy_x_1 of { (HappyWrap65 happy_var_1) -> 
         case happyOut66 happy_x_2 of { (HappyWrap66 happy_var_2) -> 
@@ -1135,8 +1152,8 @@
                  ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))
         )}}
 
-happyReduce_91 = happyReduce 4# 20# happyReduction_91
-happyReduction_91 (happy_x_4 `HappyStk`
+happyReduce_92 = happyReduce 4# 20# happyReduction_92
+happyReduction_92 (happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
         happy_x_1 `HappyStk`
@@ -1148,8 +1165,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.MatchBranch (fst happy_var_1) (snd happy_var_1) (snd happy_var_2) (snd happy_var_4))
         ) `HappyStk` happyRest}}}
 
-happyReduce_92 = happySpecReduce_3  20# happyReduction_92
-happyReduction_92 happy_x_3
+happyReduce_93 = happySpecReduce_3  20# happyReduction_93
+happyReduction_93 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
@@ -1158,8 +1175,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.matchBranchNoParams (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_93 = happyReduce 4# 20# happyReduction_93
-happyReduction_93 (happy_x_4 `HappyStk`
+happyReduce_94 = happyReduce 4# 20# happyReduction_94
+happyReduction_94 (happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
         happy_x_1 `HappyStk`
@@ -1171,8 +1188,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ascii_MatchBranch (fst happy_var_1) (snd happy_var_1) (snd happy_var_2) (snd happy_var_4))
         ) `HappyStk` happyRest}}}
 
-happyReduce_94 = happySpecReduce_3  20# happyReduction_94
-happyReduction_94 happy_x_3
+happyReduce_95 = happySpecReduce_3  20# happyReduction_95
+happyReduction_95 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
@@ -1181,15 +1198,15 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ascii_matchBranchNoParams (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_95 = happySpecReduce_1  21# happyReduction_95
-happyReduction_95 happy_x_1
+happyReduce_96 = happySpecReduce_1  21# happyReduction_96
+happyReduction_96 happy_x_1
          =  case happyOut67 happy_x_1 of { (HappyWrap67 happy_var_1) -> 
         happyIn68
                  ((fst happy_var_1, (:[]) (snd happy_var_1))
         )}
 
-happyReduce_96 = happySpecReduce_3  21# happyReduction_96
-happyReduction_96 happy_x_3
+happyReduce_97 = happySpecReduce_3  21# happyReduction_97
+happyReduction_97 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut67 happy_x_1 of { (HappyWrap67 happy_var_1) -> 
@@ -1198,22 +1215,22 @@
                  ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_97 = happySpecReduce_1  22# happyReduction_97
-happyReduction_97 happy_x_1
+happyReduce_98 = happySpecReduce_1  22# happyReduction_98
+happyReduction_98 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn69
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
-happyReduce_98 = happySpecReduce_1  22# happyReduction_98
-happyReduction_98 happy_x_1
+happyReduce_99 = happySpecReduce_1  22# happyReduction_99
+happyReduction_99 happy_x_1
          =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
         happyIn69
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.PatternVar (fst happy_var_1) (snd happy_var_1))
         )}
 
-happyReduce_99 = happyReduce 5# 22# happyReduction_99
-happyReduction_99 (happy_x_5 `HappyStk`
+happyReduce_100 = happyReduce 5# 22# happyReduction_100
+happyReduction_100 (happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
@@ -1226,8 +1243,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternPair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
         ) `HappyStk` happyRest}}}
 
-happyReduce_100 = happyReduce 7# 22# happyReduction_100
-happyReduction_100 (happy_x_7 `HappyStk`
+happyReduce_101 = happyReduce 7# 22# happyReduction_101
+happyReduction_101 (happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
@@ -1243,15 +1260,15 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternTuple (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
         ) `HappyStk` happyRest}}}}
 
-happyReduce_101 = happySpecReduce_1  23# happyReduction_101
-happyReduction_101 happy_x_1
+happyReduce_102 = happySpecReduce_1  23# happyReduction_102
+happyReduction_102 happy_x_1
          =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
         happyIn70
                  ((fst happy_var_1, (:[]) (snd happy_var_1))
         )}
 
-happyReduce_102 = happySpecReduce_2  23# happyReduction_102
-happyReduction_102 happy_x_2
+happyReduce_103 = happySpecReduce_2  23# happyReduction_103
+happyReduction_103 happy_x_2
         happy_x_1
          =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
         case happyOut70 happy_x_2 of { (HappyWrap70 happy_var_2) -> 
@@ -1259,22 +1276,22 @@
                  ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))
         )}}
 
-happyReduce_103 = happySpecReduce_1  24# happyReduction_103
-happyReduction_103 happy_x_1
+happyReduce_104 = happySpecReduce_1  24# happyReduction_104
+happyReduction_104 happy_x_1
          =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
         happyIn71
                  ((fst happy_var_1, (snd happy_var_1))
         )}
 
-happyReduce_104 = happySpecReduce_1  25# happyReduction_104
-happyReduction_104 happy_x_1
+happyReduce_105 = happySpecReduce_1  25# happyReduction_105
+happyReduction_105 happy_x_1
          =  case happyOut71 happy_x_1 of { (HappyWrap71 happy_var_1) -> 
         happyIn72
                  ((fst happy_var_1, (:[]) (snd happy_var_1))
         )}
 
-happyReduce_105 = happySpecReduce_3  25# happyReduction_105
-happyReduction_105 happy_x_3
+happyReduce_106 = happySpecReduce_3  25# happyReduction_106
+happyReduction_106 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut71 happy_x_1 of { (HappyWrap71 happy_var_1) -> 
@@ -1283,15 +1300,15 @@
                  ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_106 = happySpecReduce_1  26# happyReduction_106
-happyReduction_106 happy_x_1
+happyReduce_107 = happySpecReduce_1  26# happyReduction_107
+happyReduction_107 happy_x_1
          =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
         happyIn73
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamPattern (fst happy_var_1) (snd happy_var_1))
         )}
 
-happyReduce_107 = happyReduce 5# 26# happyReduction_107
-happyReduction_107 (happy_x_5 `HappyStk`
+happyReduce_108 = happyReduce 5# 26# happyReduction_108
+happyReduction_108 (happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
@@ -1304,8 +1321,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
         ) `HappyStk` happyRest}}}
 
-happyReduce_108 = happyReduce 7# 26# happyReduction_108
-happyReduction_108 (happy_x_7 `HappyStk`
+happyReduce_109 = happyReduce 7# 26# happyReduction_109
+happyReduction_109 (happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
@@ -1321,8 +1338,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
         ) `HappyStk` happyRest}}}}
 
-happyReduce_109 = happyReduce 5# 26# happyReduction_109
-happyReduction_109 (happy_x_5 `HappyStk`
+happyReduce_110 = happyReduce 5# 26# happyReduction_110
+happyReduction_110 (happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
@@ -1336,8 +1353,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternModalType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4))
         ) `HappyStk` happyRest}}}}
 
-happyReduce_110 = happyReduce 7# 26# happyReduction_110
-happyReduction_110 (happy_x_7 `HappyStk`
+happyReduce_111 = happyReduce 7# 26# happyReduction_111
+happyReduction_111 (happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
@@ -1354,15 +1371,15 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternModalShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6))
         ) `HappyStk` happyRest}}}}}
 
-happyReduce_111 = happySpecReduce_1  27# happyReduction_111
-happyReduction_111 happy_x_1
+happyReduce_112 = happySpecReduce_1  27# happyReduction_112
+happyReduction_112 happy_x_1
          =  case happyOut73 happy_x_1 of { (HappyWrap73 happy_var_1) -> 
         happyIn74
                  ((fst happy_var_1, (:[]) (snd happy_var_1))
         )}
 
-happyReduce_112 = happySpecReduce_2  27# happyReduction_112
-happyReduction_112 happy_x_2
+happyReduce_113 = happySpecReduce_2  27# happyReduction_113
+happyReduction_113 happy_x_2
         happy_x_1
          =  case happyOut73 happy_x_1 of { (HappyWrap73 happy_var_1) -> 
         case happyOut74 happy_x_2 of { (HappyWrap74 happy_var_2) -> 
@@ -1370,15 +1387,15 @@
                  ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2))
         )}}
 
-happyReduce_113 = happySpecReduce_1  28# happyReduction_113
-happyReduction_113 happy_x_1
+happyReduce_114 = happySpecReduce_1  28# happyReduction_114
+happyReduction_114 happy_x_1
          =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
         happyIn75
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.BindPattern (fst happy_var_1) (snd happy_var_1))
         )}
 
-happyReduce_114 = happySpecReduce_3  28# happyReduction_114
-happyReduction_114 happy_x_3
+happyReduce_115 = happySpecReduce_3  28# happyReduction_115
+happyReduction_115 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
@@ -1387,15 +1404,15 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.BindPatternType (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_115 = happySpecReduce_1  29# happyReduction_115
-happyReduction_115 happy_x_1
+happyReduce_116 = happySpecReduce_1  29# happyReduction_116
+happyReduction_116 happy_x_1
          =  case happyOut89 happy_x_1 of { (HappyWrap89 happy_var_1) -> 
         happyIn76
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamType (fst happy_var_1) (snd happy_var_1))
         )}
 
-happyReduce_116 = happyReduce 5# 29# happyReduction_116
-happyReduction_116 (happy_x_5 `HappyStk`
+happyReduce_117 = happyReduce 5# 29# happyReduction_117
+happyReduction_117 (happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
@@ -1408,8 +1425,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
         ) `HappyStk` happyRest}}}
 
-happyReduce_117 = happyReduce 7# 29# happyReduction_117
-happyReduction_117 (happy_x_7 `HappyStk`
+happyReduce_118 = happyReduce 7# 29# happyReduction_118
+happyReduction_118 (happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
@@ -1425,8 +1442,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
         ) `HappyStk` happyRest}}}}
 
-happyReduce_118 = happyReduce 5# 29# happyReduction_118
-happyReduction_118 (happy_x_5 `HappyStk`
+happyReduce_119 = happyReduce 5# 29# happyReduction_119
+happyReduction_119 (happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
@@ -1440,8 +1457,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermModalType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4))
         ) `HappyStk` happyRest}}}}
 
-happyReduce_119 = happyReduce 7# 29# happyReduction_119
-happyReduction_119 (happy_x_7 `HappyStk`
+happyReduce_120 = happyReduce 7# 29# happyReduction_120
+happyReduction_120 (happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
@@ -1458,8 +1475,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamTermModalShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6))
         ) `HappyStk` happyRest}}}}}
 
-happyReduce_120 = happySpecReduce_3  30# happyReduction_120
-happyReduction_120 happy_x_3
+happyReduce_121 = happySpecReduce_3  30# happyReduction_121
+happyReduction_121 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
@@ -1468,8 +1485,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.SigmaParam (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_121 = happySpecReduce_3  30# happyReduction_121
-happyReduction_121 happy_x_3
+happyReduce_122 = happySpecReduce_3  30# happyReduction_122
+happyReduction_122 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut69 happy_x_1 of { (HappyWrap69 happy_var_1) -> 
@@ -1479,15 +1496,15 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.SigmaParamModal (fst happy_var_1) (snd happy_var_1) (snd happy_var_2) (snd happy_var_3))
         )}}}
 
-happyReduce_122 = happySpecReduce_1  31# happyReduction_122
-happyReduction_122 happy_x_1
+happyReduce_123 = happySpecReduce_1  31# happyReduction_123
+happyReduction_123 happy_x_1
          =  case happyOut77 happy_x_1 of { (HappyWrap77 happy_var_1) -> 
         happyIn78
                  ((fst happy_var_1, (:[]) (snd happy_var_1))
         )}
 
-happyReduce_123 = happySpecReduce_3  31# happyReduction_123
-happyReduction_123 happy_x_3
+happyReduce_124 = happySpecReduce_3  31# happyReduction_124
+happyReduction_124 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut77 happy_x_1 of { (HappyWrap77 happy_var_1) -> 
@@ -1496,8 +1513,8 @@
                  ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_124 = happySpecReduce_3  32# happyReduction_124
-happyReduction_124 happy_x_3
+happyReduce_125 = happySpecReduce_3  32# happyReduction_125
+happyReduction_125 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut91 happy_x_1 of { (HappyWrap91 happy_var_1) -> 
@@ -1506,8 +1523,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_125 = happySpecReduce_3  32# happyReduction_125
-happyReduction_125 happy_x_3
+happyReduce_126 = happySpecReduce_3  32# happyReduction_126
+happyReduction_126 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut91 happy_x_1 of { (HappyWrap91 happy_var_1) -> 
@@ -1516,15 +1533,15 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_126 = happySpecReduce_1  33# happyReduction_126
-happyReduction_126 happy_x_1
+happyReduce_127 = happySpecReduce_1  33# happyReduction_127
+happyReduction_127 happy_x_1
          =  case happyOut79 happy_x_1 of { (HappyWrap79 happy_var_1) -> 
         happyIn80
                  ((fst happy_var_1, (:[]) (snd happy_var_1))
         )}
 
-happyReduce_127 = happySpecReduce_3  33# happyReduction_127
-happyReduction_127 happy_x_3
+happyReduce_128 = happySpecReduce_3  33# happyReduction_128
+happyReduction_128 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut79 happy_x_1 of { (HappyWrap79 happy_var_1) -> 
@@ -1533,64 +1550,64 @@
                  ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_128 = happySpecReduce_1  34# happyReduction_128
-happyReduction_128 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Flat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
 happyReduce_129 = happySpecReduce_1  34# happyReduction_129
 happyReduction_129 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Flat (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.Flat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_130 = happySpecReduce_1  34# happyReduction_130
 happyReduction_130 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Sharp (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.ASCII_Flat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_131 = happySpecReduce_1  34# happyReduction_131
 happyReduction_131 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Sharp (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.Sharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_132 = happySpecReduce_1  34# happyReduction_132
 happyReduction_132 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Op (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.ASCII_Sharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_133 = happySpecReduce_1  34# happyReduction_133
 happyReduction_133 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Op (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.Op (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_134 = happySpecReduce_1  34# happyReduction_134
 happyReduction_134 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn81
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Id (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.ASCII_Op (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
-happyReduce_135 = happySpecReduce_1  35# happyReduction_135
+happyReduce_135 = happySpecReduce_1  34# happyReduction_135
 happyReduction_135 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn81
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Id (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
+        )}
+
+happyReduce_136 = happySpecReduce_1  35# happyReduction_136
+happyReduction_136 happy_x_1
          =  case happyOut81 happy_x_1 of { (HappyWrap81 happy_var_1) -> 
         happyIn82
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.Single (fst happy_var_1) (snd happy_var_1))
         )}
 
-happyReduce_136 = happySpecReduce_3  35# happyReduction_136
-happyReduction_136 happy_x_3
+happyReduce_137 = happySpecReduce_3  35# happyReduction_137
+happyReduction_137 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut81 happy_x_1 of { (HappyWrap81 happy_var_1) -> 
@@ -1599,155 +1616,155 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.Comp (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_137 = happySpecReduce_1  36# happyReduction_137
-happyReduction_137 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonFlat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
-        )}
-
 happyReduce_138 = happySpecReduce_1  36# happyReduction_138
 happyReduction_138 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonSharp (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.ModalColonFlat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_139 = happySpecReduce_1  36# happyReduction_139
 happyReduction_139 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonOp (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.ModalColonSharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_140 = happySpecReduce_1  36# happyReduction_140
 happyReduction_140 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModalColonId (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.ModalColonOp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_141 = happySpecReduce_1  36# happyReduction_141
 happyReduction_141 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_ModalColonFlat (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.ModalColonId (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_142 = happySpecReduce_1  36# happyReduction_142
 happyReduction_142 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_ModalColonSharp (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.ASCII_ModalColonFlat (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_143 = happySpecReduce_1  36# happyReduction_143
 happyReduction_143 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn83
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_ModalColonOp (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.ASCII_ModalColonSharp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
-happyReduce_144 = happySpecReduce_1  37# happyReduction_144
+happyReduce_144 = happySpecReduce_1  36# happyReduction_144
 happyReduction_144 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((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)))
+        happyIn83
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_ModalColonOp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_145 = happySpecReduce_1  37# happyReduction_145
 happyReduction_145 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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_146 = happySpecReduce_1  37# happyReduction_146
 happyReduction_146 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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_147 = happySpecReduce_1  37# happyReduction_147
 happyReduction_147 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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_148 = happySpecReduce_1  37# happyReduction_148
 happyReduction_148 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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_149 = happySpecReduce_1  37# happyReduction_149
 happyReduction_149 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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_150 = happySpecReduce_1  37# happyReduction_150
 happyReduction_150 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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_151 = happySpecReduce_1  37# happyReduction_151
 happyReduction_151 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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_152 = happySpecReduce_1  37# happyReduction_152
 happyReduction_152 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeI (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_153 = happySpecReduce_1  37# happyReduction_153
 happyReduction_153 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeI_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.CubeI (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_154 = happySpecReduce_1  37# happyReduction_154
 happyReduction_154 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeI_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.CubeI_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_155 = happySpecReduce_1  37# happyReduction_155
 happyReduction_155 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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.CubeI_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_156 = happySpecReduce_1  37# happyReduction_156
 happyReduction_156 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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_157 = happySpecReduce_1  37# happyReduction_157
 happyReduction_157 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
+                 ((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_158 = happySpecReduce_1  37# happyReduction_158
+happyReduction_158 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn84
                  ((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_158 = happyReduce 4# 37# happyReduction_158
-happyReduction_158 (happy_x_4 `HappyStk`
+happyReduce_159 = happyReduce 4# 37# happyReduction_159
+happyReduction_159 (happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
         happy_x_1 `HappyStk`
@@ -1758,15 +1775,15 @@
                  ((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_159 = happySpecReduce_1  37# happyReduction_159
-happyReduction_159 happy_x_1
+happyReduce_160 = happySpecReduce_1  37# happyReduction_160
+happyReduction_160 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
                  ((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_160 = happyReduce 5# 37# happyReduction_160
-happyReduction_160 (happy_x_5 `HappyStk`
+happyReduce_161 = happyReduce 5# 37# happyReduction_161
+happyReduction_161 (happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
@@ -1779,8 +1796,8 @@
                  ((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_161 = happyReduce 7# 37# happyReduction_161
-happyReduction_161 (happy_x_7 `HappyStk`
+happyReduce_162 = happyReduce 7# 37# happyReduction_162
+happyReduction_162 (happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
@@ -1796,8 +1813,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Tuple (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
         ) `HappyStk` happyRest}}}}
 
-happyReduce_162 = happySpecReduce_3  37# happyReduction_162
-happyReduction_162 happy_x_3
+happyReduce_163 = happySpecReduce_3  37# happyReduction_163
+happyReduction_163 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
@@ -1807,8 +1824,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModApp (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
         )}}}
 
-happyReduce_163 = happySpecReduce_2  37# happyReduction_163
-happyReduction_163 happy_x_2
+happyReduce_164 = happySpecReduce_2  37# happyReduction_164
+happyReduction_164 happy_x_2
         happy_x_1
          =  case happyOut81 happy_x_1 of { (HappyWrap81 happy_var_1) -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
@@ -1816,22 +1833,22 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ModType (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))
         )}}
 
-happyReduce_164 = happySpecReduce_1  37# happyReduction_164
-happyReduction_164 happy_x_1
+happyReduce_165 = happySpecReduce_1  37# happyReduction_165
+happyReduction_165 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
                  ((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_165 = happySpecReduce_1  37# happyReduction_165
-happyReduction_165 happy_x_1
+happyReduce_166 = happySpecReduce_1  37# happyReduction_166
+happyReduction_166 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
                  ((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_166 = happySpecReduce_3  37# happyReduction_166
-happyReduction_166 happy_x_3
+happyReduce_167 = happySpecReduce_3  37# happyReduction_167
+happyReduction_167 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
@@ -1840,8 +1857,8 @@
                  ((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_167 = happyReduce 5# 37# happyReduction_167
-happyReduction_167 (happy_x_5 `HappyStk`
+happyReduce_168 = happyReduce 5# 37# happyReduction_168
+happyReduction_168 (happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
@@ -1854,8 +1871,8 @@
                  ((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_168 = happyReduce 14# 37# happyReduction_168
-happyReduction_168 (happy_x_14 `HappyStk`
+happyReduce_169 = happyReduce 14# 37# happyReduction_169
+happyReduction_169 (happy_x_14 `HappyStk`
         happy_x_13 `HappyStk`
         happy_x_12 `HappyStk`
         happy_x_11 `HappyStk`
@@ -1881,8 +1898,8 @@
                  ((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_169 = happyReduce 5# 37# happyReduction_169
-happyReduction_169 (happy_x_5 `HappyStk`
+happyReduce_170 = happyReduce 5# 37# happyReduction_170
+happyReduction_170 (happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
@@ -1895,8 +1912,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Match (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))
         ) `HappyStk` happyRest}}}
 
-happyReduce_170 = happyReduce 7# 37# happyReduction_170
-happyReduction_170 (happy_x_7 `HappyStk`
+happyReduce_171 = happyReduce 7# 37# happyReduction_171
+happyReduction_171 (happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
@@ -1912,22 +1929,22 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.MatchInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
         ) `HappyStk` happyRest}}}}
 
-happyReduce_171 = happySpecReduce_1  37# happyReduction_171
-happyReduction_171 happy_x_1
+happyReduce_172 = happySpecReduce_1  37# happyReduction_172
+happyReduction_172 happy_x_1
          =  case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> 
         happyIn84
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.Hole (fst happy_var_1) (snd happy_var_1))
         )}
 
-happyReduce_172 = happySpecReduce_1  37# happyReduction_172
-happyReduction_172 happy_x_1
+happyReduce_173 = happySpecReduce_1  37# happyReduction_173
+happyReduction_173 happy_x_1
          =  case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> 
         happyIn84
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.Var (fst happy_var_1) (snd happy_var_1))
         )}
 
-happyReduce_173 = happySpecReduce_3  37# happyReduction_173
-happyReduction_173 happy_x_3
+happyReduce_174 = happySpecReduce_3  37# happyReduction_174
+happyReduction_174 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
@@ -1936,64 +1953,64 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), (snd happy_var_2))
         )}}
 
-happyReduce_174 = happySpecReduce_1  37# happyReduction_174
-happyReduction_174 happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        happyIn84
-                 ((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_175 = happySpecReduce_1  37# happyReduction_175
 happyReduction_175 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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)))
+                 ((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_176 = happySpecReduce_1  37# happyReduction_176
 happyReduction_176 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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)))
+                 ((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_177 = happySpecReduce_1  37# happyReduction_177
 happyReduction_177 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeI (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.ASCII_Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_178 = happySpecReduce_1  37# happyReduction_178
 happyReduction_178 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeI_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.ASCII_CubeI (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_179 = happySpecReduce_1  37# happyReduction_179
 happyReduction_179 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeI_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.ASCII_CubeI_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_180 = happySpecReduce_1  37# happyReduction_180
 happyReduction_180 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
-                 ((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)))
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_CubeI_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)))
         )}
 
 happyReduce_181 = happySpecReduce_1  37# happyReduction_181
 happyReduction_181 happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         happyIn84
+                 ((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_182 = happySpecReduce_1  37# happyReduction_182
+happyReduction_182 happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        happyIn84
                  ((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_182 = happySpecReduce_3  38# happyReduction_182
-happyReduction_182 happy_x_3
+happyReduce_183 = happySpecReduce_3  38# happyReduction_183
+happyReduction_183 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
@@ -2002,8 +2019,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_183 = happySpecReduce_3  38# happyReduction_183
-happyReduction_183 happy_x_3
+happyReduce_184 = happySpecReduce_3  38# happyReduction_184
+happyReduction_184 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
@@ -2012,8 +2029,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeSup (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_184 = happySpecReduce_3  38# happyReduction_184
-happyReduction_184 happy_x_3
+happyReduce_185 = happySpecReduce_3  38# happyReduction_185
+happyReduction_185 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
@@ -2022,15 +2039,15 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeInf (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_185 = happySpecReduce_1  38# happyReduction_185
-happyReduction_185 happy_x_1
+happyReduce_186 = happySpecReduce_1  38# happyReduction_186
+happyReduction_186 happy_x_1
          =  case happyOut89 happy_x_1 of { (HappyWrap89 happy_var_1) -> 
         happyIn85
                  ((fst happy_var_1, (snd happy_var_1))
         )}
 
-happyReduce_186 = happySpecReduce_3  38# happyReduction_186
-happyReduction_186 happy_x_3
+happyReduce_187 = happySpecReduce_3  38# happyReduction_187
+happyReduction_187 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
@@ -2039,8 +2056,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ascii_CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_187 = happySpecReduce_3  39# happyReduction_187
-happyReduction_187 happy_x_3
+happyReduce_188 = happySpecReduce_3  39# happyReduction_188
+happyReduction_188 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
@@ -2049,8 +2066,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_188 = happySpecReduce_3  39# happyReduction_188
-happyReduction_188 happy_x_3
+happyReduce_189 = happySpecReduce_3  39# happyReduction_189
+happyReduction_189 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
@@ -2059,15 +2076,15 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_189 = happySpecReduce_1  39# happyReduction_189
-happyReduction_189 happy_x_1
+happyReduce_190 = happySpecReduce_1  39# happyReduction_190
+happyReduction_190 happy_x_1
          =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
         happyIn86
                  ((fst happy_var_1, (snd happy_var_1))
         )}
 
-happyReduce_190 = happySpecReduce_3  39# happyReduction_190
-happyReduction_190 happy_x_3
+happyReduce_191 = happySpecReduce_3  39# happyReduction_191
+happyReduction_191 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
@@ -2076,8 +2093,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_191 = happySpecReduce_3  39# happyReduction_191
-happyReduction_191 happy_x_3
+happyReduce_192 = happySpecReduce_3  39# happyReduction_192
+happyReduction_192 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut85 happy_x_1 of { (HappyWrap85 happy_var_1) -> 
@@ -2086,8 +2103,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_192 = happySpecReduce_3  40# happyReduction_192
-happyReduction_192 happy_x_3
+happyReduce_193 = happySpecReduce_3  40# happyReduction_193
+happyReduction_193 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
@@ -2096,15 +2113,15 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_193 = happySpecReduce_1  40# happyReduction_193
-happyReduction_193 happy_x_1
+happyReduce_194 = happySpecReduce_1  40# happyReduction_194
+happyReduction_194 happy_x_1
          =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
         happyIn87
                  ((fst happy_var_1, (snd happy_var_1))
         )}
 
-happyReduce_194 = happySpecReduce_3  40# happyReduction_194
-happyReduction_194 happy_x_3
+happyReduce_195 = happySpecReduce_3  40# happyReduction_195
+happyReduction_195 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut86 happy_x_1 of { (HappyWrap86 happy_var_1) -> 
@@ -2113,8 +2130,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_195 = happySpecReduce_3  41# happyReduction_195
-happyReduction_195 happy_x_3
+happyReduce_196 = happySpecReduce_3  41# happyReduction_196
+happyReduction_196 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut87 happy_x_1 of { (HappyWrap87 happy_var_1) -> 
@@ -2123,15 +2140,15 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_196 = happySpecReduce_1  41# happyReduction_196
-happyReduction_196 happy_x_1
+happyReduce_197 = happySpecReduce_1  41# happyReduction_197
+happyReduction_197 happy_x_1
          =  case happyOut87 happy_x_1 of { (HappyWrap87 happy_var_1) -> 
         happyIn88
                  ((fst happy_var_1, (snd happy_var_1))
         )}
 
-happyReduce_197 = happySpecReduce_3  41# happyReduction_197
-happyReduction_197 happy_x_3
+happyReduce_198 = happySpecReduce_3  41# happyReduction_198
+happyReduction_198 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut87 happy_x_1 of { (HappyWrap87 happy_var_1) -> 
@@ -2140,22 +2157,13 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_198 = happySpecReduce_2  42# happyReduction_198
-happyReduction_198 happy_x_2
-        happy_x_1
-         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
-        happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeInv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
-        )}}
-
 happyReduce_199 = happySpecReduce_2  42# happyReduction_199
 happyReduction_199 happy_x_2
         happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
         happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TopeInv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeInv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
         )}}
 
 happyReduce_200 = happySpecReduce_2  42# happyReduction_200
@@ -2164,7 +2172,7 @@
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
         happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeUninv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TopeInv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
         )}}
 
 happyReduce_201 = happySpecReduce_2  42# happyReduction_201
@@ -2173,7 +2181,7 @@
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
         happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TopeUninv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeUninv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
         )}}
 
 happyReduce_202 = happySpecReduce_2  42# happyReduction_202
@@ -2182,7 +2190,7 @@
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
         happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeFlip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TopeUninv (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
         )}}
 
 happyReduce_203 = happySpecReduce_2  42# happyReduction_203
@@ -2191,7 +2199,7 @@
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
         happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeFlip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeFlip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
         )}}
 
 happyReduce_204 = happySpecReduce_2  42# happyReduction_204
@@ -2200,7 +2208,7 @@
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
         happyIn89
-                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnflip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeFlip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
         )}}
 
 happyReduce_205 = happySpecReduce_2  42# happyReduction_205
@@ -2209,11 +2217,20 @@
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
         happyIn89
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnflip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
+        )}}
+
+happyReduce_206 = happySpecReduce_2  42# happyReduction_206
+happyReduction_206 happy_x_2
+        happy_x_1
+         =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
+        happyIn89
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeUnflip (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2))
         )}}
 
-happyReduce_206 = happyReduce 4# 42# happyReduction_206
-happyReduction_206 (happy_x_4 `HappyStk`
+happyReduce_207 = happyReduce 4# 42# happyReduction_207
+happyReduction_207 (happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
         happy_x_1 `HappyStk`
@@ -2224,8 +2241,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeRestricted (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         ) `HappyStk` happyRest}}
 
-happyReduce_207 = happySpecReduce_2  42# happyReduction_207
-happyReduction_207 happy_x_2
+happyReduce_208 = happySpecReduce_2  42# happyReduction_208
+happyReduction_208 happy_x_2
         happy_x_1
          =  case happyOut89 happy_x_1 of { (HappyWrap89 happy_var_1) -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
@@ -2233,8 +2250,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.App (fst happy_var_1) (snd happy_var_1) (snd happy_var_2))
         )}}
 
-happyReduce_208 = happySpecReduce_3  42# happyReduction_208
-happyReduction_208 happy_x_3
+happyReduce_209 = happySpecReduce_3  42# happyReduction_209
+happyReduction_209 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
@@ -2244,8 +2261,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ModExtract (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
         )}}}
 
-happyReduce_209 = happySpecReduce_2  42# happyReduction_209
-happyReduction_209 happy_x_2
+happyReduce_210 = happySpecReduce_2  42# happyReduction_210
+happyReduction_210 happy_x_2
         happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
@@ -2253,8 +2270,8 @@
                  ((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_210 = happySpecReduce_2  42# happyReduction_210
-happyReduction_210 happy_x_2
+happyReduce_211 = happySpecReduce_2  42# happyReduction_211
+happyReduction_211 happy_x_2
         happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
@@ -2262,15 +2279,15 @@
                  ((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_211 = happySpecReduce_1  42# happyReduction_211
-happyReduction_211 happy_x_1
+happyReduce_212 = happySpecReduce_1  42# happyReduction_212
+happyReduction_212 happy_x_1
          =  case happyOut84 happy_x_1 of { (HappyWrap84 happy_var_1) -> 
         happyIn89
                  ((fst happy_var_1, (snd happy_var_1))
         )}
 
-happyReduce_212 = happySpecReduce_3  42# happyReduction_212
-happyReduction_212 happy_x_3
+happyReduce_213 = happySpecReduce_3  42# happyReduction_213
+happyReduction_213 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
@@ -2280,8 +2297,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeSup (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
         )}}}
 
-happyReduce_213 = happySpecReduce_3  42# happyReduction_213
-happyReduction_213 happy_x_3
+happyReduce_214 = happySpecReduce_3  42# happyReduction_214
+happyReduction_214 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
@@ -2291,8 +2308,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_CubeInf (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3))
         )}}}
 
-happyReduce_214 = happySpecReduce_2  42# happyReduction_214
-happyReduction_214 happy_x_2
+happyReduce_215 = happySpecReduce_2  42# happyReduction_215
+happyReduction_215 happy_x_2
         happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
@@ -2300,8 +2317,8 @@
                  ((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_215 = happySpecReduce_2  42# happyReduction_215
-happyReduction_215 happy_x_2
+happyReduce_216 = happySpecReduce_2  42# happyReduction_216
+happyReduction_216 happy_x_2
         happy_x_1
          =  case happyOutTok happy_x_1 of { happy_var_1 -> 
         case happyOut84 happy_x_2 of { (HappyWrap84 happy_var_2) -> 
@@ -2309,8 +2326,8 @@
                  ((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_216 = happySpecReduce_3  43# happyReduction_216
-happyReduction_216 happy_x_3
+happyReduce_217 = happySpecReduce_3  43# happyReduction_217
+happyReduction_217 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut76 happy_x_1 of { (HappyWrap76 happy_var_1) -> 
@@ -2319,8 +2336,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_217 = happyReduce 8# 43# happyReduction_217
-happyReduction_217 (happy_x_8 `HappyStk`
+happyReduce_218 = happyReduce 8# 43# happyReduction_218
+happyReduction_218 (happy_x_8 `HappyStk`
         happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
@@ -2337,8 +2354,8 @@
                  ((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_218 = happyReduce 8# 43# happyReduction_218
-happyReduction_218 (happy_x_8 `HappyStk`
+happyReduce_219 = happyReduce 8# 43# happyReduction_219
+happyReduction_219 (happy_x_8 `HappyStk`
         happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
@@ -2356,8 +2373,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigmaModal (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_5) (snd happy_var_8))
         ) `HappyStk` happyRest}}}}}
 
-happyReduce_219 = happyReduce 8# 43# happyReduction_219
-happyReduction_219 (happy_x_8 `HappyStk`
+happyReduce_220 = happyReduce 8# 43# happyReduction_220
+happyReduction_220 (happy_x_8 `HappyStk`
         happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
@@ -2374,8 +2391,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigmaTuple (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_220 = happyReduce 5# 43# happyReduction_220
-happyReduction_220 (happy_x_5 `HappyStk`
+happyReduce_221 = happyReduce 5# 43# happyReduction_221
+happyReduction_221 (happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
@@ -2388,8 +2405,8 @@
                  ((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_221 = happySpecReduce_3  43# happyReduction_221
-happyReduction_221 happy_x_3
+happyReduce_222 = happySpecReduce_3  43# happyReduction_222
+happyReduction_222 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) -> 
@@ -2398,8 +2415,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeIdSimple (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_222 = happyReduce 6# 43# happyReduction_222
-happyReduction_222 (happy_x_6 `HappyStk`
+happyReduce_223 = happyReduce 6# 43# happyReduction_223
+happyReduction_223 (happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
         happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
@@ -2414,8 +2431,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Let (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6))
         ) `HappyStk` happyRest}}}}
 
-happyReduce_223 = happyReduce 4# 43# happyReduction_223
-happyReduction_223 (happy_x_4 `HappyStk`
+happyReduce_224 = happyReduce 4# 43# happyReduction_224
+happyReduction_224 (happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
         happy_x_1 `HappyStk`
@@ -2427,8 +2444,8 @@
                  ((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_224 = happyReduce 8# 43# happyReduction_224
-happyReduction_224 (happy_x_8 `HappyStk`
+happyReduce_225 = happyReduce 8# 43# happyReduction_225
+happyReduction_225 (happy_x_8 `HappyStk`
         happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
@@ -2446,15 +2463,37 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetMod (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))
         ) `HappyStk` happyRest}}}}}
 
-happyReduce_225 = happySpecReduce_1  43# happyReduction_225
-happyReduction_225 happy_x_1
+happyReduce_226 = happyReduce 10# 43# happyReduction_226
+happyReduction_226 (happy_x_10 `HappyStk`
+        happy_x_9 `HappyStk`
+        happy_x_8 `HappyStk`
+        happy_x_7 `HappyStk`
+        happy_x_6 `HappyStk`
+        happy_x_5 `HappyStk`
+        happy_x_4 `HappyStk`
+        happy_x_3 `HappyStk`
+        happy_x_2 `HappyStk`
+        happy_x_1 `HappyStk`
+        happyRest)
+         = case happyOutTok happy_x_1 of { happy_var_1 -> 
+        case happyOut82 happy_x_3 of { (HappyWrap82 happy_var_3) -> 
+        case happyOut75 happy_x_4 of { (HappyWrap75 happy_var_4) -> 
+        case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) -> 
+        case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> 
+        case happyOut91 happy_x_10 of { (HappyWrap91 happy_var_10) -> 
+        happyIn90
+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8) (snd happy_var_10))
+        ) `HappyStk` happyRest}}}}}}
+
+happyReduce_227 = happySpecReduce_1  43# happyReduction_227
+happyReduction_227 happy_x_1
          =  case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) -> 
         happyIn90
                  ((fst happy_var_1, (snd happy_var_1))
         )}
 
-happyReduce_226 = happySpecReduce_3  43# happyReduction_226
-happyReduction_226 happy_x_3
+happyReduce_228 = happySpecReduce_3  43# happyReduction_228
+happyReduction_228 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut76 happy_x_1 of { (HappyWrap76 happy_var_1) -> 
@@ -2463,8 +2502,8 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_227 = happyReduce 8# 43# happyReduction_227
-happyReduction_227 (happy_x_8 `HappyStk`
+happyReduce_229 = happyReduce 8# 43# happyReduction_229
+happyReduction_229 (happy_x_8 `HappyStk`
         happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
@@ -2481,8 +2520,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_228 = happyReduce 8# 43# happyReduction_228
-happyReduction_228 (happy_x_8 `HappyStk`
+happyReduce_230 = happyReduce 8# 43# happyReduction_230
+happyReduction_230 (happy_x_8 `HappyStk`
         happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
@@ -2500,8 +2539,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TypeSigmaModal (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_5) (snd happy_var_8))
         ) `HappyStk` happyRest}}}}}
 
-happyReduce_229 = happyReduce 8# 43# happyReduction_229
-happyReduction_229 (happy_x_8 `HappyStk`
+happyReduce_231 = happyReduce 8# 43# happyReduction_231
+happyReduction_231 (happy_x_8 `HappyStk`
         happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
@@ -2518,8 +2557,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TypeSigmaTuple (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_230 = happyReduce 4# 43# happyReduction_230
-happyReduction_230 (happy_x_4 `HappyStk`
+happyReduce_232 = happyReduce 4# 43# happyReduction_232
+happyReduction_232 (happy_x_4 `HappyStk`
         happy_x_3 `HappyStk`
         happy_x_2 `HappyStk`
         happy_x_1 `HappyStk`
@@ -2531,8 +2570,8 @@
                  ((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_231 = happyReduce 8# 43# happyReduction_231
-happyReduction_231 (happy_x_8 `HappyStk`
+happyReduce_233 = happyReduce 8# 43# happyReduction_233
+happyReduction_233 (happy_x_8 `HappyStk`
         happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
@@ -2549,8 +2588,8 @@
                  ((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_232 = happyReduce 8# 43# happyReduction_232
-happyReduction_232 (happy_x_8 `HappyStk`
+happyReduce_234 = happyReduce 8# 43# happyReduction_234
+happyReduction_234 (happy_x_8 `HappyStk`
         happy_x_7 `HappyStk`
         happy_x_6 `HappyStk`
         happy_x_5 `HappyStk`
@@ -2567,8 +2606,8 @@
                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaTupleAlt (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_233 = happySpecReduce_3  44# happyReduction_233
-happyReduction_233 happy_x_3
+happyReduce_235 = happySpecReduce_3  44# happyReduction_235
+happyReduction_235 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) -> 
@@ -2577,22 +2616,22 @@
                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeAsc (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))
         )}}
 
-happyReduce_234 = happySpecReduce_1  44# happyReduction_234
-happyReduction_234 happy_x_1
+happyReduce_236 = happySpecReduce_1  44# happyReduction_236
+happyReduction_236 happy_x_1
          =  case happyOut90 happy_x_1 of { (HappyWrap90 happy_var_1) -> 
         happyIn91
                  ((fst happy_var_1, (snd happy_var_1))
         )}
 
-happyReduce_235 = happySpecReduce_1  45# happyReduction_235
-happyReduction_235 happy_x_1
+happyReduce_237 = happySpecReduce_1  45# happyReduction_237
+happyReduction_237 happy_x_1
          =  case happyOut91 happy_x_1 of { (HappyWrap91 happy_var_1) -> 
         happyIn92
                  ((fst happy_var_1, (:[]) (snd happy_var_1))
         )}
 
-happyReduce_236 = happySpecReduce_3  45# happyReduction_236
-happyReduction_236 happy_x_3
+happyReduce_238 = happySpecReduce_3  45# happyReduction_238
+happyReduction_238 happy_x_3
         happy_x_2
         happy_x_1
          =  case happyOut91 happy_x_1 of { (HappyWrap91 happy_var_1) -> 
@@ -2719,9 +2758,11 @@
         PT _ (TS _ 115) -> 116#;
         PT _ (TS _ 116) -> 117#;
         PT _ (TS _ 117) -> 118#;
-        PT _ (TL _) -> 119#;
-        PT _ (T_VarIdentToken _) -> 120#;
-        PT _ (T_HoleIdentToken _) -> 121#;
+        PT _ (TS _ 118) -> 119#;
+        PT _ (TS _ 119) -> 120#;
+        PT _ (TL _) -> 121#;
+        PT _ (T_VarIdentToken _) -> 122#;
+        PT _ (T_HoleIdentToken _) -> 123#;
         _ -> -1#;
         }
 {-# NOINLINE happyTerminalToTok #-}
@@ -2730,9 +2771,9 @@
 happyLex _kend kmore  (tk:tks) = kmore (happyTerminalToTok tk) tk tks
 {-# INLINE happyLex #-}
 
-happyNewToken action sts stk = happyLex (\tk -> happyDoAction 122# notHappyAtAll action sts stk) (\i tk -> happyDoAction i tk action sts stk)
+happyNewToken action sts stk = happyLex (\tk -> happyDoAction 124# notHappyAtAll action sts stk) (\i tk -> happyDoAction i tk action sts stk)
 
-happyReport 122# tk explist resume tks = happyReport' tks explist resume
+happyReport 124# tk explist resume tks = happyReport' tks explist resume
 happyReport _ tk explist resume tks = happyReport' (tk:tks) explist (\tks -> resume (Happy_Prelude.tail tks))
 
 
diff --git a/src/Language/Rzk/Syntax/Print.hs b/src/Language/Rzk/Syntax/Print.hs
--- a/src/Language/Rzk/Syntax/Print.hs
+++ b/src/Language/Rzk/Syntax/Print.hs
@@ -218,7 +218,8 @@
 
 instance Print (Language.Rzk.Syntax.Abs.DataElim' a) where
   prt i = \case
-    Language.Rzk.Syntax.Abs.DataElim _ varident term -> prPrec i 0 (concatD [doc (showString "eliminator"), prt 0 varident, doc (showString ":"), prt 0 term])
+    Language.Rzk.Syntax.Abs.DataElim _ varident term -> prPrec i 0 (concatD [doc (showString "eliminate"), doc (showString "with"), prt 0 varident, doc (showString ":"), prt 0 term])
+    Language.Rzk.Syntax.Abs.DataCompute _ varident term -> prPrec i 0 (concatD [doc (showString "compute"), doc (showString "with"), prt 0 varident, doc (showString ":"), prt 0 term])
 
 instance Print [Language.Rzk.Syntax.Abs.DataElim' a] where
   prt _ [] = concatD []
@@ -363,6 +364,7 @@
     Language.Rzk.Syntax.Abs.ModType _ modality term -> prPrec i 7 (concatD [prt 0 modality, prt 7 term])
     Language.Rzk.Syntax.Abs.ModExtract _ modcomp term -> prPrec i 6 (concatD [doc (showString "$extract$"), prt 0 modcomp, prt 7 term])
     Language.Rzk.Syntax.Abs.LetMod _ modcomp bind term1 term2 -> prPrec i 1 (concatD [doc (showString "let"), doc (showString "mod"), prt 0 modcomp, prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "in"), prt 0 term2])
+    Language.Rzk.Syntax.Abs.LetModInto _ modcomp bind term1 term2 term3 -> prPrec i 1 (concatD [doc (showString "let"), doc (showString "mod"), prt 0 modcomp, prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "into"), prt 0 term2, doc (showString "in"), prt 0 term3])
     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")])
diff --git a/src/Language/Rzk/VSCode/ReferenceIndex.hs b/src/Language/Rzk/VSCode/ReferenceIndex.hs
--- a/src/Language/Rzk/VSCode/ReferenceIndex.hs
+++ b/src/Language/Rzk/VSCode/ReferenceIndex.hs
@@ -372,7 +372,11 @@
         goBody = case body of
           Rzk.SomeDataBody _ cons elims -> concat
             [ concatMap goCon cons
-            , concatMap (\(Rzk.DataElim _ _elim ty) -> goTerm file envD ty) elims
+            , concatMap
+                (\case
+                  Rzk.DataElim _ _elim ty    -> goTerm file envD ty
+                  Rzk.DataCompute _ _rule ty -> goTerm file envD ty)
+                elims
             ]
           Rzk.NoDataBody _ -> []
         goCon (Rzk.Constructor _ cname cps cty) =
@@ -401,6 +405,7 @@
   Rzk.ASCII_Lambda _ ps body                -> paramScope file env ps body
   Rzk.Let _ bind val body                   -> letScope file env bind val body
   Rzk.LetMod _ _ bind val body              -> letScope file env bind val body
+  Rzk.LetModInto _ _ bind val motive body   -> goTerm file env motive ++ letScope file env bind val body
   Rzk.TypeSigma _ pat ty ret                -> sigmaScope file env pat ty ret
   Rzk.ASCII_TypeSigma _ pat ty ret          -> sigmaScope file env pat ty ret
   Rzk.TypeSigmaModal _ pat _ ty ret         -> sigmaScope file env pat ty ret
diff --git a/src/Language/Rzk/VSCode/Tokenize.hs b/src/Language/Rzk/VSCode/Tokenize.hs
--- a/src/Language/Rzk/VSCode/Tokenize.hs
+++ b/src/Language/Rzk/VSCode/Tokenize.hs
@@ -110,10 +110,14 @@
   ]
 
 tokenizeDataElim :: DataElim -> [SemanticTokenAbsolute]
-tokenizeDataElim (DataElim _loc name ty) = concat
-  [ mkToken name SemanticTokenTypes_Function [SemanticTokenModifiers_Declaration]
-  , tokenizeTerm ty
-  ]
+tokenizeDataElim = \case
+  DataElim _loc name ty    -> clause name ty
+  DataCompute _loc name ty -> clause name ty
+  where
+    clause name ty = concat
+      [ mkToken name SemanticTokenTypes_Function [SemanticTokenModifiers_Declaration]
+      , tokenizeTerm ty
+      ]
 
 tokenizeDeclUsedVars :: DeclUsedVars -> [SemanticTokenAbsolute]
 tokenizeDeclUsedVars (DeclUsedVars _loc vars) =
@@ -263,6 +267,7 @@
         , go body ]
       Let _loc bind val expr -> concat [tokenizeBind bind, go val, go expr]
       LetMod _loc comp bind val expr -> concat [tokenizeModComp comp, tokenizeBind bind, go val, go expr]
+      LetModInto _loc comp bind val motive expr -> concat [tokenizeModComp comp, tokenizeBind bind, go val, go motive, go expr]
       ASCII_Lambda loc params body -> go (Lambda loc params body)
 
       Pair _loc l r -> foldMap go [l, r]
diff --git a/src/Rzk/Diagnostic.hs b/src/Rzk/Diagnostic.hs
--- a/src/Rzk/Diagnostic.hs
+++ b/src/Rzk/Diagnostic.hs
@@ -157,6 +157,7 @@
   TypeErrorMatchDuplicateBranch{}  -> "TypeErrorMatchDuplicateBranch"
   TypeErrorMatchUnknownBranch{}    -> "TypeErrorMatchUnknownBranch"
   TypeErrorMatchBranchArity{}      -> "TypeErrorMatchBranchArity"
+  TypeErrorReascribedTypeMismatch{} -> "TypeErrorReascribedTypeMismatch"
 
 -- | The tag of a type error.
 --
diff --git a/src/Rzk/TypeCheck/BinderTypes.hs b/src/Rzk/TypeCheck/BinderTypes.hs
--- a/src/Rzk/TypeCheck/BinderTypes.hs
+++ b/src/Rzk/TypeCheck/BinderTypes.hs
@@ -149,7 +149,7 @@
         bodyEntries  <- inScopeWith binder Id (fromMaybe universeT valueType) (Just value) body go
         pure (entries ++ annEntries ++ valueEntries ++ bodyEntries)
 
-      LetModT _ binder _nu mu manno value body -> do
+      LetModT _ binder _nu mu manno mmotive value body -> do
         unwrapped <- case typeInfoOf value of
           Nothing -> pure Nothing
           Just valueInfo -> do
@@ -159,9 +159,10 @@
               Nothing -> (modalView <$> whnfT vt) `catchError` \_ -> pure Nothing
         entries      <- maybe (pure []) (binderTypeEntries binder) unwrapped
         annEntries   <- maybe (pure []) go manno
+        motiveEntries <- maybe (pure []) go mmotive
         valueEntries <- go value
         bodyEntries  <- inScope binder mu (fromMaybe universeT unwrapped) body go
-        pure (entries ++ annEntries ++ valueEntries ++ bodyEntries)
+        pure (entries ++ annEntries ++ motiveEntries ++ valueEntries ++ bodyEntries)
 
       Node (AnnSig _ f) ->
         concat <$> mapM go (bifoldr (\_ acc -> acc) (:) [] f)
diff --git a/src/Rzk/TypeCheck/Context.hs b/src/Rzk/TypeCheck/Context.hs
--- a/src/Rzk/TypeCheck/Context.hs
+++ b/src/Rzk/TypeCheck/Context.hs
@@ -116,18 +116,28 @@
   }
 
 data DataRoleKind
-  = DataConKind Int Int [Int]
-    -- ^ a constructor: its 0-based position among the constructors (= the
-    -- method index), the number of its own fields after the parameters,
-    -- and the 0-based positions of its recursive fields (each contributes
-    -- an induction hypothesis right after the field in the method)
+  = DataConKind ConSort Int Int [Int]
+    -- ^ a constructor: its sort, its 0-based position among the
+    -- constructors (= the method index), the number of its own fields
+    -- after the parameters, and the 0-based positions of its recursive
+    -- fields (each contributes an induction hypothesis right after the
+    -- field in the method)
   | DataElimKind Int Int ElimKind
     -- ^ an eliminator: the number of methods (one per constructor, in
     -- declaration order) and the number of indices of the family; the
     -- spine is parameters, motive, methods, indices, scrutinee
 
+-- | A point constructor inhabits the datatype and the ι-rule dispatches on
+-- it as a scrutinee head. A path constructor inhabits an identity type over
+-- the datatype, so it can never head a well-typed scrutinee, and the ι-rule
+-- must not fire on it: its computation rule is the propositional
+-- @compute-@ lemma generated alongside the eliminators.
+data ConSort = PointCon | PathCon
+  deriving (Eq)
+
 -- | Which eliminator; the ι-rule is the same for both.
 data ElimKind = ElimInd | ElimRec
+  deriving (Eq)
 
 -- | Add one leading parameter (a section assumption made explicit).
 bumpDataRoleParams :: DataRole n -> DataRole n
diff --git a/src/Rzk/TypeCheck/Decl.hs b/src/Rzk/TypeCheck/Decl.hs
--- a/src/Rzk/TypeCheck/Decl.hs
+++ b/src/Rzk/TypeCheck/Decl.hs
@@ -24,7 +24,7 @@
 -- (@makeAssumptionExplicit@), rewriting the later definitions to apply them to it.
 module Rzk.TypeCheck.Decl where
 
-import           Control.Monad             (forM, when)
+import           Control.Monad             (forM, forM_, unless, when)
 import           Control.Monad.Except      (catchError, runExcept)
 import           Data.Data                 (Data, cast, gmapQ)
 import           Control.Monad.Reader      (ask, asks, local, runReaderT)
@@ -46,6 +46,7 @@
                                             patternToTerm, varIdent, varIdentAt)
 import qualified Language.Rzk.Syntax       as Rzk
 import           Rzk.TypeCheck.Context
+import           Rzk.TypeCheck.Decl.Data
 import           Rzk.TypeCheck.Display
 import           Rzk.TypeCheck.Error
 import           Rzk.TypeCheck.Eval
@@ -53,6 +54,7 @@
 import           Rzk.TypeCheck.MetaPrefix
 import           Rzk.TypeCheck.Monad
 import           Rzk.TypeCheck.Render
+import           Rzk.TypeCheck.Unify       (unifyTerms)
 
 -- * Declarations
 
@@ -472,11 +474,6 @@
 paramToParamDecl (Rzk.ParamPatternModalShape loc pats mc cube tope) = pure
   [ Rzk.ParamTermModalShape loc (patternToTerm pat) mc cube tope | pat <- pats ]
 
-addParamDecls :: [Rzk.ParamDecl] -> Rzk.Term -> Rzk.Term
-addParamDecls [] = id
-addParamDecls (paramDecl : paramDecls)
-  = Rzk.TypeFun Nothing paramDecl . addParamDecls paramDecls
-
 addParams :: [Rzk.Param] -> Rzk.Term -> Rzk.Term
 addParams []     = id
 addParams params = Rzk.Lambda Nothing params
@@ -491,18 +488,9 @@
 -- the ordinary 'elaborate' and 'typecheck', so nothing here constructs core
 -- terms by hand.
 --
--- Stage 1 (see @design/inductive-types.md@): no recursion, no indices, sort
--- @U@ only, no eliminator re-ascription clauses. The declaration grammar
--- already covers the later stages; this checker rejects what it does not
--- support.
-
--- | Stage 1: the sort must be @U@ (families are stage 2).
--- | One index of a family, as declared in the sort: its binder (when the
--- sort names it, as in @(n : nat) → U@) and its type.
-data SortIndex = SortIndex
-  { sortIndexVar  :: Maybe Rzk.VarIdent
-  , sortIndexType :: Rzk.Term
-  }
+-- The declaration grammar already covers the later stages; this checker
+-- rejects what it does not support (cube/shape and modal constructor
+-- fields, function-typed recursive fields).
 
 -- | The index telescope of the sort. The sort must be @U@ (no indices) or a
 -- Π-telescope of plain types ending in @U@.
@@ -565,97 +553,6 @@
 modalFieldError cname = issueTypeError $ TypeErrorOther $
   "modal fields are not supported yet in constructor " <> Rzk.printTree cname
 
--- | A constructor, preprocessed at the surface level.
-data DataConSurface = DataConSurface
-  { dataConName       :: Rzk.VarIdent
-  , dataConFields     :: [Rzk.ParamDecl]
-    -- ^ the field telescope, one entry per bound variable
-  , dataConFieldPats  :: [Rzk.Term]
-    -- ^ the field patterns as terms, in the same order
-  , dataConRecursive  :: [(Int, [Rzk.Term])]
-    -- ^ the directly recursive fields (their type is the declared type
-    -- applied to its parameters and some index terms): 0-based position
-    -- and the index terms; each contributes an induction hypothesis to
-    -- the eliminator's method
-  , dataConRetIndices :: [Rzk.Term]
-    -- ^ the index terms of the constructor's return type
-  , dataConType       :: Rzk.Term
-    -- ^ the constructor's full surface type: params → fields → D params
-  , dataConProbe      :: Rzk.Term
-    -- ^ the non-recursive fields → Unit, for the positivity and largeness
-    -- checks (a directly recursive field mentions the type legitimately)
-  , dataConNonRec     :: [Rzk.Term]
-    -- ^ the non-recursive field types, for the per-field error message
-  , dataConLocalNames :: [Rzk.VarIdentToken]
-    -- ^ every binder token of the constructor, for freshening
-  }
-
-surfacePatternVars :: Rzk.Pattern -> [Rzk.VarIdent]
-surfacePatternVars = \case
-  Rzk.PatternVar _ v        -> [v]
-  Rzk.PatternPair _ a b     -> surfacePatternVars a <> surfacePatternVars b
-  Rzk.PatternTuple _ a b cs -> concatMap surfacePatternVars (a : b : cs)
-  Rzk.PatternUnit _         -> []
-
-identTokenOf :: Rzk.VarIdent -> Rzk.VarIdentToken
-identTokenOf (Rzk.VarIdent _ tok) = tok
-
-surfaceVar :: Rzk.VarIdent -> Rzk.Term
-surfaceVar = Rzk.Var Nothing
-
-surfaceApps :: Rzk.Term -> [Rzk.Term] -> Rzk.Term
-surfaceApps f []       = f
-surfaceApps f (x : xs) = surfaceApps (Rzk.App Nothing f x) xs
-
-surfaceAppSpine :: Rzk.Term -> (Rzk.Term, [Rzk.Term])
-surfaceAppSpine = go []
-  where
-    go acc (Rzk.App _ f x) = go (x : acc) f
-    go acc t               = (t, acc)
-
-surfaceArrow :: Rzk.Term -> Rzk.Term -> Rzk.Term
-surfaceArrow a = Rzk.TypeFun Nothing (Rzk.ParamType Nothing a)
-
--- | The domains and codomain of a surface Π-chain (domain types only; for
--- the shaped and modal parameter forms the carrier is what matters here).
-surfacePiSpine :: Rzk.Term -> ([Rzk.Term], Rzk.Term)
-surfacePiSpine = go []
-  where
-    go acc (Rzk.TypeFun _ param ret)       = go (domainsOf param <> acc) ret
-    go acc (Rzk.ASCII_TypeFun _ param ret) = go (domainsOf param <> acc) ret
-    go acc t                               = (reverse acc, t)
-    domainsOf = \case
-      Rzk.ParamType _ t                 -> [t]
-      Rzk.ParamTermType _ _ t           -> [t]
-      Rzk.ParamTermShape _ _ cube _     -> [cube]
-      Rzk.ParamTermModalType _ _ _ t    -> [t]
-      Rzk.ParamTermModalShape _ _ _ c _ -> [c]
-
--- | Is the term the given name applied to exactly the given parameter
--- variables (in order, the uniformity requirement) and then exactly
--- @arity@ index terms? Returns those index terms. A syntactic check: this
--- is how constructor return types and directly recursive fields are
--- recognised.
-dataAppliedIndices :: Rzk.VarIdent -> [Rzk.VarIdent] -> Int -> Rzk.Term -> Maybe [Rzk.Term]
-dataAppliedIndices dataName paramVars arity t = case surfaceAppSpine t of
-  (Rzk.Var _ h, args)
-    | identTokenOf h == identTokenOf dataName
-    , (paramArgs, indexArgs) <- splitAt (length paramVars) args
-    , map (Just . identTokenOf) paramVars == map varTokenOf paramArgs
-    , length indexArgs == arity
-    -> Just indexArgs
-  _ -> Nothing
-  where
-    varTokenOf (Rzk.Var _ v) = Just (identTokenOf v)
-    varTokenOf _             = Nothing
-
-matchesDataApplied :: Rzk.VarIdent -> [Rzk.VarIdent] -> Int -> Rzk.Term -> Bool
-matchesDataApplied dataName paramVars arity =
-  maybe False (const True) . dataAppliedIndices dataName paramVars arity
-
-surfacePi :: Rzk.VarIdent -> Rzk.Term -> Rzk.Term -> Rzk.Term
-surfacePi v ty = Rzk.TypeFun Nothing (Rzk.ParamTermType Nothing (surfaceVar v) ty)
-
 dataConSurface
   :: Distinct n
   => Rzk.VarIdent -> [Rzk.VarIdent] -> [Rzk.ParamDecl] -> Int -> Rzk.Constructor
@@ -664,26 +561,48 @@
   fieldDecls <- concat <$> mapM (dataFieldToParamDecl cname) cparams
   let defaultRet = surfaceApps (surfaceVar dataName) (map surfaceVar paramVars)
       recIndicesOf = dataAppliedIndices dataName paramVars indexArity
-  (ret, retIndices) <- case ctype of
+  (ret, retIndices, sort) <- case ctype of
     Rzk.NoConstructorType _
-      | indexArity == 0 -> pure (defaultRet, [])
+      | indexArity == 0 -> pure (defaultRet, [], DataConPoint)
       | otherwise -> issueTypeError $ TypeErrorOther $
           "constructor " <> Rzk.printTree cname
             <> " must spell out its return type: the family has "
             <> show indexArity <> " index(es)"
     Rzk.SomeConstructorType _ ret
-      | Just ixs <- recIndicesOf ret -> pure (ret, ixs)
-      | otherwise -> issueTypeError $ TypeErrorOther $
-          "the return type of constructor " <> Rzk.printTree cname
-            <> " must be the declared type applied to its parameters and "
-            <> show indexArity <> " index(es), like "
-            <> Rzk.printTree defaultRet <> " …"
+      | Just ixs <- recIndicesOf ret -> pure (ret, ixs, DataConPoint)
+    Rzk.SomeConstructorType _ ret@(Rzk.TypeId _ l carrier r)
+      | Just _ <- recIndicesOf carrier ->
+          if indexArity == 0
+            then pure (ret, [], DataConPath l r)
+            else issueTypeError $ TypeErrorOther $
+              "path constructor " <> Rzk.printTree cname
+                <> " in an indexed family is not supported"
+      | isIdentity carrier -> higherPathError
+    Rzk.SomeConstructorType _ (Rzk.TypeIdSimple _ _ _) ->
+      issueTypeError $ TypeErrorOther $
+        "the return type of path constructor " <> Rzk.printTree cname
+          <> " must spell out the carrier of the identification, like l =_{"
+          <> Rzk.printTree defaultRet <> "} r"
+    Rzk.SomeConstructorType _ _ -> issueTypeError $ TypeErrorOther $
+      "the return type of constructor " <> Rzk.printTree cname
+        <> " must be the declared type applied to its parameters and "
+        <> show indexArity <> " index(es), like "
+        <> Rzk.printTree defaultRet <> " …"
   let fieldTypes = [ ty | Rzk.ParamTermType _ _ ty <- fieldDecls ]
       recursive =
         [ (j, ixs) | (j, ty) <- zip [0 ..] fieldTypes, Just ixs <- [recIndicesOf ty] ]
       isRec ty = maybe False (const True) (recIndicesOf ty)
       nonRecTypes = [ ty | ty <- fieldTypes, not (isRec ty) ]
       nonRecDecls = [ d | d@(Rzk.ParamTermType _ _ ty) <- fieldDecls, not (isRec ty) ]
+  forM_ fieldTypes $ \case
+    fieldTy@(Rzk.TypeId _ _ carrier _)
+      | matchesDataApplied dataName paramVars indexArity carrier ->
+          issueTypeError $ TypeErrorOther $
+            "constructor " <> Rzk.printTree cname
+              <> " has a field of an identity type over the declared type ("
+              <> Rzk.printTree fieldTy
+              <> "); higher paths are not supported yet"
+    _ -> pure ()
   pure DataConSurface
     { dataConName = cname
     , dataConFields = fieldDecls
@@ -695,6 +614,7 @@
     , dataConNonRec = nonRecTypes
     , dataConLocalNames = identTokenOf cname
         : map identTokenOf (concatMap fieldVars cparams)
+    , dataConSort = sort
     }
   where
     fieldVars = \case
@@ -703,6 +623,13 @@
     fieldPats = \case
       Rzk.ParamPatternType _ pats _ -> map patternToTerm pats
       _                             -> []
+    isIdentity = \case
+      Rzk.TypeId{}       -> True
+      Rzk.TypeIdSimple{} -> True
+      _                  -> False
+    higherPathError = issueTypeError $ TypeErrorOther $
+      "constructor " <> Rzk.printTree cname
+        <> " declares a path between paths; higher path constructors are not supported yet"
 
 -- | The assumptions an entry depends on, possibly only through the types of
 -- what it mentions. The generated entries of a @#data@ declare these
@@ -755,9 +682,10 @@
   -> [Rzk.ParamDecl]      -- ^ the parameter telescope
   -> [SortIndex]          -- ^ the index telescope of the sort
   -> [DataConSurface]     -- ^ the constructors, preprocessed
+  -> [Rzk.DataElim]       -- ^ the re-ascription clauses
   -> (forall l. (DExt n l, Distinct l) => [Decl l] -> TypeCheck l r)
   -> TypeCheck n r
-withDataDecls path used name paramVars paramDecls sortIndices consData k = do
+withDataDecls path used name paramVars paramDecls sortIndices consData elims k = do
   -- The type former's type spells the sort as written: params → indices → U.
   let sortTerm = foldr wrapIndex (Rzk.Universe Nothing) sortIndices
       wrapIndex (SortIndex mv ty) body = case mv of
@@ -815,8 +743,11 @@
       conTyTerm <- elaborate (dataConType con)
       conTy <- memoizeWHNF =<< typecheck conTyTerm universeT
       conDeps <- assumptionDepsOf conTy
-      let role = DataRole dName numParams
-            (DataConKind index (length (dataConFields con))
+      let conSort = case dataConSort con of
+            DataConPoint  -> PointCon
+            DataConPath{} -> PathCon
+          role = DataRole dName numParams
+            (DataConKind conSort index (length (dataConFields con))
               (map fst (dataConRecursive con)))
       withTopLevel (varIdentAt path (dataConName con)) conTy Nothing False
         (nubNames (usedHere <> conDeps)) (Just role) $ \_conBinder conDecl ->
@@ -852,68 +783,201 @@
       let maxRec = maximum (0 : map (length . dataConRecursive) consData)
       ihNames <- freshIdents maxRec
         (identTokenOf motiveV : identTokenOf scrutV : avoid') "ih"
-      let dApplied = surfaceApps (surfaceVar name) (map surfaceVar paramVars)
-          dAppliedIx = surfaceApps dApplied (map surfaceVar indexVars)
-          motive = surfaceVar motiveV
-          -- The motive abstracts over the indices (and, dependently, the
-          -- scrutinee); a method's hypotheses and codomain instantiate it
-          -- at the relevant index terms.
-          motiveSort dependent = addParamDecls indexDecls $
-            if dependent
-              then surfaceArrow dAppliedIx (Rzk.Universe Nothing)
-              else Rzk.Universe Nothing
-          -- One method per constructor: its fields with an induction
-          -- hypothesis interleaved after each recursive field (HoTT-book
-          -- style), then the motive at the constructor's return indices
-          -- (and, for @ind-D@, at the constructor applied to parameters
-          -- and fields).
-          methodTy dependent con = wrapFields (0 :: Int)
-            (zip [0 :: Int ..] (zip (dataConFields con) (dataConFieldPats con)))
-            where
-              wrapFields _ [] = surfaceApps motive $
-                dataConRetIndices con
-                  <> [ surfaceApps (surfaceVar (dataConName con))
-                        (map surfaceVar paramVars <> dataConFieldPats con)
-                     | dependent ]
-              wrapFields nRec ((j, (fieldDecl, fpat)) : more)
-                | Just fieldIxs <- lookup j (dataConRecursive con) =
-                    Rzk.TypeFun Nothing fieldDecl $
-                      surfacePi (ihNames !! nRec)
-                        (surfaceApps motive (fieldIxs <> [ fpat | dependent ]))
-                        (wrapFields (nRec + 1) more)
-                | otherwise =
-                    Rzk.TypeFun Nothing fieldDecl (wrapFields nRec more)
-          elimTail dependent = addParamDecls indexDecls $
-            if dependent
-              then surfacePi scrutV dAppliedIx $
-                surfaceApps motive (map surfaceVar indexVars <> [surfaceVar scrutV])
-              else surfaceArrow dAppliedIx $
-                surfaceApps motive (map surfaceVar indexVars)
-          elimTy dependent = addParamDecls paramDecls $
-            surfacePi motiveV (motiveSort dependent) $
-              foldr (surfaceArrow . methodTy dependent)
-                (elimTail dependent)
-                consData
+      -- A path-method type refers to the point methods by name, so a
+      -- declaration with path constructors binds its methods (@m-<con>@);
+      -- a point-only declaration keeps the anonymous arrows it always had.
+      let hasPaths = or [ True | DataConPath{} <- map dataConSort consData ]
+          avoidM = map identTokenOf (motiveV : scrutV : ihNames) <> avoid'
+      methodVars <-
+        if not hasPaths then pure Nothing else Just <$>
+          let go _ [] = pure []
+              go av (con : rest) = do
+                let Rzk.VarIdentToken t = identTokenOf (dataConName con)
+                m <- freshIdent path av ("m-" <> t)
+                (m :) <$> go (identTokenOf m : av) rest
+           in go avoidM consData
+      -- Binders of the inlined transport/apd spellings (rzk has no
+      -- primitive transport, so the generated types spell it through idJ).
+      let avoidM' = maybe [] (map identTokenOf) methodVars <> avoidM
+      endpointV <- freshIdent path avoidM' "y"
+      pathV <- freshIdent path (identTokenOf endpointV : avoidM') "q"
+      -- the inlined transport gets its own binder: it ends up nested inside
+      -- a λ that binds 'endpointV' (the apd motive), and reusing the name
+      -- there would shadow it
+      transportV <- freshIdent path
+        (identTokenOf endpointV : identTokenOf pathV : avoidM') "y"
+      -- The images of a path constructor's endpoints under the section
+      -- being defined; also the endpoint well-formedness check (an endpoint
+      -- must be built from constructors and fields, so that its image is
+      -- syntactically computable — the standard HIT schema restriction).
+      let conMethods = case methodVars of
+            Just ms -> zip (map (identTokenOf . dataConName) consData)
+                           (zip ms consData)
+            Nothing -> []
+          dataTok = identTokenOf name
+          conToks = map (identTokenOf . dataConName) consData
+          -- the induction-hypothesis binder for each recursive field of a
+          -- constructor, by the field's token (a recursive field is a plain
+          -- variable: no pattern form inhabits the datatype)
+          ihByFieldTok c =
+            [ (identTokenOf v, ih)
+            | (ih, j) <- zip ihNames (recPositionsOf c)
+            , Rzk.Var _ v <-
+                [nthByConstruction "constructor field patterns" (dataConFieldPats c) j] ]
+          endpointErr c t = issueTypeError $ TypeErrorOther $
+            "in path constructor " <> Rzk.printTree (dataConName c)
+              <> ": an endpoint must be built from the declaration's"
+              <> " constructors and the constructor's fields, but "
+              <> Rzk.printTree t <> " is not"
+          -- a subterm at a non-recursive argument position must not touch
+          -- the datatype at all: the section being defined does not act on it
+          ensureDFree c t =
+            let bad = dataTok : conToks <> map fst (ihByFieldTok c)
+             in unless (null [ () | tk <- surfaceVarTokens t, tk `elem` bad ])
+                  (endpointErr c t)
+          imageOf c t = case surfaceAppSpine t of
+            (Rzk.Var _ v, args)
+              | Just (m, target) <- lookup (identTokenOf v) conMethods -> do
+                  let nP = length paramVars
+                      arity = length (dataConFields target)
+                      (pArgs, fArgs) = splitAt nP args
+                      varTokOf = \case
+                        Rzk.Var _ u -> Just (identTokenOf u)
+                        _           -> Nothing
+                  unless (length args == nP + arity
+                      && map varTokOf pArgs == map (Just . identTokenOf) paramVars) $
+                    endpointErr c t
+                  imgArgs <- forM (zip [0 :: Int ..] fArgs) $ \(j, a) ->
+                    if j `elem` recPositionsOf target
+                      then do { ia <- imageOf c a; pure [a, ia] }
+                      else do { ensureDFree c a; pure [a] }
+                  pure (surfaceApps (surfaceVar m) (concat imgArgs))
+              | null args
+              , Just ih <- lookup (identTokenOf v) (ihByFieldTok c) ->
+                  pure (surfaceVar ih)
+            _ -> endpointErr c t
+      pathData <- forM consData $ \con -> case dataConSort con of
+        DataConPoint    -> pure Nothing
+        DataConPath l r -> do
+          iL <- imageOf con l
+          iR <- imageOf con r
+          pure (Just ((l, r), (iL, iR)))
+      -- The surface types of the eliminators and the path computation rules
+      -- (see "Rzk.TypeCheck.Decl.Data"), pushed through the ordinary
+      -- elaborator below just like any user-written type.
+      let spec = ElimSpec
+            { esName = name, esParamVars = paramVars, esParamDecls = paramDecls
+            , esIndexVars = indexVars, esIndexDecls = indexDecls, esMotiveV = motiveV
+            , esScrutV = scrutV, esIhNames = ihNames, esMethodVars = methodVars
+            , esEndpointV = endpointV, esPathV = pathV, esTransportV = transportV
+            , esConsData = consData, esPathData = pathData }
+          et = elimTerms spec
           indName = prefixedIdent "ind-" name
           recName = prefixedIdent "rec-" name
-      indTyT <- elaborate (elimTy True)
-      indTy' <- memoizeWHNF =<< typecheck indTyT universeT
+      (mindTy, mrecTy, computeReasc) <- splitClauses indName recName (map fst (computeRules et))
+      indTyT <- elaborate (indTypeTerm et)
+      indCanonical <- memoizeWHNF =<< typecheck indTyT universeT
+      indTy' <- reascribe indName indCanonical mindTy
       indDeps <- assumptionDepsOf indTy'
       withTopLevel (varIdentAt path indName) indTy' Nothing False
         (nubNames (usedHere <> indDeps))
         (Just (DataRole dName numParams (DataElimKind numMethods indexArity ElimInd))) $ \_ indDecl -> do
-          recTyT <- elaborate (elimTy False)
-          recTy' <- memoizeWHNF =<< typecheck recTyT universeT
+          recTyT <- elaborate (recTypeTerm et)
+          recCanonical <- memoizeWHNF =<< typecheck recTyT universeT
+          recTy' <- reascribe recName recCanonical mrecTy
           recDeps <- assumptionDepsOf recTy'
+          let usedAtInd = Foil.sinkContainer usedHere
           withTopLevel (varIdentAt path recName) recTy' Nothing False
-            (nubNames (Foil.sinkContainer usedHere <> recDeps))
+            (nubNames (usedAtInd <> recDeps))
             (Just (DataRole (Foil.sink dName) numParams (DataElimKind numMethods indexArity ElimRec))) $ \_ recDecl ->
-              k (sinkDecls (sinkDecls declsAcc <> [indDecl]) <> [recDecl])
+              bindComputes
+                (Foil.sinkContainer usedAtInd)
+                computeReasc
+                (computeRules et)
+                (sinkDecls (sinkDecls declsAcc <> [indDecl]) <> [recDecl])
 
-prefixedIdent :: T.Text -> Rzk.VarIdent -> Rzk.VarIdent
-prefixedIdent p (Rzk.VarIdent pos (Rzk.VarIdentToken t)) =
-  Rzk.VarIdent pos (Rzk.VarIdentToken (p <> t))
+    -- | Bind the generated @compute-@ lemmas (one @ind@/@rec@ pair per
+    -- path constructor), re-ascribing the ones a @compute with@ clause
+    -- names, then hand the accumulated declarations to the continuation of
+    -- 'withDataDecls'.
+    bindComputes
+      :: forall m. DExt n m
+      => [Foil.Name m] -> [(Rzk.VarIdentToken, Rzk.Term)]
+      -> [(Rzk.VarIdent, Rzk.Term)] -> [Decl m]
+      -> TypeCheck m r
+    bindComputes _used _reasc [] acc = k acc
+    bindComputes usedHere reasc ((cname, cty) : rest) acc = do
+      tyT <- elaborate cty
+      canonical <- memoizeWHNF =<< typecheck tyT universeT
+      ty' <- reascribe cname canonical (lookup (identTokenOf cname) reasc)
+      deps <- assumptionDepsOf ty'
+      withTopLevel (varIdentAt path cname) ty' Nothing False
+        (nubNames (usedHere <> deps)) Nothing $ \_ decl ->
+          bindComputes (Foil.sinkContainer usedHere) reasc rest
+            (sinkDecls acc <> [decl])
 
+    -- | Split the re-ascription clauses among the generated entries: the
+    -- two eliminators (@eliminate with@) and the computation rules of the
+    -- path constructors (@compute with@). A clause must name an entry of
+    -- the matching kind, at most once each.
+    splitClauses
+      :: Distinct m
+      => Rzk.VarIdent -> Rzk.VarIdent -> [Rzk.VarIdent]
+      -> TypeCheck m
+           (Maybe Rzk.Term, Maybe Rzk.Term, [(Rzk.VarIdentToken, Rzk.Term)])
+    splitClauses indName recName computeNames = go (Nothing, Nothing, []) elims
+      where
+        go acc [] = pure acc
+        go (mind, mrec, mcomp) (Rzk.DataElim _loc elimName ty : rest)
+          | sameIdent elimName indName =
+              case mind of
+                Nothing -> go (Just ty, mrec, mcomp) rest
+                Just _  -> duplicate elimName
+          | sameIdent elimName recName =
+              case mrec of
+                Nothing -> go (mind, Just ty, mcomp) rest
+                Just _  -> duplicate elimName
+          | otherwise = issueTypeError $ TypeErrorOther $
+              "eliminate with clause for " <> Rzk.printTree elimName
+                <> ", which is not an eliminator of " <> Rzk.printTree name
+                <> " (the eliminators are " <> Rzk.printTree indName
+                <> " and " <> Rzk.printTree recName <> ")"
+        go (mind, mrec, mcomp) (Rzk.DataCompute _loc ruleName ty : rest)
+          | any (sameIdent ruleName) computeNames =
+              if identTokenOf ruleName `elem` map fst mcomp
+                then duplicate ruleName
+                else go (mind, mrec, mcomp <> [(identTokenOf ruleName, ty)]) rest
+          | otherwise = issueTypeError $ TypeErrorOther $
+              "compute with clause for " <> Rzk.printTree ruleName
+                <> ", which is not a computation rule of " <> Rzk.printTree name
+                <> case computeNames of
+                     [] -> " (the declaration has no path constructors, so no computation rules are generated)"
+                     _  -> " (the computation rules are "
+                             <> intercalate ", " (map Rzk.printTree computeNames)
+                             <> ")"
+        duplicate n = issueTypeError $ TypeErrorOther $
+          "duplicate re-ascription clause for " <> Rzk.printTree n
+        sameIdent a b = identTokenOf a == identTokenOf b
+
+    -- | Check a re-ascribed generated type (an eliminator's or a
+    -- computation rule's) against the canonical one and pick the type to
+    -- store. The user's spelling must be definitionally equal to the
+    -- canonical type (checked with the type former and constructors in
+    -- scope); definitionally equal types are interchangeable, so storing
+    -- the user's spelling only changes how the entry's type is displayed,
+    -- not what it accepts or computes.
+    reascribe
+      :: Distinct m
+      => Rzk.VarIdent -> TermT m -> Maybe Rzk.Term -> TypeCheck m (TermT m)
+    reascribe _entryName canonical Nothing = pure canonical
+    reascribe entryName canonical (Just ty) = do
+      tyT <- elaborate ty
+      ty' <- memoizeWHNF =<< typecheck tyT universeT
+      unifyTerms canonical ty' `catchError` \_ ->
+        issueTypeError $
+          TypeErrorReascribedTypeMismatch (varIdentAt path entryName) canonical ty'
+      pure ty'
+
 -- | Run a command, recording which one it is and where.
 --
 -- An error raised anywhere in the command (or in the rest of the module, which is
@@ -1089,16 +1153,11 @@
         used <- mapM (checkDefined . varIdentAt path) vars
         sortIndices <- dataSortIndices sort
         let (cons, elims) = dataBodyParts body
-        case elims of
-          [] -> return ()
-          Rzk.DataElim _ elimName _ : _ -> issueTypeError $ TypeErrorOther $
-            "eliminator clauses are not supported yet (eliminator "
-              <> Rzk.printTree elimName <> ")"
         paramVars <- dataParamVars params
         paramDecls <- concat <$> mapM paramToParamDecl params
         consData <- mapM
           (dataConSurface name paramVars paramDecls (length sortIndices)) cons
-        withDataDecls path used name paramVars paramDecls sortIndices consData $ \decls ->
+        withDataDecls path used name paramVars paramDecls sortIndices consData elims $ \decls ->
           checkCommands path (i + 1) total more $ \moreDecls errs ->
             k (sinkDecls decls <> moreDecls) errs
 
diff --git a/src/Rzk/TypeCheck/Decl/Data.hs b/src/Rzk/TypeCheck/Decl/Data.hs
new file mode 100644
--- /dev/null
+++ b/src/Rzk/TypeCheck/Decl/Data.hs
@@ -0,0 +1,348 @@
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# LANGUAGE LambdaCase        #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | The surface-syntax scaffolding of @#data@ declarations, kept separate from
+-- the monadic checker in "Rzk.TypeCheck.Decl".
+--
+-- Two things live here, both pure. First, small builders over the surface
+-- syntax (@surfaceApps@, @surfacePi@, …) and the preprocessed forms of a
+-- declaration (the 'SortIndex' telescope and the 'DataConSurface'
+-- constructors). Second, the construction of the generated eliminators: given
+-- an 'ElimSpec' — the declaration's data together with the fresh binders of the
+-- generated types and the validated endpoint images — 'elimTerms' produces the
+-- surface types of @ind-D@ and @rec-D@ and the path computation rules. The
+-- checker then pushes those surface terms through the ordinary elaborator, so
+-- nothing here constructs core terms or touches the type-checking monad.
+module Rzk.TypeCheck.Decl.Data where
+
+import           Data.Data          (Data, cast, gmapQ)
+import qualified Data.Text          as T
+
+import qualified Language.Rzk.Syntax as Rzk
+import           Rzk.TypeCheck.Display (panicImpossible)
+
+-- * Surface-syntax builders and preprocessed forms
+
+addParamDecls :: [Rzk.ParamDecl] -> Rzk.Term -> Rzk.Term
+addParamDecls [] = id
+addParamDecls (paramDecl : paramDecls)
+  = Rzk.TypeFun Nothing paramDecl . addParamDecls paramDecls
+
+-- | One index of a family, as declared in the sort: its binder (when the
+-- sort names it, as in @(n : nat) → U@) and its type.
+data SortIndex = SortIndex
+  { sortIndexVar  :: Maybe Rzk.VarIdent
+  , sortIndexType :: Rzk.Term
+  }
+
+-- | The sort of a constructor: a point constructor returns the declared
+-- type; a path constructor returns an identity type over it (spelled
+-- @l =_{D …} r@), declaring an identification between the two endpoint
+-- terms. Path β-rules are propositional (the generated @compute-@ lemmas),
+-- following the HoTT-book treatment of higher inductive types.
+data DataConSort
+  = DataConPoint
+  | DataConPath Rzk.Term Rzk.Term
+    -- ^ the endpoints of the declared identification, as written
+
+-- | A constructor, preprocessed at the surface level.
+data DataConSurface = DataConSurface
+  { dataConName       :: Rzk.VarIdent
+  , dataConFields     :: [Rzk.ParamDecl]
+    -- ^ the field telescope, one entry per bound variable
+  , dataConFieldPats  :: [Rzk.Term]
+    -- ^ the field patterns as terms, in the same order
+  , dataConRecursive  :: [(Int, [Rzk.Term])]
+    -- ^ the directly recursive fields (their type is the declared type
+    -- applied to its parameters and some index terms): 0-based position
+    -- and the index terms; each contributes an induction hypothesis to
+    -- the eliminator's method
+  , dataConRetIndices :: [Rzk.Term]
+    -- ^ the index terms of the constructor's return type
+  , dataConType       :: Rzk.Term
+    -- ^ the constructor's full surface type: params → fields → D params
+  , dataConProbe      :: Rzk.Term
+    -- ^ the non-recursive fields → Unit, for the positivity and largeness
+    -- checks (a directly recursive field mentions the type legitimately)
+  , dataConNonRec     :: [Rzk.Term]
+    -- ^ the non-recursive field types, for the per-field error message
+  , dataConLocalNames :: [Rzk.VarIdentToken]
+    -- ^ every binder token of the constructor, for freshening
+  , dataConSort       :: DataConSort
+  }
+
+surfacePatternVars :: Rzk.Pattern -> [Rzk.VarIdent]
+surfacePatternVars = \case
+  Rzk.PatternVar _ v        -> [v]
+  Rzk.PatternPair _ a b     -> surfacePatternVars a <> surfacePatternVars b
+  Rzk.PatternTuple _ a b cs -> concatMap surfacePatternVars (a : b : cs)
+  Rzk.PatternUnit _         -> []
+
+identTokenOf :: Rzk.VarIdent -> Rzk.VarIdentToken
+identTokenOf (Rzk.VarIdent _ tok) = tok
+
+surfaceVar :: Rzk.VarIdent -> Rzk.Term
+surfaceVar = Rzk.Var Nothing
+
+-- | A λ over plain (untyped) variable patterns; only ever used in checking
+-- position, where the domains come from the expected type.
+surfaceLambda :: [Rzk.VarIdent] -> Rzk.Term -> Rzk.Term
+surfaceLambda vs = Rzk.Lambda Nothing
+  [ Rzk.ParamPattern Nothing (Rzk.PatternVar Nothing v) | v <- vs ]
+
+-- | The wildcard binder, for a generated λ that ignores an argument.
+underscoreIdent :: Rzk.VarIdent
+underscoreIdent = Rzk.VarIdent Nothing (Rzk.VarIdentToken "_")
+
+-- | Every variable-occurrence token in a surface term, collected
+-- generically. Used for the endpoint well-formedness check of path
+-- constructors, which is deliberately syntactic.
+surfaceVarTokens :: Data a => a -> [Rzk.VarIdentToken]
+surfaceVarTokens x = concat
+  [ maybe [] varTok (cast x)
+  , concat (gmapQ surfaceVarTokens x)
+  ]
+  where
+    varTok :: Rzk.Term -> [Rzk.VarIdentToken]
+    varTok = \case
+      Rzk.Var _ v -> [identTokenOf v]
+      _           -> []
+
+surfaceApps :: Rzk.Term -> [Rzk.Term] -> Rzk.Term
+surfaceApps f []       = f
+surfaceApps f (x : xs) = surfaceApps (Rzk.App Nothing f x) xs
+
+surfaceAppSpine :: Rzk.Term -> (Rzk.Term, [Rzk.Term])
+surfaceAppSpine = go []
+  where
+    go acc (Rzk.App _ f x) = go (x : acc) f
+    go acc t               = (t, acc)
+
+surfaceArrow :: Rzk.Term -> Rzk.Term -> Rzk.Term
+surfaceArrow a = Rzk.TypeFun Nothing (Rzk.ParamType Nothing a)
+
+-- | The domains and codomain of a surface Π-chain (domain types only; for
+-- the shaped and modal parameter forms the carrier is what matters here).
+surfacePiSpine :: Rzk.Term -> ([Rzk.Term], Rzk.Term)
+surfacePiSpine = go []
+  where
+    go acc (Rzk.TypeFun _ param ret)       = go (domainsOf param <> acc) ret
+    go acc (Rzk.ASCII_TypeFun _ param ret) = go (domainsOf param <> acc) ret
+    go acc t                               = (reverse acc, t)
+    domainsOf = \case
+      Rzk.ParamType _ t                 -> [t]
+      Rzk.ParamTermType _ _ t           -> [t]
+      Rzk.ParamTermShape _ _ cube _     -> [cube]
+      Rzk.ParamTermModalType _ _ _ t    -> [t]
+      Rzk.ParamTermModalShape _ _ _ c _ -> [c]
+
+-- | Is the term the given name applied to exactly the given parameter
+-- variables (in order, the uniformity requirement) and then exactly
+-- @arity@ index terms? Returns those index terms. A syntactic check: this
+-- is how constructor return types and directly recursive fields are
+-- recognised.
+dataAppliedIndices :: Rzk.VarIdent -> [Rzk.VarIdent] -> Int -> Rzk.Term -> Maybe [Rzk.Term]
+dataAppliedIndices dataName paramVars arity t = case surfaceAppSpine t of
+  (Rzk.Var _ h, args)
+    | identTokenOf h == identTokenOf dataName
+    , (paramArgs, indexArgs) <- splitAt (length paramVars) args
+    , map (Just . identTokenOf) paramVars == map varTokenOf paramArgs
+    , length indexArgs == arity
+    -> Just indexArgs
+  _ -> Nothing
+  where
+    varTokenOf (Rzk.Var _ v) = Just (identTokenOf v)
+    varTokenOf _             = Nothing
+
+matchesDataApplied :: Rzk.VarIdent -> [Rzk.VarIdent] -> Int -> Rzk.Term -> Bool
+matchesDataApplied dataName paramVars arity =
+  maybe False (const True) . dataAppliedIndices dataName paramVars arity
+
+surfacePi :: Rzk.VarIdent -> Rzk.Term -> Rzk.Term -> Rzk.Term
+surfacePi v ty = Rzk.TypeFun Nothing (Rzk.ParamTermType Nothing (surfaceVar v) ty)
+
+prefixedIdent :: T.Text -> Rzk.VarIdent -> Rzk.VarIdent
+prefixedIdent p (Rzk.VarIdent pos (Rzk.VarIdentToken t)) =
+  Rzk.VarIdent pos (Rzk.VarIdentToken (p <> t))
+
+-- | Index into a list that is long enough by construction, panicking with a
+-- label instead of the opaque @Prelude.!!@ message if that invariant is ever
+-- broken. Used where an index is derived from the same data as the list (the
+-- induction-hypothesis binders, a constructor's field patterns).
+nthByConstruction :: String -> [a] -> Int -> a
+nthByConstruction what xs i = case drop i xs of
+  x : _ -> x
+  []    -> panicImpossible (what <> ": index " <> show i <> " out of range")
+
+-- | The 0-based positions of a constructor's directly recursive fields.
+recPositionsOf :: DataConSurface -> [Int]
+recPositionsOf = map fst . dataConRecursive
+
+-- * Eliminator construction
+
+-- | Everything the pure construction of the eliminators closes over: the
+-- declaration's name, its parameters and index telescope, the fresh binders of
+-- the generated types (the motive, the scrutinee, the induction hypotheses,
+-- the path-method names, and the binders of the inlined transport), the
+-- preprocessed constructors, and — for each path constructor — the images of
+-- its endpoints under the section being defined. Assembled by
+-- "Rzk.TypeCheck.Decl" once the fresh names are allocated and the endpoints
+-- validated.
+data ElimSpec = ElimSpec
+  { esName       :: Rzk.VarIdent
+  , esParamVars  :: [Rzk.VarIdent]
+  , esParamDecls :: [Rzk.ParamDecl]
+  , esIndexVars  :: [Rzk.VarIdent]
+  , esIndexDecls :: [Rzk.ParamDecl]
+  , esMotiveV    :: Rzk.VarIdent
+  , esScrutV     :: Rzk.VarIdent
+  , esIhNames    :: [Rzk.VarIdent]
+  , esMethodVars :: Maybe [Rzk.VarIdent]
+  , esEndpointV  :: Rzk.VarIdent
+  , esPathV      :: Rzk.VarIdent
+  , esTransportV :: Rzk.VarIdent
+  , esConsData   :: [DataConSurface]
+  , esPathData   :: [Maybe ((Rzk.Term, Rzk.Term), (Rzk.Term, Rzk.Term))]
+  }
+
+-- | The generated surface types of a declaration's eliminators and the path
+-- computation rules, all as surface terms for the ordinary elaborator.
+data ElimTerms = ElimTerms
+  { indTypeTerm  :: Rzk.Term
+    -- ^ the type of @ind-D@ (the dependent eliminator)
+  , recTypeTerm  :: Rzk.Term
+    -- ^ the type of @rec-D@ (the non-dependent eliminator)
+  , computeRules :: [(Rzk.VarIdent, Rzk.Term)]
+    -- ^ one @compute-ind-@/@compute-rec-@ lemma per path constructor
+  }
+
+elimTerms :: ElimSpec -> ElimTerms
+elimTerms spec = ElimTerms
+    { indTypeTerm  = elimTy True
+    , recTypeTerm  = elimTy False
+    , computeRules = computes
+    }
+  where
+    ElimSpec
+      { esName = name, esParamVars = paramVars, esParamDecls = paramDecls
+      , esIndexVars = indexVars, esIndexDecls = indexDecls, esMotiveV = motiveV
+      , esScrutV = scrutV, esIhNames = ihNames, esMethodVars = methodVars
+      , esEndpointV = endpointV, esPathV = pathV, esTransportV = transportV
+      , esConsData = consData, esPathData = pathData } = spec
+    dApplied = surfaceApps (surfaceVar name) (map surfaceVar paramVars)
+    dAppliedIx = surfaceApps dApplied (map surfaceVar indexVars)
+    motive = surfaceVar motiveV
+    -- The motive abstracts over the indices (and, dependently, the
+    -- scrutinee); a method's hypotheses and codomain instantiate it
+    -- at the relevant index terms.
+    motiveSort dependent = addParamDecls indexDecls $
+      if dependent
+        then surfaceArrow dAppliedIx (Rzk.Universe Nothing)
+        else Rzk.Universe Nothing
+    -- The constructor applied to the parameters and its own fields
+    -- (for a path constructor, this is the declared identification).
+    conApplied con = surfaceApps (surfaceVar (dataConName con))
+      (map surfaceVar paramVars <> dataConFieldPats con)
+    -- @transport@ in the motive along a path @p : l = rEnd@, spelled
+    -- through idJ (rzk has no primitive transport):
+    -- @idJ (D …, l, \y' _ → C l → C y', \y' → y', rEnd, p) u@.
+    transportAlong l rEnd p u =
+      Rzk.App Nothing
+        (Rzk.IdJ Nothing dApplied l
+          (surfaceLambda [transportV, underscoreIdent]
+            (surfaceArrow (Rzk.App Nothing motive l)
+              (Rzk.App Nothing motive (surfaceVar transportV))))
+          (surfaceLambda [transportV] (surfaceVar transportV))
+          rEnd p)
+        u
+    -- One method per constructor: its fields with an induction
+    -- hypothesis interleaved after each recursive field (HoTT-book
+    -- style). A point method then ends in the motive at the
+    -- constructor's return indices (and, for @ind-D@, at the
+    -- constructor applied to parameters and fields); a path method
+    -- ends in an equation between the images of the endpoints, over
+    -- the path for @ind-D@ (β on a path constructor stays
+    -- propositional: the equation is the type of the generated
+    -- @compute-@ lemma, not a rule the checker computes with).
+    methodTy dependent (con, mpath) = wrapFields (0 :: Int)
+      (zip [0 :: Int ..] (zip (dataConFields con) (dataConFieldPats con)))
+      where
+        wrapFields _ [] = case mpath of
+          Nothing -> surfaceApps motive $
+            dataConRetIndices con <> [ conApplied con | dependent ]
+          Just ((l, r), (iL, iR))
+            | dependent -> Rzk.TypeIdSimple Nothing
+                (transportAlong l r (conApplied con) iL) iR
+            | otherwise -> Rzk.TypeIdSimple Nothing iL iR
+        wrapFields nRec ((j, (fieldDecl, fpat)) : more)
+          | Just fieldIxs <- lookup j (dataConRecursive con) =
+              Rzk.TypeFun Nothing fieldDecl $
+                surfacePi (nthByConstruction "induction hypotheses" ihNames nRec)
+                  (surfaceApps motive (fieldIxs <> [ fpat | dependent ]))
+                  (wrapFields (nRec + 1) more)
+          | otherwise =
+              Rzk.TypeFun Nothing fieldDecl (wrapFields nRec more)
+    elimTail dependent = addParamDecls indexDecls $
+      if dependent
+        then surfacePi scrutV dAppliedIx $
+          surfaceApps motive (map surfaceVar indexVars <> [surfaceVar scrutV])
+        else surfaceArrow dAppliedIx $
+          surfaceApps motive (map surfaceVar indexVars)
+    conWithPath = zip consData pathData
+    methodsPis dependent inner = case methodVars of
+      Nothing -> foldr (surfaceArrow . methodTy dependent) inner conWithPath
+      Just ms -> foldr
+        (\(m, cp) rest -> surfacePi m (methodTy dependent cp) rest)
+        inner (zip ms conWithPath)
+    elimTy dependent = addParamDecls paramDecls $
+      surfacePi motiveV (motiveSort dependent) $
+        methodsPis dependent (elimTail dependent)
+    indName = prefixedIdent "ind-" name
+    recName = prefixedIdent "rec-" name
+    -- The propositional β-lemma per path constructor and eliminator:
+    -- the section's action on the constructor's path (ap/apd, spelled
+    -- through idJ) equals the path method at the fields, with the
+    -- section applied to each recursive field as its hypothesis.
+    -- Generated as opaque entries, like the eliminators themselves.
+    sectionOf elimIdent = surfaceApps (surfaceVar elimIdent)
+      (map surfaceVar paramVars <> [motive]
+        <> maybe [] (map surfaceVar) methodVars)
+    methodArgs f con = concat
+      [ fpat : [ Rzk.App Nothing f fpat | j `elem` recPositionsOf con ]
+      | (j, fpat) <- zip [0 :: Int ..] (dataConFieldPats con) ]
+    computeTy dependent elimIdent m con l r =
+      addParamDecls paramDecls $
+        surfacePi motiveV (motiveSort dependent) $
+          methodsPis dependent $
+            addParamDecls (dataConFields con) $
+              let f = sectionOf elimIdent
+                  fAt = Rzk.App Nothing f
+                  -- apd (dependent) or ap: the motive of the outer
+                  -- idJ states what the section does to a path
+                  motiveBody
+                    | dependent = Rzk.TypeIdSimple Nothing
+                        (transportAlong l (surfaceVar endpointV)
+                          (surfaceVar pathV) (fAt l))
+                        (fAt (surfaceVar endpointV))
+                    | otherwise = Rzk.TypeIdSimple Nothing
+                        (fAt l) (fAt (surfaceVar endpointV))
+                  lhs = Rzk.IdJ Nothing dApplied l
+                    (surfaceLambda [endpointV, pathV] motiveBody)
+                    (Rzk.Refl Nothing) r (conApplied con)
+                  rhs = surfaceApps (surfaceVar m) (methodArgs f con)
+               in Rzk.TypeIdSimple Nothing lhs rhs
+    computeNameFor pfx con =
+      let Rzk.VarIdent pos (Rzk.VarIdentToken d) = name
+          Rzk.VarIdentToken c = identTokenOf (dataConName con)
+       in Rzk.VarIdent pos (Rzk.VarIdentToken (pfx <> d <> "-" <> c))
+    computes = case methodVars of
+      Nothing -> []
+      Just ms ->
+        [ entry
+        | (m, (con, Just ((l, r), _))) <- zip ms conWithPath
+        , entry <-
+            [ ( computeNameFor "compute-ind-" con
+              , computeTy True indName m con l r )
+            , ( computeNameFor "compute-rec-" con
+              , computeTy False recName m con l r ) ] ]
diff --git a/src/Rzk/TypeCheck/Error.hs b/src/Rzk/TypeCheck/Error.hs
--- a/src/Rzk/TypeCheck/Error.hs
+++ b/src/Rzk/TypeCheck/Error.hs
@@ -63,6 +63,7 @@
   | TypeErrorMatchDuplicateBranch VarIdent
   | TypeErrorMatchUnknownBranch VarIdent [VarIdent]
   | TypeErrorMatchBranchArity VarIdent Int Int
+  | TypeErrorReascribedTypeMismatch VarIdent (TermT n) (TermT n)
 
 -- | An error, together with the context it was raised in.
 --
@@ -289,6 +290,12 @@
     [ "match branch for constructor " <> show con
     , "binds " <> show actual <> " argument" <> (if actual == 1 then "" else "s")
         <> ", but its method takes " <> show expected
+    ]
+  TypeErrorReascribedTypeMismatch entryName canonical given -> block TopDown
+    [ "the re-ascribed type of " <> show entryName
+    , "  " <> ppU (untyped given)
+    , "is not definitionally equal to its canonical type"
+    , "  " <> ppU (untyped canonical)
     ]
   where
     ppU = ppTerm naming
diff --git a/src/Rzk/TypeCheck/Eval.hs b/src/Rzk/TypeCheck/Eval.hs
--- a/src/Rzk/TypeCheck/Eval.hs
+++ b/src/Rzk/TypeCheck/Eval.hs
@@ -1162,7 +1162,7 @@
 
             LetT _ty _orig _mparam val body ->
               instantiate body val >>= whnfT
-            LetModT ty orig app inn mparam val body ->
+            LetModT ty orig app inn mparam mmotive val body ->
               (enterModality app $ whnfT val) >>= \case
                 ModAppT _ md t | md == inn -> do
                   val' <- enterModality md $ whnfT t
@@ -1172,7 +1172,7 @@
                     TypeModalT _ _ t -> pure t
                     _ -> panicImpossible "not modal in letmod"
                   instantiate body (modExtractT bty app inn b') >>= whnfT
-                _ -> pure (LetModT ty orig app inn mparam val body)
+                _ -> pure (LetModT ty orig app inn mparam mmotive val body)
             FirstT ty t ->
               whnfT t >>= \case
                 PairT _ l _r -> whnfT l
@@ -1286,7 +1286,7 @@
     , (_indices, (_, scrut) : after) <- splitAt numIndices rest ->
         whnfT scrut >>= \scrut' -> case collectAppSpine scrut' of
           (Var c, cargs) -> asks (varDataRole . lookupVarInfo c) >>= \case
-            Just (DataRole dataType' conNumParams (DataConKind conIndex conNumFields recIdxs))
+            Just (DataRole dataType' conNumParams (DataConKind PointCon conIndex conNumFields recIdxs))
               | Foil.nameId dataType' == Foil.nameId dataType
               , length cargs == conNumParams + conNumFields -> do
                   let method = snd (pairs !! (numParams + 1 + conIndex))
@@ -1601,7 +1601,7 @@
     (enterModality app $ nfTope b) >>= \case
       ModAppT _ md t | inn == md -> pure t
       b' -> pure $ ModExtractT ty app inn b'
-  LetModT ty orig app inn mparam val body ->
+  LetModT ty orig app inn mparam mmotive val body ->
     (enterModality app $ nfTope val) >>= \case
       ModAppT _ md t | md == inn ->
         instantiate body t >>= nfTope
@@ -1616,7 +1616,7 @@
           _ -> panicImpossible "not modal in letmod"
         val' <- enterModality app $ nfTope b'
         body' <- underScope orig (comp app inn) bty Nothing body nfTope
-        pure (LetModT ty orig app inn mparam val' body')
+        pure (LetModT ty orig app inn mparam mmotive val' body')
 
   TypeModalT ty md inner -> TypeModalT ty md <$> (enterModality md $ nfTope inner)
   LetT _ty _orig _mparam val body -> instantiate body val >>= nfTope
@@ -1726,7 +1726,7 @@
                   Nothing      -> AppT ty <$> nfT f' <*> nfT x
         LetT _ty _orig _mparam val body ->
           instantiate body val >>= nfT
-        LetModT ty orig app inn mparam val body ->
+        LetModT ty orig app inn mparam mmotive val body ->
           (enterModality app $ whnfT val) >>= \case
             ModAppT _ md t | md == inn -> do
               val' <- enterModality md $ nfT t
@@ -1742,7 +1742,7 @@
                 _ -> panicImpossible "not modal in letmod"
               val' <- enterModality app $ nfT b'
               body' <- underScope orig (comp app inn) bty Nothing body nfT
-              pure (LetModT ty orig app inn mparam val' body')
+              pure (LetModT ty orig app inn mparam mmotive val' body')
         LambdaT ty orig _mparam body ->
           case stripTypeRestrictions (infoType ty) of
             TypeFunT _ty _orig md param mtope _ret -> do
diff --git a/src/Rzk/TypeCheck/Judgements.hs b/src/Rzk/TypeCheck/Judgements.hs
--- a/src/Rzk/TypeCheck/Judgements.hs
+++ b/src/Rzk/TypeCheck/Judgements.hs
@@ -115,7 +115,7 @@
   pure $ map snd $ sortOn fst
     [ (idx, v)
     | v <- ctxBound ctx
-    , Just (DataRole d' _ (DataConKind idx _ _)) <- [varDataRole (lookupVarInfo v ctx)]
+    , Just (DataRole d' _ (DataConKind _ idx _ _)) <- [varDataRole (lookupVarInfo v ctx)]
     , Foil.nameId d' == Foil.nameId d
     ]
 
@@ -179,7 +179,7 @@
     branchBinders c =
       let info = lookupVarInfo c ctx
           (numFields, recIdxs) = case varDataRole info of
-            Just (DataRole _ _ (DataConKind _ nf ri)) -> (nf, ri)
+            Just (DataRole _ _ (DataConKind _ _ nf ri)) -> (nf, ri)
             _                                         -> (0, [])
           fields = piBinders numParams numFields (varType info)
        in named taken (concat
@@ -549,7 +549,7 @@
         cons <- dataConstructorsOf d
         fmap concat $ forM cons $ \c ->
           case varDataRole (lookupVarInfo c ctx) of
-            Just (DataRole _ numParams (DataConKind _ numFields _)) -> do
+            Just (DataRole _ numParams (DataConKind _ _ numFields _)) -> do
               saturated <- applyPlan (Var c)
                 (replicate (numParams + numFields) Nothing)
               satTy <- typeOf saturated
@@ -1030,7 +1030,11 @@
           typecheck bodyTerm (Foil.sink ty')
         return (letT ty' orig (Just bindTy) val' body')
 
-      LetMod orig app inn annot val body -> do
+      -- Only a motive-free @let mod@ is checked here: with no motive the body may
+      -- be checked directly against the (sunk) goal. An explicit motive instead
+      -- fixes the type of the whole let, so that form falls through to the generic
+      -- branch below, which infers it and unifies the result against the goal.
+      LetMod orig app inn annot Nothing val body -> do
         val' <- performing (ActionCheckLetValue (binderName orig)) $ case annot of
           Nothing -> enterModality app $ infer val
           Just bindType -> do
@@ -1049,7 +1053,7 @@
           _ -> pure Nothing
         body' <- elaborateUnder orig (comp app inn) bindTy bindVal body $ \_binder bodyTerm ->
           typecheck bodyTerm (Foil.sink ty')
-        return (letModT ty' orig app inn (Just bindTy) val' body')
+        return (letModT ty' orig app inn (Just bindTy) Nothing val' body')
 
       Pair l r ->
         case ty' of
@@ -1122,6 +1126,18 @@
           else unifyTypes term' ty' inferredType
         return term'
 
+-- | How a match elaborates: which eliminator it targets, and — for @ind-D@ —
+-- which variable scrutinee (if any) to abstract out of the goal when building
+-- the motive. Computed once from the @into@ motive, the goal, and the
+-- scrutinee, so that the eliminator choice and the later motive construction
+-- read from the same decision instead of re-deriving it in two places.
+data MatchPlan n
+  = MatchRec
+    -- ^ @rec-D@: a non-dependent family, so the motive has no scrutinee binder.
+  | MatchInd (Maybe (Foil.Name n))
+    -- ^ @ind-D@; the name, when present, is the variable scrutinee to abstract
+    -- out of the goal.
+
 -- | Elaborate a match into an application of its datatype's induction
 -- eliminator: @ind-D params motive method₁ … methodₖ indices scrutinee@. The
 -- spine is the result — a match node never survives elaboration (see the
@@ -1146,8 +1162,24 @@
     (Var d, _) -> pure d
     _          -> issueTypeError (TypeErrorMatchScrutineeNotData scrut' scrutTy)
   elims <- dataEliminatorsOf d
-  (e, numParams) <- case elims of
-    (e, DataRole _ numParams _) : _ -> pure (e, numParams)   -- ind-D comes before rec-D
+  -- The eliminator to elaborate into: @ind-D@ when the motive genuinely
+  -- depends on the scrutinee (an @into@ motive, or a variable scrutinee
+  -- occurring in the goal); @rec-D@ otherwise. The choice matters for path
+  -- constructors: under @rec-D@ a path branch is checked against the plain
+  -- equation between the point branches, where @ind-D@ with a constant
+  -- family would demand a transport that does not reduce.
+  let plan = case (mmotive, mgoal) of
+        (Just _, _)    -> MatchInd Nothing
+        (_, Nothing)   -> MatchInd Nothing
+        (_, Just goal) -> case scrut' of
+          Var v | v `elemName` freeVarsOfTermT goal -> MatchInd (Just v)
+          _                                         -> MatchRec
+      wantedKind = case plan of
+        MatchRec   -> ElimRec
+        MatchInd{} -> ElimInd
+  (e, numParams) <- case
+      [ er | er@(_, DataRole _ _ (DataElimKind _ _ ek)) <- elims, ek == wantedKind ] of
+    (e, DataRole _ numParams _) : _ -> pure (e, numParams)
     [] -> issueTypeError (TypeErrorMatchScrutineeNotData scrut' scrutTy)
   let dargs = case collectAppSpine scrutTy of
         (_, args) -> map snd args
@@ -1160,7 +1192,7 @@
         Just x  -> x
         Nothing -> panicImpossible "a constructor entry with no name"
       conArity c = case varDataRole (lookupVarInfo c ctx) of
-        Just (DataRole _ _ (DataConKind _ numFields recIdxs)) ->
+        Just (DataRole _ _ (DataConKind _ _ numFields recIdxs)) ->
           numFields + length recIdxs
         _ -> panicImpossible "a constructor entry with no constructor role"
       conNames = map conIdent cons
@@ -1198,9 +1230,13 @@
           TypeFunT _ _ _ mty _ _ -> pure mty
           _ -> panicImpossible "an eliminator's type has no motive parameter"
         scope <- asks ctxScope
-        let mv = case scrut' of
-              Var v -> Just v
-              _     -> Nothing
+        -- Under @rec-D@ the motive type has no scrutinee binder, so there
+        -- is nothing to substitute (and the goal does not mention the
+        -- scrutinee variable anyway — that is what chose @rec-D@). The
+        -- variable to abstract is the one the plan already settled on.
+        let mv = case plan of
+              MatchInd v -> v
+              MatchRec   -> Nothing
         pure (motiveFromGoal scope motiveTy mv goal)
   atMotive <- applyPlan atParams [Just motive']
   let applyMethods t [] = pure t
@@ -1665,29 +1701,43 @@
     retAt <- instantiate ret val'
     return (letT retAt orig (Just bindTy) val' body')
 
-  LetMod orig app inn annot val body -> do
+  LetMod orig app inn annot mmotive val body -> do
     val' <- performing (ActionCheckLetValue (binderName orig)) $ case annot of
       Nothing -> enterModality app $ infer val
       Just bindType -> do
         bindType' <- infer bindType
         bindUniv <- typeOf bindType'
         enterModality app $ typecheck val (typeModalT bindUniv inn bindType')
-    bindTy <- typeOf val' >>= \case
-      o@(TypeModalT _ty md t) ->
-        if md == inn
-          then return t
-          else issueTypeError $ TypeErrorNotModal (untyped o) inn val'
+    valTy <- typeOf val'
+    bindTy <- case valTy of
+      TypeModalT _ty md t | md == inn -> return t
       o -> issueTypeError $ TypeErrorNotModal (untyped o) inn val'
     bindVal <- whnfT val' >>= \case
       ModAppT _ty _m t -> pure (Just t)
       o | isRA inn -> pure (Just (modExtractT bindTy app inn o))
       _ -> pure Nothing
-    (body', ret) <- checkUnderWith orig (comp app inn) bindTy bindVal body $ \binder bodyTerm -> do
-      body' <- infer bodyTerm
-      ret <- typeOf body'
-      pure (ScopedAST binder body', ScopedAST binder ret)
-    retAt <- instantiate ret val'
-    return (letModT retAt orig app inn (Just bindTy) val' body')
+    -- The motive is a family over the modal value, @(z :^app ⟨inn|A⟩) → U@, so its
+    -- binder stands for the whole @val@ and not for the let-bound @orig : A@; it is
+    -- left anonymous rather than reusing @orig@, which would show the wrong role in
+    -- goals and hovers. Only @U@ is supported as the codomain for now: a motive
+    -- landing in @CUBE@ or @TOPE@ cannot be written.
+    univScope <- constScope universeT
+    mmotive' <- forM mmotive $ \motive ->
+      typecheck motive (typeFunT (BinderVar Nothing) app valTy Nothing univScope)
+    case mmotive' of
+      Just motive' -> do
+        body' <- elaborateUnder orig (comp app inn) bindTy bindVal body $ \binder bodyTerm ->
+          typecheck bodyTerm
+            (appT universeT (Foil.sink motive')
+              (modAppT (Foil.sink valTy) inn (Var (Foil.nameOf binder))))
+        return (letModT (appT universeT motive' val') orig app inn (Just bindTy) mmotive' val' body')
+      Nothing -> do
+        (body', ret) <- checkUnderWith orig (comp app inn) bindTy bindVal body $ \binder bodyTerm -> do
+          body' <- infer bodyTerm
+          ret <- typeOf body'
+          pure (ScopedAST binder body', ScopedAST binder ret)
+        retAt <- instantiate ret val'
+        return (letModT retAt orig app inn (Just bindTy) Nothing val' body')
 
   Refl Nothing -> issueTypeError $ TypeErrorCannotInferBareRefl tt
   Refl (Just (x, Nothing)) -> do
diff --git a/src/Rzk/TypeCheck/MetaPrefix.hs b/src/Rzk/TypeCheck/MetaPrefix.hs
--- a/src/Rzk/TypeCheck/MetaPrefix.hs
+++ b/src/Rzk/TypeCheck/MetaPrefix.hs
@@ -222,8 +222,9 @@
               Nothing        -> manno
         inScopeWith orig Id (fromMaybe universeT valueType) (Just value) body (go pos)
 
-      LetModT _ orig _nu mu manno value body -> do
+      LetModT _ orig _nu mu manno mmotive value body -> do
         mapM_ (go typePositions) manno
+        mapM_ (go typePositions) mmotive
         go objectPositions value
         unwrapped <- case typeInfoOf value of
           Nothing        -> pure Nothing
diff --git a/src/Rzk/TypeCheck/Unify.hs b/src/Rzk/TypeCheck/Unify.hs
--- a/src/Rzk/TypeCheck/Unify.hs
+++ b/src/Rzk/TypeCheck/Unify.hs
@@ -384,9 +384,14 @@
             _ -> err
 
         LetT{} -> panicImpossible "let at the root of WHNF"
-        LetModT _ orig app inn _ val body ->
+        -- The bind annotation and the motive are both elaboration annotations: they
+        -- fix how the let is typed, but they do not contribute to its value. Two
+        -- stuck @let mod@s with the same modalities, value, and body are therefore
+        -- the same term whichever motive each was written with, so neither
+        -- annotation is compared here.
+        LetModT _ orig app inn _ _mmotive val body ->
           case actual' of
-            LetModT _ _ app' inn' _ val' body'
+            LetModT _ _ app' inn' _ _mmotive' val' body'
               | app == app', inn == inn' -> do
                 unify Nothing val val'
                 bty <- typeOf val >>= \case
diff --git a/test/typecheck/cases/happy-data-circle.expect.yaml b/test/typecheck/cases/happy-data-circle.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-circle.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - data-stage3-path-constructors
diff --git a/test/typecheck/cases/happy-data-circle.rzk b/test/typecheck/cases/happy-data-circle.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-circle.rzk
@@ -0,0 +1,61 @@
+#lang rzk-1
+
+-- The circle: one point constructor and one path constructor. The path
+-- methods refer to the point methods, so the generated eliminator types
+-- bind their methods by name (m-base, m-loop); transport is spelled
+-- through idJ, since rzk has no primitive transport.
+#data S1
+  :=
+    base
+  | loop : base =_{S1} base
+
+#check ind-S1
+  : ( C : S1 → U)
+  → ( b : C base)
+  → ( ℓ : idJ (S1, base, \ y _ → C base → C y, \ u → u, base, loop) b = b)
+  → ( x : S1)
+  → C x
+
+#check rec-S1
+  : ( C : U)
+  → ( b : C)
+  → ( ℓ : b = b)
+  → S1 → C
+
+-- ι on the point constructor is definitional
+#define rec-S1-at-base
+  ( C : U)
+  ( b : C)
+  ( ℓ : b = b)
+  : rec-S1 C b ℓ base = b
+  := refl
+
+-- the identity map, through rec and through match; the loop branch is
+-- checked against the equation the base branch determines (base = base)
+#define id-S1 (x : S1) : S1
+  := rec-S1 S1 base loop x
+
+#define id-S1' (x : S1) : S1
+  :=
+  match x
+    ( base ⇒ base
+    | loop ⇒ loop)
+
+-- β on the path constructor is propositional: one generated compute-
+-- lemma per eliminator, stating that ap/apd of the eliminator on the
+-- path equals the method
+#check compute-rec-S1-loop
+  : ( C : U)
+  → ( b : C)
+  → ( ℓ : b = b)
+  → idJ (S1, base, \ y _ → rec-S1 C b ℓ base = rec-S1 C b ℓ y, refl, base, loop) = ℓ
+
+#check compute-ind-S1-loop
+  : ( C : S1 → U)
+  → ( b : C base)
+  → ( ℓ : idJ (S1, base, \ y _ → C base → C y, \ u → u, base, loop) b = b)
+  → idJ
+      ( S1, base
+      , \ y q → idJ (S1, base, \ y' _ → C base → C y', \ u → u, y, q) (ind-S1 C b ℓ base) = ind-S1 C b ℓ y
+      , refl, base, loop)
+    = ℓ
diff --git a/test/typecheck/cases/happy-data-eliminator-reascription.expect.yaml b/test/typecheck/cases/happy-data-eliminator-reascription.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-eliminator-reascription.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - data-eliminator-reascription-clause
diff --git a/test/typecheck/cases/happy-data-eliminator-reascription.rzk b/test/typecheck/cases/happy-data-eliminator-reascription.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-eliminator-reascription.rzk
@@ -0,0 +1,24 @@
+#lang rzk-1
+
+-- An "eliminate with" re-ascription clause stores the user's spelling of a
+-- generated eliminator's type, after checking that it is definitionally
+-- equal to the canonical one (with the type former and constructors in
+-- scope). An unfolding synonym, defined before the declaration, makes the
+-- spelling differ from the canonical type syntactically:
+#define self (C : U) : U
+  := C
+
+#data bool' := false' | true'
+  eliminate with ind-bool' : (C : bool' → U) → C false' → C true' → (b : bool') → C b
+  eliminate with rec-bool' : (C : U) → self C → self C → bool' → self C
+
+-- the stored types are interchangeable with the canonical ones
+#check ind-bool' : (C : bool' → U) → C false' → C true' → (b : bool') → C b
+#check rec-bool' : (C : U) → C → C → bool' → C
+
+#define not' (b : bool') : bool'
+  := rec-bool' bool' true' false' b
+
+-- the ι-rule is untouched by re-ascription
+#define not-not-true' : not' (not' true') =_{bool'} true'
+  := refl
diff --git a/test/typecheck/cases/happy-data-hit-reascription.expect.yaml b/test/typecheck/cases/happy-data-hit-reascription.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-hit-reascription.expect.yaml
@@ -0,0 +1,5 @@
+status: ok
+warnings: []
+regression_for:
+  - data-stage3-path-constructors
+  - data-reascription-clauses
diff --git a/test/typecheck/cases/happy-data-hit-reascription.rzk b/test/typecheck/cases/happy-data-hit-reascription.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-hit-reascription.rzk
@@ -0,0 +1,65 @@
+#lang rzk-1
+
+-- The re-ascription clauses give the generated eliminators and
+-- computation rules readable spellings through a library transport/ap/apd
+-- (each definable from idJ before any declaration).
+#define transport
+  ( A : U)
+  ( C : A → U)
+  ( x y : A)
+  ( p : x =_{A} y)
+  ( u : C x)
+  : C y
+  := idJ (A, x, \ y' _ → C x → C y', \ v → v, y, p) u
+
+#define ap
+  ( A B : U)
+  ( f : A → B)
+  ( x y : A)
+  ( p : x =_{A} y)
+  : f x =_{B} f y
+  := idJ (A, x, \ y' _ → f x =_{B} f y', refl, y, p)
+
+#define apd
+  ( A : U)
+  ( C : A → U)
+  ( f : (a : A) → C a)
+  ( x y : A)
+  ( p : x =_{A} y)
+  : transport A C x y p (f x) =_{C y} f y
+  := idJ (A, x, \ y' q → transport A C x y' q (f x) =_{C y'} f y', refl, y, p)
+
+#data S1
+  :=
+    base
+  | loop : base =_{S1} base
+  eliminate with ind-S1
+    : ( C : S1 → U)
+    → ( b : C base)
+    → ( ℓ : transport S1 C base base loop b = b)
+    → ( x : S1)
+    → C x
+  compute with compute-rec-S1-loop
+    : ( C : U)
+    → ( b : C)
+    → ( ℓ : b = b)
+    → ap S1 C (rec-S1 C b ℓ) base base loop = ℓ
+  compute with compute-ind-S1-loop
+    : ( C : S1 → U)
+    → ( b : C base)
+    → ( ℓ : transport S1 C base base loop b = b)
+    → apd S1 C (ind-S1 C b ℓ) base base loop = ℓ
+
+-- the stored spellings stay interchangeable with the canonical types
+#check ind-S1
+  : ( C : S1 → U)
+  → ( b : C base)
+  → ( ℓ : idJ (S1, base, \ y _ → C base → C y, \ u → u, base, loop) b = b)
+  → ( x : S1)
+  → C x
+
+#check compute-rec-S1-loop
+  : ( C : U)
+  → ( b : C)
+  → ( ℓ : b = b)
+  → ap S1 C (rec-S1 C b ℓ) base base loop = ℓ
diff --git a/test/typecheck/cases/happy-data-interval-funext.expect.yaml b/test/typecheck/cases/happy-data-interval-funext.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-interval-funext.expect.yaml
@@ -0,0 +1,6 @@
+status: ok
+warnings: []
+regression_for:
+  - data-stage3-path-constructors
+  - hott-book-lemma-6-3-2
+  - rs17-axiom-4-6-relative-funext
diff --git a/test/typecheck/cases/happy-data-interval-funext.rzk b/test/typecheck/cases/happy-data-interval-funext.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-interval-funext.rzk
@@ -0,0 +1,60 @@
+#lang rzk-1
+
+-- Function extensionality is provable from the interval higher inductive
+-- type, following Lemma 6.3.2 of the HoTT book: a pointwise identification
+-- α makes a map A → interval → B whose two ends are f and g, and ap of its
+-- flip on seg is the identification of f with g. Note that declaring
+-- interval therefore changes the ambient theory: funext no longer needs to
+-- be assumed.
+#define ap
+  ( A B : U)
+  ( f : A → B)
+  ( x y : A)
+  ( p : x =_{A} y)
+  : f x =_{B} f y
+  := idJ (A , x , \ y' _ → f x =_{B} f y' , refl , y , p)
+
+#data interval
+  :=
+    left
+  | right
+  | seg : left =_{interval} right
+
+#def funext-via-interval
+  ( A B : U)
+  ( f g : A → B)
+  ( α : (x : A) → f x =_{B} g x)
+  : f =_{A → B} g
+  :=
+  let p : A → interval → B
+    := \ (x : A) (i : interval) →
+      match i
+        ( left ⇒ f x
+        | right ⇒ g x
+        | seg ⇒ α x) in
+  let q : interval → A → B
+    := \ (i : interval) (x : A) → p x i in
+  ap interval (A → B) q left right seg
+
+-- The same argument proves relative function extensionality for functions
+-- out of a shape, which RS17 postulate as an axiom (Axiom 4.6, weak
+-- extension extensionality; sHoTT assumes it as extext). The proof is
+-- essentially the same as for ordinary function extensionality above
+-- (Lemma 6.3.2 of the HoTT book); here in the boundary-free form.
+#def relfunext-via-interval
+  ( I : CUBE)
+  ( φ : I → TOPE)
+  ( A : (t : φ) → U)
+  ( f g : (t : φ) → A t)
+  ( α : (t : φ) → f t =_{A t} g t)
+  : f =_{(t : φ) → A t} g
+  :=
+  let p : (t : φ) → interval → A t
+    := \ (t : φ) (i : interval) →
+      match i
+        ( left ⇒ f t
+        | right ⇒ g t
+        | seg ⇒ α t) in
+  let q : interval → (t : φ) → A t
+    := \ (i : interval) (t : φ) → p t i in
+  ap interval ((t : φ) → A t) q left right seg
diff --git a/test/typecheck/cases/happy-data-prop-trunc.expect.yaml b/test/typecheck/cases/happy-data-prop-trunc.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-prop-trunc.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - data-stage3-path-constructors
diff --git a/test/typecheck/cases/happy-data-prop-trunc.rzk b/test/typecheck/cases/happy-data-prop-trunc.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-prop-trunc.rzk
@@ -0,0 +1,26 @@
+#lang rzk-1
+
+-- The propositional truncation: the path constructor's endpoints are its
+-- own recursive fields, so their images in the method types are the
+-- induction hypotheses.
+#data trunc
+  ( A : U)
+  :=
+    in-trunc (a : A)
+  | squash (x : trunc A) (y : trunc A) : x =_{trunc A} y
+
+#check ind-trunc
+  : ( A : U)
+  → ( C : trunc A → U)
+  → ( m : (a : A) → C (in-trunc A a))
+  → ( s : ( x : trunc A) → (ih : C x) → (y : trunc A) → (ih' : C y)
+        → idJ (trunc A, x, \ y' _ → C x → C y', \ u → u, y, squash A x y) ih = ih')
+  → ( z : trunc A)
+  → C z
+
+-- collapse to Unit through rec: Unit's η makes the squash method refl
+#define trunc-to-unit
+  ( A : U)
+  ( z : trunc A)
+  : Unit
+  := rec-trunc A Unit (\ _ → unit) (\ _ ihx _ ihy → refl) z
diff --git a/test/typecheck/cases/happy-data-pushout.expect.yaml b/test/typecheck/cases/happy-data-pushout.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-pushout.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+warnings: []
+regression_for:
+  - data-stage3-path-constructors
diff --git a/test/typecheck/cases/happy-data-pushout.rzk b/test/typecheck/cases/happy-data-pushout.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-data-pushout.rzk
@@ -0,0 +1,24 @@
+#lang rzk-1
+
+-- The pushout: the path constructor's endpoints apply point constructors
+-- to datatype-free terms (f c and g c), which the endpoint images leave
+-- untouched.
+#data pushout
+  ( A B C : U)
+  ( f : C → A)
+  ( g : C → B)
+  :=
+    inl (a : A)
+  | inr (b : B)
+  | glue (c : C)
+    : inl A B C f g (f c) =_{pushout A B C f g} inr A B C f g (g c)
+
+#check rec-pushout
+  : ( A B C : U)
+  → ( f : C → A)
+  → ( g : C → B)
+  → ( X : U)
+  → ( l : A → X)
+  → ( r : B → X)
+  → ( gl : (c : C) → l (f c) = r (g c))
+  → pushout A B C f g → X
diff --git a/test/typecheck/cases/happy-modal-let-into.expect.yaml b/test/typecheck/cases/happy-modal-let-into.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-modal-let-into.expect.yaml
@@ -0,0 +1,4 @@
+status: ok
+regression_for:
+  - "let-mod-into-dependent-motive"
+  - "https://github.com/rzk-lang/rzk/pull/327"
diff --git a/test/typecheck/cases/happy-modal-let-into.rzk b/test/typecheck/cases/happy-modal-let-into.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/happy-modal-let-into.rzk
@@ -0,0 +1,45 @@
+#lang rzk-1
+
+#def sharp-join-into
+  (A : U)
+  (a : _# (_# A))
+  : _# A
+  :=
+  let mod _# x_1 := a into (\ _ -> _# A) in
+  let mod _# / _# x_2 := x_1 in
+  mod _# x_2
+
+#def double-op-into
+  (A : U)
+  (x : _op (_op A))
+  : A
+  :=
+  let mod _op x_1 := x into (\ _ -> A) in
+  let mod _op / _op x_2 := x_1 in
+  x_2
+
+#def into-agrees-with-plain
+  (A : U)
+  (x : _# A)
+  : (let mod _# a := x into (\ _ -> _# A) in mod _# a) = x
+  := refl
+
+-- The dependent elimination the motive exists for: the goal is C x, while the
+-- body only proves C (mod ♭ a). Flat has no eta rule, so without the motive
+-- there is nothing identifying x with mod ♭ a and the body does not check.
+#def flat-dependent-into
+  (A :_b U)
+  (C : (_b A) -> U)
+  (c : (a :_b A) -> C (mod _b a))
+  (x : _b A)
+  : C x
+  := let mod _b a := x into C in c a
+
+-- The same, with the motive written out as a lambda rather than named.
+#def sharp-dependent-into
+  (A : U)
+  (C : (_# A) -> U)
+  (c : (a :_# A) -> C (mod _# a))
+  (x : _# A)
+  : C x
+  := let mod _# a := x into (\ z -> C z) in c a
diff --git a/test/typecheck/cases/ill-data-compute-kind.expect.yaml b/test/typecheck/cases/ill-data-compute-kind.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-compute-kind.expect.yaml
@@ -0,0 +1,8 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "eliminate with clause for compute-ind-S1-loop"
+  - "which is not an eliminator of S1"
+line: 4
+regression_for:
+  - data-reascription-clauses
diff --git a/test/typecheck/cases/ill-data-compute-kind.rzk b/test/typecheck/cases/ill-data-compute-kind.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-compute-kind.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+-- The clause kinds must match: a computation rule is not an eliminator.
+#data S1 := base | loop : base =_{S1} base
+  eliminate with compute-ind-S1-loop : U
diff --git a/test/typecheck/cases/ill-data-compute-mismatch.expect.yaml b/test/typecheck/cases/ill-data-compute-mismatch.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-compute-mismatch.expect.yaml
@@ -0,0 +1,8 @@
+status: error
+error_tag: TypeErrorReascribedTypeMismatch
+message_contains:
+  - "the re-ascribed type of compute-rec-S1-loop"
+  - "is not definitionally equal to its canonical type"
+line: 5
+regression_for:
+  - data-reascription-clauses
diff --git a/test/typecheck/cases/ill-data-compute-mismatch.rzk b/test/typecheck/cases/ill-data-compute-mismatch.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-compute-mismatch.rzk
@@ -0,0 +1,7 @@
+#lang rzk-1
+
+-- A re-ascribed computation rule must be definitionally equal to the
+-- canonical generated type; dropping the ap makes it a plain equation.
+#data S1 := base | loop : base =_{S1} base
+  compute with compute-rec-S1-loop
+    : (C : U) → (b : C) → (ℓ : b = b) → b = b
diff --git a/test/typecheck/cases/ill-data-compute-unknown.expect.yaml b/test/typecheck/cases/ill-data-compute-unknown.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-compute-unknown.expect.yaml
@@ -0,0 +1,8 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "compute with clause for compute-ind-d-c"
+  - "no path constructors, so no computation rules are generated"
+line: 5
+regression_for:
+  - data-reascription-clauses
diff --git a/test/typecheck/cases/ill-data-compute-unknown.rzk b/test/typecheck/cases/ill-data-compute-unknown.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-compute-unknown.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- A compute with clause must name a generated computation rule; a
+-- declaration without path constructors generates none.
+#data d := c
+  compute with compute-ind-d-c : U
diff --git a/test/typecheck/cases/ill-data-eliminator-clause.expect.yaml b/test/typecheck/cases/ill-data-eliminator-clause.expect.yaml
deleted file mode 100644
--- a/test/typecheck/cases/ill-data-eliminator-clause.expect.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-status: error
-error_tag: TypeErrorOther
-message_contains:
-  - "eliminator clauses are not supported yet"
-line: 5
-regression_for:
-  - data-stage1-reject-eliminator-clause
diff --git a/test/typecheck/cases/ill-data-eliminator-clause.rzk b/test/typecheck/cases/ill-data-eliminator-clause.rzk
deleted file mode 100644
--- a/test/typecheck/cases/ill-data-eliminator-clause.rzk
+++ /dev/null
@@ -1,6 +0,0 @@
-#lang rzk-1
-
--- The eliminator re-ascription clause parses (the grammar covers all
--- stages) but is not supported before the HIT stage.
-#data d := c
-  eliminator ind-d : (C : d → U) → C c → (x : d) → C x
diff --git a/test/typecheck/cases/ill-data-eliminator-duplicate.expect.yaml b/test/typecheck/cases/ill-data-eliminator-duplicate.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-eliminator-duplicate.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "duplicate re-ascription clause for ind-d"
+line: 4
+regression_for:
+  - data-eliminator-reascription-clause
diff --git a/test/typecheck/cases/ill-data-eliminator-duplicate.rzk b/test/typecheck/cases/ill-data-eliminator-duplicate.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-eliminator-duplicate.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- At most one clause per generated eliminator.
+#data d := c
+  eliminate with ind-d : (C : d → U) → C c → (x : d) → C x
+  eliminate with ind-d : (C : d → U) → C c → (x : d) → C x
diff --git a/test/typecheck/cases/ill-data-eliminator-mismatch.expect.yaml b/test/typecheck/cases/ill-data-eliminator-mismatch.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-eliminator-mismatch.expect.yaml
@@ -0,0 +1,9 @@
+status: error
+error_tag: TypeErrorReascribedTypeMismatch
+message_contains:
+  - "the re-ascribed type of ind-d"
+  - "is not definitionally equal to its canonical type"
+  - "(C : d → U) → C c → (x : d) → C x"
+line: 5
+regression_for:
+  - data-eliminator-reascription-clause
diff --git a/test/typecheck/cases/ill-data-eliminator-mismatch.rzk b/test/typecheck/cases/ill-data-eliminator-mismatch.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-eliminator-mismatch.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- A re-ascribed eliminator type must be definitionally equal to the
+-- canonical generated type; here the method for the constructor is missing.
+#data d := c
+  eliminate with ind-d : (C : d → U) → (x : d) → C x
diff --git a/test/typecheck/cases/ill-data-eliminator-unknown.expect.yaml b/test/typecheck/cases/ill-data-eliminator-unknown.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-eliminator-unknown.expect.yaml
@@ -0,0 +1,8 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "eliminate with clause for elim-d"
+  - "the eliminators are ind-d and rec-d"
+line: 4
+regression_for:
+  - data-eliminator-reascription-clause
diff --git a/test/typecheck/cases/ill-data-eliminator-unknown.rzk b/test/typecheck/cases/ill-data-eliminator-unknown.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-eliminator-unknown.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+-- An eliminate with clause must name one of the two generated eliminators.
+#data d := c
+  eliminate with elim-d : (C : d → U) → C c → (x : d) → C x
diff --git a/test/typecheck/cases/ill-data-path-endpoint.expect.yaml b/test/typecheck/cases/ill-data-path-endpoint.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-path-endpoint.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "an endpoint must be built from the declaration's constructors and the constructor's fields"
+line: 5
+regression_for:
+  - data-stage3-path-constructors
diff --git a/test/typecheck/cases/ill-data-path-endpoint.rzk b/test/typecheck/cases/ill-data-path-endpoint.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-path-endpoint.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+-- An endpoint must be built from constructors and fields, so that its
+-- image under the section being defined is syntactically computable.
+#data bad := c | p : ((\ (z : bad) → z) c) =_{bad} c
diff --git a/test/typecheck/cases/ill-data-path-higher-field.expect.yaml b/test/typecheck/cases/ill-data-path-higher-field.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-path-higher-field.expect.yaml
@@ -0,0 +1,8 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "has a field of an identity type over the declared type"
+  - "higher paths are not supported yet"
+line: 5
+regression_for:
+  - data-stage3-path-constructors
diff --git a/test/typecheck/cases/ill-data-path-higher-field.rzk b/test/typecheck/cases/ill-data-path-higher-field.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-path-higher-field.rzk
@@ -0,0 +1,7 @@
+#lang rzk-1
+
+-- A field of an identity type over the declared type would smuggle in a
+-- higher path (the 0-truncation's squash₀ shape); not supported yet.
+#data bad
+  := c
+   | sq (x : bad) (y : bad) (u : x =_{bad} y) (v : x =_{bad} y) : x =_{bad} y
diff --git a/test/typecheck/cases/ill-data-path-higher.expect.yaml b/test/typecheck/cases/ill-data-path-higher.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-path-higher.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "declares a path between paths; higher path constructors are not supported yet"
+line: 5
+regression_for:
+  - data-stage3-path-constructors
diff --git a/test/typecheck/cases/ill-data-path-higher.rzk b/test/typecheck/cases/ill-data-path-higher.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-path-higher.rzk
@@ -0,0 +1,5 @@
+#lang rzk-1
+
+-- A path between paths (an identity carrier) is a higher path
+-- constructor, which is not supported yet.
+#data bad := c | p : c =_{bad} c | q : p =_{c =_{bad} c} p
diff --git a/test/typecheck/cases/ill-data-path-indexed.expect.yaml b/test/typecheck/cases/ill-data-path-indexed.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-path-indexed.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "path constructor pth in an indexed family is not supported"
+line: 4
+regression_for:
+  - data-stage3-path-constructors
diff --git a/test/typecheck/cases/ill-data-path-indexed.rzk b/test/typecheck/cases/ill-data-path-indexed.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-path-indexed.rzk
@@ -0,0 +1,6 @@
+#lang rzk-1
+
+-- Path constructors in indexed families are not supported yet.
+#data bad (A : U) : A → U
+  := mk (a : A) : bad A a
+   | pth (a : A) : mk A a =_{bad A a} mk A a
diff --git a/test/typecheck/cases/ill-data-path-unannotated.expect.yaml b/test/typecheck/cases/ill-data-path-unannotated.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-path-unannotated.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorOther
+message_contains:
+  - "must spell out the carrier of the identification"
+line: 4
+regression_for:
+  - data-stage3-path-constructors
diff --git a/test/typecheck/cases/ill-data-path-unannotated.rzk b/test/typecheck/cases/ill-data-path-unannotated.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-data-path-unannotated.rzk
@@ -0,0 +1,4 @@
+#lang rzk-1
+
+-- A path constructor must spell out the carrier of its identification.
+#data S1 := base | loop : base = base
diff --git a/test/typecheck/cases/ill-match-missing-path-branch.expect.yaml b/test/typecheck/cases/ill-match-missing-path-branch.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-missing-path-branch.expect.yaml
@@ -0,0 +1,7 @@
+status: error
+error_tag: TypeErrorMatchMissingBranch
+message_contains:
+  - "match has no branch for constructor loop"
+line: 6
+regression_for:
+  - data-stage3-path-constructors
diff --git a/test/typecheck/cases/ill-match-missing-path-branch.rzk b/test/typecheck/cases/ill-match-missing-path-branch.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-match-missing-path-branch.rzk
@@ -0,0 +1,7 @@
+#lang rzk-1
+
+-- A match over a HIT must cover the path constructors too.
+#data S1 := base | loop : base =_{S1} base
+
+#define to-S1 (x : S1) : S1
+  := match x (base ⇒ base)
diff --git a/test/typecheck/cases/ill-modal-let-into-body.expect.yaml b/test/typecheck/cases/ill-modal-let-into-body.expect.yaml
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-modal-let-into-body.expect.yaml
@@ -0,0 +1,8 @@
+status: error
+error_tag: TypeErrorUnify
+message_contains:
+  - "cannot unify expected type"
+line: 6
+regression_for:
+  - "let-mod-into-motive-checks-body"
+  - "https://github.com/rzk-lang/rzk/pull/327"
diff --git a/test/typecheck/cases/ill-modal-let-into-body.rzk b/test/typecheck/cases/ill-modal-let-into-body.rzk
new file mode 100644
--- /dev/null
+++ b/test/typecheck/cases/ill-modal-let-into-body.rzk
@@ -0,0 +1,12 @@
+#lang rzk-1
+
+-- The body of a `let mod ... into C ...` must inhabit the motive at the
+-- introduction form, i.e. C (mod ♭ a). Here the motive is the constant
+-- family ♭ A, so the body `c a : C (mod ♭ a)` does not fit.
+#def into-body-misses-motive
+  (A :_b U)
+  (C : (_b A) -> U)
+  (c : (a :_b A) -> C (mod _b a))
+  (x : _b A)
+  : _b A
+  := let mod _b a := x into (\ _ -> _b A) in c a
