From CoindSemWhile Require Import SsrExport Trace Language Assert Semax.
From Coq Require Import Lia.

Set Implicit Arguments.
Unset Strict Implicit.
Import Prenex Implicits.

Variable x : id.
Variable tt : expr.
Axiom tt_true : forall st, is_true (tt st) = true.

Definition incr_x : expr := fun st => st x + 1.
Definition x_is_zero : assertS := fun st => st x = 0.

Lemma update_x_incr_x : forall st,
 update x (incr_x st) st x = st x + 1.
Proof. by rewrite /update Nat.eqb_refl. Qed.

Inductive eventually_x_is_n (n: nat) : trace -> Prop :=
| x_is_n_nil: forall st, st x = n -> eventually_x_is_n n (Tnil st)
| x_is_n_cons: forall st tr, st x = n -> eventually_x_is_n n (Tcons st tr)
| x_is_n_delay: forall st tr,
  eventually_x_is_n n tr -> eventually_x_is_n n (Tcons st tr).

Lemma eventually_x_is_n_setoid: forall n tr,
 eventually_x_is_n n tr -> forall tr0, bisim tr tr0 ->
 eventually_x_is_n n tr0.
Proof.
induction 1.
- move => tr0 h0. foo h0. apply x_is_n_nil => //.
- move => tr0 h0. foo h0. apply x_is_n_cons => //.
- move => tr0 h0. foo h0. apply x_is_n_delay.
  have := IHeventually_x_is_n _ H3. done.
Qed.

Definition Eventually_x_is_n (n:nat): assertT.
exists (eventually_x_is_n n).
move => tr0 h0 tr1 h1. exact: (eventually_x_is_n_setoid h0 h1).
Defined.

(*
x := 0; while true (x := x + 1)
*)
Definition s : stmt := x <- (fun _ => 0);; Swhile tt (x <- incr_x).

(* Proposition 5.2 *)
Lemma prg_spec: forall (n:nat), semax ttS s (Eventually_x_is_n n).
Proof.
move => n.
have hs0: semax ttS (x <- (fun _ => 0))
(Updt ttS x (fun _ => 0) *** [| x_is_zero |]).
* have := semax_conseq_R _ (semax_assign _ _ _). apply.
  move => tr. simpl. move => h0. exists tr. split => //.
  foo h0. destruct H as [_ h0]. foo h0. foo H1.
  apply follows_delay. apply follows_nil => //.
  exists (update x 0 x0). split => //. rewrite /update.
  have h: x =? x = true by apply Nat.eqb_refl.
  by rewrite /x_is_zero h. by apply bisim_reflexive.
have hs1 : semax x_is_zero (Swhile tt (x <- incr_x)) (Eventually_x_is_n n).
have h0 := semax_assign ttS x incr_x.
have h1 : (ttS andS eval_true tt) ->> ttS; first done.
have h2 : (Updt ttS x incr_x) =>> (Updt ttS x incr_x) *** [| ttS |].
* clear h0 h1. move => tr0 h0. exists tr0. split => //. clear h0.
  move: tr0. cofix hcoind. case. move => st0. apply follows_nil => //.
  have := mk_singleton_nil. apply. done. move => st0 tr0.
  have := follows_delay _ (hcoind tr0). apply.
have h3 := semax_conseq h1 h2 h0 => {h0 h1 h2}.
have h0 : x_is_zero ->> ttS by [].
have h1 := semax_while h0 h3 => {h0 h3}.
have h0 : ((<< x_is_zero >>) ***
 Iter (Updt ttS x incr_x *** (<< ttS >>)) *** ([|eval_false tt|])) =>>
 (Eventually_x_is_n n).
* clear h1. move => tr0 h0. move: h0 => [tr1 [h0 h1]]. move: h0 => [st0 [h0 h2]].
  foo h2. foo H1. foo h1. foo H2. simpl.
  have h1: forall n tr,
   append (iter (append (updt ttS x incr_x) (dup ttS)))
       (singleton (eval_false tt)) tr ->
   eventually_x_is_n (hd tr x + n) tr.
  * clear H1 h0 n tr'. move => n. induction n.
    - case. move => st0 _. apply x_is_n_nil. simpl. by lia.
      move => st0 tr0 _. apply x_is_n_cons. simpl. by lia.
    - move => tr0 h0. move: h0 => [tr1 [h0 h1]]. foo h0.
      foo h1. move: H1 => [st0 [h0 _]]. rewrite /eval_false in h0.
      rewrite tt_true in h0. foo h0. move: H => [tr2 [h0 h2]].
      move: h0 => [st0 [_ h0]]. foo h0. foo H2. foo h2.
      foo H0. foo H3. move: H1 => [st1 [_ h2]]. foo h2. simpl in H0.
      foo H2. foo h1. foo H4. foo H3. foo H2. simpl. apply x_is_n_delay.
      have h0 := follows_singleton H5.
      have h1: append (iter (append (updt ttS x incr_x) (dup ttS)))
       (singleton (eval_false tt)) tr'1.
      exists tr'1; split; first done.
      have := follows_setoid_R (@singleton_setoid _) H5 (bisim_symmetric h0).
      by apply. have h2 := IHn _ h1 => {h1 H5}.
      have h1: st0 x + S n = hd tr'1 x + n.
      rewrite H0. rewrite (update_x_incr_x st0). lia.
      rewrite h1 => {h1}. apply x_is_n_delay.
      have := eventually_x_is_n_setoid h2 h0. by apply.
  apply x_is_n_delay. have h2 := h1 _ _ H1 => {h1 H1}.
  foo h0. have h0: n = hd tr' x + n by rewrite H0; lia. rewrite h0 => {h0}.
  by apply h2.
have := semax_conseq_R h0 h1. by apply.
have := semax_seq hs0 hs1 => {hs0 hs1}. move => hs.
have := semax_conseq_R _ hs => {hs}. apply. move => tr0. simpl.
move => [tr1 [h0 h1]]. destruct h0 as [st0 [h0 h2]]. foo h2. foo H1.
foo h1. foo H2. by apply x_is_n_delay.
Qed.


Require Export Coq.nsatz.Nsatz Coq.QArith.QArith.

Local Open Scope Q_scope.
Notation "2" := (1+1).
Notation "3" := (1+1+1).

Ltac nsatz_get_free_variables reified_package :=
  lazymatch reified_package with (?fv, _, _) => fv end.

Ltac nsatz_get_reified_givens reified_package :=
  lazymatch reified_package with (_, ?givens, _) => givens end.

Ltac nsatz_get_reified_goal reified_package :=
  lazymatch reified_package with (_, _, ?goal) => goal end.

Ltac nsatz_compute_to_goal sugar nparams reified_goal power reified_givens :=
  nsatz_compute (PEc sugar :: PEc nparams :: PEpow reified_goal power :: reified_givens).

Delimit Scope pe_scope with pe.
Notation x := (PEX Z).
Infix "-" := PEsub : pe_scope.
Infix "*" := PEmul : pe_scope.
Infix "+" := PEadd : pe_scope.
Notation c := PEc.

Definition goal := forall x1 y1 x2 y2 x3 y3 a b : Q,
  let r :=
    (y1 ^ 2
     :: x1 ^ 3
        :: a
           :: x1
              :: b
                 :: y2 ^ 2
                    :: x2 ^ 3
                       :: x2
                          :: y3 ^ 2
                             :: x3 ^ 3
                                :: x3
                                   :: ((2 * x2 + x3) * (y3 - y2)) ^ 2
                                      :: y3 :: y2 :: y1 :: 2 ^ 2 :: (x3 - x2) ^ 2 :: 2 ^ 3 :: nil,
    (x 9 - x 10 - x 3 * x 11 - x 5)%pe
    :: (x 6 - x 7 - x 3 * x 8 - x 5)%pe :: (x 1 - x 2 - x 3 * x 4 - x 5)%pe :: nil,
    (x 12 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) *
     (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) *
     (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) *
     (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 12 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) *
     (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) *
     (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 12 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 4 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) *
     (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 12 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 8 * x 8 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 8 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 8 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 8 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 11 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 11 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 4 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 8 * x 8 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 8 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 8 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 8 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 11 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 11 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 4 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 8 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 11 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 11 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 4 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (((c 1%Z + c 1%Z) * x 8 + x 11) * (x 13 - x 14)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 14 * x 8 * x 8 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 14 * x 14 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 14 * x 14 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 14 * x 14 * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 14 * x 11 * x 11 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 14 * x 14 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 14 * x 14 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 14 * x 4 * x 4 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 14 * x 14 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 14 * x 14 * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 14 * x 15 * x 8 * x 8 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 14 * x 15 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 14 * x 15 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 14 * x 15 * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 14 * x 15 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 14 * x 15 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 14 * x 15 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 14 * x 15 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 14 * x 15 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 14 * x 15 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 15 * x 8 * x 8 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 15 * x 15 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 15 * x 15 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 15 * x 15 * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 15 * x 11 * x 11 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 15 * x 15 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 15 * x 15 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 15 * x 4 * x 4 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 15 * x 15 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 15 * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 8 * x 8 * x 8 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) +
     (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 8 * x 8 * x 8 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 8 * x 8 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 8 * x 8 * x 8 * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 8 * x 11 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 *
     x 8 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) -
     x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 8 * x 8 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 8 * x 8 * x 8 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 8 * x 8 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 8 * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 11 * x 11 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 11 * x 11 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 *
     x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 11 * x 4 *
     x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) -
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 *
     x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 8 * x 8 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 8 * x 11 * x 11 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 11 *
     x 11 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) -
     x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 8 * x 11 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 11 * x 11 * x 4 *
     x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) -
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 11 *
     x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 8 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 8 * x 11 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 8 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 8 * x 4 * x 4 * x 4 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 8 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) -
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 4 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 * x 11 * x 11 *
     x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) +
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 * x 11 * x 11 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 11 * x 11 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 11 * x 11 * x 11 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 11 * x 11 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 * x 11 *
     (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) *
     (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 11 * x 11 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 * x 4 *
     (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) *
     (x 14 - x 15) -
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * x 11 * x 4 * x 4 * x 4 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     x 11 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) -
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 * x 4 * x 4 *
     (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) *
     (x 14 - x 15) -
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 4 * x 4 * x 4 * x 4 * x 4 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * x 4 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 4 * x 4 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 8 * x 8 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 *
     x 8 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) -
     x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     x 8 * x 8 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 8 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 11 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z))) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     x 8 * x 8 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 4 * x 4 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 *
     x 11 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z))) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     x 8 * x 11 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * x 8 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 *
     x 11 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + x 16)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 *
     x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
     (x 13 - x 14) * x 8 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
     (x 13 - x 14) * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * x 11 * x 11 * x 11 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     x 11 * x 11 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 11 * x 11 * x 11 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
     (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 11 * x 11 * x 4 * x 4 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * x 11 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
     (x 13 - x 14) * x 11 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
     (x 13 - x 14) * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 4 * x 4 * x 4 * x 4 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
     (x 13 - x 14) * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 4 * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 14 * x 8 * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 14 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 14 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 14 * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 14 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 14 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 14 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 14 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 14 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 14 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) *
     (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 15 * x 8 * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 15 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 15 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 15 * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 15 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 15 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 15 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 15 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 15 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 15 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) *
     (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 8 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 8 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 8 *
     x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 8 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + c 1%Z) * (c 1%Z + (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) *
     (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
     x 8 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 8 *
     x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
     (x 14 - x 15) +
     (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 8 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * (x 13 - x 14) * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * (x 13 - x 14) * x 11 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
     (c 1%Z + (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 11 *
     x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
     (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 11 * x 11 * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 11 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
     x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * (x 13 - x 14) * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
     (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 4 * x 4 * x 4 *
     (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) -
     (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
     (x 13 - x 14) * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
     x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 4 * (x 8 - x 4) *
     (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
     (x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 15 * x 8 * x 8 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 15 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 15 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 15 * x 11 * x 11 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 15 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 15 * x 15 * x 4 * x 4 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 8 * x 8 * x 13 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 8 * x 8 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 8 * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 15 * x 8 * x 11 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 15 * x 8 * x 11 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 15 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 15 * x 8 * x 4 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 15 * x 8 * x 4 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 15 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 11 * x 11 * x 13 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 11 * x 11 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 15 * x 11 * x 4 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 15 * x 11 * x 4 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 15 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 4 * x 4 * x 13 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 4 * x 4 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 15 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 8 * x 8 * x 8 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) +
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 8 * x 8 * x 11 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 8 * x 8 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 8 * x 8 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 8 * x 8 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 *
      x 8 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) -
      x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 8 * x 8 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 8 * x 4 * x 4 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 *
      x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 8 * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 8 * x 11 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 11 * x 11 *
      x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 11 * x 11 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 11 * x 4 * x 4 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z))) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 8 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 *
      x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 4 * x 4 * x 4 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 4 * x 4 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 * x 13 * x 13 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 8 * x 13 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 8 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 8 *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 8 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 8 * x 11 * x 11 * x 11 * x 11 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 8 * x 11 * x 11 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 11 * x 11 * x 4 *
      x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) -
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 11 *
      x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 11 *
      x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z))) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 11 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (c 1%Z + (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 8 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 11 * x 13 * x 13 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 8 * x 11 * x 13 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 8 * x 11 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 11 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 8 * x 11 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 4 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 8 * x 4 *
      x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 4 * x 13 * x 13 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 8 * x 4 * x 13 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 8 * x 4 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 8 * x 4 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 8 * x 4 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 * x 11 * x 11 *
      x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) -
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 * x 11 * x 11 * x 4 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 * x 11 * x 11 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 11 * x 11 * x 11 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 * x 11 *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) *
      (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 11 * x 11 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 * x 4 * x 4 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) +
      (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 11 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 * x 13 * x 13 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 11 * x 11 * x 13 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 11 * x 11 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 * x 11 *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 11 * x 11 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 11 * x 4 * x 4 * x 4 * x 4 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 11 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 11 *
      x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 11 * x 4 * x 13 * x 13 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 11 * x 4 * x 13 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 11 * x 4 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 11 * x 4 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      x 11 * x 4 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 4 * x 4 * x 4 * x 4 * x 4 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) -
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 4 * x 4 * x 4 * x 4 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 4 * x 4 * x 13 * x 13 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 4 * x 4 * x 13 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 4 * x 4 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * x 4 * x 4 *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * x 4 * x 4 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 15 * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 15 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 15 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 8 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 8 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 11 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 11 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 4 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 4 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 8 * x 8 * x 8 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 8 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 8 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 8 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 *
      x 8 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 *
      x 8 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 11 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 *
      x 11 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + x 16)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 *
      x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) -
      x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (c 1%Z + x 18) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 13 - x 14) * (x 13 - x 14) * x 8 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * ((c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z)) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 8 *
      x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) *
      (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 13 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 13 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * x 11 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * x 11 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (c 1%Z + x 16) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 13 - x 14) * (x 13 - x 14) * x 11 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
      x 18 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * x 13 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * x 13 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 4 * x 4 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 4 * x 4 * x 4 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) *
      (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * x 4 * x 4 * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 4 * x 13 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 4 * x 13 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 4 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 4 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) +
      x 16 * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * x 4 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 15 * x 15 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * x 15 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 8 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) +
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 11 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) +
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * (x 13 - x 14) * x 8 * x 8 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) -
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 11 * x 11 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * x 8 * x 11 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * (x 13 - x 14) * x 8 * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) *
      (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 8 * x 4 * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * (x 13 - x 14) * x 8 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) -
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 11 * x 11 * x 11 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) -
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 11 * x 11 * x 4 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) +
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 11 * x 11 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) +
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 11 * x 4 * x 4 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * x 11 * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 11 * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 4 * x 4 * x 4 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) -
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * (x 13 - x 14) * x 4 * x 4 * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) +
      (c 1%Z + c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * (x 13 - x 14) * x 4 * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * x 13 * x 13 *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * x 13 * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) +
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * x 13 * (x 8 - x 4) * (x 8 - x 4) * (x 8 - x 4) * (x 14 - x 15) *
      (x 14 - x 15) * (x 14 - x 15) +
      x 17 * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) *
      (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) * (x 8 - x 4) *
      (x 8 - x 4) * (x 8 - x 4) -
      (c 1%Z + c 1%Z) * (x 11 - x 8) * (x 11 - x 8) * (x 13 - x 14) * (x 13 - x 14) * (x 13 - x 14) *
      (x 13 - x 14) * (((c 1%Z + c 1%Z) * x 4 + x 8) * (x 14 - x 15)) * (x 8 - x 4) *
      (x 8 - x 4) * (x 14 - x 15) * (x 14 - x 15) * (x 14 - x 15)))%pe) in
  False.

Goal goal.
Proof.
  cbv delta [goal]; intros *; intro r.
  Time let reified_package := (eval cbv delta [r] in r) in
       clear r;
         let power := constr:(3%nat) in
         let power_N := (eval compute in (BinNat.N.of_nat power)) in
         let sugar := constr:(BinInt.Z0) in
         let power := power_N in
         let domain := constr:(_:Integral_domain.Integral_domain (ring_eq:=Qeq)) in
         let nparams := constr:(BinInt.Zneg BinPos.xH) in (* some symbols can be "parameters", treated as coefficients *)
         lazymatch type of domain with
         | @Integral_domain.Integral_domain ?F ?zero _ _ _ _ _ ?eq ?Fops ?FRing ?FCring =>
           let fv := nsatz_get_free_variables reified_package in
           let interp := constr:(@Nsatz.PEevalR _ _ _ _ _ _ _ _ Fops fv) in
           let reified_givens := nsatz_get_reified_givens reified_package in
           let reified_goal := nsatz_get_reified_goal reified_package in
           time nsatz_compute_to_goal sugar nparams reified_goal power reified_givens
         end. (* Finished failing transaction in 3.364 secs (4.669u,0.s) (failure)

Stack overflow.
computation without sugar
 *)


(*

   Benedikt Ahrens and Régis Spadotti

   Terminal semantics for codata types in intensional Martin-Löf type theory

   http://arxiv.org/abs/1401.1053

*)

(*

  Content of this file:

  - definition of pushforward of comodules along a comonad morphism
  - definition of comodule morphism induced by a comonad morphism
  - commutativity of pushforward with precomposition w. product

*)

Require Import Category.RComonad.
Require Import Category.RComod.
Require Import Category.RComonadWithCut.
Require Import Theory.Category.
Require Import Theory.Isomorphism.
Require Import Theory.Functor.
Require Import Theory.RelativeComonad.
Require Import Theory.RelativeComonadWithCut.
Require Import Theory.Comodule.
Require Import Theory.Product.
Require Import Theory.ProductPreservingFunctor.
Require Import Theory.PrecompositionWithProduct.

Generalizable All Variables.

(*------------------------------------------------------------------------------
  -- ＰＵＳＨＦＯＲＷＡＲＤ  ＣＯＭＯＤＵＬＥ
  ----------------------------------------------------------------------------*)
(** * Pushforward comodule **)

(** ** Definition **)
Section Pushforward_construction.

  Context `{F : Functor 𝒞 𝒟} {T S : RelativeComonad F}
           (τ : T ⇒ S) `(M : Comodule T ℰ).

  Program Definition pushforward : Comodule S ℰ :=
    Comodule.make  ⦃ M        ≔ M
                   ; mcobind  ≔ λ C D ∙ λ f ↦ M⋅mcobind (f ∘ τ(C)) ⦄.
  Next Obligation. (* mcobind_cong *)
    solve_proper.
  Qed.
  Next Obligation. (* mcobind_counit *)
    rewrite <- τ_counit. now rewrite mcobind_counit.
  Qed.
  Next Obligation. (* mcobind_mcobind *)
    now rewrite compose_assoc,
                <- τ_commutes,
                mcobind_mcobind,
                <- compose_assoc.
  Qed.

End Pushforward_construction.

(*------------------------------------------------------------------------------
  -- ＦＵNＣＴＯＲＩＡＬＩＴＹ
  ----------------------------------------------------------------------------*)
(** ** Functoriality of pushforward **)

Section Functoriality.

  Context `{F : Functor 𝒞 𝒟} {T S : RelativeComonad F} {ℰ : Category} {M N : Comodule S ℰ}
          (τ : S ⇒ T) (α : M ⇒ N).

  Infix "⁎" := pushforward (at level 0).

  Program Definition pushforward_mor : ‵ τ⁎M ⇒ τ⁎N ′ :=
    Comodule.make ⦃ α ≔ α ⦄.
  Next Obligation. (* α_commutes *)
    now rewrite α_commutes.
  Qed.

End Functoriality.

Program Definition Pushforward
             `{F : Functor 𝒞 𝒟} {T S : RelativeComonad F} (τ : T ⇒ S) {ℰ} : Functor (𝑹𝑪𝒐𝒎𝒐𝒅 T ℰ) (𝑹𝑪𝒐𝒎𝒐𝒅 S ℰ) :=
  Functor.make  ⦃ F    ≔ pushforward τ
                ; map  ≔ λ A B ∙ λ f ↦ pushforward_mor τ f ⦄.
Next Obligation.
  intros f g eq_fg x. simpl. now apply eq_fg.
Qed.
Next Obligation.
  reflexivity.
Qed.
Next Obligation.
  reflexivity.
Qed.

Notation "τ ⁎" := (Pushforward τ) (at level 0).

(** ** Tautological comodule **)
Section tautological_comodule.

  Context `{F : Functor 𝒞 𝒟} (T : RelativeComonad F).

  Program Definition tcomod : Comodule T 𝒟 :=
    Comodule.make  ⦃ M        ≔ T
                   ; mcobind  ≔ λ C D ∙ T⋅cobind ⦄.
  (** mcobind-counit *)
  Next Obligation.
    now rewrite cobind_counit.
  Qed.
  (** mcobind-mcobind *)
  Next Obligation.
    now rewrite cobind_cobind.
  Qed.

End tautological_comodule.

Local Coercion tcomod : RelativeComonad >-> Comodule.
Notation "[ T ]" := (tcomod T) (only parsing).

(** ** Induced morphism **)

Section induced_morphism.

  Context `{F : Functor 𝒞 𝒟} {T S : RelativeComonad F}
          (τ : T ⇒ S).

  Program Definition induced_morphism : ‵ τ⁎T ⇒ S ′ :=
    Comodule.make ⦃ α ≔ λ C ∙ τ(C) ⦄.
  (** α-commutes **)
  Next Obligation.
    now rewrite τ_commutes.
  Qed.

End induced_morphism.

Notation "⟨ τ ⟩" := (induced_morphism τ) (at level 0).

Section Commutes.

  Context `{BinaryProduct 𝒞} `{BinaryProduct 𝒟} {F : Functor 𝒞 𝒟}
          {E : 𝒞} `{!ProductPreservingFunctor F} {T S : RelativeComonadWithCut F E}
          {τ : T ⇒ S} `{M : Comodule T ℰ}.

  Program Definition Φ : ‵ τ⁎(M[E×─]) ⇒ (τ⁎M)[E×─] ′ :=
    Comodule.make ⦃ α ≔ λ X ∙ id[M (E × X)] ⦄.
  Next Obligation.
    rewrite left_id, right_id.
    apply Π.cong.
    repeat rewrite compose_assoc.
    apply Π₂.cong; [ reflexivity |].
    rewrite ∘-×; apply Π₂.cong.
    rewrite compose_assoc; apply Π₂.cong; [ reflexivity |].
    apply τ_counit.
    rewrite compose_assoc. apply Π₂.cong; [ reflexivity |].
    symmetry. apply τ_cut.
  Qed.

End Commutes.