source: git/Singular/LIB/schreyer.lib @ a2239c

spielwiese
Last change on this file since a2239c was a2239c, checked in by Oleksandr Motsak <motsak@…>, 9 years ago
Documentation for schreyer.lib
  • Property mode set to 100644
File size: 225.2 KB
Line 
1///////////////////////////////////////////////////////////////////////////
2version="version schreyer.lib 4.0.0.0 Jun_2013 "; // $Id$
3category="General purpose";
4info="
5LIBRARY: schreyer.lib     Schreyer resolution computations and helpers for @code{derham.lib}
6AUTHOR:  Oleksandr Motsak <U@D>, where U={motsak}, D={mathematik.uni-kl.de}
7KEYWORDS: Schreyer ordering; Schreyer resolution; syzygy
8OVERVIEW:
9@* The library contains several procedures for computing a/part of Schreyer resoltion (cf. [SFO]),
10   and some helpers for @code{derham.lib} (which requires resolutions over the homogenized Weyl algebra) for that purpose.
11@* The input for any resolution computation is a set of vectors @code{M} in form of a module over some basering @code{R}.
12   The helpers works both in the commutative and non-commutative setting (cf. [MO]), that is the ring @code{R} may be non-commutative,
13   in which case the ring ordering over it must be global. They produce/work with partial Schreyer resolutions of @code{(R^rank(M))/M}
14   in form of a specially constructed ring (endowed with a special ring ordering that will be extended in the
15   course of a resolution computation) containing a list of modules @code{RES} and a module @code{MRES}:
16@* @code{RES}: the list of modules contains the images of maps (also called syzygy modules) substituting the
17     computed beginning of a Schreyer resolution, that is, each syzygy module is given by a Groebner basis
18     with respect to the corresponding Schreyer ordering.
19@* @code{RES}: the list of modules which starts with a zero map given by @code{rank(M)} zero generators indicating that the image of
20     the first differential map is zero. The second map @code{RES[2]} is given by @code{M}, which indicates that
21     the resolution of @code{(R^rank(M))/M} is being computed.
22@* @code{MRES}: the module is a direct sum of modules from @code{RES} and thus comprises all computed differentials.
23@* Syzygies are shifted so that @code{gen(i)} is mapped to @code{MRES[i]} under the differential map.
24NOTE:
25@* Here, we call a free resolution a Schreyer resolution if each syzygy module is given by a Groebner basis
26     with respect to the corresponding Schreyer ordering.
27@* A Schreyer resolution can be much bigger than a minimal resolution of the same module, but may be easier to construct.
28@* The Schreyer ordering succesively extends the starting module ordering on @code{M} (defined in Singular by the basering @code{R})
29     and is extended to higher syzygies using the following definition:
30@*        a < b if and only if (d(a) < d(b)) OR ( (d(a) = d(b) AND (comp(a) < comp(b)) ),
31@* where @code{d(a)} is the image of an under the differential (given by @code{MRES}),
32     and @code{comp(a)} is the module component, for any module terms @code{a} and @code{b} from the same higher syzygy module.
33NOTE:
34@* most comutations require the dynamic or built-in module @code{syzextra}, which will be auto-leaded on demand.
35PROCEDURES:
36  Sres(M,len)     helper for computing Schreyer resolution of module M of maximal length len
37  Ssyz(M)         helper for computing Schreyer resolution of module M of length 1
38  Scontinue(len)  helper for extending currently active resolution by (at most) len syszygies
39  s_res(M, len)   compute Schreyer resolution of module M of maximal length len via LiftTree method from [BMSS]
40REFERENCES:
41@*
42[BMSS] Burcin, E., Motsak, O., Schreyer, F.-O., Steenpass, A.: NEW ALGORITHMS TO COMPUTE SYZYGIES, 2014.
43@*
44[SFO]  Schreyer, F.O.: Die Berechnung von Syzygien mit dem verallgemeinerten Weierstrassschen Divisionssatz,
45       Master's thesis, Univ. Hamburg, 1980.
46@*
47[MO]   Motsak, O.: Non-commutative Computer Algebra with applications: Graded commutative algebra and related
48       structures in Singular with applications, Ph.D. thesis, TU Kaiserslautern, 2010.
49";
50
51
52static proc prepareSyz( module I, list # )
53{
54  int i;
55  int k = 0;
56  int r = nrows(I);
57  int c = ncols(I);
58
59
60  if( size(#) > 0 )
61  {
62    if( typeof(#[1]) == "int" || typeof(#[1]) == "bigint" )
63    {
64      k = #[1];
65    }
66  }
67
68  if( k < r )
69  {
70    "// *** Wrong k: ", k, " < nrows: ", r, " => setting k = r = ", r;
71    k = r;
72  }
73
74//   "k: ", k;  "c: ", c;   "I: ", I;
75
76  for( i = c; i > 0; i-- )
77  {
78    I[i] = I[i] + gen(k + i);
79  }
80
81//  DetailedPrint(I);
82
83  return(I);
84}
85
86static proc separateSyzGB( module J, int c )
87{
88  module II, G; vector v; int i;
89
90  J = simplify(J, 2);
91
92  for( i = ncols(J); i > 0; i-- )
93  {
94    v = J[i];
95    if( leadcomp(v) > c )
96    {
97      II[i] = v;
98    } else
99    {
100      G[i] = v; // leave only gen(i): i <= c
101    }
102  }
103
104  II = simplify(II, 2);
105  G = simplify(G, 2);
106
107  return (list(G, II));
108}
109
110static proc splitSyzGB( module J, int c )
111{
112  module JJ; vector v, vv; int i;
113
114  for( i = ncols(J); i > 0; i-- )
115  {
116    v = J[i];
117
118    vv = 0;
119   
120    while( leadcomp(v) <= c )
121    {
122      vv = vv + lead(v);
123      v  = v  - lead(v);
124    }
125
126    J[i] = vv;
127    JJ[i] = v;
128  }
129
130  J = simplify(J, 2);
131  JJ = simplify(JJ, 2);
132
133  return (list(J, JJ));
134}
135
136
137static proc Sinit(module M)
138{
139  def @save = basering;
140 
141  int @DEBUG = 0; // !system("with", "ndebug");
142  if( @DEBUG )
143  {
144    "Sinit::Input";
145    type(M);
146//    DetailedPrint(M);
147    attrib(M);
148  }
149
150  int @RANK = nrows(M); int @SIZE = ncols(M);
151
152  int @IS_A_SB = attrib(M, "isSB"); // ??? only if all weights were zero?!
153
154  if( !@IS_A_SB )
155  {
156    M = std(M); // this should be faster than computing std in S (later on)
157  }
158
159  def S = MakeInducedSchreyerOrdering(1); // 1 puts history terms to the back
160  // TODO: NOTE: +1 causes trouble to Singular interpreter!!!???
161  setring S; // a new ring with a Schreyer ordering
162
163  if( @DEBUG )
164  {
165    "Sinit::StartingISRing";
166    basering;
167//    DetailedPrint(basering);
168  }
169
170  // Setup the leading syzygy^{-1} module to zero:
171  module Z = 0; Z[@RANK] = 0; attrib(Z, "isHomog", intvec(0)); 
172
173  module MRES = Z;
174 
175  list RES; RES[1] = Z;
176
177  module F = freemodule(@RANK);
178  intvec @V = deg(F[1..@RANK]);
179 
180  module M = imap(@save, M);
181 
182  attrib(M, "isHomog", @V);
183  attrib(M, "isSB", 1);
184
185 
186  if( @DEBUG )
187  {
188    "Sinit::SB_Input: ";
189    type(M);
190    attrib(M);
191    attrib(M, "isHomog");
192//    DetailedPrint(M);
193  }
194
195  if( @DEBUG )
196  {
197    // 0^th syz. property
198    if( size(module(transpose( transpose(M) * transpose(MRES) ))) > 0 )
199    {
200      transpose( transpose(M) * transpose(MRES) );
201      "ERROR: transpose( transpose(M) * transpose(MRES) ) != 0!!!";
202      m2_end(666);
203    }
204  }
205
206  RES[size(RES)+1] = M; // list of all syzygy modules
207  MRES = MRES, M;
208
209  attrib(MRES, "isHomog", @V); 
210
211  attrib(S, "InducionLeads", lead(M));
212  attrib(S, "InducionStart", @RANK); 
213 
214  if( @DEBUG )
215  {
216    "Sinit::MRES";
217    DetailedPrint(MRES);
218    attrib(MRES, "isHomog");
219    attrib(S);
220  }
221
222  export RES;
223  export MRES;
224  return (S);
225}
226
227static proc Sstep()
228{
229  int @DEBUG = 0; // !system("with", "ndebug");
230
231  if( @DEBUG )
232  {
233    "Sstep::NextInducedRing";
234    DetailedPrint(basering);
235
236    attrib(basering, "InducionLeads");
237    attrib(basering, "InducionStart");
238
239    GetInducedData();
240  }
241
242  // syzygy step:
243
244/*
245  // is initial weights are all zeroes!
246  def L =  lead(M);
247  intvec @V = deg(M[1..ncols(M)]);  @W;  @V;  @W = @V;  attrib(L, "isHomog", @W); 
248  SetInducedReferrence(L, @RANK, 0);
249*/
250
251//  def L =  lead(MRES);
252//  @W = @W, @V;
253//  attrib(L, "isHomog", @W); 
254
255
256  // General setting:
257//  SetInducedReferrence(MRES, 0, 0); // limit: 0!
258  int @l = size(RES);
259
260  module M = RES[@l];
261
262  module L = attrib(basering, "InducionLeads");
263  int limit = attrib(basering, "InducionStart");
264
265//  L;  limit;
266 
267  int @RANK = ncols(MRES) - ncols(M); // nrows(M); // what if M is zero?!
268
269/*
270  if( @RANK !=  nrows(M) )
271  {
272    type(MRES);
273    @RANK;
274    type(M);
275    pause();
276  }
277*/
278 
279  intvec @W = attrib(M, "isHomog");
280  intvec @V = deg(M[1..ncols(M)]);
281  @V = @W, @V;
282   
283  if( @DEBUG )
284  {
285    "Sstep::NextInput: ";
286    M;
287    deg(M[1..ncols(M)]); // no use of @W :(?
288    @RANK;   
289    DetailedPrint(MRES);
290    attrib(MRES, "isHomog"); @W;
291    deg(MRES[1..ncols(MRES)]);
292  }
293
294 
295     
296  SetInducedReferrence(L, limit, 0);
297 
298  def K = prepareSyz(M, @RANK);
299//  K;
300 
301//   attrib(K, "isHomog", @V);   DetailedPrint(K, 1000);
302
303//  pause();
304 
305  K = idPrepare(K, @RANK); // std(K); // ?
306  K = simplify(K, 2);
307
308//  K;
309
310  module N = separateSyzGB(K, @RANK)[2]; // 1^st syz. module: vectors which start in lower part (comp >= @RANK)
311
312// "N_0: "; N; DetailedPrint(N, 10);
313
314//  basering; print(@V); type(N);
315//  attrib(N, "isHomog", @V);  // TODO: fix "wrong weights"!!!? deg is wrong :(((
316  N = std(N);
317  attrib(N, "isHomog", @V);
318
319//  N;
320 
321  if( @DEBUG )
322  {
323    if( size(N) > 0 )
324    {
325      // next syz. property
326      if( size(module(transpose( transpose(N) * transpose(MRES) ))) > 0 )
327      {
328        MRES;
329
330        "N: "; N; DetailedPrint(N, 10);
331
332        "K:"; K; DetailedPrint(K, 10);
333
334        "RANKS: ", @RANK;
335
336        "ERROR: transpose( transpose(N) * transpose(MRES) ) != 0!!!";
337        transpose( transpose(N) * transpose(MRES) );
338
339        "transpose(N) * transpose(MRES): ";
340        transpose(N) * transpose(MRES);
341        DetailedPrint(module(_), 2);
342        m2_end(666);
343      }
344    }
345  }
346 
347  RES[@l + 1] = N; // list of all syzygy modules
348 
349  MRES = MRES, N;
350  attrib(MRES, "isHomog", @V);
351
352
353  L = L, lead(N);
354  attrib(basering, "InducionLeads", L);
355
356  if( @DEBUG )
357  {
358    "Sstep::NextSyzOutput: ";
359    DetailedPrint(N);
360    attrib(N, "isHomog");
361  }
362
363}
364
365proc Scontinue(int l)
366"USAGE:  Scontinue(int len)
367RETURN:  nothing, instead it changes the currently active resolution
368PURPOSE: extends the currently active resolution by at most len syzygies
369ASSUME:  must be used within a ring returned by Sres or Ssyz
370EXAMPLE: example Scontinue; shows an example
371"
372{
373  def data = GetInducedData();
374           
375  if( (!defined(RES)) || (!defined(MRES)) || (typeof(data) != "list") || (size(data) != 2) )
376  {
377    ERROR("Sorry, but basering does not seem to be returned by Sres or Ssyz");
378  }
379  for (;  (l != 0) && (size(RES[size(RES)]) > 0); l-- )
380  {
381    Sstep();
382  }
383}
384example
385{ "EXAMPLE:"; echo = 2;
386  ring r;
387  module M = maxideal(1); M;
388  def S = Ssyz(M); setring S; S;
389  "Only the first syzygy: ";
390  RES; MRES;
391  "More syzygies: ";
392  Scontinue(10);
393  RES; MRES;
394}
395
396proc Ssyz(module M)
397"USAGE:  Ssyz(module M)
398RETURN:  ring, containing a Schreyer resolution
399PURPOSE: computes a Schreyer resolution of M of length 1 (see the library overview)
400SEE ALSO: Sres
401EXAMPLE: example Ssyz; shows an example
402"
403{
404  def S = Sinit(M); setring S;
405 
406  Sstep(); // NOTE: what if M is zero?
407
408  return (S);
409}
410example
411{ "EXAMPLE:"; echo = 2;
412  ring r;
413  module M = maxideal(1); M;
414  def S = Ssyz(M); setring S; S;
415  "Only the first syzygy: ";
416  RES;
417  MRES; // Note gen(i)
418  kill S;
419  setring r; kill M;
420
421  module M = 0;
422  def S = Ssyz(M); setring S; S;
423  "Only the first syzygy: ";
424  RES;
425  MRES;
426}
427
428proc Sres(module M, int l)
429"USAGE:  Sres(module M, int len)
430RETURN:  ring, containing a Schreyer resolution
431PURPOSE: computes a Schreyer resolution of M of length at most len (see the library overview)
432NOTE:    If given len is zero then nvars(basering) + 1 is used instead.
433SEE ALSO: Ssyz
434EXAMPLE: example Sres; shows an example
435"
436{
437  def S = Sinit(M); setring S;
438
439  if (l == 0)
440  {
441    l = nvars(basering) + 1; // not really an estimate...?!
442  }
443 
444  Sstep(); l = l - 1;
445 
446  Scontinue(l);
447 
448  return (S);
449}
450example
451{ "EXAMPLE:"; echo = 2;
452  ring r;
453  module M = maxideal(1); M;
454  def S = Sres(M, 0); setring S; S;
455  RES;
456  MRES;
457  kill S;
458  setring r; kill M;
459
460  def A = nc_algebra(-1,0); setring A;
461  ideal Q = var(1)^2, var(2)^2, var(3)^2;
462  qring SCA = twostd(Q);
463  basering;
464
465  module M = maxideal(1);
466  def S = Sres(M, 2); setring S; S;
467  RES;
468  MRES;
469}
470
471
472
473// ================================================================== //
474
475
476LIB "general.lib"; // for sort
477
478static proc MySort(def M)
479" Sorts the given ideal or module wrt >_{(c, ds)}  (.<.<.<.<) "
480{
481  if( typeof( attrib(basering, "DEBUG") ) == "int" )
482  {
483    int @DEBUG = attrib(basering, "DEBUG");
484  } else
485  {
486    int @DEBUG = 0; // !system("with", "ndebug");
487  }
488
489  if( typeof( attrib(basering, "KERCHECK") ) == "int" )
490  {
491    int @KERCHECK = attrib(basering, "KERCHECK");
492  } else
493  {
494    int @KERCHECK = @DEBUG;
495  }
496
497
498  if( @DEBUG )
499  {
500    "MySort:: Input: "; M;
501  }
502
503  def @N = M;
504 
505  if( size(M) > 0 )
506  {
507    Sort_c_ds(@N);
508
509    if( @KERCHECK )
510    {
511      def iv = sort(lead(M), "c,ds", 1)[2]; // ,1 => reversed! // TODO: not needed?
512      def @M = M;
513      @M = M[iv];
514
515      // 0^th syz. property
516      if( (size(@N) + size(@M)) > 0 )
517      {
518        if( size(module( matrix(module(matrix(@N))) - matrix(module(matrix(@M))) )) > 0 )
519        {
520          "ERROR: MySort: wrong sorting in 'MySort': @N != @M!!!";
521         
522          "@M:"; @M;
523          "@N:"; @N;
524
525          "module( matrix(module(matrix(@N))) - matrix(module(matrix(@M))) ): ";
526          module( matrix(module(matrix(@N))) - matrix(module(matrix(@M))) );
527
528          "ERROR: MySort: wrong sorting in 'MySort': @N != @M!!!";
529          m2_end(666);
530        }
531      }
532    }
533  }
534
535  if( @DEBUG )
536  {
537    "MySort:: Ouput: "; @N;
538  }
539 
540  return (@N);
541}
542
543
544static proc SSinit(def M)
545{
546//  rtimer, "***TIMESNAP0 for SSinit: on level: [",-1,"] :: t: ", timer, ", r: ", rtimer;
547  if( (typeof(M) != "module") && (typeof(M) != "ideal") )
548  {
549    ERROR("Sorry: need an ideal or a module for input");
550  }
551
552  // TODO! DONE?
553  def @save = basering;
554 
555  int @DEBUG = 0; // !system("with", "ndebug");
556
557  if( typeof( attrib(SSinit, "DEBUG") ) == "int" )
558  {
559    @DEBUG = attrib(SSinit, "DEBUG");
560  }
561
562  int @SYZCHECK = 0; // @DEBUG;
563
564  if( typeof( attrib(SSinit, "SYZCHECK") ) == "int" )
565  {
566    @SYZCHECK = attrib(SSinit, "SYZCHECK");
567  }
568
569  int @KERCHECK = 0; // @DEBUG;
570
571  if( typeof( attrib(SSinit, "KERCHECK") ) == "int" )
572  {
573    @KERCHECK = attrib(SSinit, "KERCHECK");
574  }
575
576  int @IGNORETAILS = 0;
577
578  if( typeof( attrib(SSinit, "IGNORETAILS") ) == "int" )
579  {
580    @IGNORETAILS = attrib(SSinit, "IGNORETAILS");
581  }
582
583  int @TREEOUTPUT = 0;
584
585  if( typeof( attrib(SSinit, "TREEOUTPUT") ) == "int" )
586  {
587    @TREEOUTPUT = attrib(SSinit, "TREEOUTPUT");
588  }
589
590 
591  if( @DEBUG )
592  {
593    "SSinit::Input";
594    type(M);
595//    DetailedPrint(M);
596    attrib(M);
597  }
598
599  int @IS_A_SB = attrib(M, "isSB"); // ??? only if all weights were zero?!
600
601  if( !@IS_A_SB )
602  {
603    def opts = option(get);
604    option(redSB); option(redTail);
605    M = std(M);
606    option(set, opts);
607    kill opts;
608  }//  else
609  // {
610    M = simplify(M, 1 + 2 + 4 + 32); // interreduce?
611  // }
612
613  if( @IGNORETAILS )
614  {
615    M = lead(M);
616   
617    if( @DEBUG )
618    {
619      "SSinit::Ignorring tails: M: ";
620      type(M);
621    }
622  }
623
624 
625
626  def @N = MySort(M); // TODO: replace with inplace sorting!!!
627  def LEAD = lead(@N);
628
629  if( @KERCHECK )
630  {
631    def @LEAD = lead(M);
632
633    // sort wrt neg.deg.rev.lex!
634    intvec iv_ds = sort(@LEAD, "c,ds", 1)[2]; // ,1 => reversed!
635
636    M = M[iv_ds]; // sort M wrt ds on current leading terms
637    @LEAD = @LEAD[iv_ds];
638
639    if( size(module( matrix(@N) - matrix(M) )) > 0 )
640    {
641      "M:"; M;
642      "@N:"; @N;
643
644      "module( matrix(@N) - matrix(M) ): ";
645      module( matrix(@N) - matrix(M) );
646
647      "ERROR: wrong sorting (in SSnit): @N != M!!!";
648      m2_end(666);
649    }
650
651    if( size(module( matrix(@LEAD) - matrix(LEAD) )) > 0 )
652    {
653      "LEAD:"; LEAD;
654      "@LEAD:"; @LEAD;
655
656      "module( matrix(@LEAD) - matrix(LEAD) ): ";
657      module( matrix(@LEAD) - matrix(LEAD) );
658
659      "ERROR: wrong sorting (in SSnit): @LEAD != LEAD!!!";
660      m2_end(666);
661    }
662   
663  }
664
665  M = @N;
666 
667  def TAIL = Tail(M);
668
669  int @RANK = nrows(M); int @SIZE = ncols(M);
670 
671  intvec @DEGS = deg(M[1..@SIZE]); // store actuall degrees of input elements
672 
673  // TODO: what about real modules? weighted ones?
674 
675  list @l = ringlist(@save);
676
677  int @z = 0; ideal @m = maxideal(1); intvec @wdeg = deg(@m[1..ncols(@m)]);
678
679  // NOTE: @wdeg will be ignored anyway :(
680  @l[3] = list(list("C", @z), list("lp", @wdeg));
681
682  kill @z, @wdeg; // since these vars are ring independent!
683
684  def S = ring(@l); // --MakeInducedSchreyerOrdering(1);
685
686  module F = freemodule(@RANK);
687  intvec @V = deg(F[1..@RANK]);
688 
689  setring S; // ring with an easy divisibility test ("C, lex")
690
691  if( @DEBUG )
692  {
693    "SSinit::NewRing(C, lex)";
694    basering;
695    DetailedPrint(basering);
696  }
697
698  // Setup the leading syzygy^{-1} module to zero:
699  module Z = 0; Z[@RANK] = 0; attrib(Z, "isHomog", intvec(0)); 
700
701  module MRES = Z;
702 
703  list RES;  RES[1] = Z;
704  list LRES; LRES[1] = Z;
705  list TRES; TRES[1] = Z;
706 
707  def M = imap(@save, M);
708
709  attrib(M, "isHomog", @V);
710  attrib(M, "isSB", 1);
711  attrib(M, "degrees", @DEGS); 
712 
713  def LEAD = imap(@save, LEAD);
714 
715  attrib(LEAD, "isHomog", @V);
716  attrib(LEAD, "isSB", 1); 
717 
718  def TAIL = imap(@save, TAIL);
719
720  if( @DEBUG )
721  {
722    "SSinit::(sorted) SB_Input: ";
723    type(M);
724    attrib(M);
725    attrib(M, "isHomog");
726//    DetailedPrint(M);
727  }
728
729  if( @SYZCHECK )
730  {
731    // 0^th syz. property
732    if( size(module(transpose( transpose(M) * transpose(MRES) ))) > 0 )
733    {
734      transpose( transpose(M) * transpose(MRES) );
735      "ERROR: transpose( transpose(M) * transpose(MRES) ) != 0!!!";
736      m2_end(666);
737    }
738  }
739
740  RES [size(RES)+1] = M; // list of all syzygy modules
741  LRES[size(LRES)+1] = LEAD; // list of all syzygy modules
742  TRES[size(TRES)+1] = TAIL; // list of all syzygy modules
743 
744  MRES = MRES, M; //?
745
746  attrib(MRES, "isHomog", @V);
747 
748//  attrib(S, "InducionStart", @RANK);
749
750
751  if( typeof( attrib(SSinit, "LEAD2SYZ") ) == "int" )
752  {
753    attrib(S, "LEAD2SYZ", attrib(SSinit, "LEAD2SYZ") );
754  } else
755  {
756    attrib(S, "LEAD2SYZ", 0);
757  }
758
759  if( typeof( attrib(SSinit, "TAILREDSYZ") ) == "int" )
760  {
761    attrib(S, "TAILREDSYZ", attrib(SSinit, "TAILREDSYZ") );
762  } else
763  {
764    attrib(S, "TAILREDSYZ", 1);
765  }
766
767
768  if( typeof( attrib(SSinit, "HYBRIDNF") ) == "int" )
769  {
770    attrib(S, "HYBRIDNF", attrib(SSinit, "HYBRIDNF") );
771  } else
772  {
773    attrib(S, "HYBRIDNF", 0);
774  }
775 
776  attrib(S, "DEBUG", @DEBUG);
777  attrib(S, "SYZCHECK", @SYZCHECK);
778  attrib(S, "KERCHECK", @KERCHECK);
779  attrib(S, "IGNORETAILS", @IGNORETAILS);
780  attrib(S, "TREEOUTPUT", @TREEOUTPUT);
781  attrib(S, "SYZNUMBER", 0);
782 
783  if( @DEBUG )
784  {
785    "SSinit::MRES";
786    MRES;
787//    DetailedPrint(MRES);
788    attrib(MRES, "isHomog");
789    attrib(S);
790  }
791
792  export RES;
793  export MRES;
794  export LRES;
795  export TRES;
796
797//  rtimer, "***TIMESNAP1 for SSinit: on level: [",attrib(basering,"SYZNUMBER"),"] :: t: ", timer, ", r: ", rtimer;
798 
799  return (S);
800}
801example
802{ "EXAMPLE:"; echo = 2;
803  ring R = 0, (w, x, y, z), dp;
804
805  def M = maxideal(1);
806  def S = SSinit(M); setring S; S;
807 
808  "Only the first initialization: ";
809  RES; LRES; TRES;
810  MRES;
811
812  kill S; setring R; kill M;
813 
814  ideal M = w^2 - x*z,  w*x - y*z,  x^2 - w*y, x*y - z^2, y^2 - w*z;
815  def S = SSinit(M); setring S; S;
816
817  "Only the first initialization: ";
818  RES; LRES; TRES;
819  MRES;
820
821  kill S; setring R; kill M;
822}
823
824
825LIB "poly.lib"; // for lcm
826
827
828
829/// Compute L(Syz(L))
830static proc SSComputeLeadingSyzygyTerms(def L)
831{
832  if( typeof( attrib(basering, "DEBUG") ) == "int" )
833  {
834    int @DEBUG = attrib(basering, "DEBUG");
835  } else
836  {
837    int @DEBUG = 0; // !system("with", "ndebug");
838  }
839
840  if( typeof( attrib(basering, "SYZCHECK") ) == "int" )
841  {
842    int @SYZCHECK = attrib(basering, "SYZCHECK");
843  } else
844  {
845    int @SYZCHECK = @DEBUG;
846  }
847
848  if( typeof( attrib(basering, "KERCHECK") ) == "int" )
849  {
850    int @KERCHECK = attrib(basering, "KERCHECK");
851  } else
852  {
853    int @KERCHECK = @DEBUG;
854  }
855
856  if( @DEBUG )
857  {
858    "SSComputeLeadingSyzygyTerms::Input: ";
859    L;
860  }
861
862  module SS = ComputeLeadingSyzygyTerms(L);
863
864  if( @KERCHECK )
865  { 
866    int i, j, r;
867    int N = ncols(L);
868    def a, b;
869    poly aa, bb;
870
871    bigint c;
872
873    ideal M;
874
875    module S = 0;
876
877    for(i = 1; i <= N; i++)
878    {
879      a = L[i];
880      c = leadcomp(a);
881      r = int(c);
882
883      aa = leadmonomial(a);
884
885      M = 0;
886
887      for(j = i-1; j > 0; j--)
888      {
889        b = L[j];
890
891        if( leadcomp(b) == c )
892        {
893          bb = leadmonomial(b);
894
895          M[j] = (lcm(aa, bb) / aa);
896        }
897      }
898
899      // TODO: add quotient relations here...
900
901      M = simplify(M, 1 + 2 + 32);
902
903      M = MySort(M);
904
905      S = S, M * gen(i);
906    }
907
908    S = MySort(simplify(S, 2));
909
910    if( (size(S) + size(SS)) > 0 )
911    {
912      if( size(module(matrix(S) - matrix(SS))) > 0 )
913      {
914        "ERROR: SSComputeLeadingSyzygyTerms: S != SS ";
915
916        "basering: "; basering;
917//        DetailedPrint(basering);
918
919        "S: ";  S;
920//        DetailedPrint(_, 1);
921        "SS: "; SS;
922//        DetailedPrint(_, 1);
923
924        "DIFF: ";
925        module(matrix(S) - matrix(SS));
926//        DetailedPrint(_, 2);     
927        print(matrix(S) - matrix(SS));
928        m2_end(666);
929      }
930    }
931  }
932
933 
934  if( @DEBUG )
935  {
936    "SSComputeLeadingSyzygyTerms::Output: ";
937    "SS: "; SS;
938  }
939 
940  if( size(SS) > 0 )
941  {
942    attrib(SS, "isSB", 1);
943  }
944 
945  return (SS);
946}
947
948/// Compute Syz(L), where L is a monomial (leading) module
949static proc SSCompute2LeadingSyzygyTerms(def L)
950{
951  if( typeof( attrib(basering, "DEBUG") ) == "int" )
952  {
953    int @DEBUG = attrib(basering, "DEBUG");
954  } else
955  {
956    int @DEBUG = 0; // !system("with", "ndebug");
957  }
958
959  if( typeof( attrib(basering, "SYZCHECK") ) == "int" )
960  {
961    int @SYZCHECK = attrib(basering, "SYZCHECK");
962  } else
963  {
964    int @SYZCHECK = @DEBUG;
965  }
966
967  if( typeof( attrib(basering, "KERCHECK") ) == "int" )
968  {
969    int @KERCHECK = attrib(basering, "KERCHECK");
970  } else
971  {
972    int @KERCHECK = @DEBUG;
973  }
974
975  if( @DEBUG )
976  {
977    "SSCompute2LeadingSyzygyTerms::Input: ";
978    L;
979  }
980
981  module SS = Compute2LeadingSyzygyTerms(L);
982
983  if( @DEBUG )
984  {
985    "SSCompute2LeadingSyzygyTerms::Syz(SS): "; SS;
986  }
987 
988  if( @SYZCHECK )
989  {
990    if( size(SS) > 0 and size(L) > 0 )
991    {
992      if( size(module(transpose( transpose(SS) * transpose(L) ))) > 0 )
993      {
994        transpose( transpose(SS) * transpose(L) );
995        "ERROR: transpose( transpose(SS) * transpose(L) ) != 0!!!";
996        m2_end(666);
997      }
998    }
999  }
1000   
1001  if( @KERCHECK )
1002  {
1003    int @TAILREDSYZ = 1;
1004    if( typeof( attrib(basering, "TAILREDSYZ") ) == "int" )
1005    {
1006      @TAILREDSYZ = attrib(basering, "TAILREDSYZ");
1007    }
1008
1009    int i, j, r;
1010    int N = ncols(L);
1011    def a, b;
1012
1013    poly aa, bb, @lcm;
1014
1015    bigint c;
1016
1017    module M;
1018
1019    module S = 0;
1020
1021    for(i = 1; i <= N; i++)
1022    {
1023      a = L[i];
1024  //    "a: ", a;
1025      c = leadcomp(a);
1026      r = int(c);
1027
1028      aa = leadmonomial(a);
1029
1030      M = 0;
1031
1032      for(j = i-1; j > 0; j--)
1033      {
1034        b = L[j];
1035  //      "b: ", b;
1036
1037        if( leadcomp(b) == c )
1038        {
1039          bb = leadmonomial(b);
1040          @lcm = lcm(aa, bb);
1041
1042          M[j] = (@lcm / aa)* gen(i) - (@lcm / bb)* gen(j);
1043        }
1044      }
1045
1046      M = simplify(M, 2);
1047
1048      // TODO: add quotient relations here...
1049      S = S, M;
1050    }
1051
1052    if( @TAILREDSYZ )
1053    {
1054      // Make sure that 2nd syzygy terms are not reducible by 1st
1055      def opts = option(get);
1056      option(redSB); option(redTail);
1057      S = std(S); // binomial module
1058      option(set, opts);
1059      //  kill opts;
1060    } else
1061    {
1062      S = simplify(S, 2 + 32);
1063    }
1064
1065    S = MySort(S);
1066
1067    if( @DEBUG )
1068    {
1069      "SSCompute2LeadingSyzygyTerms::Syz(S): "; S;
1070    }
1071
1072    if( @SYZCHECK )
1073    {
1074      if( size(S) > 0 and size(L) > 0 )
1075      {
1076        if( size(module(transpose( transpose(S) * transpose(L) ))) > 0 )
1077        {
1078          transpose( transpose(S) * transpose(L) );
1079          "ERROR: transpose( transpose(S) * transpose(L) ) != 0!!!";
1080          m2_end(666);
1081        }
1082      }
1083    }
1084
1085    if(size(S) != size(SS))
1086    {
1087      "ERROR: SSCompute2LeadingSyzygyTerms: size(S) != size(SS)";
1088
1089      "basering: "; basering; //      DetailedPrint(basering);
1090
1091      "S: ";  S;
1092//      DetailedPrint(S, 2);
1093      "SS: "; SS;
1094//      DetailedPrint(SS, 2);
1095      m2_end(666);
1096    }   
1097
1098    if(size(S) > 0 && size(SS) > 0)
1099    {
1100      if( size(module(matrix(lead(S)) - matrix(lead(SS)))) > 0 )
1101      {
1102        "ERROR: SSCompute2LeadingSyzygyTerms: lead(S) != lead(SS) ";
1103
1104        "basering: ";  basering;
1105//        DetailedPrint(basering);
1106
1107        "lead(S ): "; lead(S );
1108//        DetailedPrint(_, 2);
1109        "lead(SS): "; lead(SS);
1110//        DetailedPrint(_, 2);
1111
1112        "DIFF: ";
1113        print( matrix(lead(S)) - matrix(lead(SS))  );
1114        module(matrix(lead(S)) - matrix(lead(SS)));
1115//        DetailedPrint(_ , 4);
1116        m2_end(666);
1117      }
1118
1119
1120      if( @TAILREDSYZ )
1121      {
1122      if( size(module(matrix(Tail(S)) - matrix(Tail(SS)))) > 0 )
1123      {
1124        "ERROR: SSCompute2LeadingSyzygyTerms: Tail(S) != Tail(SS) ";
1125
1126        "basering: ";  basering;
1127//        DetailedPrint(basering);
1128
1129        "Tail(S ): "; Tail(S );
1130//        DetailedPrint(_, 2);
1131        "Tail(SS): "; Tail(SS);
1132//        DetailedPrint(_, 2);
1133
1134        "DIFF: ";
1135        module( matrix(Tail(S)) - matrix(Tail(SS)) );
1136//        DetailedPrint(_, 4);
1137        print( matrix(Tail(S)) - matrix(Tail(SS)) );
1138        m2_end(666);
1139      }
1140      }
1141    }
1142  }
1143 
1144  module S2 = Tail(SS);
1145  SS = lead(SS); // (C,lp) on base ring!
1146
1147  if( @SYZCHECK )
1148  {
1149    if( ncols(SS) != ncols(S2) ) // || size(SS) != ncols(SS) || size(S2) != ncols(S2)
1150    {
1151      "ERROR: SSCompute2LeadingSyzygyTerms: inappropriate S2 / SS: ";     
1152      type(SS);
1153      type(S2);
1154      L;
1155      m2_end(666);
1156    }
1157  } 
1158             
1159  if( @DEBUG )
1160  {
1161    "SSCompute2LeadingSyzygyTerms::Output: "; SS; S2;
1162  } 
1163 
1164  attrib(SS, "isSB", 1);
1165
1166  return (SS, S2);
1167}
1168
1169// -------------------------------------------------------- //
1170
1171/// TODO: save shortcut (syz: |-.->) LM(LM(m) * "t") -> syz?
1172static proc SSFindReducer(def product, def syzterm, def L, list #)
1173{
1174  if( typeof( attrib(basering, "DEBUG") ) == "int" )
1175  {
1176    int @DEBUG = attrib(basering, "DEBUG");
1177  } else
1178  {
1179    int @DEBUG = 0; // !system("with", "ndebug");
1180  }
1181
1182  if( typeof( attrib(basering, "SYZCHECK") ) == "int" )
1183  {
1184    int @SYZCHECK = attrib(basering, "SYZCHECK");
1185  } else
1186  {
1187    int @SYZCHECK = @DEBUG;
1188  }
1189
1190  if( typeof( attrib(basering, "KERCHECK") ) == "int" )
1191  {
1192    int @KERCHECK = attrib(basering, "KERCHECK");
1193  } else
1194  {
1195    int @KERCHECK = @DEBUG;
1196  }
1197
1198
1199  if( @DEBUG )
1200  {
1201    "SSFindReducer::Input: ";
1202
1203    "syzterm: ", syzterm;
1204    "product: ", product;
1205//    "L: ", L;
1206//    "T: ", T;
1207    if( size(#) > 0 )
1208    {
1209//      "LSyz: ", #;
1210    }
1211  }
1212
1213
1214  if( @DEBUG && (syzterm != 0) )
1215  {
1216    def @@c = leadcomp(syzterm); int @@r = int(@@c);
1217    def @@product = leadmonomial(syzterm) * L[@@r];
1218
1219    if( @@product != product)
1220    {
1221      "product: ", product, ", @@product: ", @@product;
1222      "ERROR: 'syzterm' results in wrong product !!!???";
1223      m2_end(666);
1224    }
1225  }
1226
1227  if( typeof(#[1]) == "module" )
1228  {
1229    vector my = FindReducer(product, syzterm, L/*, T*/, #[1]);
1230  } else
1231  {
1232    vector my = FindReducer(product, syzterm, L/*, T*/);
1233  }
1234 
1235
1236  if( @KERCHECK )
1237  {
1238    bigint c = leadcomp(product); int r = int(c);
1239
1240    def a, b, bb;
1241
1242    vector nf = [0];
1243
1244    // looking for an appropriate diviser
1245    for( int k = ncols(L); k > 0; k-- )
1246    {
1247      a = L[k];
1248      // with the same mod. component
1249      if( leadcomp(a) == c )
1250      {
1251        b = - (leadmonomial(product) / leadmonomial(L[k]));
1252
1253        // which divides the product: looking for the 1st appropriate one!
1254        if( b != 0 )
1255        {
1256          bb = b * gen(k);
1257
1258          if (size(bb + syzterm) == 0) // cannot allow something like: a*gen(i) - a*gen(i)
1259          {
1260            nf = [0];
1261          } else
1262          {
1263            nf = bb;
1264          }
1265
1266          // new syz. term should not be in <LS = #>
1267          if( size(#) > 0 )
1268          {
1269            if( typeof(#[1]) == "module" )
1270            {
1271              nf = NF(bb, #[1]);
1272            }
1273          }
1274
1275          // while the complement (the fraction) is not reducible by leading syzygies
1276          if( nf != 0 ) // nf must be == bb!!!
1277          {
1278            /// TODO: save shortcut LM(m) * T[i] -> ?
1279
1280            // choose ANY such reduction... (with the biggest index?)
1281            break;
1282          }
1283        }
1284      }
1285    }
1286
1287    if( my != nf )
1288    {
1289      "ERROR in FindReducer => ", my, " != nf: ", nf;
1290      m2_end(666);
1291    }
1292  }
1293
1294  if( @DEBUG )
1295  {
1296    "SSFindReducer::Output: ", my;
1297  }
1298 
1299  return (my);
1300}
1301
1302/// TODO: save shortcut (syz: |-.->) LM(m) * "t" -> ?
1303static proc SSReduceTerm(poly m, def t, def syzterm, def L, def T, list #)
1304{
1305  if( typeof( attrib(basering, "DEBUG") ) == "int" )
1306  {
1307    int @DEBUG = attrib(basering, "DEBUG");
1308  } else
1309  {
1310    int @DEBUG = 0; // !system("with", "ndebug");
1311  }
1312
1313
1314  if( @DEBUG )
1315  {
1316    "SSReduce::Input: ";
1317
1318    "syzterm: ", syzterm;
1319    "mult: ", m;
1320    "term: ", t;
1321//    "L: ", L;
1322//    "T: ", T;
1323    if( size(#) > 0 )
1324    {
1325//      "LSyz: ", #;
1326    }
1327//    "attrib(LS, 'isSB')", attrib(LS, "isSB");
1328  }
1329
1330  if( typeof( attrib(basering, "KERCHECK") ) == "int" )
1331  {
1332    int @KERCHECK = attrib(basering, "KERCHECK");
1333  } else
1334  {
1335    int @KERCHECK = @DEBUG;
1336  }
1337 
1338  if( typeof( attrib(basering, "SYZCHECK") ) == "int" )
1339  {
1340    int @SYZCHECK = attrib(basering, "SYZCHECK");
1341  } else
1342  {
1343    int @SYZCHECK = @DEBUG;
1344  }
1345
1346  if( @SYZCHECK && (syzterm != 0) )
1347  {
1348    def @@c = leadcomp(syzterm); int @@r = int(@@c);
1349    poly @@m = leadmonomial(syzterm); def @@t = L[@@r];
1350
1351    if( (@@m != m) || (@@t != t))
1352    {
1353      "m: ", m, ", t: ", t;
1354      "@@m: ", @@m, ", @@t: ", @@t;
1355      "ERROR: 'syzterm' results in wrong m * t !!!";
1356      m2_end(666);
1357    }
1358  }
1359
1360  if( typeof(#[1]) == "module" )
1361  {
1362    vector ss = ReduceTerm(m, t, syzterm, L, T, #[1]);
1363  } else
1364  {
1365    vector ss = ReduceTerm(m, t, syzterm, L, T);
1366  }
1367
1368  if( @KERCHECK )
1369  {
1370    int @TREEOUTPUT  = attrib(basering, "TREEOUTPUT");
1371 
1372    vector s = 0;
1373
1374    if( size(t) > 0 )
1375    {
1376      def product = m * t;
1377
1378      s = SSFindReducer(product, syzterm, L, #);
1379
1380      if( size(s) != 0 )
1381      {
1382        poly @b = leadmonomial(s);
1383
1384        def @c = leadcomp(s); int k = int(@c);
1385
1386        if( @TREEOUTPUT ){ "\CHILD{", (s), "}{", ( @b*L[k]), "}"; }
1387
1388        s = s + SSTraverseTail(@b, T[k], L, T, #); // !!!   
1389      }
1390    }
1391   
1392    if( s != ss )
1393    {
1394      "ERROR in ReduceTerm => old: ", s, " != ker: ", ss;
1395      "m: ", m;
1396      "t: ", t;
1397      "syzterm: ", syzterm;
1398       L; T; #;
1399      m2_end(666);
1400    } 
1401  }
1402
1403  if( @DEBUG )
1404  {
1405    "SSReduceTerm::Output: ", ss;
1406  }
1407 
1408  return (ss);
1409}
1410
1411
1412// TODO: store m * @tail -.-^-.-^-.--> ?
1413static proc SSTraverseTail(poly m, def @tail, def L, def T, list #)
1414{
1415  if( typeof( attrib(basering, "DEBUG") ) == "int" )
1416  {
1417    int @DEBUG = attrib(basering, "DEBUG");
1418  } else
1419  {
1420    int @DEBUG = 0; // !system("with", "ndebug");
1421  }
1422
1423  if( typeof( attrib(basering, "KERCHECK") ) == "int" )
1424  {
1425    int @KERCHECK = attrib(basering, "KERCHECK");
1426  } else
1427  {
1428    int @KERCHECK = @DEBUG;
1429  }
1430 
1431
1432  if( @DEBUG )
1433  {
1434    "SSTraverse::Input: ";
1435
1436    "mult: ", m;
1437    "tail: ", @tail; // T[i];
1438
1439    if( size(#) > 0 )
1440    {
1441//      "LSyz: "; #[1];
1442    }
1443  }
1444
1445  if( typeof(#[1]) == "module" )
1446  {
1447    vector ss = TraverseTail(m, @tail, L, T, #[1]);
1448  } else
1449  {
1450    vector ss = TraverseTail(m, @tail, L, T);
1451  }
1452
1453  if( @KERCHECK )
1454  {
1455    vector s = 0;
1456
1457    def @l, @p;
1458    @p = @tail;
1459
1460  // iterate tail-terms in ANY order!
1461    while( size(@p) > 0 )
1462    {
1463      @l = lead(@p);
1464      s = s + SSReduceTerm(m, @l, [0], L, T, #); // :(
1465      @p = @p - @l;
1466    }
1467   
1468    if( s != ss )
1469    {
1470      "ERROR in TraverseTail => old: ", s, " != ker: ", ss;
1471      "m: ", m;
1472      "@tail: ", @tail;
1473      L; T; #;
1474      m2_end(666);
1475    } 
1476  }
1477
1478  if( @DEBUG )
1479  {
1480    "SSTraverseTail::Output: ", ss;
1481  }
1482 
1483  return (ss);
1484}
1485
1486// -------------------------------------------------------- //
1487
1488static proc SSSchreyerSyzygyNF(vector syz_lead, vector syz_2, def L, def T, list #)
1489"  Hybrid Syzygy computation: 'reduce' spoly by eliminating _any_ terms while discurding terms of lower order!
1490   Return the tail syzygy (without: syz_lead, starting with: syz_2)"
1491{
1492  if( typeof( attrib(basering, "DEBUG") ) == "int" )
1493  {
1494    int @DEBUG = attrib(basering, "DEBUG");
1495  } else
1496  {
1497    int @DEBUG = 0; // !system("with", "ndebug");
1498  }
1499
1500  if( @DEBUG )
1501  {
1502    "SSSchreyerSyzygyNF::Input: ";
1503
1504    "syzygy_lead: ", syz_lead;
1505    "syzygy 2nd : ", syz_2;
1506//    L; T;
1507    if( size(#) > 0 )
1508    {
1509//      "LSyz: "; #[1];
1510    }
1511  }
1512
1513  if( typeof( attrib(basering, "KERCHECK") ) == "int" )
1514  {
1515    int @KERCHECK = attrib(basering, "KERCHECK");
1516  } else
1517  {
1518    int @KERCHECK = @DEBUG;
1519  }
1520
1521  if( typeof(#[1]) == "module" )
1522  {
1523    def my = SchreyerSyzygyNF(syz_lead, syz_2, L, T, #[1]);
1524  } else
1525  {
1526    def my = SchreyerSyzygyNF(syz_lead, syz_2, L, T);
1527  }
1528
1529  if( @KERCHECK )
1530  {
1531    int @TREEOUTPUT  = attrib(basering, "TREEOUTPUT");
1532   
1533    def spoly = leadmonomial(syz_lead) * T[int(leadcomp(syz_lead))]
1534              + leadmonomial(syz_2)    * T[int(leadcomp(syz_2))];
1535
1536    vector @tail = syz_2;
1537   
1538    poly @b; int k;
1539
1540    while (size(spoly) > 0)
1541    {
1542      syz_2 = SSFindReducer(lead(spoly), 0, L, #); spoly = Tail(spoly);
1543
1544      if( size(syz_2) != 0)
1545      {         
1546        @b = leadmonomial(syz_2);
1547        k =  int(leadcomp(syz_2));
1548       
1549        if( @TREEOUTPUT ){ "\CHILD{", (syz_2), "}{", ( lead(spoly)), "}"; }
1550       
1551        spoly = spoly + @b * T[k];
1552        @tail = @tail + syz_2;
1553       
1554      }
1555    }
1556   
1557    if( my != @tail )
1558    {
1559      "ERROR in SchreyerSyzygyNF => old: ", @tail, " != ker: ", my;
1560     
1561      "syzygy_lead: ", syz_lead;
1562      "syzygy 2nd : ", syz_2;
1563     
1564      L; T; #;
1565      m2_end(666);
1566    }
1567  }
1568
1569  if( @DEBUG )
1570  {
1571    "SSSchreyerSyzygyNF::Output: ", my;
1572  }
1573 
1574  return (my);
1575}
1576
1577
1578
1579// -------------------------------------------------------- //
1580
1581// module (N, LL, TT) = SSComputeSyzygy(L, T);
1582// Compute Syz(L ++ T) = N = LL ++ TT
1583static proc SSComputeSyzygy(def L, def T)
1584{
1585//  rtimer, "***TIMESNAP0 for ComputeSyzygy(L,T): on level: [",attrib(basering,"SYZNUMBER"),"] :: t: ", timer, ", r: ", rtimer;
1586  int @DEBUG    = attrib(basering, "DEBUG");
1587  int @KERCHECK = attrib(basering, "KERCHECK");
1588  int @SYZCHECK = attrib(basering, "SYZCHECK");
1589
1590  if( @DEBUG )
1591  {
1592    "SSComputeSyzygy::Input";
1593    "basering: ", basering; attrib(basering);
1594//    DetailedPrint(basering);
1595
1596//    "iCompShift: ", iCompShift;
1597
1598    "L: "; L;
1599    "T: "; T;
1600  }
1601
1602//  option(prot);
1603//  rtimer, "***TIME for ComputeSyzygy(L,T): on level: [",attrib(basering,"SYZNUMBER"),"] :: t: ", timer, ", r: ", rtimer;
1604  list @res=ComputeSyzygy(L,T);
1605//  rtimer, "***TIME for ComputeSyzygy(L,T): on level: [",attrib(basering,"SYZNUMBER"),"] :: t: ", timer, ", r: ", rtimer;
1606//  option(noprot); // TODO: restore!
1607
1608
1609  module @LL = @res[1]; module @TT = @res[2];
1610
1611  if( @KERCHECK )
1612  {
1613    int @SYZCHECK    = attrib(basering, "SYZCHECK");
1614    int @LEAD2SYZ    = attrib(basering, "LEAD2SYZ");
1615    int @TAILREDSYZ  = attrib(basering, "TAILREDSYZ");
1616    int @HYBRIDNF    = attrib(basering, "HYBRIDNF");
1617    int @IGNORETAILS = attrib(basering, "IGNORETAILS");
1618    int @TREEOUTPUT  = attrib(basering, "TREEOUTPUT");
1619
1620    int @SYZNUMBER   = attrib(basering,"SYZNUMBER");
1621   
1622    if( @HYBRIDNF == 2 )
1623    {
1624      if( @SYZNUMBER < 3 ){ @HYBRIDNF = 1; } else { @HYBRIDNF = 0; }
1625    }
1626   
1627    module LL;
1628
1629    /// Get the critical leading syzygy terms
1630    if( @LEAD2SYZ ) // & 2nd syz. term
1631    {
1632      module LL2;
1633      (LL, LL2) = SSCompute2LeadingSyzygyTerms(L);
1634    } else
1635    {
1636      LL = SSComputeLeadingSyzygyTerms(L);
1637    }
1638
1639    if( ncols(LL) != ncols(@LL) )
1640    {
1641      "ERROR in SSComputeSyzygy: wrong leading syzygies!?";
1642      "";
1643      L; T;
1644      "";
1645      type(LL);
1646      type(@LL);
1647      m2_end(666);
1648    }
1649
1650    if( size( module( matrix(LL) - matrix(@LL) ) ) != 0 )
1651    {
1652      "ERROR in SSComputeSyzygy: wrong leading syzygies!?";
1653      "";
1654      L; T;
1655      "";
1656      type(LL);
1657      type(@LL);
1658      m2_end(666);
1659    }
1660
1661    module TT, SYZ;
1662
1663    vector a, a2; bigint c; int r; poly aa;
1664
1665    if( size(LL) > 0 )
1666    {
1667      list LS;
1668
1669      if( @TAILREDSYZ)
1670      {
1671        LS = list(LL);
1672      }
1673
1674      vector @tail = 0;
1675
1676//      for(int k = 1; k <= ncols(LL); k++ )
1677      for(int k = ncols(LL); k > 0; k-- )
1678      {
1679        // leading syz. term:
1680        a = LL[k];
1681       
1682        if( !@IGNORETAILS )
1683        {
1684          c = leadcomp(a); r = int(c); aa = leadmonomial(a);
1685         
1686          if( @TREEOUTPUT ){ "\ROOT{", (lead(a)), "}"; }
1687         
1688          // NF reduction:
1689          if( @HYBRIDNF == 0 ) // Traverse approach:
1690          {
1691            @tail = SSTraverseTail(aa, T[r], L, T, LS);
1692
1693            // get the 2nd syzygy term...
1694            if( @LEAD2SYZ ) // with the 2nd syz. term:
1695            {     
1696              a2 = LL2[k]; c = leadcomp(a2); r = int(c); aa = leadmonomial(a2);
1697             
1698              if( @TREEOUTPUT ){ "\CHILD{", (lead(a2)), "}{", ( aa*L[r]), "}"; }
1699             
1700              @tail = a2 + @tail + SSTraverseTail(aa, T[r], L, T, LS);
1701            } else
1702            {
1703              @tail = @tail + SSReduceTerm(aa, L[r], a, L, T, LS);
1704            }
1705
1706          } else // Hybrid approach:
1707          {
1708
1709            // get the 2nd syzygy term...
1710            if( @LEAD2SYZ )
1711            {
1712              a2 = LL2[k];
1713            } else
1714            {
1715              a2 = SSFindReducer( aa * L[r], a, L, LS);
1716            }
1717
1718            if ( (@SYZCHECK || @DEBUG) )
1719            {
1720              if( size(a2) == 0 ) // if syzterm == 0!!!!
1721              {
1722                "ERROR in SSComputeSyzygy: could not find the 2nd syzygy term during the hybrid NF!!!";
1723                m2_end(666);
1724              }
1725            }
1726           
1727            if( @TREEOUTPUT ){ "\CHILD{", (a2), "}{", ( aa*L[r]), "}"; }
1728
1729            @tail = SSSchreyerSyzygyNF(a, a2, L, T, LS);
1730          }
1731        } // else @tail remains zero!
1732
1733        TT[k] = @tail;
1734        SYZ[k] = a + @tail;
1735
1736        if ( TT[k] != @TT[k] )
1737        {
1738          "ERROR in SSComputeSyzygy: wrong tail syzygy!?";
1739          "INPUT";
1740          L; T;
1741          "LEADING SYZYGY TERMS";
1742          type(LL);
1743         
1744          "CURRENT TAILS";
1745          type(TT);
1746          type(@TT);
1747         
1748          "WRONG TAIL [", k, "]:";
1749          type(TT[k]);
1750          type(@TT[k]);
1751
1752//          "IMAGES:";
1753//              transpose( transpose(N) * transpose(MRES) );             
1754         
1755          m2_end(666);
1756        }
1757
1758      } // FOR
1759    }
1760
1761    if( ncols(TT) != ncols(@TT) )
1762    {
1763      "ERROR in SSComputeSyzygy: wrong tail syzygies!?";
1764      "";
1765      L; T;
1766      "";
1767      type(LL);
1768      type(@LL);
1769      "";
1770      type(TT);
1771      type(@TT);
1772      m2_end(666);
1773    }
1774
1775    if( size( module( matrix(TT) - matrix(@TT) ) ) != 0 )
1776    {
1777      "ERROR in SSComputeSyzygy: wrong tail syzygies!?";
1778      "";
1779      TT; @TT;
1780      "";
1781      L; T;
1782      "";
1783      type(LL);
1784      type(@LL);
1785      m2_end(666);
1786    }   
1787   
1788  }
1789
1790  module @SYZ;
1791 
1792  for(int @k = ncols(@LL); @k > 0; @k-- )
1793  {
1794    @SYZ[@k] = @LL[@k] + @TT[@k];
1795  }
1796 
1797  if( @DEBUG )
1798  {
1799    "SSComputeSyzygy::Output";
1800
1801//    "SYZ: "; @SYZ;
1802    "LL: "; @LL;
1803    "TT: "; @TT;
1804  }
1805
1806//  rtimer, "***TIMESNAP1 for ComputeSyzygy(L,T): on level: [",attrib(basering,"SYZNUMBER"),"] :: t: ", timer, ", r: ", rtimer;
1807  return (@SYZ, @LL, @TT);
1808}
1809
1810// resolution/syzygy step:
1811static proc SSstep()
1812{
1813//  rtimer, "***TIMESNAP0 for SSstep(): on level: [",attrib(basering,"SYZNUMBER"),"] :: t: ", timer, ", r: ", rtimer;
1814 
1815  int @DEBUG = attrib(basering, "DEBUG");
1816  int @SYZCHECK = attrib(basering, "SYZCHECK");
1817
1818  if( @DEBUG )
1819  {
1820    "SSstep::NextInducedRing";
1821    "basering: ", basering; attrib(basering);
1822  }
1823
1824/*
1825  // is initial weights are all zeroes!
1826  def L =  lead(M);
1827  intvec @V = deg(M[1..ncols(M)]);  @W;  @V;  @W = @V;  attrib(L, "isHomog", @W); 
1828  SetInducedReferrence(L, @RANK, 0);
1829*/
1830
1831//  def L =  lead(MRES);
1832//  @W = @W, @V;
1833//  attrib(L, "isHomog", @W); 
1834
1835
1836  // General setting:
1837//  SetInducedReferrence(MRES, 0, 0); // limit: 0!
1838  int @l = size(RES);
1839
1840  def M =  RES[@l];
1841
1842  def L = LRES[@l];
1843  def T = TRES[@l];
1844
1845
1846  //// TODO: wrong !!!!!
1847  int @RANK = ncols(MRES) - ncols(M); // nrows(M); // what if M is zero?!
1848
1849 
1850
1851/*
1852  if( @RANK !=  nrows(M) )
1853  {
1854    type(MRES);
1855    @RANK;
1856    type(M);
1857    pause();
1858  }
1859*/
1860 
1861  intvec @W = attrib(M, "isHomog"); intvec @V = attrib(M, "degrees"); @V = @W, @V;
1862   
1863  if( @DEBUG )
1864  {
1865    "Sstep::NextInput: ";
1866    M;
1867    L;
1868    @V;
1869    @RANK;
1870//    DetailedPrint(MRES);
1871    attrib(MRES, "isHomog");
1872  }
1873
1874     
1875  // TODO: N  = SYZ( M )!!!
1876  module N, LL, TT; (N, LL, TT) = SSComputeSyzygy(/*M, */L, T/*, @RANK*/);
1877
1878  // shift syz.comp by @RANK:
1879  module Z;
1880  Z = 0; Z[@RANK] = 0; Z = Z, transpose(LL);   LL = transpose(Z);
1881  Z = 0; Z[@RANK] = 0; Z = Z, transpose(TT);   TT = transpose(Z);
1882  Z = 0; Z[@RANK] = 0; Z = Z, transpose(N);     N = transpose(Z);
1883
1884
1885  if( @SYZCHECK )
1886  {
1887    if( size(N) > 0 )
1888    {
1889      // next syz. property
1890      if( size(module(transpose( transpose(N) * transpose(MRES) ))) > 0 )
1891      {
1892        "MRES", MRES;
1893
1894        "N: "; N; // DetailedPrint(N, 2);
1895
1896        "LL:"; LL; // DetailedPrint(LL, 1);
1897        "TT:"; TT; // DetailedPrint(TT, 10);
1898
1899        "RANKS: ", @RANK;
1900
1901        "transpose( transpose(N) * transpose(MRES) ) != 0!!!";
1902        transpose( transpose(N) * transpose(MRES) );
1903
1904        "transpose(N) * transpose(MRES): ";
1905        transpose(N) * transpose(MRES);
1906        // DetailedPrint(module(_), 2);
1907        m2_end(666);
1908      }
1909    }
1910  }
1911
1912  attrib(N, "isHomog", @V);
1913
1914  // TODO: correct the following:
1915  intvec @DEGS = deg(N[1..ncols(N)]); // no mod. comp. weights :(
1916
1917 
1918  attrib(N, "degrees", @DEGS);
1919 
1920   RES[@l + 1] = N; // list of all syzygy modules
1921  LRES[@l + 1] = LL; // list of all syzygy modules
1922  TRES[@l + 1] = TT; // list of all syzygy modules
1923
1924  MRES = MRES, N;
1925 
1926  attrib(MRES, "isHomog", @V);
1927
1928//  L = L, lead(N);  attrib(basering, "InducionLeads", L);
1929
1930  if( @DEBUG )
1931  {
1932    "SSstep::NextSyzOutput: ";
1933    N;
1934//    DetailedPrint(N);
1935    attrib(N);
1936  }
1937
1938  int ss = attrib(basering, "SYZNUMBER");
1939  attrib(basering, "SYZNUMBER", ss + 1 );
1940
1941//  rtimer, "***TIMESNAP1 for SSstep(): on level: [",attrib(basering,"SYZNUMBER"),"] :: t: ", timer, ", r: ", rtimer;
1942}
1943
1944static proc SScontinue(int l)
1945"USAGE:  SScontinue(l)
1946RETURN:  nothing, instead it changes RES and MRES variables in the current ring
1947PURPOSE: computes further (at most l) syzygies
1948NOTE:    must be used within a ring returned by Sres or Ssyz. RES and MRES are
1949         explained in Sres
1950EXAMPLE: example Scontinue; shows an example
1951"
1952{
1953//  rtimer, "***TIMESNAP0 for SScontinue: on level: [",attrib(basering,"SYZNUMBER"),"] :: t: ", timer, ", r: ", rtimer;
1954
1955  /// TODO!
1956//  def data = GetInducedData();
1957
1958  if( (!defined(RES)) || (!defined(MRES)) ) /* || (typeof(data) != "list") || (size(data) != 2) */
1959  {
1960    ERROR("Sorry, but basering does not seem to be returned by Sres or Ssyz");
1961  }
1962  for (;  (l != 0) && (size(RES[size(RES)]) > 0); l-- )
1963  {
1964    SSstep();
1965  }
1966 
1967//  rtimer, "***TIMESNAP1 for SScontinue: on level: [",attrib(basering,"SYZNUMBER"),"] :: t: ", timer, ", r: ", rtimer;
1968
1969}
1970example
1971{ "EXAMPLE:"; echo = 2;
1972  ring r;
1973  module M = maxideal(1); M;
1974  def S = SSsyz(M); setring S; S;
1975  "Only the first syzygy: ";
1976  RES; MRES;
1977  "More syzygies: ";
1978  SScontinue(10);
1979  RES; MRES;
1980}
1981
1982static proc SSsyz(def M)
1983"USAGE:  SSsyz(M)
1984RETURN:  ring, containing a list of modules RES and a module MRES
1985PURPOSE: computes the first syzygy module of M (wrt some Schreyer ordering)?
1986NOTE:    The output is explained in Sres
1987EXAMPLE: example Ssyz; shows an example
1988"
1989{
1990  if( (typeof(M) != "module") && (typeof(M) != "ideal") )
1991  {
1992    ERROR("Sorry: need an ideal or a module for input");
1993  }
1994
1995  def SS = SSinit(M); setring SS;
1996 
1997  SSstep(); // NOTE: what if M is zero?
1998
1999  return (SS);
2000}
2001example
2002{ "EXAMPLE:"; echo = 2;
2003  ring r;
2004
2005/*  ideal M = 0;
2006  def S = SSsyz(M); setring S; S;
2007  "Only the first syzygy: ";
2008  RES; LRES; TRES;
2009  MRES;
2010 
2011  kill S; setring r; kill M;
2012*/ 
2013
2014  ideal M = maxideal(1); M;
2015
2016  def S = SSres(M, 0); setring S; S;
2017  MRES;
2018  print(_);
2019  RES;
2020
2021  kill S; setring r; kill M;
2022
2023  kill r;
2024 
2025  ring R = 0, (w, x, y, z), dp;
2026  ideal M = w^2 - x*z,  w*x - y*z,  x^2 - w*y, x*y - z^2, y^2 - w*z;
2027 
2028  def S = SSres(M, 0); setring S; S;
2029  "";
2030  LRES;
2031  "";
2032  TRES;
2033  "";
2034  MRES;
2035  print(_);
2036  RES;
2037}
2038
2039static proc SSres(def M, int l)
2040"USAGE:  SSres(I, l)
2041RETURN:  ring, containing a list of modules RES and a module MRES
2042PURPOSE: computes (at most l) syzygy modules of M wrt the classical Schreyer
2043         induced ordering with gen(i) > gen(j) if i > j, provided both gens
2044         are from the same syzygy level.???
2045NOTE:    RES contains the images of maps subsituting the beginning of the
2046         Schreyer free resolution of baseRing^r/M, while MRES is a sum of
2047         these images in a big free sum, containing all the syzygy modules.
2048         The syzygy modules are shifted so that gen(i) correspons to MRES[i].
2049         The leading zero module RES[0] indicates the fact that coker of the
2050         first map is zero. The number of zeroes inducates the rank of input.
2051NOTE:    If l == 0 then l is set to be nvars(basering) + 1
2052EXAMPLE: example SSres; shows an example
2053"
2054{
2055  if( (typeof(M) != "module") && (typeof(M) != "ideal") )
2056  {
2057    ERROR("Sorry: need an ideal or a module for input");
2058  }
2059/*
2060  "KERCHECK: ", attrib(SSinit, "KERCHECK");
2061  "SYZCHECK: ", attrib(SSinit, "SYZCHECK");
2062  "DEBUG: ", attrib(SSinit, "DEBUG");
2063  "HYBRIDNF: ", attrib(SSinit, "HYBRIDNF");
2064  "TAILREDSYZ: ", attrib(SSinit, "TAILREDSYZ");
2065  "LEAD2SYZ: ", attrib(SSinit, "LEAD2SYZ");
2066*/
2067 
2068  def SS = SSinit(M); setring SS;
2069/* 
2070  "KERCHECK: ", attrib(SS, "KERCHECK");
2071  "SYZCHECK: ", attrib(SS, "SYZCHECK");
2072  "DEBUG: ", attrib(SS, "DEBUG");
2073  "HYBRIDNF: ", attrib(SS, "HYBRIDNF");
2074  "TAILREDSYZ: ", attrib(SS, "TAILREDSYZ");
2075  "LEAD2SYZ: ", attrib(SS, "LEAD2SYZ");
2076  "";
2077  "IGNORETAILS: ", attrib(SS, "IGNORETAILS");
2078  "SYZNUMBER: ", attrib(SS, "SYZNUMBER");
2079*/
2080  if (l == 0)
2081  {
2082    l = nvars(basering) + 2; // not really an estimate...?!
2083  }
2084
2085  SSstep(); l = l - 1;
2086
2087  SScontinue(l);
2088/*
2089  "KERCHECK: ", attrib(SS, "KERCHECK");
2090  "SYZCHECK: ", attrib(SS, "SYZCHECK");
2091  "DEBUG: ", attrib(SS, "DEBUG");
2092  "HYBRIDNF: ", attrib(SS, "HYBRIDNF");
2093  "TAILREDSYZ: ", attrib(SS, "TAILREDSYZ");
2094  "LEAD2SYZ: ", attrib(SS, "LEAD2SYZ");
2095  "";
2096  "IGNORETAILS: ", attrib(SS, "IGNORETAILS");
2097  "SYZNUMBER: ", attrib(SS, "SYZNUMBER");
2098*/ 
2099  return (SS);
2100}
2101example
2102{ "EXAMPLE:"; echo = 2;
2103  ring r;
2104  module M = maxideal(1); M;
2105  def S = SSres(M, 0); setring S; S;
2106  RES;
2107  MRES;
2108}
2109
2110static proc SRES_betti2(SRES SR, def a)
2111{
2112  def R = SR.r; setring R;
2113  return ( betti(SR.rsltn, a) );
2114}
2115
2116static proc SRES_betti1(SRES SR)
2117{
2118  def R = SR.r; setring R;
2119  return ( betti(SR.rsltn) ); 
2120}
2121
2122static proc SRES_print(SRES SR)
2123{
2124  def R = SR.r; setring R;
2125  "Schreyer resolution: ";
2126  SR.rsltn; //  print ();
2127  "over the ring: "; R;
2128}
2129
2130// cannot be automatically used via overloading :(
2131proc SRES_list(SRES SR)
2132"TODO!"
2133{
2134  def save = basering; 
2135  def R = SR.r;
2136
2137  if( 0 )  // ( save == R ) // TODO: not implemented :(((
2138  {
2139    list L = SR.rsltn;
2140    return (L);
2141  }
2142   
2143  setring R;
2144  list L = SR.rsltn;
2145  setring save; 
2146  return (imap( R, L ));
2147}
2148
2149static proc SRES_minres(SRES SR)
2150{
2151  def save = basering;
2152  SRES S;
2153  def R = SR.r; S.r = R;
2154  setring R;
2155  S.rsltn = minres(SR.rsltn);
2156  return (S);
2157}
2158
2159static proc loadme()
2160{
2161  int @DEBUG = 0; // !system("with", "ndebug");
2162
2163  if( @DEBUG )
2164  {
2165   
2166//    "ndebug?: ", system("with", "ndebug");
2167//    "om_ndebug?: ", system("with", "om_ndebug");
2168
2169    listvar(Syzextra);
2170    listvar(Schreyer);
2171    listvar(Top);
2172  }
2173
2174  if( !defined(Schreyer::DetailedPrint) )
2175  {
2176    if( 1 )
2177    {
2178/*
2179      if( system("with", "ndebug") )
2180      {
2181        "Loading the Debug version!";
2182      } else
2183      {
2184        "Loading the Release version!";
2185      }
2186*/     
2187      load("syzextra.so");
2188
2189      if( @DEBUG )
2190      {
2191        listvar(Syzextra);
2192      }
2193     
2194//      exportto(Top, Syzextra::ClearContent);
2195//      exportto(Top, Syzextra::ClearDenominators);
2196      exportto(Schreyer, Syzextra::m2_end);
2197     
2198//      export Syzextra;
2199
2200//      exportto(Schreyer, Syzextra::noop);
2201      exportto(Schreyer, Syzextra::DetailedPrint);
2202      exportto(Schreyer, Syzextra::leadmonomial);
2203      exportto(Schreyer, Syzextra::leadcomp);
2204//      exportto(Schreyer, Syzextra::leadrawexp);
2205//      exportto(Schreyer, Syzextra::ISUpdateComponents);
2206      exportto(Schreyer, Syzextra::SetInducedReferrence);
2207      exportto(Schreyer, Syzextra::GetInducedData);
2208//      exportto(Schreyer, Syzextra::GetAMData);
2209//      exportto(Schreyer, Syzextra::SetSyzComp);
2210      exportto(Schreyer, Syzextra::MakeInducedSchreyerOrdering);
2211//      exportto(Schreyer, Syzextra::MakeSyzCompOrdering);
2212      exportto(Schreyer, Syzextra::idPrepare);
2213//      exportto(Schreyer, Syzextra::reduce_syz);
2214//      exportto(Schreyer, Syzextra::p_Content);
2215
2216      exportto(Schreyer, Syzextra::ProfilerStart); exportto(Schreyer, Syzextra::ProfilerStop);
2217
2218      exportto(Schreyer, Syzextra::Tail);
2219      exportto(Schreyer, Syzextra::ComputeLeadingSyzygyTerms);     
2220      exportto(Schreyer, Syzextra::Compute2LeadingSyzygyTerms);
2221      exportto(Schreyer, Syzextra::Sort_c_ds);
2222
2223      exportto(Schreyer, Syzextra::FindReducer);
2224
2225      exportto(Schreyer, Syzextra::ReduceTerm);
2226      exportto(Schreyer, Syzextra::TraverseTail);
2227
2228      exportto(Schreyer, Syzextra::SchreyerSyzygyNF);
2229      exportto(Schreyer, Syzextra::ComputeSyzygy);
2230
2231      exportto(Schreyer, Syzextra::ComputeResolution);
2232
2233      exportto(Schreyer, Syzextra::NumberStatsInit);
2234      exportto(Schreyer, Syzextra::NumberStatsPrint);
2235
2236      newstruct("SRES","ring r,resolution rsltn"); // http://www.singular.uni-kl.de/Manual/latest/sing_179.htm#SEC218
2237      // TODO: SSres - return SRESOLUTION?
2238
2239//      system("install","SRES","string",SRES_string, 1);
2240      system("install","SRES","print",SRES_print, 1);
2241
2242      system("install","SRES","betti",SRES_betti1, 1); // http://www.singular.uni-kl.de/Manual/latest/sing_260.htm#SEC299
2243      system("install","SRES","betti",SRES_betti2, 2); // http://www.singular.uni-kl.de/Manual/latest/sing_260.htm#SEC299
2244      system("install","SRES","minres",SRES_minres, 1); // http://www.singular.uni-kl.de/Manual/latest/sing_344.htm#SEC383
2245
2246//      system("install","SRES","list", SRES_list, 1); // will never work :(((
2247     
2248      // TODO: SSsyz? SSYZYGY? // TODO: C/C++ computation for Syzygy?
2249//      newstruct("SSYZ","ring r,module szg"); // http://www.singular.uni-kl.de/Manual/latest/sing_179.htm#SEC218
2250//      system("install","SSYZYGY","string",SSYZYGY_string, 1);
2251//      system("install","SSYZYGY","print",SSYZYGY_print, 1);
2252//      system("install","SSYZYGY","module",SSYZYGY_module, 1);
2253    }
2254
2255//    exportto(Top, DetailedPrint);
2256//    exportto(Top, GetInducedData);
2257
2258    if( @DEBUG )
2259    {
2260      listvar(Top);
2261      listvar(Schreyer);
2262    }
2263  }
2264 
2265  mod_assure_load();
2266}
2267
2268
2269
2270static proc mod_assure_load()
2271{
2272  if( !defined(GetInducedData) )
2273  {
2274    "ERROR: Sorry but we are missing the dynamic module (syzextra.so)...";
2275    $
2276    // m2_end(666); // :(
2277  }
2278}
2279
2280static proc mod_init()
2281{
2282  loadme();
2283}
2284
2285
2286static proc testallSexamples()
2287{
2288  example Ssyz;
2289  example Scontinue;
2290  example Sres; 
2291}
2292
2293static proc testallSSexamples()
2294{
2295  example SSsyz;
2296  example SScontinue;
2297  example SSres; 
2298}
2299example
2300{ "EXAMPLE:"; echo = 2;
2301  testallSexamples();
2302  testallSSexamples();
2303}
2304
2305static proc  StartResTesting(list #)
2306{
2307  int @treeout = attrib(SSinit, "TREEOUTPUT");
2308 
2309  if( defined(@save_res_list) )
2310  { ERROR("Sorry: existing global variable @save_res_list - run StopAddResTesting before another Start!!!"); }
2311 
2312  string @save_res_desc = string(#);
2313 
2314  if( !@treeout )
2315  {
2316    ">>>>>>>>> {{{{{{{{{ STARTING TESTING ('" + @save_res_desc + "') :::::::::::: ";
2317  } else
2318  {
2319    "{ \"Example\": \"" + @save_res_desc + "\", \"computations\": [";
2320  }
2321 
2322  list @save_res_list = list();
2323  export @save_res_list;
2324  export @save_res_desc;
2325}
2326
2327static proc  StopResTesting()
2328{
2329  int @treeout = attrib(SSinit, "TREEOUTPUT");
2330 
2331  if( defined(@save_opts) || defined(@save_method) || defined(@save_desc) )
2332  { ERROR("Sorry: existing global variables - run StopAddResTest before another Start!!!"); }
2333
2334  if( !defined(@save_res_list) || !defined(@save_res_desc) )
2335  { ERROR("Sorry: no global variable - run StartResTesting beforehand!!!"); }
2336
2337  int i, j;
2338  int f = 0;
2339  def m, mm;
2340
2341  if( !@treeout )
2342  {
2343  for (i = size(@save_res_list); i > 0; i--)
2344  {
2345    "Total Time: ", @save_res_list[i][5], ", Res: ", @save_res_list[i][6], ", Minimal Betti: ", @save_res_list[i][5] - @save_res_list[i][6], ",        ", @save_res_list[i][1], "   :with:    ", @save_res_list[i][2];
2346  }
2347 
2348  }
2349 
2350  for (i = size(@save_res_list); i > 1; i--)
2351  {
2352    m = @save_res_list[i][4];
2353   
2354    for (j = i-1; j > 0; j--)
2355    {
2356      mm = @save_res_list[j][4];
2357      if( (nrows(m) != nrows(mm)) || (ncols(m) != ncols(mm)) )
2358      {
2359        "ERROR: SIZE(Betti[j: ", j, "]) != SIZE(Betti[i: ", i, "]):";
2360        "j: ", j;
2361        print( @save_res_list[j][4], "betti");
2362        print(@save_res_list[j]);
2363       
2364        "i: ", i;
2365        print( @save_res_list[i][4], "betti");
2366        print(@save_res_list[i]);
2367
2368        f = 1;
2369
2370      } else
2371      {
2372        if( m != mm )
2373        {
2374          "ERROR: Betti[j: ", j, "] != Betti[i: ", i, "]:";
2375          "j: ", j;
2376          print( @save_res_list[j][4], "betti");
2377          print(@save_res_list[j]);
2378
2379          "i: ", i;
2380          print( @save_res_list[i][4], "betti");
2381          print(@save_res_list[i]);
2382
2383          f = 1;
2384        };
2385      };
2386 
2387    };
2388 
2389  };
2390 
2391  if( f )
2392  {
2393    print(@save_res_list);
2394    "<<<<<<<<< }}}}}}}}}  STOP TESTING (", @save_res_desc,  ") !!!!!!!!!!!! ";
2395   
2396    "ERROR: There were some wrong betti numbers... ";
2397//    m2_end(666);   
2398  } else
2399  {
2400    if( !@treeout )
2401    {
2402      "BETTI: "; print( @save_res_list[1][4], "betti");
2403    }
2404  }
2405
2406  kill @save_res_list;
2407   
2408  if( !@treeout )
2409  {
2410    "<<<<<<<<< }}}}}}}}}  STOP TESTING (", @save_res_desc,  ") !!!!!!!!!!!! ";
2411  } else
2412  {
2413//    "{ \"Example\": \"" + @save_res_desc + "\", \"computations\": [";
2414    "] },";
2415  }
2416  kill @save_res_desc;
2417}
2418
2419static proc StartAddResTest(string method, string desc)
2420{
2421  int @treeout = attrib(SSinit, "TREEOUTPUT");
2422 
2423  if( !defined(@save_res_list) )
2424  { ERROR("Sorry: no global variable - run StartResTesting beforehand!!!"); }
2425
2426  if( defined(@save_opts) || defined(@save_method) || defined(@save_desc) )
2427  { ERROR("Sorry: existing global variables - run StopAddResTest before another Start!!!"); }
2428 
2429 
2430  def @save_opts = option(get); export @save_opts;
2431  def @save_method = method; export @save_method;
2432  def @save_desc = desc; export @save_desc;
2433 
2434  if( !@treeout )
2435  {
2436    "< START RES TEST{{{ ", @save_method, ", with:", @save_desc, " ... ";
2437  } else
2438  {
2439//    Print("{ \"RESOLUTION: HYBRIDNF:%d, TAILREDSYZ: %d, LEAD2SYZ: %d, IGNORETAILS: %d\": [\n",
2440//       attributes.__HYBRIDNF__, attributes.__TAILREDSYZ__, attributes.__LEAD2SYZ__, attributes.__IGNORETAILS__);
2441    " { \"RESOLUTION: " + @save_method + ", with: " + @save_desc + "\": [";
2442  }
2443}
2444
2445
2446static proc StopAddResTest(def RR, intmat S, int @t, int @m)
2447{
2448  int @treeout = attrib(SSinit, "TREEOUTPUT");
2449 
2450  if( !(defined(@save_opts) && defined(@save_method) && defined(@save_desc)) )
2451  { ERROR("Sorry: no global variables - run StartAddResTest beforehand!!!"); }
2452
2453  list @l = list(@save_method, @save_desc, option(get), S, @t, @m);
2454 
2455//  RR, 
2456//  print(S, "betti");
2457 
2458  if( !@treeout )
2459  {
2460    "> -STOP RES TEST}}} ", @save_method, ", with:", @save_desc, ", Timer:", @t; option();
2461  } else
2462  {
2463    " ] },";
2464  }
2465
2466 
2467  option(set, @save_opts); kill @save_opts;
2468
2469  kill @save_method; kill @save_desc;
2470 
2471  @save_res_list[1 + size(@save_res_list)] = @l;
2472}
2473
2474
2475static proc SCheck(def S)
2476{
2477  setring S; // for checking...
2478
2479  module M = MRES;
2480  if( ncols(M) < nrows(M) )
2481  {
2482    M[nrows(M)] = 0;
2483  } else
2484  {
2485    M = transpose(M);
2486    if( ncols(M) < nrows(M) )
2487    {
2488      M[nrows(M)] = 0;
2489    }
2490    M = transpose(M);
2491  }
2492
2493  if( nrows(M) != ncols(M) )
2494  {
2495    "ERROR: non-square M!!!";
2496    m2_end(666);
2497  }
2498
2499  if( size(module( M*M )) > 0 )
2500  {
2501    "ERROR: module( M*M ) != 0!!!";
2502    module( M*M );
2503
2504    "MRES': "; M; print(M);
2505
2506    m2_end(666);
2507  }
2508//  "MRES': "; M; print(M);
2509
2510  if( size(RES[1]) != 0 )
2511  {
2512    "ERROR: wrong starting zero module!!!";
2513    m2_end(666);
2514  }
2515
2516//  RES;
2517/* 
2518  MRES;
2519  RES;
2520  "";
2521  LRES;
2522  "";
2523  TRES;
2524*/ 
2525}
2526
2527//// TODO: SSres(0) fails..!!!??
2528static proc TestSSres(def I)
2529{
2530  def save = basering;
2531  int @t,@m,r,rr,i;
2532  string name =
2533    "LEAD2SYZ:"  +string(attrib(SSinit,"LEAD2SYZ")) +
2534    ",TAILREDSYZ:"+string(attrib(SSinit,"TAILREDSYZ")) +
2535    ",HYBRIDNF:"  +string(attrib(SSinit,"HYBRIDNF"));
2536
2537  int @PROFILE = attrib(SSinit, "PROFILE");
2538  if(@PROFILE){ string @prof = "SSres_" + @save_res_desc + "_" + name + ".prof"; }
2539
2540  StartAddResTest(
2541   "SSres",
2542   "minres + betti(,1) + mods: {" + name + "}"
2543  );
2544 
2545  option(redSB); option(redTail);
2546  if(@PROFILE){ProfilerStart(@prof);}
2547  timer=0;rtimer=0;def R=SSres(I,0);@m=rtimer;
2548  if(@PROFILE){ProfilerStop();}
2549  setring R;module M;list @l=list();@l[size(RES)-1]=list();r=nrows(RES[1]);for(i=2;i<=size(RES);i++){M=RES[i];rr=nrows(M);if((r>0)&&(size(M)>0)&&(r<rr)){M=transpose(M);M=M[(r+1)..ncols(M)];M=transpose(M);RES[i]=M;};r=rr;@l[i-1] = M;};resolution RR=@l;RR=minres(RR);def S=betti(RR,1);@t=rtimer;
2550//  DetailedPrint(RR,0);
2551  SCheck(R);
2552  StopAddResTest(RR, S, @t,@m);
2553  kill S, RR; setring save; kill R;
2554}
2555
2556proc s_res(def I, int l)
2557"USAGE:  s_res(ideal/module M, int len)
2558RETURN:  SRES, a blackbox object containing a (part of) Schreyer resolution
2559PURPOSE: compute a Schreyer resolution of M of length at most len (see [BMSS])
2560NOTE:    If given len is zero then nvars(basering) + 1 is used instead.
2561@* SRES can be printed, treated by betti and minres or converted to list & mapped into the current ring with @code{SRES_list}
2562@* This functions is not related to other helpers from this library.
2563@* One can switch on computation protocol and statistic (depending on the build) by setting the @code{prot} option.
2564@* Further recognized switches are the following attributes of @code{Schreyer::SSinit} procedure:
2565LEAD2SYZ, TAILREDSYZ, HYBRIDNF
2566DEBUG, ...
2567SEE ALSO: sres
2568EXAMPLE: example s_res; shows an example
2569"
2570{
2571  int @prot = (find(option(),"prot") != 0) && (defined(NumberStatsInit)) && (defined(NumberStatsPrint));
2572  def R=SSinit(I); setring R; int @l = size(RES);
2573  SRES ret; ret.r = R;
2574  if(@prot){ NumberStatsInit(); }
2575  ret.rsltn = ComputeResolution(RES[@l], LRES[@l], TRES[@l], l);
2576  if(@prot){ NumberStatsPrint("Number statistic for s_res with ComputeResolution"); }
2577  return (ret);
2578}
2579example
2580{ "EXAMPLE:"; echo = 2;
2581  ring R;
2582  module M = maxideal(1); M;
2583  SRES rs = s_res(M, 0);
2584  print(rs);
2585  print(betti(rs, 0)); // non-minimal betties
2586  print(SRES_list(rs));
2587  print(betti(rs, 1)); //minimal betties
2588  print(minres(rs));
2589}
2590
2591static proc s_syz(def I)
2592{
2593  def R=SSinit(I); setring R;
2594  int @l = size(RES); //   def M =  RES[@l];
2595  module N, LL, TT; (N, LL, TT) = SSComputeSyzygy(LRES[@l], TRES[@l]);
2596  SSYZ ret; ret.r = R; ret.szg = N; // Schreyer::ComputeResolution(RES[2], LRES[2], TRES[2], 0);
2597  return (ret);
2598}
2599
2600static proc TestSSSres(def I)
2601{
2602  def save = basering;
2603  int @t,@m,r,rr,i;
2604  string name =
2605    "LEAD2SYZ:"  +string(attrib(SSinit,"LEAD2SYZ")) +
2606    ",TAILREDSYZ:"+string(attrib(SSinit,"TAILREDSYZ")) +
2607    ",HYBRIDNF:"  +string(attrib(SSinit,"HYBRIDNF"));
2608
2609  int @PROFILE = attrib(SSinit, "PROFILE");
2610  if(@PROFILE){ string @prof = "SSSres_" + @save_res_desc + "_" + name + ".prof"; }
2611
2612  StartAddResTest(
2613   "SSSres",
2614   "minres + betti(,1) + mods: {" + name + "}"
2615  );
2616 
2617  option(redSB); option(redTail);
2618  if(@PROFILE){ProfilerStart(@prof);}
2619  timer=0;rtimer=0;def R=SSinit(I);setring R;def RR=ComputeResolution(RES[2], LRES[2], TRES[2], 0);
2620@m=rtimer;
2621  if(@PROFILE){ProfilerStop();}
2622RR=minres(RR);def S=betti(RR,1);@t=rtimer;
2623//  DetailedPrint(RR,0);  print(RR);  print(S, "betti");
2624  SCheck(R);
2625  StopAddResTest(RR, S, @t,@m);
2626  kill S, RR; setring save; kill R;
2627}
2628
2629
2630static proc TestSres(def I)
2631{
2632  def save = basering;
2633  int @t,r,rr,i,@m;
2634  StartAddResTest(
2635  "Sres",
2636  "minres + betti(,1)"
2637  );
2638  option(redSB); option(redTail);
2639  timer=0;rtimer=0;def R=Sres(I,0);@m=rtimer;setring R;module M;list @l=list();@l[size(RES)-1]=list();r=nrows(RES[1]);for(i=2;i<=size(RES);i++){M=RES[i];rr=nrows(M);if((r>0)&&(size(M)>0)&&(r<rr)){M=transpose(M);M=M[(r+1)..ncols(M)];M=transpose(M);RES[i]=M;};r=rr;@l[i-1] = M;};resolution RR=@l;RR=minres(RR);def S=betti(RR,1);@t=rtimer;
2640  SCheck(R);
2641  StopAddResTest(RR, S, @t,@m); 
2642  kill S, RR; setring save; kill R;
2643}
2644
2645
2646static proc Testsres(def M)
2647{
2648  int @t,@m;
2649  StartAddResTest("sres", "no minres + betti(,1)");
2650  option(redSB);option(redTail);
2651  timer=0;rtimer=0;def RR=sres(groebner(M),0);@m=rtimer;def S=betti(RR,1);@t=rtimer;
2652  StopAddResTest(RR, S, @t,@m); kill S, RR;
2653}
2654
2655static proc Testlres(def M)
2656{
2657  int @t,@m;
2658  StartAddResTest("lres", "no minres + betti(,1)");
2659  option(redSB);option(redTail);
2660  timer=0;rtimer=0;def RR=lres(M,0);@m=rtimer;def S=betti(RR,1);@t=rtimer;
2661  StopAddResTest(RR, S, @t,@m); kill S, RR;
2662
2663  StartAddResTest("lres", "minres + betti()");
2664  option(redSB);option(redTail);
2665  timer=0;rtimer=0;def RR=lres(M,0);@m=rtimer;def S=betti(minres(RR));@t=rtimer;
2666  StopAddResTest(RR, S, @t,@m);
2667  kill S, RR;
2668}
2669
2670
2671static proc Testnres(def M)
2672{
2673  int @t,@m;
2674  StartAddResTest("nres", "no minres + betti(,1)");
2675 
2676  option(redSB); option(redTail);
2677  timer=0;rtimer=0;def RR=nres(M,0);@m=rtimer;def S=betti(RR,1);@t=rtimer;
2678 
2679  StopAddResTest(RR, S, @t,@m); kill S, RR;
2680}
2681
2682static proc TestSSresAttribs(def M, list #)
2683{
2684  M = groebner(M);
2685 
2686  StartResTesting(#);
2687
2688  attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 0); TestSSSres(M);
2689  attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 1); TestSSSres(M);
2690
2691 // WRONG???! LEAD2SYZ?
2692//  attrib(SSinit, "LEAD2SYZ", 1); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 0); TestSSSres(M);
2693//  attrib(SSinit, "LEAD2SYZ", 1); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 1); TestSSSres(M);
2694
2695  int @treeout = attrib(SSinit, "TREEOUTPUT");
2696  if( !@treeout )
2697  {
2698   Testlres(M); Testnres(M);
2699//   Testsres(M); //   TestSres(M); // too long for the last medium test :(
2700  }
2701 
2702  StopResTesting();
2703}
2704
2705static proc TestSSresAttribs2tr(def M, list #)
2706{
2707  M = groebner(M);
2708 
2709  StartResTesting(#);
2710 
2711  attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 0); TestSSSres(M);
2712  Testlres(M); 
2713
2714  StopResTesting();
2715}
2716
2717static proc testSimple(list #)
2718{
2719  mod_assure_load();
2720
2721  def DEBUG = 0;
2722  if(size(#) > 0) { DEBUG = #[1]; }
2723
2724  system("--min-time", "0.01");
2725  system("--ticks-per-sec", 100);
2726
2727//  option(prot);
2728
2729  // TODO: only for now!!
2730  attrib(SSinit, "DEBUG", (DEBUG > 0) );
2731  attrib(SSinit, "SYZCHECK", (DEBUG > 0) );
2732  attrib(SSinit, "KERCHECK", (DEBUG > 0) );
2733
2734  attrib(SSinit, "TREEOUTPUT", 0);
2735  attrib(SSinit, "PROFILE", 0);
2736  attrib(SSinit, "IGNORETAILS", 0); // not only frame
2737
2738  int @treeout = attrib(SSinit, "TREEOUTPUT");
2739 
2740  if( @treeout)
2741  {
2742    monitor("SimpleTests.json", "o");
2743    "{ \"SimpleTests\": [";
2744  } else { option(prot); }
2745 
2746
2747  ring r; ideal M = maxideal(1);
2748  TestSSresAttribs(M, "\\\\GENERATED{" + string(M) + "} in " + string(basering));
2749  kill r;
2750
2751  ring r = 0, (a, b, c, d), lp; ideal M = maxideal(1);
2752  TestSSresAttribs(M, "\\\\GENERATED{" + string(M) + "} in " + string(basering));
2753  kill r;
2754
2755  ring R = 0, (w, x, y, z), dp;
2756  ideal M = w^2 - x*z,  w*x - y*z,  x^2 - w*y, x*y - z^2, y^2 - w*z;
2757  TestSSresAttribs(M, "\\\\GENERATED{" + string(M) + "} in " + string(basering));
2758  kill R;
2759
2760
2761  ring r = 0, (a, b, c, d, e, f), dp; ideal M = maxideal(1);
2762  TestSSresAttribs(M, "\\\\GENERATED{" + string(M) + "} in " + string(basering));
2763  kill r; 
2764
2765
2766  ring r = 0, (x, y), lp; ideal M = x2, xy, y2;  // Schreyer conterexample???
2767  TestSSresAttribs(M, "\\\\GENERATED{" + string(M) + "} in " + string(basering));
2768  kill r;
2769
2770  ring r = 0, (x, y, z, t), dp; ideal M = homog(xy + y2 +x + 2y -1, t), homog(xz - x -y -z -2, t), homog(yz +1, t);  // TODO: seg. fault?
2771  TestSSresAttribs(M, "\\\\GENERATED{" + string(M) + "} in " + string(basering));
2772  kill r;
2773
2774 
2775  ring AGR = (101), (a, b, c, d), dp;
2776  // simple: AGR@101n3d002s004%1:
2777  ideal M = c*d, b*d, a*d, c^2-d^2, b*c, a*c, b^2-d^2, a*b, a^2-d^2;
2778  TestSSresAttribs(M, "simple: AGR@101n3d002s004%1");
2779
2780  // medium: AGR@101n3d004s009%1;
2781  M = a*b+7*a*c-16*b*c-27*a*d+37*b*d-2*c*d, d^3, c*d^2, b*d^2, a*d^2, c^2*d, b*c*d, a*c*d, b^2*d, a^2*d, c^3, b*c^2, a*c^2, b^2*c, a^2*c, b^3, a^3;
2782  TestSSresAttribs(M, "medium: AGR@101n3d004s009%1");
2783
2784  if( @treeout)
2785  {
2786    "] }";
2787    monitor("");
2788  }
2789
2790}
2791
2792static proc testAGR(list #)
2793{
2794  def DEBUG = 0;
2795  if(size(#) > 0) { DEBUG = #[1]; }
2796
2797  system("--min-time", "0.01");
2798  system("--ticks-per-sec", 100);
2799
2800  attrib(SSinit, "DEBUG", 0);
2801  attrib(SSinit, "SYZCHECK", (DEBUG > 0));
2802  attrib(SSinit, "KERCHECK", 0);
2803  attrib(SSinit, "TREEOUTPUT", 0);
2804  attrib(SSinit, "PROFILE", 0);
2805  attrib(SSinit, "IGNORETAILS", 0); // not only frame
2806 
2807  option(prot);
2808
2809  ring AGR = (101), (a, b, c, d), dp; AGR;
2810  // lengthy: AGR@101n3d008s058%3, kernel only!
2811  ideal M = c^4*d^2+4*a^3*d^3+29*a^2*b*d^3-2*a*b^2*d^3+2*b^3*d^3-21*a^2*c*d^3+46*a*b*c*d^3+2*b^2*c*d^3-13*a*c^2*d^3+32*b*c^2*d^3+46*c^3*d^3-28*a^2*d^4+4*a*b*d^4+29*b^2*d^4-8*a*c*d^4+33*b*c*d^4-16*c^2*d^4+17*a*d^5-3*b*d^5-42*c*d^5+47*d^6,b*c^3*d^2+35*a^3*d^3+24*a^2*b*d^3+46*a*b^2*d^3-22*b^3*d^3-48*a^2*c*d^3+20*a*b*c*d^3-28*b^2*c*d^3-40*a*c^2*d^3-4*b*c^2*d^3+35*c^3*d^3-21*a^2*d^4+3*a*b*d^4+8*b^2*d^4-2*a*c*d^4-22*b*c*d^4+24*c^2*d^4+44*a*d^5+33*b*d^5+31*c*d^5+26*d^6,a*c^3*d^2-42*a^3*d^3+34*a^2*b*d^3-10*a*b^2*d^3+30*b^3*d^3-6*a^2*c*d^3-30*a*b*c*d^3-34*b^2*c*d^3+29*a*c^2*d^3+35*b*c^2*d^3+13*c^3*d^3+8*a^2*d^4+23*a*b*d^4-29*b^2*d^4+12*a*c*d^4-22*b*c*d^4-50*c^2*d^4-4*b*d^5+9*c*d^5+13*d^6,b^2*c^2*d^2+a^3*d^3-49*a^2*b*d^3+26*a*b^2*d^3+20*b^3*d^3+24*a^2*c*d^3-2*a*b*c*d^3+31*b^2*c*d^3-30*a*c^2*d^3+21*b*c^2*d^3-24*c^3*d^3-38*a^2*d^4-14*a*b*d^4-14*b^2*d^4+6*a*c*d^4+3*b*c*d^4+13*c^2*d^4-11*a*d^5-38*b*d^5+22*c*d^5+48*d^6,a*b*c^2*d^2+18*a^3*d^3-29*a^2*b*d^3-21*a*b^2*d^3-2*b^3*d^3-25*a^2*c*d^3+37*a*b*c*d^3-14*b^2*c*d^3-47*a*c^2*d^3-6*b*c^2*d^3-34*c^3*d^3+43*a^2*d^4+22*a*b*d^4-39*b^2*d^4-41*a*c*d^4-17*b*c*d^4-13*c^2*d^4-43*a*d^5+28*b*d^5-42*c*d^5-49*d^6,a^2*c^2*d^2-33*a^3*d^3+30*a^2*b*d^3-13*a*b^2*d^3+18*b^3*d^3-8*a^2*c*d^3-18*a*b*c*d^3-15*b^2*c*d^3-21*a*c^2*d^3+45*b*c^2*d^3-35*c^3*d^3-4*a^2*d^4-4*a*b*d^4+10*b^2*d^4-19*a*c*d^4-18*b*c*d^4-22*c^2*d^4-27*a*d^5+20*b*d^5-14*c*d^5+24*d^6,b^3*c*d^2-10*a^3*d^3+37*a*b^2*d^3-43*b^3*d^3-10*a^2*c*d^3-9*a*b*c*d^3+47*a*c^2*d^3-24*b*c^2*d^3+12*c^3*d^3+7*a^2*d^4+19*a*b*d^4-27*b^2*d^4-2*a*c*d^4-35*b*c*d^4+45*c^2*d^4-44*a*d^5-43*b*d^5+24*c*d^5+16*d^6,a*b^2*c*d^2+2*a^3*d^3-14*a^2*b*d^3+2*a*b^2*d^3+18*b^3*d^3-48*a^2*c*d^3+43*a*b*c*d^3-25*b^2*c*d^3+15*a*c^2*d^3-7*b*c^2*d^3+42*c^3*d^3-16*a^2*d^4+7*b^2*d^4-23*a*c*d^4+24*b*c*d^4+25*c^2*d^4-17*a*d^5-16*b*d^5-32*c*d^5-50*d^6,a^2*b*c*d^2-16*a^3*d^3+7*a^2*b*d^3-20*a*b^2*d^3+11*b^3*d^3+16*a^2*c*d^3+6*a*b*c*d^3-25*b^2*c*d^3+42*a*c^2*d^3-39*b*c^2*d^3-15*c^3*d^3-25*a^2*d^4+46*a*b*d^4-3*b^2*d^4+5*a*c*d^4+28*b*c*d^4+6*c^2*d^4-20*a*d^5-15*b*d^5-30*c*d^5+17*d^6,a^3*c*d^2+39*a^3*d^3+22*a^2*b*d^3-21*a*b^2*d^3+10*b^3*d^3+40*a^2*c*d^3-37*a*b*c*d^3+11*b^2*c*d^3+43*a*c^2*d^3+28*b*c^2*d^3-10*c^3*d^3+30*a^2*d^4+36*a*b*d^4-45*b^2*d^4-40*a*c*d^4-31*b*c*d^4+28*c^2*d^4+35*a*d^5+6*b*d^5+14*c*d^5+25*d^6,b^4*d^2+50*a^3*d^3+12*a^2*b*d^3+29*a*b^2*d^3-38*b^3*d^3-44*a^2*c*d^3+28*a*b*c*d^3+18*b^2*c*d^3-31*a*c^2*d^3+16*b*c^2*d^3-18*c^3*d^3+5*a^2*d^4-43*a*b*d^4+16*b^2*d^4+9*a*c*d^4-30*b*c*d^4+50*c^2*d^4+3*a*d^5+33*b*d^5+3*c*d^5-48*d^6,a*b^3*d^2+13*a^3*d^3-28*a^2*b*d^3-33*a*b^2*d^3-25*b^3*d^3-41*a^2*c*d^3+a*b*c*d^3+19*b^2*c*d^3+41*a*c^2*d^3-17*b*c^2*d^3+34*c^3*d^3-10*a^2*d^4+30*a*b*d^4+34*b^2*d^4+13*a*c*d^4+b*c*d^4-35*c^2*d^4-34*a*d^5+23*b*d^5-7*c*d^5+6*d^6,a^2*b^2*d^2+22*a^3*d^3-32*a^2*b*d^3+29*a*b^2*d^3+21*b^3*d^3-30*a^2*c*d^3-47*a*b*c*d^3-11*b^2*c*d^3-16*a*c^2*d^3-14*b*c^2*d^3+49*c^3*d^3+47*a^2*d^4-11*a*b*d^4+4*b^2*d^4+13*a*c*d^4+7*b*c*d^4-30*c^2*d^4+31*a*d^5+10*b*d^5-8*c*d^5-27*d^6,a^3*b*d^2-43*a^3*d^3-2*a^2*b*d^3+15*a*b^2*d^3+42*b^3*d^3+25*a^2*c*d^3+22*a*b*c*d^3-4*b^2*c*d^3-29*a*c^2*d^3-31*b*c^2*d^3-3*c^3*d^3+33*a^2*d^4+20*a*b*d^4-34*b^2*d^4+8*a*c*d^4+48*b*c*d^4-29*c^2*d^4-46*a*d^5+27*b*d^5+29*c*d^5+33*d^6,a^4*d^2+30*a^3*d^3-42*a*b^2*d^3-16*b^3*d^3-33*a^2*c*d^3+13*a*b*c*d^3+7*b^2*c*d^3-23*a*c^2*d^3+28*b*c^2*d^3-37*c^3*d^3+3*a^2*d^4-34*a*b*d^4+16*b^2*d^4-21*a*c*d^4-39*b*c*d^4+5*c^2*d^4+35*a*d^5+39*b*d^5-26*c*d^5-47*d^6,c^5*d+48*a^3*d^3-37*a^2*b*d^3+31*a*b^2*d^3-19*b^3*d^3+49*a^2*c*d^3-5*a*b*c*d^3+45*b^2*c*d^3+24*a*c^2*d^3-26*b*c^2*d^3-10*c^3*d^3-a^2*d^4+43*a*b*d^4-26*b^2*d^4+45*a*c*d^4-3*b*c*d^4+38*c^2*d^4+10*a*d^5-5*b*d^5-34*c*d^5+22*d^6,b*c^4*d+30*a^3*d^3-40*a^2*b*d^3-39*a*b^2*d^3+33*b^3*d^3+31*a^2*c*d^3-17*a*b*c*d^3-44*b^2*c*d^3+24*a*c^2*d^3+22*b*c^2*d^3-44*c^3*d^3-29*a^2*d^4+4*a*b*d^4-4*b^2*d^4+8*a*c*d^4-42*b*c*d^4+15*c^2*d^4-42*a*d^5+15*b*d^5-41*c*d^5-46*d^6,a*c^4*d-11*a^3*d^3-5*a^2*b*d^3+33*a*b^2*d^3+7*b^3*d^3-31*a^2*c*d^3-47*a*b*c*d^3-50*b^2*c*d^3-50*a*c^2*d^3-39*b*c^2*d^3+25*c^3*d^3+5*a^2*d^4+35*a*b*d^4-34*b^2*d^4+42*a*c*d^4-44*b*c*d^4-17*c^2*d^4+11*a*d^5+b*d^5+31*c*d^5+45*d^6,b^2*c^3*d+12*a^3*d^3-41*a^2*b*d^3+29*a*b^2*d^3-42*b^3*d^3-32*a^2*c*d^3+47*a*b*c*d^3-13*b^2*c*d^3-20*a*c^2*d^3+45*b*c^2*d^3-49*c^3*d^3-34*a^2*d^4+16*a*b*d^4+11*b^2*d^4-49*a*c*d^4-27*b*c*d^4-31*c^2*d^4+29*a*d^5-23*b*d^5+13*c*d^5+42*d^6,a*b*c^3*d-16*a^3*d^3-35*a^2*b*d^3+12*a*b^2*d^3-39*b^3*d^3-32*a*b*c*d^3-4*b^2*c*d^3+31*a*c^2*d^3+43*b*c^2*d^3-42*c^3*d^3+36*a^2*d^4-5*a*b*d^4-4*b^2*d^4+5*a*c*d^4+20*b*c*d^4+31*c^2*d^4+15*a*d^5+25*b*d^5-16*c*d^5-28*d^6,a^2*c^3*d-16*a^3*d^3+8*a^2*b*d^3+30*a*b^2*d^3-16*b^3*d^3+20*a^2*c*d^3-11*b^2*c*d^3-48*a*c^2*d^3+11*b*c^2*d^3-20*c^3*d^3-24*a^2*d^4-23*a*b*d^4+9*b^2*d^4+13*a*c*d^4-42*b*c*d^4+22*c^2*d^4-29*a*d^5-28*b*d^5-7*c*d^5-2*d^6,b^3*c^2*d+42*a^3*d^3-11*a^2*b*d^3+18*a*b^2*d^3-13*b^3*d^3+22*a^2*c*d^3-10*a*b*c*d^3-25*b^2*c*d^3-17*a*c^2*d^3-23*b*c^2*d^3-37*c^3*d^3-3*a^2*d^4-33*a*b*d^4+44*b^2*d^4-41*a*c*d^4+6*b*c*d^4-36*c^2*d^4-43*a*d^5+b*d^5+25*c*d^5+48*d^6,a*b^2*c^2*d+21*a^3*d^3+5*a^2*b*d^3+38*a*b^2*d^3+25*b^3*d^3-12*a^2*c*d^3+7*a*b*c*d^3+28*b^2*c*d^3+a*c^2*d^3+33*b*c^2*d^3+22*c^3*d^3+10*a^2*d^4-7*a*b*d^4-5*b^2*d^4+50*a*c*d^4-23*b*c*d^4+22*c^2*d^4-4*a*d^5+45*b*d^5-42*c*d^5+d^6,a^2*b*c^2*d-45*a^3*d^3+2*a^2*b*d^3+44*a*b^2*d^3-5*b^3*d^3-19*a^2*c*d^3-3*a*b*c*d^3+18*b^2*c*d^3-22*a*c^2*d^3+46*b*c^2*d^3+41*c^3*d^3-26*a^2*d^4-a*b*d^4-42*b^2*d^4-40*a*c*d^4+39*b*c*d^4+24*c^2*d^4-6*a*d^5-6*b*d^5+13*c*d^5-28*d^6,a^3*c^2*d+4*a^3*d^3+31*a^2*b*d^3+21*a*b^2*d^3+39*b^3*d^3-8*a^2*c*d^3+49*a*b*c*d^3-48*b^2*c*d^3-16*a*c^2*d^3-33*b*c^2*d^3+35*c^3*d^3+41*a^2*d^4+18*a*b*d^4+47*b^2*d^4-3*a*c*d^4+12*b*c*d^4+13*c^2*d^4+32*a*d^5-40*b*d^5+50*c*d^5-2*d^6,b^4*c*d+23*a^3*d^3+47*a^2*b*d^3-10*a*b^2*d^3-43*b^3*d^3+49*a^2*c*d^3+7*a*b*c*d^3+34*b^2*c*d^3-40*a*c^2*d^3-37*b*c^2*d^3-6*c^3*d^3+30*a^2*d^4-34*a*b*d^4-6*b^2*d^4+21*a*c*d^4+41*b*c*d^4-33*c^2*d^4-9*a*d^5+2*b*d^5+8*c*d^5+7*d^6,a*b^3*c*d-5*a^3*d^3-42*a^2*b*d^3+22*a*b^2*d^3-35*b^3*d^3+a^2*c*d^3+20*a*b*c*d^3-10*b^2*c*d^3+23*a*c^2*d^3-17*b*c^2*d^3+30*c^3*d^3+24*a^2*d^4+32*a*b*d^4-7*b^2*d^4-48*a*c*d^4-25*b*c*d^4-6*c^2*d^4-33*a*d^5+29*b*d^5+12*c*d^5+26*d^6,a^2*b^2*c*d+6*a^3*d^3-46*a^2*b*d^3-30*a*b^2*d^3+b^3*d^3-35*a^2*c*d^3+41*a*b*c*d^3-4*b^2*c*d^3-42*a*c^2*d^3+16*b*c^2*d^3+19*c^3*d^3-13*a^2*d^4-16*a*b*d^4+45*b^2*d^4-25*a*c*d^4-48*b*c*d^4+35*c^2*d^4+50*a*d^5+31*b*d^5-25*c*d^5+6*d^6,a^3*b*c*d+3*a^3*d^3-39*a^2*b*d^3+14*a*b^2*d^3-4*b^3*d^3-36*a^2*c*d^3+47*a*b*c*d^3+27*b^2*c*d^3+50*a*c^2*d^3-45*b*c^2*d^3+49*c^3*d^3-18*a^2*d^4+20*a*b*d^4+17*b^2*d^4+a*c*d^4+33*b*c*d^4+42*c^2*d^4+19*a*d^5+18*b*d^5+33*c*d^5+15*d^6,a^4*c*d-14*a^3*d^3-8*a^2*b*d^3-a*b^2*d^3-34*b^3*d^3-27*a^2*c*d^3-15*a*b*c*d^3-14*b^2*c*d^3+33*a*c^2*d^3-34*b*c^2*d^3-4*c^3*d^3+47*a^2*d^4+50*a*b*d^4-6*b^2*d^4+16*a*c*d^4+26*c^2*d^4-27*a*d^5+2*b*d^5-31*c*d^5+47*d^6,b^5*d+3*a^3*d^3-9*a^2*b*d^3+46*a*b^2*d^3+b^3*d^3-2*a^2*c*d^3-39*a*b*c*d^3-31*b^2*c*d^3-30*a*c^2*d^3+23*b*c^2*d^3+25*c^3*d^3+9*a^2*d^4-15*a*b*d^4-2*b^2*d^4-12*a*c*d^4+11*b*c*d^4+9*c^2*d^4+3*a*d^5+9*b*d^5+41*c*d^5-38*d^6,a*b^4*d-48*a^3*d^3+42*a^2*b*d^3+27*a*b^2*d^3+32*b^3*d^3+21*a^2*c*d^3-5*a*b*c*d^3-39*b^2*c*d^3+6*a*c^2*d^3-20*b*c^2*d^3+45*c^3*d^3-48*a^2*d^4+44*a*b*d^4+25*b^2*d^4-29*a*c*d^4+4*b*c*d^4+50*c^2*d^4-6*a*d^5-40*b*d^5-11*c*d^5-28*d^6,a^2*b^3*d-41*a^3*d^3+21*a^2*b*d^3+39*a*b^2*d^3-2*b^3*d^3+24*a*b*c*d^3-10*b^2*c*d^3+31*a*c^2*d^3-34*b*c^2*d^3-31*c^3*d^3+20*a^2*d^4+41*a*b*d^4-10*b^2*d^4-40*a*c*d^4+5*b*c*d^4+31*c^2*d^4+6*a*d^5+26*b*d^5+29*c*d^5-5*d^6,a^3*b^2*d-11*a^3*d^3-39*a^2*b*d^3+2*a*b^2*d^3-44*b^3*d^3-23*a^2*c*d^3+21*a*b*c*d^3-44*b^2*c*d^3-7*a*c^2*d^3+49*b*c^2*d^3+46*c^3*d^3+17*a^2*d^4+49*a*b*d^4-14*b^2*d^4+29*a*c*d^4-20*b*c*d^4-49*c^2*d^4-13*a*d^5-41*b*d^5-18*c*d^5+50*d^6,a^4*b*d+9*a^3*d^3+50*a^2*b*d^3+46*a*b^2*d^3-48*b^3*d^3+43*a^2*c*d^3-45*a*b*c*d^3+24*b^2*c*d^3-4*a*c^2*d^3-b*c^2*d^3-34*c^3*d^3+33*a^2*d^4+14*a*b*d^4-37*b^2*d^4-13*a*c*d^4+48*b*c*d^4-31*c^2*d^4-22*a*d^5+42*b*d^5+49*c*d^5-43*d^6,a^5*d+33*a^3*d^3-23*a^2*b*d^3+30*a*b^2*d^3+5*b^3*d^3-26*a^2*c*d^3-35*a*b*c*d^3-50*b^2*c*d^3-21*a*c^2*d^3+4*b*c^2*d^3+10*c^3*d^3+39*a^2*d^4-2*a*b*d^4+23*b^2*d^4+17*a*c*d^4-50*b*c*d^4-8*c^2*d^4-39*a*d^5+36*b*d^5-43*c*d^5-39*d^6,c^6+20*a^3*d^3-41*a*b^2*d^3+39*b^3*d^3+26*a^2*c*d^3-8*a*b*c*d^3-49*b^2*c*d^3+25*a*c^2*d^3+32*b*c^2*d^3-32*c^3*d^3-2*a^2*d^4-38*a*b*d^4-38*b^2*d^4+17*a*c*d^4+22*b*c*d^4-36*c^2*d^4-41*a*d^5+37*b*d^5-49*c*d^5-19*d^6,b*c^5-36*a^3*d^3+32*a^2*b*d^3-14*a*b^2*d^3-31*b^3*d^3-2*a^2*c*d^3-8*a*b*c*d^3-39*b^2*c*d^3-46*a*c^2*d^3+10*b*c^2*d^3+27*c^3*d^3+25*a^2*d^4-30*a*b*d^4+3*b^2*d^4-36*a*c*d^4+44*b*c*d^4+17*c^2*d^4-46*a*d^5-37*b*d^5-2*c*d^5-47*d^6,a*c^5-49*a^3*d^3+11*a^2*b*d^3-21*a*b^2*d^3-14*b^3*d^3+26*a^2*c*d^3-a*b*c*d^3+24*b^2*c*d^3-46*a*c^2*d^3+23*b*c^2*d^3+33*c^3*d^3-11*a^2*d^4-a*b*d^4+49*b^2*d^4-17*a*c*d^4+49*b*c*d^4+36*c^2*d^4+10*a*d^5-19*b*d^5+26*c*d^5-32*d^6,b^2*c^4-14*a^3*d^3+9*a^2*b*d^3-5*a*b^2*d^3+17*b^3*d^3+2*a^2*c*d^3+12*a*b*c*d^3-37*b^2*c*d^3-43*a*c^2*d^3+5*b*c^2*d^3-9*c^3*d^3-27*a^2*d^4+14*a*b*d^4-19*b^2*d^4+29*a*c*d^4+32*b*c*d^4-15*c^2*d^4-26*a*d^5-31*b*d^5+46*c*d^5-22*d^6,a*b*c^4+33*a^3*d^3-22*a^2*b*d^3-14*a*b^2*d^3-30*b^3*d^3-48*a^2*c*d^3+34*a*b*c*d^3-8*b^2*c*d^3-44*a*c^2*d^3-4*b*c^2*d^3+3*c^3*d^3+26*a^2*d^4+4*a*b*d^4+7*b^2*d^4-28*a*c*d^4-22*b*c*d^4-35*c^2*d^4-50*a*d^5-43*b*d^5+46*c*d^5-49*d^6,a^2*c^4-9*a^3*d^3+3*a^2*b*d^3+34*a*b^2*d^3+4*b^3*d^3+5*a^2*c*d^3-17*a*b*c*d^3-48*b^2*c*d^3+10*a*c^2*d^3+2*b*c^2*d^3-12*c^3*d^3-7*a^2*d^4-6*a*b*d^4+37*b^2*d^4-16*a*c*d^4+47*b*c*d^4+6*c^2*d^4-35*a*d^5-45*b*d^5-12*c*d^5-30*d^6,b^3*c^3-21*a^3*d^3-6*a^2*b*d^3-26*a*b^2*d^3-22*b^3*d^3-29*a*b*c*d^3-26*b^2*c*d^3+50*a*c^2*d^3-41*b*c^2*d^3+22*c^3*d^3-41*a^2*d^4+25*a*b*d^4+16*b^2*d^4+11*a*c*d^4+34*b*c*d^4+19*c^2*d^4-38*a*d^5-8*b*d^5-42*c*d^5-6*d^6,a*b^2*c^3+3*a^3*d^3-45*a^2*b*d^3+39*a*b^2*d^3+22*b^3*d^3+48*a^2*c*d^3-7*a*b*c*d^3-46*b^2*c*d^3-22*a*c^2*d^3-17*b*c^2*d^3-27*c^3*d^3-35*a^2*d^4+47*a*b*d^4+6*b^2*d^4-5*a*c*d^4-30*b*c*d^4+25*c^2*d^4-10*a*d^5+46*b*d^5+5*c*d^5-18*d^6,a^2*b*c^3-36*a^3*d^3+33*a^2*b*d^3+47*a*b^2*d^3-16*b^3*d^3-41*a^2*c*d^3+42*a*b*c*d^3-29*b^2*c*d^3+39*a*c^2*d^3-12*b*c^2*d^3-25*c^3*d^3-11*a^2*d^4-37*a*b*d^4+29*b^2*d^4-18*a*c*d^4+43*b*c*d^4+12*c^2*d^4-37*a*d^5+7*b*d^5+7*c*d^5-5*d^6,a^3*c^3+25*a^3*d^3+34*a^2*b*d^3+29*a*b^2*d^3-34*b^3*d^3-46*a^2*c*d^3-17*a*b*c*d^3+49*b^2*c*d^3-35*a*c^2*d^3-21*b*c^2*d^3-45*c^3*d^3+43*a^2*d^4+29*a*b*d^4+36*b^2*d^4+37*a*c*d^4+12*b*c*d^4-17*c^2*d^4+12*a*d^5+47*c*d^5-23*d^6,b^4*c^2-10*a^3*d^3+38*a^2*b*d^3+33*a*b^2*d^3+9*b^3*d^3-25*a^2*c*d^3+38*a*b*c*d^3-19*b^2*c*d^3-33*a*c^2*d^3-49*b*c^2*d^3-16*c^3*d^3-14*a^2*d^4-3*a*b*d^4-30*b^2*d^4-32*a*c*d^4+28*b*c*d^4-3*c^2*d^4-16*a*d^5+31*b*d^5-49*c*d^5-3*d^6,a*b^3*c^2+25*a^3*d^3-47*a^2*b*d^3+47*b^3*d^3+13*a^2*c*d^3-17*a*b*c*d^3+26*b^2*c*d^3-43*a*c^2*d^3+39*b*c^2*d^3-4*c^3*d^3+20*a^2*d^4+6*a*b*d^4+49*b^2*d^4+14*a*c*d^4-17*b*c*d^4+38*c^2*d^4+21*a*d^5-9*b*d^5-26*c*d^5+47*d^6,a^2*b^2*c^2+12*a^3*d^3+10*a^2*b*d^3-40*a*b^2*d^3+14*b^3*d^3+36*a^2*c*d^3-9*a*b*c*d^3+9*b^2*c*d^3+7*a*c^2*d^3+12*b*c^2*d^3-37*c^3*d^3-44*a^2*d^4-48*a*b*d^4+11*b^2*d^4-13*a*c*d^4+31*b*c*d^4+47*c^2*d^4+28*a*d^5+39*b*d^5+27*c*d^5-d^6,a^3*b*c^2-28*a^3*d^3-22*a^2*b*d^3-8*a*b^2*d^3+40*b^3*d^3-13*a^2*c*d^3+35*a*b*c*d^3-4*b^2*c*d^3+28*a*c^2*d^3+30*b*c^2*d^3-13*c^3*d^3+16*a^2*d^4+48*a*b*d^4-42*b^2*d^4+10*a*c*d^4-b*c*d^4+37*c^2*d^4-17*a*d^5-15*b*d^5+40*c*d^5+27*d^6,a^4*c^2+17*a^3*d^3+45*a^2*b*d^3+42*a*b^2*d^3-20*b^3*d^3-39*a^2*c*d^3-20*a*b*c*d^3-44*b^2*c*d^3+33*a*c^2*d^3+39*b*c^2*d^3-37*c^3*d^3+39*a^2*d^4+39*a*b*d^4-44*b^2*d^4+8*a*c*d^4-34*b*c*d^4+36*c^2*d^4-47*a*d^5+38*b*d^5-46*c*d^5+23*d^6,b^5*c+24*a^3*d^3+17*a^2*b*d^3-22*a*b^2*d^3-27*b^3*d^3+27*a^2*c*d^3+48*a*b*c*d^3+4*b^2*c*d^3+a*c^2*d^3-21*b*c^2*d^3-14*c^3*d^3+3*a^2*d^4+15*a*b*d^4+41*b^2*d^4-27*a*c*d^4+4*b*c*d^4+3*c^2*d^4-46*a*d^5+28*b*d^5+6*c*d^5+36*d^6,a*b^4*c-29*a^3*d^3+30*a^2*b*d^3+31*a*b^2*d^3+44*b^3*d^3-12*a^2*c*d^3-27*a*b*c*d^3+48*b^2*c*d^3+4*a*c^2*d^3+2*b*c^2*d^3-17*c^3*d^3-7*a^2*d^4+25*a*b*d^4-45*b^2*d^4-17*a*c*d^4-14*b*c*d^4-11*c^2*d^4-45*a*d^5-36*b*d^5-12*c*d^5-44*d^6,a^2*b^3*c-10*a^3*d^3-30*a^2*b*d^3-22*a*b^2*d^3-35*b^3*d^3+37*a^2*c*d^3-35*a*b*c*d^3-12*b^2*c*d^3-16*b*c^2*d^3+49*c^3*d^3+38*a^2*d^4-21*a*b*d^4-20*b^2*d^4-6*a*c*d^4+41*b*c*d^4+49*c^2*d^4+13*a*d^5-38*b*d^5-32*c*d^5-12*d^6,a^3*b^2*c+5*a^2*b*d^3-40*a*b^2*d^3+14*b^3*d^3-4*a^2*c*d^3-13*a*b*c*d^3+47*b^2*c*d^3+28*a*c^2*d^3+15*b*c^2*d^3+47*c^3*d^3-8*a^2*d^4-20*a*b*d^4+3*b^2*d^4+42*a*c*d^4+18*b*c*d^4-23*c^2*d^4-48*a*d^5+12*b*d^5-25*c*d^5-39*d^6,a^4*b*c+29*a^3*d^3+21*a^2*b*d^3-32*a*b^2*d^3+48*b^3*d^3-44*a^2*c*d^3-3*a*b*c*d^3-27*b^2*c*d^3+27*a*c^2*d^3+43*b*c^2*d^3-30*c^3*d^3+4*a^2*d^4+16*a*b*d^4+33*b^2*d^4+37*a*c*d^4-32*b*c*d^4+14*c^2*d^4+50*a*d^5-49*c*d^5-33*d^6,a^5*c-26*a^3*d^3-50*a^2*b*d^3+2*a*b^2*d^3+3*b^3*d^3-15*a^2*c*d^3-32*a*b*c*d^3-4*b^2*c*d^3-13*a*c^2*d^3-13*b*c^2*d^3+3*c^3*d^3+32*a^2*d^4-32*a*b*d^4-47*b^2*d^4-39*a*c*d^4-34*b*c*d^4-9*c^2*d^4-7*a*d^5-22*b*d^5+16*c*d^5+44*d^6,b^6+45*a^3*d^3-42*a^2*b*d^3-35*a*b^2*d^3+13*b^3*d^3+28*a^2*c*d^3-2*a*b*c*d^3-37*b^2*c*d^3-9*a*c^2*d^3+44*b*c^2*d^3-24*c^3*d^3+36*a^2*d^4+42*a*b*d^4-38*b^2*d^4-34*a*c*d^4-46*b*c*d^4+23*c^2*d^4-9*a*d^5-28*b*d^5+37*c*d^5+26*d^6,a*b^5-14*a^3*d^3+38*a^2*b*d^3-37*a*b^2*d^3-33*b^3*d^3-24*a^2*c*d^3+15*a*b*c*d^3+44*b^2*c*d^3-45*a*c^2*d^3+3*b*c^2*d^3-41*c^3*d^3-48*a^2*d^4-36*a*b*d^4+39*b^2*d^4+46*a*c*d^4-3*b*c*d^4+21*c^2*d^4-36*a*d^5-20*b*d^5+24*c*d^5-33*d^6,a^2*b^4-27*a^3*d^3-10*a^2*b*d^3-5*a*b^2*d^3+8*b^3*d^3+21*a^2*c*d^3+31*a*b*c*d^3-44*b^2*c*d^3+41*a*c^2*d^3+17*b*c^2*d^3-8*c^3*d^3+19*a^2*d^4+25*a*b*d^4+b^2*d^4+3*a*c*d^4+2*b*c*d^4-40*c^2*d^4+31*a*d^5-19*b*d^5+35*c*d^5-28*d^6,a^3*b^3-12*a^3*d^3-25*a^2*b*d^3+37*a*b^2*d^3-37*b^3*d^3+46*a^2*c*d^3+43*a*b*c*d^3+b^2*c*d^3-41*a*c^2*d^3-38*b*c^2*d^3-36*c^3*d^3-11*a*b*d^4+20*b^2*d^4-a*c*d^4-26*b*c*d^4+14*c^2*d^4-48*a*d^5+17*b*d^5+9*c*d^5+30*d^6,a^4*b^2+36*a^3*d^3+9*a^2*b*d^3-31*b^3*d^3+50*a^2*c*d^3+41*a*b*c*d^3+40*b^2*c*d^3+48*a*c^2*d^3-41*b*c^2*d^3-17*c^3*d^3+33*a^2*d^4+47*a*b*d^4+22*b^2*d^4+2*a*c*d^4+23*b*c*d^4-47*c^2*d^4+34*a*d^5-15*b*d^5-33*c*d^5-38*d^6,a^5*b-12*a^3*d^3-38*a^2*b*d^3+46*a*b^2*d^3-32*b^3*d^3-41*a^2*c*d^3+14*a*b*c*d^3-34*b^2*c*d^3+7*a*c^2*d^3-6*b*c^2*d^3+31*c^3*d^3+30*a^2*d^4+12*a*b*d^4-17*b^2*d^4-7*a*c*d^4-45*b*c*d^4+10*c^2*d^4+29*a*d^5-28*b*d^5+34*c*d^5-15*d^6,a^6-33*a^3*d^3-45*a^2*b*d^3+19*a*b^2*d^3+39*b^3*d^3-5*a^2*c*d^3-46*a*b*c*d^3+9*b^2*c*d^3+15*a*c^2*d^3-21*b*c^2*d^3+46*c^3*d^3-39*a^2*d^4-9*a*b*d^4+50*b^2*d^4-45*a*c*d^4-39*b*c*d^4-18*c^2*d^4-4*a*d^5-19*b*d^5+12*c*d^5+39*d^6,d^7,c*d^6,b*d^6,a*d^6,c^2*d^5,b*c*d^5,a*c*d^5,b^2*d^5,a*b*d^5,a^2*d^5,c^3*d^4,b*c^2*d^4,a*c^2*d^4,b^2*c*d^4,a*b*c*d^4,a^2*c*d^4,b^3*d^4,a*b^2*d^4,a^2*b*d^4,a^3*d^4;
2812  TestSSresAttribs2tr(M, "AGR@101n3d008s058%3");
2813
2814  // AGR@101n3d010s010%3, a bit slower...
2815  M = a^2*b^5-50*a*b^6-26*a^6*c+15*a^5*b*c-42*a^4*b^2*c-2*a^3*b^3*c+40*a^2*b^4*c-20*a*b^5*c+11*b^6*c-17*a^5*c^2-4*a^4*b*c^2+13*a^3*b^2*c^2-7*a^2*b^3*c^2+13*a*b^4*c^2-46*b^5*c^2+38*a^4*c^3+32*a^3*b*c^3-49*a^2*b^2*c^3-41*a*b^3*c^3+9*b^4*c^3+17*a^3*c^4-23*a^2*b*c^4+46*a*b^2*c^4+9*b^3*c^4-20*a^2*c^5-34*a*b*c^5-46*b^2*c^5-3*a*c^6+11*b*c^6-22*a^6*d-5*a^5*b*d-21*a^4*b^2*d-43*a^3*b^3*d-29*a^2*b^4*d+43*a*b^5*d-2*b^6*d+24*a^5*c*d-9*a^4*b*c*d+3*a^3*b^2*c*d+20*a^2*b^3*c*d+47*a*b^4*c*d-41*b^5*c*d+11*a^4*c^2*d-14*a^3*b*c^2*d+13*a^2*b^2*c^2*d-19*a*b^3*c^2*d-12*b^4*c^2*d+41*a^3*c^3*d-49*a^2*b*c^3*d-10*a*b^2*c^3*d+19*b^3*c^3*d-13*a^2*c^4*d+10*a*b*c^4*d-49*b^2*c^4*d-3*a*c^5*d-10*b*c^5*d+31*c^6*d-16*a^5*d^2+24*a^4*b*d^2-43*a^3*b^2*d^2+36*a^2*b^3*d^2-36*a^4*c*d^2-36*a^3*b*c*d^2-16*a^2*b^2*c*d^2+35*a*b^3*c*d^2+29*b^4*c*d^2+40*a^3*c^2*d^2-24*a^2*b*c^2*d^2-24*a*b^2*c^2*d^2+7*b^3*c^2*d^2+28*a^2*c^3*d^2+49*a*b*c^3*d^2+49*b^2*c^3*d^2+7*a*c^4*d^2-9*b*c^4*d^2+21*c^5*d^2-28*a^4*d^3+24*a^3*b*d^3-24*a^2*b^2*d^3+23*a*b^3*d^3+24*b^4*d^3+24*a^3*c*d^3-25*a^2*b*c*d^3-9*a*b^2*c*d^3-43*b^3*c*d^3+15*a^2*c^2*d^3+49*a*b*c^2*d^3+24*b^2*c^2*d^3-20*a*c^3*d^3-30*b*c^3*d^3-20*c^4*d^3+13*a^3*d^4+34*a^2*b*d^4-45*a*b^2*d^4+9*b^3*d^4+9*a^2*c*d^4-31*a*b*c*d^4-6*b^2*c*d^4-16*a*c^2*d^4+9*b*c^2*d^4+24*c^3*d^4+38*a^2*d^5-23*a*b*d^5-35*b^2*d^5+22*a*c*d^5-22*b*c*d^5+46*c^2*d^5+12*a*d^6+21*b*d^6-23*c*d^6-2*d^7,a^3*b^4+34*a^6*c+14*a^5*b*c+34*a^4*b^2*c+43*a^3*b^3*c-26*a^2*b^4*c+13*a*b^5*c+10*b^6*c-43*a^5*c^2+50*a^4*b*c^2-23*a^3*b^2*c^2-a^2*b^3*c^2+39*a*b^4*c^2+50*b^5*c^2+16*a^4*c^3+31*a^3*b*c^3-49*a^2*b^2*c^3+26*a*b^3*c^3-b^4*c^3-5*a^3*c^4+3*a^2*b*c^4-26*a*b^2*c^4-b^3*c^4-24*a^2*c^5-39*a*b*c^5+50*b^2*c^5-13*a*c^6+10*b*c^6-39*a^6*d+35*a^5*b*d+44*a^4*b^2*d-39*a^3*b^3*d-26*a^2*b^4*d-47*a*b^5*d-42*b^6*d+34*a^5*c*d-43*a^4*b*c*d-39*a^3*b^2*c*d+41*a^2*b^3*c*d+32*a*b^4*c*d-10*b^5*c*d+43*a^4*c^2*d+12*a^3*b*c^2*d-43*a^2*b^2*c^2*d+23*a*b^3*c^2*d-46*b^4*c^2*d+12*a^3*c^3*d-10*a^2*b*c^3*d+13*a*b^2*c^3*d-15*b^3*c^3*d-a^2*c^4*d+17*a*b*c^4*d-47*b^2*c^4*d+49*a*c^5*d-31*b*c^5*d-22*c^6*d-28*a^5*d^2-39*a^4*b*d^2+33*a^3*b^2*d^2-40*a^2*b^3*d^2+31*a*b^4*d^2+5*b^5*d^2+42*a^4*c*d^2-a^3*b*c*d^2+37*a^2*b^2*c*d^2-13*a*b^3*c*d^2+b^4*c*d^2+35*a^3*c^2*d^2-9*a^2*b*c^2*d^2+46*a*b^2*c^2*d^2-2*b^3*c^2*d^2+15*a^2*c^3*d^2-48*a*b*c^3*d^2+38*b^2*c^3*d^2-37*a*c^4*d^2-40*b*c^4*d^2+25*c^5*d^2+5*a^4*d^3-4*a^3*b*d^3+30*a^2*b^2*d^3-42*a*b^3*d^3+11*b^4*d^3+10*a^3*c*d^3+34*a^2*b*c*d^3-48*a*b^2*c*d^3+17*b^3*c*d^3-33*a^2*c^2*d^3-12*a*b*c^2*d^3-44*b^2*c^2*d^3-6*a*c^3*d^3+6*b*c^3*d^3-45*c^4*d^3+6*a^3*d^4+8*a^2*b*d^4-22*a*b^2*d^4+23*b^3*d^4-22*a^2*c*d^4-38*a*b*c*d^4+44*b^2*c*d^4-13*a*c^2*d^4-50*b*c^2*d^4+30*c^3*d^4-6*a^2*d^5-46*a*b*d^5+17*b^2*d^5-23*a*c*d^5-10*b*c*d^5+32*c^2*d^5-47*a*d^6+2*b*d^6+20*c*d^6-46*d^7,a^4*b^3+30*a*b^6-49*a^6*c+18*a^5*b*c+37*a^4*b^2*c+44*a^3*b^3*c-27*a^2*b^4*c-a*b^5*c-35*b^6*c-20*a^5*c^2+32*a^4*b*c^2+28*a^3*b^2*c^2-13*a^2*b^3*c^2-32*a*b^4*c^2+27*b^5*c^2-4*a^4*c^3+25*a^3*b*c^3+22*a^2*b^2*c^3-23*a*b^3*c^3-47*b^4*c^3+41*a^3*c^4-25*a^2*b*c^4-34*a*b^2*c^4-47*b^3*c^4-33*a^2*c^5-43*a*b*c^5+27*b^2*c^5-31*a*c^6-35*b*c^6-49*a^6*d+30*a^5*b*d-4*a^4*b^2*d+11*a^3*b^3*d-12*a^2*b^4*d-38*a*b^5*d+45*b^6*d+5*a^5*c*d-45*a^4*b*c*d-42*a^3*b^2*c*d-11*a^2*b^3*c*d+21*a*b^4*c*d+18*b^5*c*d-50*a^4*c^2*d-25*a^3*b*c^2*d+35*a^2*b^2*c^2*d-a*b^3*c^2*d+30*b^4*c^2*d+28*a^3*c^3*d-46*a^2*b*c^3*d-4*a*b^2*c^3*d+32*b^3*c^3*d+21*a^2*c^4*d-34*a*b*c^4*d+27*b^2*c^4*d+11*a*c^5*d-45*b*c^5*d+4*c^6*d+2*a^5*d^2-43*a^4*b*d^2-36*a^3*b^2*d^2+14*a^2*b^3*d^2+35*a*b^4*d^2+8*b^5*d^2+34*a^4*c*d^2-12*a^3*b*c*d^2-a^2*b^2*c*d^2-5*a*b^3*c*d^2+43*b^4*c*d^2+45*a^3*c^2*d^2-34*a^2*b*c^2*d^2+26*a*b^2*c^2*d^2+10*b^3*c^2*d^2-19*a^2*c^3*d^2+5*a*b*c^3*d^2-47*b^2*c^3*d^2+40*a*c^4*d^2+8*b*c^4*d^2+30*c^5*d^2+42*a^4*d^3+27*a^3*b*d^3+31*a^2*b^2*d^3-6*a*b^3*d^3+36*b^4*d^3+37*a^2*b*c*d^3+34*a*b^2*c*d^3-13*b^3*c*d^3+a^2*c^2*d^3+29*a*b*c^2*d^3-b^2*c^2*d^3-11*a*c^3*d^3-21*b*c^3*d^3+32*c^4*d^3+9*a^3*d^4-21*a^2*b*d^4+26*a*b^2*d^4+43*b^3*d^4-42*a^2*c*d^4-2*a*b*c*d^4-34*b^2*c*d^4+10*a*c^2*d^4-26*b*c^2*d^4-50*c^3*d^4+23*a^2*d^5+49*a*b*d^5+28*b^2*d^5-48*a*c*d^5-18*b*c*d^5-2*c^2*d^5-2*a*d^6-30*b*d^6+36*c*d^6-21*d^7,a^5*b^2+9*a*b^6+6*a^6*c+34*a^5*b*c-14*a^4*b^2*c-43*a^3*b^3*c-27*a^2*b^4*c+14*a*b^5*c+9*b^6*c-28*a^5*c^2-10*a^4*b*c^2+39*a^3*b^2*c^2-49*a^2*b^3*c^2-38*a*b^4*c^2+45*b^5*c^2+4*a^4*c^3+5*a^3*b*c^3+15*a^2*b^2*c^3-11*a*b^3*c^3-11*b^4*c^3+24*a^3*c^4-32*a^2*b*c^4-2*a*b^2*c^4-11*b^3*c^4+32*a^2*c^5-38*a*b*c^5+45*b^2*c^5-4*a*c^6+9*b*c^6+23*a^6*d-13*a^5*b*d+8*a^4*b^2*d-46*a^3*b^3*d-9*a^2*b^4*d-8*a*b^5*d+17*b^6*d+a^5*c*d+5*a^4*b*c*d-50*a^3*b^2*c*d+22*a^2*b^3*c*d-34*a*b^4*c*d-49*b^5*c*d+44*a^4*c^2*d+41*a^3*b*c^2*d-44*a^2*b^2*c^2*d-49*a*b^3*c^2*d+37*b^4*c^2*d+45*a^3*c^3*d+12*a^2*b*c^3*d-23*a*b^2*c^3*d-32*b^3*c^3*d-14*a^2*c^4*d+5*a*b*c^4*d+48*b^2*c^4*d+5*a*c^5*d-20*b*c^5*d-c^6*d+5*a^5*d^2-45*a^4*b*d^2+42*a^3*b^2*d^2+50*a^2*b^3*d^2-8*a*b^4*d^2-49*b^5*d^2-35*a^4*c*d^2-25*a^3*b*c*d^2-4*a^2*b^2*c*d^2-26*a*b^3*c*d^2-28*b^4*c*d^2+46*a^3*c^2*d^2+22*a^2*b*c^2*d^2+43*a*b^2*c^2*d^2-4*b^3*c^2*d^2-25*a^2*c^3*d^2+31*a*b*c^3*d^2-31*b^2*c^3*d^2-30*a*c^4*d^2-18*b*c^4*d^2-12*c^5*d^2-33*a^4*d^3-48*a^3*b*d^3-36*a^2*b^2*d^3-6*a*b^3*d^3+8*b^4*d^3+3*a^3*c*d^3-43*a^2*b*c*d^3+34*a*b^2*c*d^3+19*b^3*c*d^3+19*a^2*c^2*d^3-49*a*b*c^2*d^3-2*b^2*c^2*d^3+12*a*c^3*d^3-29*b*c^3*d^3-16*c^4*d^3+27*a^3*d^4+22*a^2*b*d^4+22*a*b^2*d^4-12*b^3*d^4+34*a^2*c*d^4+8*a*b*c*d^4+50*b^2*c*d^4+40*a*c^2*d^4+27*b*c^2*d^4-35*c^3*d^4-30*a^2*d^5+24*a*b*d^5+7*b^2*d^5+16*a*c*d^5+17*b*c*d^5-40*c^2*d^5-47*a*d^6-12*b*d^6+16*c*d^6+6*d^7,a^6*b-45*a*b^6-30*a^6*c-5*a^5*b*c-39*a^4*b^2*c-37*a^3*b^3*c+a^2*b^4*c-14*a*b^5*c-37*b^6*c+49*a^5*c^2+28*a^4*b*c^2+7*a^3*b^2*c^2-10*a^2*b^3*c^2+10*a*b^4*c^2+17*b^5*c^2-34*a^4*c^3+24*a^3*b*c^3-36*a^2*b^2*c^3-13*a*b^3*c^3+34*b^4*c^3-20*a^3*c^4-38*a^2*b*c^4+32*a*b^2*c^4+34*b^3*c^4-13*a^2*c^5+44*a*b*c^5+17*b^2*c^5+20*a*c^6-37*b*c^6+10*a^6*d+26*a^5*b*d+15*a^4*b^2*d+23*a^3*b^3*d+16*a^2*b^4*d+48*a*b^5*d-30*b^6*d-9*a^5*c*d-20*a^4*b*c*d+49*a^3*b^2*c*d-48*a^2*b^3*c*d-36*a*b^4*c*d-21*b^5*c*d+9*a^4*c^2*d-24*a^3*b*c^2*d+42*a^2*b^2*c^2*d+26*a*b^3*c^2*d-46*b^4*c^2*d-50*a^3*c^3*d-11*a^2*b*c^3*d-34*a*b^2*c^3*d+32*b^3*c^3*d-16*a^2*c^4*d-25*a*b*c^4*d+6*b^2*c^4*d+18*a*c^5*d-40*b*c^5*d+41*c^6*d-8*a^5*d^2-27*a^4*b*d^2-48*a^3*b^2*d^2-a^2*b^3*d^2+50*a*b^4*d^2+21*b^5*d^2-48*a^4*c*d^2+4*a^3*b*c*d^2-28*a^2*b^2*c*d^2-4*a*b^3*c*d^2+16*b^4*c*d^2+50*a^3*c^2*d^2+40*a^2*b*c^2*d^2+35*a*b^2*c^2*d^2+29*b^3*c^2*d^2-34*a^2*c^3*d^2-21*a*b*c^3*d^2-b^2*c^3*d^2-9*a*c^4*d^2-29*b*c^4*d^2+6*c^5*d^2+16*a^4*d^3-34*a^3*b*d^3+3*a^2*b^2*d^3+21*a*b^3*d^3+39*b^4*d^3+21*a^3*c*d^3-44*a^2*b*c*d^3-16*a*b^2*c*d^3+b^3*c*d^3-38*a^2*c^2*d^3+18*a*b*c^2*d^3+37*b^2*c^2*d^3-46*a*c^3*d^3+25*b*c^3*d^3-50*c^4*d^3-8*a^3*d^4-24*a^2*b*d^4-2*a*b^2*d^4+6*b^3*d^4+9*a^2*c*d^4+12*a*b*c*d^4+33*b^2*c*d^4-44*a*c^2*d^4+23*b*c^2*d^4-4*c^3*d^4-9*a^2*d^5-2*a*b*d^5-14*b^2*d^5+21*a*c*d^5-16*b*c*d^5-19*c^2*d^5+17*a*d^6-20*b*d^6+11*c*d^6-41*d^7,a^7-10*a*b^6-6*a^6*c-48*a^5*b*c-14*a^4*b^2*c-16*a^3*b^3*c-4*a^2*b^4*c+24*a*b^5*c-10*b^6*c-2*a^5*c^2+23*a^3*b^2*c^2+26*a^2*b^3*c^2+22*a*b^4*c^2-50*b^5*c^2+14*a^4*c^3-7*a^3*b*c^3+a^2*b^2*c^3-49*a*b^3*c^3+b^4*c^3-46*a^3*c^4+9*a^2*b*c^4+10*a*b^2*c^4+b^3*c^4+38*a^2*c^5-26*a*b*c^5-50*b^2*c^5+28*a*c^6-10*b*c^6-7*a^6*d+24*a^5*b*d-8*a^4*b^2*d+23*a^3*b^3*d+9*a^2*b^4*d+28*a*b^5*d-23*b^6*d-42*a^4*b*c*d+24*a^3*b^2*c*d-30*a^2*b^3*c*d-42*a*b^4*c*d-43*b^5*c*d-42*a^4*c^2*d+11*a^3*b*c^2*d+9*a^2*b^2*c^2*d-8*a*b^3*c^2*d+4*b^4*c^2*d+10*a^3*c^3*d+43*a^2*b*c^3*d+3*a*b^2*c^3*d-14*b^3*c^3*d-5*a^2*c^4*d+25*a*b*c^4*d-50*b^2*c^4*d-17*a*c^5*d+35*b*c^5*d+47*c^6*d-4*a^5*d^2-43*a^4*b*d^2+35*a^3*b^2*d^2+19*a^2*b^3*d^2+48*a*b^4*d^2+45*b^5*d^2+3*a^4*c*d^2-46*a^3*b*c*d^2+8*a^2*b^2*c*d^2-35*a*b^3*c*d^2-27*b^4*c*d^2-49*a^3*c^2*d^2+37*a^2*b*c^2*d^2-43*a*b^2*c^2*d^2+32*b^3*c^2*d^2+48*a^2*c^3*d^2+9*a*b*c^3*d^2+b^2*c^3*d^2-31*a*c^4*d^2-23*b*c^4*d^2-21*c^5*d^2+34*a^4*d^3+38*a^3*b*d^3+41*a^2*b^2*d^3-24*a*b^3*d^3+28*b^4*d^3+47*a^3*c*d^3-6*a^2*b*c*d^3+27*a*b^2*c*d^3-43*b^3*c*d^3-24*a^2*c^2*d^3-19*a*b*c^2*d^3-50*b^2*c^2*d^3+31*a*c^3*d^3+40*b*c^3*d^3+19*c^4*d^3+4*a^3*d^4-36*a^2*b*d^4+43*a*b^2*d^4+27*b^3*d^4+49*a^2*c*d^4-27*a*b*c*d^4-39*b^2*c*d^4+46*a*c^2*d^4+40*b*c^2*d^4+5*c^3*d^4-12*a^2*d^5-5*a*b*d^5+16*b^2*d^5-26*a*c*d^5-31*b*c*d^5-38*c^2*d^5+17*a*d^6-11*b*d^6-7*c*d^6-39*d^7,b*c*d^6-21*c^2*d^6+36*a*d^7-34*b*d^7-40*c*d^7-11*d^8,a*c*d^6-24*c^2*d^6+5*a*d^7-7*b*d^7+21*c*d^7-43*d^8,b^2*d^6+20*c^2*d^6+6*a*d^7-30*b*d^7+25*c*d^7+4*d^8,a*b*d^6+23*c^2*d^6-43*a*d^7+47*b*d^7+42*c*d^7+29*d^8,a^2*d^6+49*c^2*d^6+6*a*d^7-35*b*d^7+19*c*d^7-11*d^8,c^3*d^5-38*c^2*d^6+47*a*d^7+35*b*d^7+46*c*d^7+21*d^8,b*c^2*d^5+41*c^2*d^6-8*a*d^7+8*b*d^7+46*c*d^7+42*d^8,a*c^2*d^5+44*c^2*d^6+10*a*d^7-36*b*d^7-21*c*d^7+28*d^8,b^2*c*d^5+9*c^2*d^6+35*a*d^7+20*b*d^7+49*c*d^7-47*d^8,a*b*c*d^5+44*c^2*d^6+24*a*d^7-12*b*d^7+24*c*d^7-5*d^8,a^2*c*d^5-9*c^2*d^6-34*a*d^7+27*b*d^7-49*c*d^7+d^8,b^3*d^5+21*c^2*d^6-37*a*d^7-13*b*d^7-48*c*d^7+25*d^8,a*b^2*d^5+4*c^2*d^6-8*a*d^7-42*b*d^7-31*c*d^7+21*d^8,a^2*b*d^5+26*c^2*d^6-47*a*d^7-37*b*d^7+24*c*d^7+6*d^8,a^3*d^5-32*c^2*d^6-31*a*d^7+26*b*d^7-35*c*d^7-39*d^8,c^4*d^4+25*c^2*d^6+35*a*d^7+24*b*d^7+32*c*d^7-46*d^8,b*c^3*d^4+10*c^2*d^6-9*a*d^7-27*b*d^7-17*c*d^7+11*d^8,a*c^3*d^4-41*c^2*d^6+5*a*d^7-18*b*d^7-43*c*d^7-25*d^8,b^2*c^2*d^4-9*c^2*d^6+15*a*d^7-7*b*d^7-27*c*d^7-40*d^8,a*b*c^2*d^4-4*c^2*d^6+25*a*d^7-9*b*d^7-41*c*d^7-11*d^8,a^2*c^2*d^4+15*c^2*d^6-5*a*d^7-34*b*d^7-11*c*d^7-29*d^8,b^3*c*d^4+49*c^2*d^6-24*a*d^7-8*b*d^7+7*c*d^7-46*d^8,a*b^2*c*d^4-20*c^2*d^6-4*a*d^7+32*b*d^7-42*c*d^7-d^8,a^2*b*c*d^4+15*c^2*d^6+31*a*d^7+16*b*d^7-25*c*d^7+29*d^8,a^3*c*d^4-48*c^2*d^6-36*a*d^7-10*b*d^7+4*c*d^7+27*d^8,b^4*d^4+26*c^2*d^6-25*a*d^7-3*b*d^7-45*c*d^7-26*d^8,a*b^3*d^4+c^2*d^6-21*a*d^7-13*b*d^7-20*c*d^7+16*d^8,a^2*b^2*d^4+22*c^2*d^6-27*a*d^7-23*b*d^7-5*c*d^7-27*d^8,a^3*b*d^4+2*c^2*d^6-29*a*d^7-6*b*d^7+26*c*d^7-46*d^8,a^4*d^4-40*c^2*d^6-9*a*d^7-24*b*d^7+2*c*d^7-37*d^8,c^5*d^3+14*c^2*d^6+40*a*d^7+21*b*d^7+50*c*d^7+31*d^8,b*c^4*d^3-21*c^2*d^6-2*a*d^7-9*b*d^7-28*c*d^7+20*d^8,a*c^4*d^3-39*c^2*d^6+38*a*d^7-24*b*d^7-42*c*d^7-30*d^8,b^2*c^3*d^3+19*c^2*d^6-50*a*d^7-33*b*d^7+16*c*d^7-45*d^8,a*b*c^3*d^3-6*c^2*d^6-38*a*d^7+35*b*d^7+32*c*d^7-12*d^8,a^2*c^3*d^3+44*c^2*d^6+35*a*d^7+42*b*d^7-10*c*d^7-48*d^8,b^3*c^2*d^3+33*c^2*d^6-7*a*d^7-41*b*d^7-3*c*d^7-33*d^8,a*b^2*c^2*d^3-21*c^2*d^6-22*a*d^7-23*b*d^7+24*c*d^7+47*d^8,a^2*b*c^2*d^3+c^2*d^6-32*a*d^7-34*b*d^7-42*c*d^7+7*d^8,a^3*c^2*d^3+6*c^2*d^6-31*a*d^7-26*b*d^7+19*c*d^7-49*d^8,b^4*c*d^3+6*c^2*d^6-24*a*d^7+10*b*d^7-18*c*d^7-4*d^8,a*b^3*c*d^3+46*c^2*d^6+41*a*d^7+7*b*d^7+8*c*d^7-28*d^8,a^2*b^2*c*d^3+33*c^2*d^6-15*a*d^7-11*b*d^7+38*c*d^7+14*d^8,a^3*b*c*d^3-29*c^2*d^6-4*a*d^7-32*b*d^7+13*c*d^7-3*d^8,a^4*c*d^3-34*c^2*d^6+5*a*d^7+29*b*d^7-15*c*d^7-48*d^8,b^5*d^3-42*c^2*d^6+33*a*d^7-49*b*d^7+33*c*d^7-43*d^8,a*b^4*d^3+25*c^2*d^6-11*a*d^7-16*b*d^7+32*c*d^7-2*d^8,a^2*b^3*d^3-36*c^2*d^6-47*a*d^7-16*b*d^7+19*c*d^7+9*d^8,a^3*b^2*d^3-30*c^2*d^6-21*a*d^7-6*b*d^7+16*c*d^7-14*d^8,a^4*b*d^3+47*c^2*d^6-16*a*d^7-13*b*d^7+21*c*d^7+30*d^8,a^5*d^3-2*c^2*d^6+40*a*d^7+34*b*d^7+14*c*d^7-50*d^8,c^6*d^2-4*c^2*d^6-41*a*d^7+46*b*d^7+17*c*d^7+19*d^8,b*c^5*d^2-49*c^2*d^6+5*a*d^7-31*b*d^7+30*c*d^7+28*d^8,a*c^5*d^2-12*c^2*d^6-23*a*d^7-39*b*d^7+6*c*d^7-27*d^8,b^2*c^4*d^2-12*c^2*d^6-30*a*d^7+13*b*d^7-42*c*d^7+38*d^8,a*b*c^4*d^2-31*c^2*d^6+5*a*d^7-41*b*d^7-24*c*d^7,a^2*c^4*d^2-c^2*d^6+4*a*d^7+21*b*d^7+19*c*d^7-34*d^8,b^3*c^3*d^2-50*c^2*d^6-11*a*d^7+24*b*d^7+24*c*d^7-44*d^8,a*b^2*c^3*d^2+2*c^2*d^6-42*a*d^7-17*b*d^7-33*c*d^7-10*d^8,a^2*b*c^3*d^2+20*c^2*d^6+29*a*d^7+35*b*d^7-31*c*d^7-35*d^8,a^3*c^3*d^2+35*c^2*d^6-13*a*d^7+20*b*d^7-15*c*d^7-45*d^8,b^4*c^2*d^2+c^2*d^6+36*a*d^7-42*b*d^7+32*c*d^7+16*d^8,a*b^3*c^2*d^2-9*c^2*d^6-43*a*d^7-5*b*d^7-17*c*d^7+50*d^8,a^2*b^2*c^2*d^2-36*c^2*d^6+31*a*d^7+4*b*d^7-26*c*d^7-11*d^8,a^3*b*c^2*d^2+15*c^2*d^6+40*a*d^7-18*b*d^7-31*c*d^7+43*d^8,a^4*c^2*d^2+41*c^2*d^6-49*a*d^7+37*b*d^7+47*c*d^7-48*d^8,b^5*c*d^2-49*c^2*d^6+15*a*d^7+48*b*d^7+22*c*d^7+38*d^8,a*b^4*c*d^2+12*c^2*d^6+16*a*d^7-22*b*d^7-c*d^7+29*d^8,a^2*b^3*c*d^2+31*c^2*d^6+19*a*d^7+45*b*d^7-6*c*d^7+42*d^8,a^3*b^2*c*d^2+29*c^2*d^6-39*a*d^7+25*b*d^7-48*c*d^7-d^8,a^4*b*c*d^2-31*c^2*d^6+24*a*d^7-2*b*d^7+36*c*d^7+37*d^8,a^5*c*d^2+33*c^2*d^6-46*a*d^7-41*b*d^7-29*c*d^7-12*d^8,b^6*d^2-39*c^2*d^6+35*a*d^7-8*b*d^7+35*c*d^7+47*d^8,a*b^5*d^2-38*c^2*d^6-11*a*d^7-37*b*d^7-7*c*d^7-5*d^8,a^2*b^4*d^2+29*c^2*d^6+36*a*d^7-29*b*d^7+20*c*d^7+39*d^8,a^3*b^3*d^2-44*c^2*d^6+43*a*d^7-50*b*d^7-24*c*d^7-16*d^8,a^4*b^2*d^2+20*c^2*d^6+33*a*d^7+6*b*d^7+47*c*d^7+40*d^8,a^5*b*d^2-10*c^2*d^6+25*a*d^7-8*b*d^7-14*c*d^7+16*d^8,a^6*d^2+48*c^2*d^6+14*a*d^7+32*b*d^7+17*c*d^7+13*d^8,c^7*d+38*c^2*d^6-39*a*d^7+22*b*d^7+15*c*d^7-d^8,b*c^6*d+9*c^2*d^6+37*a*d^7+12*b*d^7+27*c*d^7+3*d^8,a*c^6*d-5*c^2*d^6+34*a*d^7+15*b*d^7+2*c*d^7-21*d^8,b^2*c^5*d+35*c^2*d^6+27*a*d^7+13*b*d^7-39*c*d^7+8*d^8,a*b*c^5*d-34*c^2*d^6-18*a*d^7-21*b*d^7-31*c*d^7+46*d^8,a^2*c^5*d-16*c^2*d^6-6*a*d^7-18*b*d^7+3*c*d^7+47*d^8,b^3*c^4*d-46*c^2*d^6+4*a*d^7-38*b*d^7-29*c*d^7-4*d^8,a*b^2*c^4*d-35*c^2*d^6-14*a*d^7-32*b*d^7-40*c*d^7-35*d^8,a^2*b*c^4*d+23*c^2*d^6-44*a*d^7-3*b*d^7+4*c*d^7-4*d^8,a^3*c^4*d+24*c^2*d^6-7*a*d^7-44*b*d^7-16*c*d^7+10*d^8,b^4*c^3*d+43*c^2*d^6+12*a*d^7+43*b*d^7-49*c*d^7-23*d^8,a*b^3*c^3*d+22*c^2*d^6+6*a*d^7+2*b*d^7-9*c*d^7,a^2*b^2*c^3*d+4*c^2*d^6+21*a*d^7-24*b*d^7-26*c*d^7+33*d^8,a^3*b*c^3*d+13*c^2*d^6-18*a*d^7+31*b*d^7-28*c*d^7+2*d^8,a^4*c^3*d+10*c^2*d^6-14*a*d^7+30*b*d^7-40*c*d^7+33*d^8,b^5*c^2*d-35*c^2*d^6-33*a*d^7+7*b*d^7+13*c*d^7+26*d^8,a*b^4*c^2*d-49*c^2*d^6+9*a*d^7+20*b*d^7+11*c*d^7-32*d^8,a^2*b^3*c^2*d+33*c^2*d^6-43*a*d^7-27*b*d^7-31*c*d^7-41*d^8,a^3*b^2*c^2*d-6*c^2*d^6+23*a*d^7+20*b*d^7-8*c*d^7-6*d^8,a^4*b*c^2*d+10*c^2*d^6-24*a*d^7+30*b*d^7+42*c*d^7-23*d^8,a^5*c^2*d+12*c^2*d^6+20*a*d^7+24*b*d^7-9*c*d^7-9*d^8,b^6*c*d-12*c^2*d^6+36*a*d^7+4*b*d^7-12*c*d^7+26*d^8,a*b^5*c*d-19*c^2*d^6-39*a*d^7-26*b*d^7-4*c*d^7+10*d^8,a^2*b^4*c*d+38*c^2*d^6-6*a*d^7+6*b*d^7+41*c*d^7+49*d^8,a^3*b^3*c*d-34*c^2*d^6-42*a*d^7+22*b*d^7-26*c*d^7-13*d^8,a^4*b^2*c*d+14*c^2*d^6+40*a*d^7+39*b*d^7-34*d^8,a^5*b*c*d-8*c^2*d^6+45*a*d^7-35*b*d^7+48*c*d^7+47*d^8,a^6*c*d-6*c^2*d^6-24*a*d^7-2*b*d^7-9*c*d^7+7*d^8,b^7*d+34*c^2*d^6-14*a*d^7+46*b*d^7-50*c*d^7+26*d^8,a*b^6*d+6*c^2*d^6+23*a*d^7-27*b*d^7-25*c*d^7-2*d^8,c^8+43*c^2*d^6+11*b*d^7-39*c*d^7-30*d^8,b*c^7-44*c^2*d^6-4*a*d^7-10*b*d^7+31*c*d^7+42*d^8,a*c^7-6*a*d^7+31*b*d^7+37*c*d^7-41*d^8,b^2*c^6-11*c^2*d^6-35*a*d^7+32*b*d^7-25*c*d^7-21*d^8,a*b*c^6+2*c^2*d^6+43*a*d^7-48*b*d^7-49*c*d^7-19*d^8,a^2*c^6-20*c^2*d^6-11*a*d^7-35*b*d^7-33*c*d^7+28*d^8,b^3*c^5+4*c^2*d^6-7*a*d^7-21*b*d^7-14*c*d^7+48*d^8,a*b^2*c^5+17*c^2*d^6+45*a*d^7-32*b*d^7+29*c*d^7+38*d^8,a^2*b*c^5-13*c^2*d^6+46*a*d^7+4*b*d^7-18*c*d^7+19*d^8,a^3*c^5-23*c^2*d^6-a*d^7-3*b*d^7-15*c*d^7+19*d^8,b^4*c^4-50*c^2*d^6+39*a*d^7+49*b*d^7+47*c*d^7+7*d^8,a*b^3*c^4-33*c^2*d^6+10*a*d^7+32*b*d^7+21*c*d^7-39*d^8,a^2*b^2*c^4+23*c^2*d^6+27*a*d^7-17*b*d^7+29*c*d^7+9*d^8,a^3*b*c^4-47*c^2*d^6-43*a*d^7-47*b*d^7-34*c*d^7-23*d^8,a^4*c^4-6*c^2*d^6+7*a*d^7+38*b*d^7-27*c*d^7-9*d^8,b^5*c^3-47*c^2*d^6+18*a*d^7-44*b*d^7-4*c*d^7-18*d^8,a*b^4*c^3+30*c^2*d^6+36*a*d^7+25*b*d^7+42*c*d^7+d^8,a^2*b^3*c^3+10*c^2*d^6+31*a*d^7+45*b*d^7-44*c*d^7+37*d^8,a^3*b^2*c^3-41*c^2*d^6-15*a*d^7-34*b*d^7-22*c*d^7+28*d^8,a^4*b*c^3+19*c^2*d^6-23*a*d^7+18*b*d^7-13*c*d^7-48*d^8,a^5*c^3+16*c^2*d^6+22*a*d^7-31*b*d^7+33*c*d^7+15*d^8,b^6*c^2-42*c^2*d^6-10*a*d^7-16*b*d^7-46*c*d^7+42*d^8,a*b^5*c^2-23*c^2*d^6+34*a*d^7-37*b*d^7+2*c*d^7+10*d^8,a^2*b^4*c^2-45*c^2*d^6-5*a*d^7+43*b*d^7-18*c*d^7+7*d^8,a^3*b^3*c^2+36*c^2*d^6+19*a*d^7+21*b*d^7+46*c*d^7-24*d^8,a^4*b^2*c^2-17*c^2*d^6+30*a*d^7-39*b*d^7-39*c*d^7-24*d^8,a^5*b*c^2+10*c^2*d^6-24*a*d^7-36*b*d^7-14*c*d^7+26*d^8,a^6*c^2+47*c^2*d^6-41*a*d^7+32*b*d^7+6*c*d^7+42*d^8,b^7*c+44*c^2*d^6-6*a*d^7+5*b*d^7+20*c*d^7+50*d^8,a*b^6*c+29*c^2*d^6-16*a*d^7+45*b*d^7-3*c*d^7+14*d^8,b^8+48*c^2*d^6-40*a*d^7-44*b*d^7-10*c*d^7-23*d^8,a*b^7-32*c^2*d^6-41*a*d^7-11*b*d^7+50*c*d^7+13*d^8,d^9,c*d^8,b*d^8,a*d^8,c^2*d^7;
2816  TestSSresAttribs2tr(M, "AGR@101n3d010s010%3"); 
2817  kill AGR;
2818
2819  ring AGR = (101), (a,b,c,d,e,f,g,h), dp; AGR;
2820  // AGR@101n7d005s010%2, medium: <= 2
2821  ideal M =
2822f*h-g*h,e*h-g*h,d*h-g*h,c*h-g*h,b*h-g*h,a*h-g*h,e*g+48*f*g-49*g*h,d*g+5*f*g-6*g*h,c*g+49*f*g-50*g*h,b*g-7*f*g+6*g*h,a*g-50*f*g+49*g*h,e*f-20*f*g+19*g*h,d*f+40*f*g-41*g*h,c*f-12*f*g+11*g*h,b*f+45*f*g-46*g*h,a*f+4*f*g-5*g*h,d*e-f*g,c*e-30*f*g+29*g*h,b*e-39*f*g+38*g*h,a*e+10*f*g-11*g*h,c*d-41*f*g+40*g*h,b*d-23*f*g+22*g*h,a*d-20*f*g+19*g*h,b*c+17*f*g-18*g*h,a*c+6*f*g-7*g*h,a*b+28*f*g-29*g*h,g^2*h-g*h^2,f^2*g-8*f*g^2+7*g*h^2,g*h^4+50*h^5,g^5+41*h^5,f*g^4-18*h^5,f^5+29*h^5,e^5+6*h^5,d^5-23*h^5,c^5-32*h^5,
2823b^5+17*h^5,a^5+17*h^5,h^6;
2824  TestSSresAttribs2tr(M, "AGR@101n7d005s010%2");
2825  kill AGR;
2826
2827// from Andreas...tooo long!?
2828
2829  ring AGR = (101), (a,b,c,d,e), dp; AGR;
2830
2831  // AGR101n4d007s021%4
2832  ideal M = b^3*c*d-44*a*b*c^2*d-23*b^2*c^2*d-17*a*c^3*d+25*b*c^3*d-28*c^4*d+21*a^3*d^2+28*a^2*b*d^2+45*a*b^2*d^2-45*b^3*d^2+39*a^2*c*d^2+50*a*b*c*d^2-31*b^2*c*d^2+25*a*c^2*d^2-42*b*c^2*d^2-6*c^3*d^2+10*a^2*d^3-18*a*b*d^3-21*b^2*d^3-9*a*c*d^3+37*b*c*d^3-18*c^2*d^3+5*a*d^4+b*d^4-18*c*d^4+23*d^5-5*a^4*e+6*a^3*b*e-21*a^2*b^2*e-28*a*b^3*e+11*b^4*e+19*a^3*c*e+29*a^2*b*c*e-25*a*b^2*c*e-8*b^3*c*e+17*a^2*c^2*e+45*a*b*c^2*e-28*b^2*c^2*e+22*a*c^3*e+33*b*c^3*e+27*c^4*e-50*a^3*d*e+11*a^2*b*d*e-45*a*b^2*d*e-5*b^3*d*e-2*a^2*c*d*e-30*a*b*c*d*e-17*b^2*c*d*e-45*a*c^2*d*e+12*b*c^2*d*e-8*c^3*d*e+12*a^2*d^2*e+a*b*d^2*e-13*b^2*d^2*e-20*a*c*d^2*e+47*b*c*d^2*e-10*c^2*d^2*e+8*a*d^3*e+32*b*d^3*e-8*c*d^3*e+47*d^4*e+43*a^3*e^2+23*a^2*b*e^2+12*a*b^2*e^2+25*b^3*e^2-23*a^2*c*e^2-12*a*b*c*e^2+5*b^2*c*e^2-25*a*c^2*e^2-8*b*c^2*e^2-48*c^3*e^2+22*a^2*d*e^2+27*a*b*d*e^2-21*b^2*d*e^2+35*a*c*d*e^2-5*b*c*d*e^2+14*c^2*d*e^2+3*a*d^2*e^2-35*b*d^2*e^2+24*c*d^2*e^2-12*d^3*e^2-30*a^2*e^3+5*a*b*e^3-29*b^2*e^3-17*a*c*e^3-41*b*c*e^3-41*c^2*e^3-a*d*e^3-41*b*d*e^3+6*c*d*e^3+24*d^2*e^3+38*a*e^4+46*b*e^4+5*c*e^4-48*d*e^4-33*e^5,
2833a*b^2*c*d-8*a^2*c^2*d+35*a*b*c^2*d-9*b^2*c^2*d+41*a*c^3*d+11*b*c^3*d+36*c^4*d-36*a^3*d^2-11*a^2*b*d^2-45*a*b^2*d^2+20*b^3*d^2-38*a^2*c*d^2-21*a*b*c*d^2-26*b^2*c*d^2+26*a*c^2*d^2+45*b*c^2*d^2+2*c^3*d^2+35*a^2*d^3-15*a*b*d^3-30*b^2*d^3-37*a*c*d^3+3*b*c*d^3+29*c^2*d^3-39*a*d^4-13*b*d^4+42*c*d^4+50*d^5-47*a^4*e+a^3*b*e-10*a^2*b^2*e+10*a*b^3*e-19*b^4*e+47*a^3*c*e+29*a^2*b*c*e+33*a*b^2*c*e-7*b^3*c*e+29*a^2*c^2*e-2*b^2*c^2*e-19*a*c^3*e+16*b*c^3*e+44*c^4*e+47*a^3*d*e-14*a^2*b*d*e+48*a*b^2*d*e-21*b^3*d*e+13*a^2*c*d*e+4*a*b*c*d*e+20*b^2*c*d*e-3*a*c^2*d*e-34*b*c^2*d*e-2*c^3*d*e+10*a^2*d^2*e+38*a*b*d^2*e+18*b^2*d^2*e-a*c*d^2*e+24*b*c*d^2*e-11*c^2*d^2*e+24*a*d^3*e-10*b*d^3*e+15*c*d^3*e-44*d^4*e+6*a^3*e^2-7*a^2*b*e^2+30*a*b^2*e^2+25*b^3*e^2+40*a^2*c*e^2+33*a*b*c*e^2+26*b^2*c*e^2-2*a*c^2*e^2-2*b*c^2*e^2+32*c^3*e^2+31*a^2*d*e^2+50*a*b*d*e^2-5*b^2*d*e^2-43*a*c*d*e^2+37*b*c*d*e^2-16*c^2*d*e^2+39*a*d^2*e^2+15*b*d^2*e^2+35*c*d^2*e^2-47*d^3*e^2+38*a^2*e^3+7*a*b*e^3+16*b^2*e^3+43*a*c*e^3+23*b*c*e^3+9*c^2*e^3+37*a*d*e^3-18*b*d*e^3+32*c*d*e^3-2*d^2*e^3-31*a*e^4+18*b*e^4-35*c*e^4+9*d*e^4-49*e^5,
2834a^2*b*c*d+7*a^2*c^2*d-15*a*b*c^2*d+20*b^2*c^2*d+8*a*c^3*d-14*b*c^3*d+34*c^4*d+15*a^3*d^2+37*a^2*b*d^2-11*a*b^2*d^2-8*b^3*d^2-15*a^2*c*d^2-22*a*b*c*d^2-30*b^2*c*d^2+23*a*c^2*d^2+34*b*c^2*d^2+41*c^3*d^2-27*a^2*d^3+24*b^2*d^3-15*a*c*d^3+20*b*c*d^3-16*c^2*d^3-31*a*d^4+18*b*d^4-21*c*d^4+19*d^5+20*a^4*e+38*a^3*b*e-7*a^2*b^2*e+8*a*b^3*e-35*b^4*e+30*a^3*c*e-13*a^2*b*c*e+39*a*b^2*c*e-50*b^3*c*e+50*a^2*c^2*e-21*a*b*c^2*e+17*b^2*c^2*e-23*a*c^3*e+32*b*c^3*e-43*c^4*e-39*a^3*d*e+16*a^2*b*d*e+25*a*b^2*d*e-12*b^3*d*e+50*a^2*c*d*e+4*a*b*c*d*e-17*b^2*c*d*e-28*a*c^2*d*e-5*b*c^2*d*e+13*c^3*d*e+23*a^2*d^2*e+17*a*b*d^2*e+14*b^2*d^2*e-2*a*c*d^2*e+3*b*c*d^2*e+20*c^2*d^2*e-14*a*d^3*e+5*b*d^3*e-c*d^3*e+29*d^4*e-42*a^3*e^2-38*a^2*b*e^2-44*a*b^2*e^2-4*b^3*e^2+29*a^2*c*e^2-19*a*b*c*e^2+38*b^2*c*e^2+3*a*c^2*e^2-46*b*c^2*e^2-46*c^3*e^2-44*a^2*d*e^2+16*a*b*d*e^2-38*b^2*d*e^2+12*a*c*d*e^2+45*b*c*d*e^2-48*c^2*d*e^2+34*a*d^2*e^2+32*b*d^2*e^2+37*c*d^2*e^2+34*d^3*e^2+30*a^2*e^3+45*a*b*e^3+8*b^2*e^3+40*a*c*e^3-37*b*c*e^3-16*c^2*e^3-50*a*d*e^3-18*b*d*e^3-9*c*d*e^3-37*a*e^4-22*b*e^4+5*c*e^4+d*e^4+9*e^5,
2835a^3*c*d-44*a^2*c^2*d-38*a*b*c^2*d-26*b^2*c^2*d-12*a*c^3*d-21*b*c^3*d+43*c^4*d-22*a^3*d^2-23*a^2*b*d^2+32*a*b^2*d^2+45*b^3*d^2-48*a^2*c*d^2-40*a*b*c*d^2+3*b^2*c*d^2+2*a*c^2*d^2-27*b*c^2*d^2-35*c^3*d^2+33*a^2*d^3-11*a*b*d^3-5*b^2*d^3+8*a*c*d^3-42*b*c*d^3+41*c^2*d^3-41*b*d^4+29*c*d^4+5*d^5+32*a^4*e-46*a^3*b*e-46*a^2*b^2*e+19*a*b^3*e-14*b^4*e-24*a^3*c*e+3*a^2*b*c*e-22*a*b^2*c*e+49*b^3*c*e-47*a^2*c^2*e+27*a*b*c^2*e+48*b^2*c^2*e+20*a*c^3*e-3*b*c^3*e-11*c^4*e-21*a^3*d*e+a^2*b*d*e-13*a*b^2*d*e-33*b^3*d*e+13*a^2*c*d*e-3*a*b*c*d*e+15*b^2*c*d*e+35*a*c^2*d*e-20*b*c^2*d*e+45*c^3*d*e-14*a^2*d^2*e+11*a*b*d^2*e-38*b^2*d^2*e+40*a*c*d^2*e-30*b*c*d^2*e+14*c^2*d^2*e-26*a*d^3*e-43*b*d^3*e+38*c*d^3*e-24*d^4*e-10*a^3*e^2-31*a^2*b*e^2+a*b^2*e^2-34*b^3*e^2+5*a^2*c*e^2-12*a*b*c*e^2-6*b^2*c*e^2-30*a*c^2*e^2-b*c^2*e^2+31*c^3*e^2+22*a^2*d*e^2-26*a*b*d*e^2+9*b^2*d*e^2+32*a*c*d*e^2+24*b*c*d*e^2-36*c^2*d*e^2-a*d^2*e^2-14*b*d^2*e^2-24*c*d^2*e^2+7*d^3*e^2+38*a^2*e^3+35*a*b*e^3+16*b^2*e^3+25*a*c*e^3-30*b*c*e^3+30*c^2*e^3-25*a*d*e^3+3*b*d*e^3+40*c*d*e^3+16*d^2*e^3+45*a*e^4+15*b*e^4-12*c*e^4+42*d*e^4+7*e^5,
2836b^4*d+14*a^2*c^2*d+2*a*b*c^2*d+34*b^2*c^2*d-12*a*c^3*d+20*b*c^3*d-20*c^4*d+4*a^3*d^2-47*a^2*b*d^2-34*a*b^2*d^2-22*b^3*d^2+23*a^2*c*d^2-22*a*b*c*d^2-31*b^2*c*d^2-24*a*c^2*d^2+39*b*c^2*d^2-37*c^3*d^2-39*a^2*d^3-49*a*b*d^3-41*b^2*d^3-44*a*c*d^3+33*b*c*d^3-14*c^2*d^3-49*a*d^4+20*b*d^4+37*c*d^4+34*d^5+50*a^4*e-31*a^3*b*e-18*a^2*b^2*e-16*a*b^3*e+45*b^4*e+32*a^3*c*e+43*a^2*b*c*e-27*a*b^2*c*e+5*b^3*c*e+39*a^2*c^2*e+33*a*b*c^2*e-16*b^2*c^2*e-6*a*c^3*e-35*b*c^3*e-4*c^4*e-19*a^3*d*e+25*a^2*b*d*e-20*a*b^2*d*e+6*b^3*d*e-46*a^2*c*d*e-8*a*b*c*d*e+5*b^2*c*d*e+2*a*c^2*d*e-39*b*c^2*d*e-30*c^3*d*e+50*a^2*d^2*e-3*a*b*d^2*e-22*b^2*d^2*e+42*a*c*d^2*e-9*b*c*d^2*e+17*c^2*d^2*e+33*a*d^3*e+29*b*d^3*e-10*c*d^3*e+5*d^4*e+15*a^3*e^2+12*a^2*b*e^2-12*a*b^2*e^2+17*b^3*e^2+26*a^2*c*e^2+23*a*b*c*e^2+4*b^2*c*e^2-8*a*c^2*e^2+49*b*c^2*e^2-25*c^3*e^2-24*a^2*d*e^2-19*a*b*d*e^2+26*b^2*d*e^2+38*a*c*d*e^2+48*b*c*d*e^2-28*c^2*d*e^2-15*a*d^2*e^2+31*b*d^2*e^2-47*c*d^2*e^2-5*d^3*e^2-28*a^2*e^3+46*a*b*e^3-25*b^2*e^3-25*a*c*e^3-42*b*c*e^3-39*c^2*e^3-22*a*d*e^3+7*b*d*e^3+4*c*d*e^3-9*d^2*e^3+50*a*e^4-39*b*e^4+44*c*e^4+28*d*e^4+36*e^5,
2837a*b^3*d-32*a^2*c^2*d-43*a*b*c^2*d-38*b^2*c^2*d-33*a*c^3*d-34*b*c^3*d+15*c^4*d-10*a^3*d^2+20*a^2*b*d^2+23*a*b^2*d^2-6*b^3*d^2-46*a^2*c*d^2-29*a*b*c*d^2-20*b^2*c*d^2+17*a*c^2*d^2-42*b*c^2*d^2+27*c^3*d^2-15*a^2*d^3-27*a*b*d^3+43*b^2*d^3-a*c*d^3+45*b*c*d^3+7*c^2*d^3+4*a*d^4-5*b*d^4-13*c*d^4-26*d^5-24*a^4*e-5*a^2*b^2*e-27*a*b^3*e-23*b^4*e+9*a^3*c*e+33*a^2*b*c*e+25*a*b^2*c*e+39*b^3*c*e-30*a^2*c^2*e-33*a*b*c^2*e-37*b^2*c^2*e-13*a*c^3*e+49*b*c^3*e-30*c^4*e+8*a^3*d*e+20*a^2*b*d*e+18*a*b^2*d*e-34*b^3*d*e-19*a^2*c*d*e+39*a*b*c*d*e+21*b^2*c*d*e+12*a*c^2*d*e-15*b*c^2*d*e+39*c^3*d*e+34*a^2*d^2*e+49*a*b*d^2*e-10*b^2*d^2*e-46*a*c*d^2*e+18*b*c*d^2*e-6*c^2*d^2*e+9*a*d^3*e+30*b*d^3*e+20*c*d^3*e+3*d^4*e-15*a^3*e^2-18*a^2*b*e^2+5*a*b^2*e^2+14*b^3*e^2+19*a^2*c*e^2+30*a*b*c*e^2-b^2*c*e^2+33*a*c^2*e^2+41*b*c^2*e^2-7*c^3*e^2+12*a^2*d*e^2-13*a*b*d*e^2-3*b^2*d*e^2-49*a*c*d*e^2-17*b*c*d*e^2+29*c^2*d*e^2-19*a*d^2*e^2-38*b*d^2*e^2-10*c*d^2*e^2+50*d^3*e^2-17*a^2*e^3+47*a*b*e^3-7*b^2*e^3-25*a*c*e^3+29*b*c*e^3-41*c^2*e^3-35*a*d*e^3+b*d*e^3+32*c*d*e^3-15*d^2*e^3+9*a*e^4+22*c*e^4+12*d*e^4+36*e^5,
2838a^2*b^2*d-a^2*c^2*d-5*a*b*c^2*d+40*b^2*c^2*d+4*a*c^3*d+35*b*c^3*d+42*c^4*d-23*a^3*d^2-34*a^2*b*d^2+4*a*b^2*d^2+27*b^3*d^2+38*a^2*c*d^2-47*a*b*c*d^2+50*b^2*c*d^2+17*a*c^2*d^2+8*c^3*d^2+26*a^2*d^3-32*a*b*d^3+3*b^2*d^3+16*a*c*d^3-47*b*c*d^3-41*c^2*d^3-22*a*d^4-47*b*d^4-17*c*d^4-43*d^5-49*a^4*e+6*a^3*b*e-46*a^2*b^2*e+30*a*b^3*e-21*b^4*e+30*a^3*c*e+17*a^2*b*c*e+39*a*b^2*c*e+37*b^3*c*e+36*a^2*c^2*e+21*a*b*c^2*e-36*b^2*c^2*e-2*a*c^3*e+18*b*c^3*e-49*c^4*e-47*a^3*d*e+35*a^2*b*d*e+10*a*b^2*d*e+22*b^3*d*e-10*a^2*c*d*e-24*a*b*c*d*e-43*b^2*c*d*e-11*a*c^2*d*e+39*b*c^2*d*e+14*c^3*d*e-15*a^2*d^2*e+36*a*b*d^2*e+42*b^2*d^2*e+32*a*c*d^2*e+7*b*c*d^2*e-4*c^2*d^2*e-13*a*d^3*e+39*b*d^3*e+20*c*d^3*e+7*d^4*e+49*a^3*e^2+39*a^2*b*e^2-12*a*b^2*e^2+36*b^3*e^2+12*a^2*c*e^2-45*a*b*c*e^2+47*b^2*c*e^2+16*a*c^2*e^2+21*b*c^2*e^2+2*c^3*e^2+43*a^2*d*e^2+16*a*b*d*e^2+15*b^2*d*e^2+44*a*c*d*e^2+47*b*c*d*e^2+6*c^2*d*e^2+29*a*d^2*e^2-10*b*d^2*e^2-14*c*d^2*e^2+40*d^3*e^2+10*a^2*e^3-2*a*b*e^3-12*b^2*e^3-11*a*c*e^3+4*b*c*e^3+c^2*e^3-41*a*d*e^3-33*b*d*e^3+13*c*d*e^3+32*d^2*e^3-43*a*e^4+42*b*e^4-4*c*e^4-36*d*e^4,
2839a^3*b*d-15*a^2*c^2*d-32*a*b*c^2*d+24*b^2*c^2*d+48*a*c^3*d+6*b*c^3*d-40*a^3*d^2+34*a^2*b*d^2+29*a*b^2*d^2+18*b^3*d^2-17*a^2*c*d^2+34*a*b*c*d^2+5*b^2*c*d^2-31*a*c^2*d^2-29*b*c^2*d^2-12*c^3*d^2+11*a^2*d^3+8*a*b*d^3+3*b^2*d^3-33*a*c*d^3-34*b*c*d^3-12*c^2*d^3-48*a*d^4+18*b*d^4+41*c*d^4-45*d^5-22*a^4*e+a^3*b*e-25*a^2*b^2*e+3*a*b^3*e+49*b^4*e-27*a^3*c*e-42*a^2*b*c*e+2*a*b^2*c*e+3*b^3*c*e-40*a^2*c^2*e-30*a*b*c^2*e+2*b^2*c^2*e-14*a*c^3*e-6*b*c^3*e+22*c^4*e-16*a^3*d*e+32*a^2*b*d*e-2*a*b^2*d*e-27*b^3*d*e+16*a^2*c*d*e+42*a*b*c*d*e-6*b^2*c*d*e-46*a*c^2*d*e-9*b*c^2*d*e+31*c^3*d*e-23*a^2*d^2*e-a*b*d^2*e+22*b^2*d^2*e+29*a*c*d^2*e+22*b*c*d^2*e-28*c^2*d^2*e-32*a*d^3*e-10*b*d^3*e-10*c*d^3*e+19*d^4*e-41*a^3*e^2+27*a^2*b*e^2+44*a*b^2*e^2-32*b^3*e^2-24*a^2*c*e^2-6*a*b*c*e^2-25*b^2*c*e^2+29*a*c^2*e^2+19*b*c^2*e^2-47*c^3*e^2+20*a^2*d*e^2-3*a*b*d*e^2+43*b^2*d*e^2-14*a*c*d*e^2+2*b*c*d*e^2-37*c^2*d*e^2-24*a*d^2*e^2-19*b*d^2*e^2+30*c*d^2*e^2+29*d^3*e^2-a^2*e^3-6*a*b*e^3-18*b^2*e^3-48*a*c*e^3+13*b*c*e^3+40*c^2*e^3-48*a*d*e^3-45*b*d*e^3-23*c*d*e^3-6*d^2*e^3+4*a*e^4+12*b*e^4+36*c*e^4+32*d*e^4-20*e^5,
2840a^4*d+17*a^2*c^2*d-6*a*b*c^2*d-16*b^2*c^2*d-8*a*c^3*d+12*b*c^3*d+31*c^4*d-2*a^3*d^2+45*a^2*b*d^2+29*a*b^2*d^2-47*b^3*d^2+17*a^2*c*d^2-28*a*b*c*d^2-12*b^2*c*d^2-49*a*c^2*d^2-34*b*c^2*d^2-49*c^3*d^2-13*a^2*d^3+12*a*b*d^3-50*b^2*d^3-27*a*c*d^3+17*b*c*d^3+26*c^2*d^3-40*a*d^4+37*b*d^4+31*c*d^4+42*d^5-3*a^4*e+40*a^3*b*e+39*a^2*b^2*e-35*a*b^3*e+2*b^4*e-47*a^3*c*e-45*a^2*b*c*e-24*a*b^2*c*e-20*b^3*c*e+a^2*c^2*e-3*a*b*c^2*e+8*b^2*c^2*e-42*a*c^3*e-49*b*c^3*e-49*c^4*e+42*a^3*d*e+25*a^2*b*d*e+45*a*b^2*d*e+35*b^3*d*e+43*a^2*c*d*e-18*a*b*c*d*e+24*b^2*c*d*e-2*a*c^2*d*e-43*b*c^2*d*e+16*c^3*d*e-44*a^2*d^2*e+31*a*b*d^2*e+17*b^2*d^2*e-36*a*c*d^2*e+25*b*c*d^2*e-20*c^2*d^2*e+17*a*d^3*e-39*b*d^3*e-37*c*d^3*e+10*d^4*e-30*a^3*e^2+34*a^2*b*e^2-43*a*b^2*e^2-2*b^3*e^2-48*a^2*c*e^2+32*a*b*c*e^2+47*b^2*c*e^2+34*a*c^2*e^2-32*b*c^2*e^2+4*c^3*e^2-26*a^2*d*e^2+22*a*b*d*e^2+23*b^2*d*e^2-37*a*c*d*e^2+26*b*c*d*e^2-33*c^2*d*e^2-5*a*d^2*e^2+15*b*d^2*e^2+19*c*d^2*e^2-31*d^3*e^2+42*a^2*e^3+27*a*b*e^3+30*b^2*e^3+22*a*c*e^3-49*b*c*e^3-19*c^2*e^3+42*a*d*e^3+5*b*d*e^3+32*c*d*e^3+9*d^2*e^3-17*a*e^4-46*b*e^4+23*c*e^4-32*d*e^4-2*e^5,
2841c^5+40*a^2*c^2*d+34*a*b*c^2*d-16*b^2*c^2*d+9*a*c^3*d-13*b*c^3*d+30*c^4*d+18*a^3*d^2+27*a^2*b*d^2+37*a*b^2*d^2-30*b^3*d^2-38*a^2*c*d^2-40*a*b*c*d^2-10*b^2*c*d^2-28*a*c^2*d^2-26*b*c^2*d^2+15*c^3*d^2-7*a^2*d^3+2*a*b*d^3+28*b^2*d^3+27*a*c*d^3+11*b*c*d^3-9*c^2*d^3-18*a*d^4+39*b*d^4+8*c*d^4+20*d^5+34*a^4*e+27*a^3*b*e+10*a^2*b^2*e-10*a*b^3*e+15*b^4*e+a^3*c*e+16*a^2*b*c*e+47*a*b^2*c*e-50*b^3*c*e-45*a^2*c^2*e-47*a*b*c^2*e-38*b^2*c^2*e+49*a*c^3*e+11*b*c^3*e-8*c^4*e-24*a^3*d*e+41*a^2*b*d*e+31*a*b^2*d*e-31*b^3*d*e-44*a^2*c*d*e-a*b*c*d*e-15*b^2*c*d*e-27*a*c^2*d*e-50*b*c^2*d*e+29*c^3*d*e+30*a^2*d^2*e+41*a*b*d^2*e-31*b^2*d^2*e-40*a*c*d^2*e+14*b*c*d^2*e-18*c^2*d^2*e+4*a*d^3*e-27*b*d^3*e-36*c*d^3*e-26*d^4*e-2*a^3*e^2+39*a^2*b*e^2-17*a*b^2*e^2-b^3*e^2+24*a^2*c*e^2-6*a*b*c*e^2-12*b^2*c*e^2+38*a*c^2*e^2+6*b*c^2*e^2+38*c^3*e^2+15*a^2*d*e^2-2*a*b*d*e^2-22*b^2*d*e^2+30*a*c*d*e^2+50*b*c*d*e^2-37*c^2*d*e^2+2*a*d^2*e^2+27*b*d^2*e^2+2*c*d^2*e^2+19*d^3*e^2+48*a^2*e^3+24*a*b*e^3+49*b^2*e^3-35*a*c*e^3+49*b*c*e^3+2*c^2*e^3+20*a*d*e^3+34*b*d*e^3-50*c*d*e^3-41*d^2*e^3+48*a*e^4-24*b*e^4-14*c*e^4+32*d*e^4-11*e^5,
2842b*c^4+9*a^2*c^2*d-47*a*b*c^2*d-29*b^2*c^2*d+24*a*c^3*d-19*b*c^3*d-25*c^4*d+50*a^3*d^2-6*a^2*b*d^2-32*a*b^2*d^2-43*b^3*d^2+42*a^2*c*d^2-16*a*b*c*d^2-40*b^2*c*d^2+3*a*c^2*d^2+9*b*c^2*d^2+34*c^3*d^2-48*a^2*d^3-8*a*b*d^3-22*b^2*d^3+42*a*c*d^3+25*b*c*d^3-31*c^2*d^3-12*a*d^4+25*b*d^4+c*d^4+13*d^5-26*a^4*e+2*a^3*b*e-37*a^2*b^2*e+23*a*b^3*e+25*b^4*e+43*a^3*c*e-10*a^2*b*c*e+16*a*b^2*c*e-24*b^3*c*e+43*a^2*c^2*e-25*a*b*c^2*e+39*b^2*c^2*e+31*a*c^3*e-21*b*c^3*e+16*c^4*e+17*a^3*d*e-33*a^2*b*d*e+34*a*b^2*d*e-16*b^3*d*e+49*a^2*c*d*e+10*a*b*c*d*e-14*b^2*c*d*e+6*a*c^2*d*e+32*b*c^2*d*e-25*c^3*d*e-16*a^2*d^2*e-26*a*b*d^2*e+36*b^2*d^2*e+41*a*c*d^2*e-43*b*c*d^2*e-44*c^2*d^2*e+24*a*d^3*e+12*b*d^3*e-40*c*d^3*e+46*d^4*e-18*a^3*e^2+36*a^2*b*e^2-49*a*b^2*e^2+47*b^3*e^2-30*a^2*c*e^2+11*a*b*c*e^2-17*b^2*c*e^2-19*a*c^2*e^2-33*b*c^2*e^2+4*c^3*e^2-14*a^2*d*e^2-13*a*b*d*e^2-4*b^2*d*e^2-a*c*d*e^2+22*b*c*d*e^2-41*c^2*d*e^2+50*a*d^2*e^2+24*b*d^2*e^2-29*c*d^2*e^2-9*d^3*e^2+10*a^2*e^3+44*a*b*e^3+11*b^2*e^3+25*a*c*e^3+31*b*c*e^3+22*c^2*e^3+a*d*e^3-6*c*d*e^3+26*d^2*e^3-40*a*e^4+31*b*e^4-50*c*e^4+9*d*e^4+39*e^5,
2843a*c^4-47*a^2*c^2*d+40*a*b*c^2*d-8*b^2*c^2*d+3*a*c^3*d-3*b*c^3*d+38*c^4*d-13*a^3*d^2+3*a^2*b*d^2+19*a*b^2*d^2+24*b^3*d^2-27*a^2*c*d^2-12*a*b*c*d^2-45*b^2*c*d^2+28*a*c^2*d^2+35*b*c^2*d^2-28*c^3*d^2+7*a^2*d^3+3*a*b*d^3-34*b^2*d^3+15*a*c*d^3+36*b*c*d^3-18*c^2*d^3-49*a*d^4+44*b*d^4+c*d^4-10*d^5+31*a^4*e-18*a^3*b*e+7*a^2*b^2*e+38*a*b^3*e+37*b^4*e+18*a^3*c*e-50*a^2*b*c*e+12*a*b^2*c*e+43*b^3*c*e+33*a^2*c^2*e+13*a*b*c^2*e+13*b^2*c^2*e-4*a*c^3*e+13*b*c^3*e+20*c^4*e-32*a^3*d*e-36*a^2*b*d*e+47*a*b^2*d*e+43*b^3*d*e-13*a^2*c*d*e-27*a*b*c*d*e+7*b^2*c*d*e-40*a*c^2*d*e-30*b*c^2*d*e+21*c^3*d*e-18*a^2*d^2*e-32*a*b*d^2*e-20*b^2*d^2*e-47*a*c*d^2*e+34*b*c*d^2*e-3*c^2*d^2*e-22*a*d^3*e-29*b*d^3*e-47*c*d^3*e-33*d^4*e-3*a^3*e^2+46*a^2*b*e^2-42*a*b^2*e^2+6*b^3*e^2+16*a^2*c*e^2-9*a*b*c*e^2-35*b^2*c*e^2-24*b*c^2*e^2-5*c^3*e^2+18*a^2*d*e^2+43*a*b*d*e^2-43*b^2*d*e^2+6*a*c*d*e^2+8*b*c*d*e^2-33*c^2*d*e^2-26*a*d^2*e^2+31*b*d^2*e^2-29*c*d^2*e^2+d^3*e^2+45*a^2*e^3+45*a*b*e^3-31*b^2*e^3-26*a*c*e^3+35*b*c*e^3+30*c^2*e^3-33*a*d*e^3-4*b*d*e^3+34*c*d*e^3+21*d^2*e^3+41*a*e^4-14*b*e^4-32*c*e^4-19*d*e^4+29*e^5,
2844b^2*c^3+10*a^2*c^2*d+20*a*b*c^2*d+36*b^2*c^2*d-7*a*c^3*d+13*b*c^3*d+42*c^4*d-6*a^3*d^2+13*a^2*b*d^2+31*a*b^2*d^2-29*b^3*d^2+44*a^2*c*d^2-20*a*b*c*d^2+27*b^2*c*d^2+17*a*c^2*d^2-7*b*c^2*d^2-18*c^3*d^2-44*a^2*d^3-35*a*b*d^3-11*b^2*d^3-28*a*c*d^3+b*c*d^3+22*c^2*d^3-13*a*d^4-32*b*d^4-33*c*d^4-48*d^5-16*a^4*e+7*a^3*b*e-40*a^2*b^2*e-47*a*b^3*e+20*b^4*e-41*a^3*c*e+50*a^2*b*c*e-35*a*b^2*c*e+44*b^3*c*e-43*a^2*c^2*e+15*a*b*c^2*e-33*b^2*c^2*e-38*a*c^3*e-16*b*c^3*e+11*c^4*e+46*a^3*d*e+32*a^2*b*d*e+3*a*b^2*d*e+39*b^3*d*e-32*a^2*c*d*e-19*a*b*c*d*e+23*b^2*c*d*e-2*a*c^2*d*e-44*b*c^2*d*e-44*c^3*d*e+18*a^2*d^2*e+31*a*b*d^2*e+16*b^2*d^2*e+a*c*d^2*e+45*b*c*d^2*e-18*c^2*d^2*e+22*a*d^3*e+16*b*d^3*e+2*c*d^3*e+48*d^4*e-32*a^3*e^2+49*a^2*b*e^2-3*a*b^2*e^2+30*b^3*e^2+31*a^2*c*e^2+28*a*b*c*e^2-4*b^2*c*e^2+7*a*c^2*e^2+48*b*c^2*e^2+40*c^3*e^2-a^2*d*e^2+19*a*b*d*e^2+40*b^2*d*e^2-3*a*c*d*e^2+9*b*c*d*e^2+21*c^2*d*e^2+28*a*d^2*e^2+49*b*d^2*e^2+19*c*d^2*e^2+41*d^3*e^2-30*a^2*e^3-30*a*b*e^3+5*b^2*e^3-2*a*c*e^3+17*b*c*e^3-16*c^2*e^3+42*b*d*e^3-22*c*d*e^3+34*d^2*e^3+20*a*e^4+42*b*e^4+8*c*e^4+36*d*e^4-25*e^5,
2845a*b*c^3-48*a^2*c^2*d-19*a*b*c^2*d+46*b^2*c^2*d-49*a*c^3*d-43*b*c^3*d+c^4*d-12*a^3*d^2+28*a^2*b*d^2+11*a*b^2*d^2+13*b^3*d^2+36*a^2*c*d^2+20*a*b*c*d^2+8*b^2*c*d^2-5*a*c^2*d^2+44*b*c^2*d^2-50*c^3*d^2+34*a^2*d^3+a*b*d^3-25*b^2*d^3+5*a*c*d^3-47*b*c*d^3-4*c^2*d^3-33*a*d^4-29*b*d^4+34*c*d^4+d^5-15*a^4*e+50*a^3*b*e+14*a^2*b^2*e+15*a*b^3*e+34*b^4*e+9*a^3*c*e+38*a^2*b*c*e+12*a*b^2*c*e+21*b^3*c*e+18*a^2*c^2*e+37*a*b*c^2*e-16*b^2*c^2*e+13*a*c^3*e+47*b*c^3*e-41*c^4*e-29*a^3*d*e-45*a^2*b*d*e+3*a*b^2*d*e+44*b^3*d*e-31*a^2*c*d*e-8*a*b*c*d*e-5*b^2*c*d*e-22*a*c^2*d*e-6*b*c^2*d*e+3*c^3*d*e-43*a^2*d^2*e-45*a*b*d^2*e-24*b^2*d^2*e+15*a*c*d^2*e+15*b*c*d^2*e+7*c^2*d^2*e-17*a*d^3*e-8*b*d^3*e-31*c*d^3*e+19*d^4*e-41*a^3*e^2-25*a^2*b*e^2-11*a*b^2*e^2-4*b^3*e^2-25*a^2*c*e^2-32*a*b*c*e^2-42*b^2*c*e^2-46*a*c^2*e^2-41*b*c^2*e^2-36*c^3*e^2+40*a^2*d*e^2-43*a*b*d*e^2+35*b^2*d*e^2+2*a*c*d*e^2-28*b*c*d*e^2-43*c^2*d*e^2+21*a*d^2*e^2+8*b*d^2*e^2-42*c*d^2*e^2+50*d^3*e^2+48*a^2*e^3-25*a*b*e^3+22*b^2*e^3-3*a*c*e^3-42*b*c*e^3+22*c^2*e^3-5*a*d*e^3-35*b*d*e^3+36*c*d*e^3-34*d^2*e^3+14*a*e^4+34*b*e^4+23*c*e^4-35*d*e^4+46*e^5,
2846a^2*c^3-17*a^2*c^2*d-7*a*b*c^2*d+15*b^2*c^2*d+35*a*c^3*d-36*b*c^3*d-19*c^4*d+20*a^3*d^2-39*a^2*b*d^2-3*a*b^2*d^2-2*b^3*d^2+8*a^2*c*d^2+13*a*b*c*d^2-20*b^2*c*d^2+6*a*c^2*d^2-48*b*c^2*d^2-21*c^3*d^2+46*a^2*d^3+39*a*b*d^3+32*b^2*d^3-2*a*c*d^3+47*b*c*d^3+16*c^2*d^3+20*a*d^4-36*b*d^4-12*c*d^4+28*d^5+24*a^4*e+17*a^3*b*e-21*a^2*b^2*e+31*a*b^3*e+24*b^4*e-45*a^3*c*e+34*a^2*b*c*e+3*a*b^2*c*e+34*b^3*c*e+39*a^2*c^2*e+12*a*b*c^2*e+18*b^2*c^2*e+19*a*c^3*e-13*b*c^3*e+7*c^4*e+16*a^3*d*e-4*a^2*b*d*e+35*a*b^2*d*e+20*b^3*d*e+38*a^2*c*d*e-41*a*b*c*d*e+49*b^2*c*d*e+7*a*c^2*d*e+39*b*c^2*d*e+15*c^3*d*e+32*a^2*d^2*e+35*a*b*d^2*e-36*b^2*d^2*e+11*a*c*d^2*e+11*b*c*d^2*e-26*c^2*d^2*e+2*a*d^3*e-30*b*d^3*e-2*c*d^3*e+5*d^4*e-2*a^3*e^2-45*a^2*b*e^2-10*a*b^2*e^2-42*b^3*e^2+13*a^2*c*e^2+38*a*b*c*e^2+22*b^2*c*e^2+42*a*c^2*e^2+16*b*c^2*e^2+40*c^3*e^2-19*a^2*d*e^2-35*a*b*d*e^2-24*b^2*d*e^2+33*a*c*d*e^2-48*b*c*d*e^2-6*a*d^2*e^2+2*b*d^2*e^2-31*c*d^2*e^2-5*d^3*e^2+45*a^2*e^3+17*a*b*e^3+50*b^2*e^3-18*a*c*e^3+3*b*c*e^3+32*c^2*e^3+34*a*d*e^3-39*b*d*e^3-35*c*d*e^3+22*d^2*e^3-40*a*e^4+43*b*e^4+48*c*e^4-42*d*e^4+8*e^5,
2847b^3*c^2+2*a^2*c^2*d-42*a*b*c^2*d-42*b^2*c^2*d+22*a*c^3*d-28*b*c^3*d-24*c^4*d-24*a^3*d^2+40*a^2*b*d^2-7*a*b^2*d^2+31*b^3*d^2+13*a^2*c*d^2+33*a*b*c*d^2+6*b^2*c*d^2+40*a*c^2*d^2+37*b*c^2*d^2+40*c^3*d^2-12*a^2*d^3+26*a*b*d^3+23*b^2*d^3+44*a*c*d^3+13*b*c*d^3-24*c^2*d^3+31*a*d^4+44*b*d^4+32*c*d^4+48*d^5+42*a^4*e+2*a^3*b*e-25*a^2*b^2*e-27*a*b^3*e-21*b^4*e+44*a^3*c*e+50*a^2*b*c*e+42*a*b^2*c*e+28*b^3*c*e+28*a^2*c^2*e+20*a*b*c^2*e+11*b^2*c^2*e-25*a*c^3*e+35*b*c^3*e+11*c^4*e+13*a^3*d*e+13*a^2*b*d*e-33*a*b^2*d*e+26*b^3*d*e+10*a^2*c*d*e-47*a*b*c*d*e+44*b^2*c*d*e-50*a*c^2*d*e+6*b*c^2*d*e+38*c^3*d*e-43*a^2*d^2*e-43*a*b*d^2*e+50*b^2*d^2*e-36*a*c*d^2*e+39*b*c*d^2*e+4*c^2*d^2*e+26*a*d^3*e+6*b*d^3*e-30*c*d^3*e-21*d^4*e+16*a^3*e^2-19*a^2*b*e^2+43*a*b^2*e^2-b^3*e^2-9*a^2*c*e^2-3*a*b*c*e^2-44*b^2*c*e^2-34*a*c^2*e^2-24*b*c^2*e^2+15*c^3*e^2+47*a^2*d*e^2-45*a*b*d*e^2-22*b^2*d*e^2-21*a*c*d*e^2+36*b*c*d*e^2+c^2*d*e^2-13*a*d^2*e^2+47*b*d^2*e^2-12*c*d^2*e^2+16*d^3*e^2-30*a^2*e^3-49*a*b*e^3+40*b^2*e^3+46*a*c*e^3-25*b*c*e^3-38*c^2*e^3-30*a*d*e^3-27*b*d*e^3+47*c*d*e^3+37*d^2*e^3+49*a*e^4+6*b*e^4-6*c*e^4+43*d*e^4+5*e^5,
2848a*b^2*c^2-9*a^2*c^2*d+49*a*b*c^2*d+17*b^2*c^2*d-45*a*c^3*d+27*b*c^3*d-8*c^4*d-25*a^3*d^2-23*a^2*b*d^2+47*a*b^2*d^2+8*b^3*d^2+20*a^2*c*d^2+37*a*b*c*d^2+28*b^2*c*d^2+8*a*c^2*d^2+36*b*c^2*d^2+34*c^3*d^2+37*a^2*d^3+23*a*b*d^3+11*b^2*d^3-46*a*c*d^3+45*b*c*d^3-16*c^2*d^3-27*a*d^4-39*b*d^4+31*c*d^4-24*d^5+42*a^4*e-30*a^3*b*e+12*a^2*b^2*e-18*a*b^3*e+8*b^4*e-33*a^3*c*e+21*a^2*b*c*e-9*a*b^2*c*e+10*b^3*c*e+11*a^2*c^2*e-33*a*b*c^2*e-27*b^2*c^2*e+47*a*c^3*e-35*b*c^3*e+15*c^4*e-19*a^3*d*e+20*a^2*b*d*e+41*a*b^2*d*e+39*b^3*d*e+24*a^2*c*d*e-12*a*b*c*d*e-16*b^2*c*d*e+38*a*c^2*d*e-43*b*c^2*d*e+39*c^3*d*e-14*a^2*d^2*e+39*a*b*d^2*e+24*b^2*d^2*e-35*a*c*d^2*e-8*b*c*d^2*e-26*c^2*d^2*e-5*a*d^3*e+34*b*d^3*e+16*c*d^3*e+35*d^4*e-a^3*e^2+44*a^2*b*e^2+33*a*b^2*e^2+41*b^3*e^2+26*a^2*c*e^2-6*a*b*c*e^2-15*b^2*c*e^2-46*a*c^2*e^2-37*b*c^2*e^2-49*c^3*e^2-6*a^2*d*e^2+20*a*b*d*e^2-7*b^2*d*e^2+16*a*c*d*e^2+49*b*c*d*e^2-23*c^2*d*e^2+37*a*d^2*e^2+31*b*d^2*e^2+17*c*d^2*e^2-39*d^3*e^2-46*a^2*e^3-17*a*b*e^3+46*b^2*e^3-31*a*c*e^3+39*b*c*e^3-13*c^2*e^3+40*a*d*e^3+18*b*d*e^3+3*c*d*e^3-6*d^2*e^3-35*a*e^4+22*b*e^4-47*c*e^4-4*d*e^4+35*e^5,
2849a^2*b*c^2+25*a^2*c^2*d-27*a*b*c^2*d+43*b^2*c^2*d+3*a*c^3*d+35*b*c^3*d+39*c^4*d+12*a^3*d^2-39*a^2*b*d^2-38*a*b^2*d^2+8*b^3*d^2+14*a^2*c*d^2+42*a*b*c*d^2-16*b^2*c*d^2+32*a*c^2*d^2-26*b*c^2*d^2+31*c^3*d^2-34*a^2*d^3-4*a*b*d^3+40*b^2*d^3+34*a*c*d^3-31*b*c*d^3+11*c^2*d^3+9*a*d^4+27*b*d^4+19*c*d^4-44*d^5-45*a^4*e+43*a^3*b*e-36*a^2*b^2*e+23*a*b^3*e-14*b^4*e-2*a^3*c*e+20*a^2*b*c*e-34*a*b^2*c*e+26*b^3*c*e+2*a^2*c^2*e-32*a*b*c^2*e+35*b^2*c^2*e-44*a*c^3*e-47*b*c^3*e-6*c^4*e+4*a^3*d*e+34*a^2*b*d*e-38*a*b^2*d*e-21*b^3*d*e+45*a^2*c*d*e-25*a*b*c*d*e+30*b^2*c*d*e+43*a*c^2*d*e-2*b*c^2*d*e+17*c^3*d*e+30*a^2*d^2*e+48*a*b*d^2*e+5*b^2*d^2*e+31*a*c*d^2*e+46*b*c*d^2*e+42*c^2*d^2*e-39*a*d^3*e-30*b*d^3*e+34*c*d^3*e+37*d^4*e+45*a^3*e^2-37*a^2*b*e^2+16*a*b^2*e^2-12*b^3*e^2+21*a^2*c*e^2-36*a*b*c*e^2+45*b^2*c*e^2-39*a*c^2*e^2+8*c^3*e^2-47*a^2*d*e^2+38*a*b*d*e^2+48*b^2*d*e^2-30*a*c*d*e^2-40*b*c*d*e^2+34*c^2*d*e^2+42*a*d^2*e^2-38*b*d^2*e^2+24*c*d^2*e^2+37*d^3*e^2-26*a^2*e^3-50*a*b*e^3+10*b^2*e^3-29*a*c*e^3-48*b*c*e^3+8*c^2*e^3+26*a*d*e^3-26*b*d*e^3-44*c*d*e^3+30*d^2*e^3-31*a*e^4-21*b*e^4-44*c*e^4-17*d*e^4+26*e^5,
2850a^3*c^2+32*a^2*c^2*d+18*a*b*c^2*d+26*b^2*c^2*d-34*a*c^3*d+29*b*c^3*d+6*c^4*d-46*a^3*d^2-37*a^2*b*d^2-9*a*b^2*d^2+13*b^3*d^2-46*a^2*c*d^2-25*a*b*c*d^2-19*b^2*c*d^2-36*a*c^2*d^2-28*b*c^2*d^2+c^3*d^2-16*a^2*d^3-32*a*b*d^3-39*b^2*d^3-a*c*d^3-44*b*c*d^3-24*c^2*d^3+44*a*d^4-18*b*d^4-11*c*d^4+31*d^5-37*a^4*e+50*a^3*b*e-3*a^2*b^2*e+40*a*b^3*e-19*b^4*e+31*a^3*c*e+49*a^2*b*c*e+14*a*b^2*c*e+22*b^3*c*e-27*a^2*c^2*e-46*a*b*c^2*e+31*b^2*c^2*e+22*a*c^3*e+27*b*c^3*e+25*c^4*e+10*a^3*d*e-21*a^2*b*d*e-13*a*b^2*d*e-46*b^3*d*e-34*a^2*c*d*e+24*a*b*c*d*e-38*b^2*c*d*e-14*a*c^2*d*e+50*b*c^2*d*e+28*c^3*d*e+44*a^2*d^2*e+23*a*b*d^2*e-38*b^2*d^2*e-4*a*c*d^2*e-34*b*c*d^2*e-21*c^2*d^2*e+9*a*d^3*e-14*b*d^3*e-19*c*d^3*e+14*d^4*e+31*a^3*e^2-33*a^2*b*e^2-39*a*b^2*e^2+9*b^3*e^2+7*a^2*c*e^2+13*a*b*c*e^2-12*b^2*c*e^2+24*a*c^2*e^2+18*b*c^2*e^2+19*c^3*e^2+24*a^2*d*e^2-24*a*b*d*e^2-47*b^2*d*e^2-46*a*c*d*e^2+31*b*c*d*e^2+31*c^2*d*e^2-9*a*d^2*e^2+6*b*d^2*e^2+46*c*d^2*e^2+23*d^3*e^2-37*a^2*e^3+14*a*b*e^3-40*b^2*e^3+14*a*c*e^3-46*b*c*e^3-42*c^2*e^3+32*a*d*e^3+5*b*d*e^3-4*c*d*e^3-16*d^2*e^3-4*a*e^4+36*b*e^4+38*c*e^4+30*d*e^4-18*e^5,
2851b^4*c+25*a^2*c^2*d+37*a*b*c^2*d+12*b^2*c^2*d-31*b*c^3*d+40*c^4*d-49*a^3*d^2+8*a^2*b*d^2+36*a*b^2*d^2+48*b^3*d^2-15*a^2*c*d^2+20*a*b*c*d^2-13*b^2*c*d^2-2*a*c^2*d^2+11*b*c^2*d^2+46*c^3*d^2+49*a^2*d^3-3*a*b*d^3-31*b^2*d^3-11*a*c*d^3+4*b*c*d^3+7*c^2*d^3-27*b*d^4+c*d^4+43*d^5+41*a^4*e-28*a^3*b*e+37*a^2*b^2*e-18*a*b^3*e+20*b^4*e-3*a^3*c*e+42*a^2*b*c*e-26*a*b^2*c*e-36*b^3*c*e-32*a^2*c^2*e+33*a*b*c^2*e-18*b^2*c^2*e-45*a*c^3*e+22*b*c^3*e+22*c^4*e+28*a^3*d*e-17*a^2*b*d*e-37*a*b^2*d*e-11*b^3*d*e+44*a^2*c*d*e-21*a*b*c*d*e+27*b^2*c*d*e-16*a*c^2*d*e+45*b*c^2*d*e+37*c^3*d*e+13*a^2*d^2*e-24*a*b*d^2*e+46*b^2*d^2*e-18*a*c*d^2*e-24*b*c*d^2*e+10*c^2*d^2*e-22*a*d^3*e-19*b*d^3*e+26*c*d^3*e+24*d^4*e+50*a^3*e^2-21*a^2*b*e^2-31*a*b^2*e^2+12*b^3*e^2+18*a^2*c*e^2-9*a*b*c*e^2-3*b^2*c*e^2+49*a*c^2*e^2-22*b*c^2*e^2-7*c^3*e^2+34*a^2*d*e^2+14*a*b*d*e^2-10*b^2*d*e^2-21*a*c*d*e^2-49*b*c*d*e^2-32*c^2*d*e^2-31*a*d^2*e^2-37*b*d^2*e^2+17*c*d^2*e^2-2*d^3*e^2+23*a^2*e^3+38*a*b*e^3+16*b^2*e^3+7*a*c*e^3-6*b*c*e^3+7*c^2*e^3-35*a*d*e^3+46*b*d*e^3-2*c*d*e^3-47*d^2*e^3+15*a*e^4-22*b*e^4+25*c*e^4+12*d*e^4+36*e^5,
2852a*b^3*c+7*a^2*c^2*d-37*a*b*c^2*d-27*b^2*c^2*d-a*c^3*d-28*b*c^3*d+32*c^4*d-17*a^3*d^2+30*a^2*b*d^2+7*a*b^2*d^2-32*b^3*d^2-10*a^2*c*d^2+38*a*b*c*d^2-15*b^2*c*d^2+a*c^2*d^2-37*b*c^2*d^2-9*c^3*d^2-13*a^2*d^3+27*a*b*d^3-11*b^2*d^3+6*a*c*d^3+b*c*d^3-9*c^2*d^3+44*a*d^4+3*b*d^4-36*c*d^4+41*d^5-3*a^4*e+10*a^3*b*e-8*a*b^3*e-3*b^4*e-3*a^3*c*e+34*a^2*b*c*e+3*a*b^2*c*e+15*b^3*c*e-22*a^2*c^2*e-33*a*b*c^2*e-4*b^2*c^2*e+48*a*c^3*e+7*b*c^3*e-29*c^4*e+38*a^3*d*e+14*a^2*b*d*e-26*a*b^2*d*e+48*b^3*d*e-3*a^2*c*d*e-45*a*b*c*d*e+26*b^2*c*d*e+46*a*c^2*d*e+26*b*c^2*d*e+15*c^3*d*e+29*a^2*d^2*e+42*a*b*d^2*e+11*b^2*d^2*e+26*a*c*d^2*e+44*b*c*d^2*e-18*c^2*d^2*e-19*a*d^3*e+47*b*d^3*e+c*d^3*e+50*d^4*e+8*a^3*e^2-19*a^2*b*e^2+49*a*b^2*e^2+17*b^3*e^2-27*a^2*c*e^2+30*a*b*c*e^2+10*b^2*c*e^2+21*a*c^2*e^2+11*b*c^2*e^2+38*c^3*e^2+36*a^2*d*e^2-28*a*b*d*e^2+22*b^2*d*e^2-45*a*c*d*e^2-45*b*c*d*e^2+43*c^2*d*e^2-21*a*d^2*e^2+5*b*d^2*e^2-41*c*d^2*e^2+36*d^3*e^2-25*a^2*e^3-22*a*b*e^3-6*b^2*e^3+31*a*c*e^3+19*b*c*e^3-35*c^2*e^3+44*a*d*e^3+40*b*d*e^3-14*c*d*e^3+6*d^2*e^3+2*a*e^4-26*b*e^4+43*c*e^4+39*d*e^4+7*e^5,
2853a^2*b^2*c-22*a^2*c^2*d+2*a*b*c^2*d-39*b^2*c^2*d-32*a*c^3*d-39*b*c^3*d+32*c^4*d+47*a^3*d^2-9*a^2*b*d^2+36*a*b^2*d^2-22*b^3*d^2+a^2*c*d^2+7*a*b*c*d^2+21*b^2*c*d^2+35*a*c^2*d^2+31*b*c^2*d^2+38*c^3*d^2+4*a^2*d^3+50*a*b*d^3-10*b^2*d^3-7*a*c*d^3-8*b*c*d^3-23*c^2*d^3+18*a*d^4+13*b*d^4+5*c*d^4-6*d^5-41*a^4*e+50*a^3*b*e+3*a^2*b^2*e+20*a*b^3*e-26*b^4*e-22*a^3*c*e+9*a^2*b*c*e+5*a*b^2*c*e+38*b^3*c*e-16*a^2*c^2*e-35*a*b*c^2*e-17*b^2*c^2*e-4*a*c^3*e-32*b*c^3*e-19*c^4*e-21*a^3*d*e+23*a^2*b*d*e+37*a*b^2*d*e+48*b^3*d*e-2*a^2*c*d*e-48*a*b*c*d*e-44*b^2*c*d*e+4*a*c^2*d*e+9*b*c^2*d*e-33*c^3*d*e+30*a^2*d^2*e+25*a*b*d^2*e+34*b^2*d^2*e-39*a*c*d^2*e+27*b*c*d^2*e+25*c^2*d^2*e+3*a*d^3*e-50*b*d^3*e-49*c*d^3*e-9*d^4*e-39*a^3*e^2+10*a^2*b*e^2-33*a*b^2*e^2+36*b^3*e^2+20*a^2*c*e^2+43*a*b*c*e^2+7*b^2*c*e^2+36*a*c^2*e^2-39*b*c^2*e^2-33*c^3*e^2+14*a^2*d*e^2-46*a*b*d*e^2+8*b^2*d*e^2+23*a*c*d*e^2+30*b*c*d*e^2-8*c^2*d*e^2+28*a*d^2*e^2-5*b*d^2*e^2+25*c*d^2*e^2+17*d^3*e^2+28*a^2*e^3-38*a*b*e^3-46*b^2*e^3-27*a*c*e^3-5*b*c*e^3-20*c^2*e^3+2*a*d*e^3-4*b*d*e^3+15*c*d*e^3-36*d^2*e^3+41*a*e^4+6*b*e^4+20*c*e^4+8*d*e^4-2*e^5,
2854a^3*b*c+40*a^2*c^2*d-47*a*b*c^2*d-27*b^2*c^2*d+41*a*c^3*d-39*b*c^3*d-32*c^4*d+5*a^3*d^2-5*a^2*b*d^2-34*a*b^2*d^2-35*b^3*d^2+29*a^2*c*d^2+4*a*b*c*d^2-6*b^2*c*d^2+25*a*c^2*d^2+6*b*c^2*d^2-44*c^3*d^2-38*a^2*d^3-31*a*b*d^3+37*b^2*d^3-49*a*c*d^3-17*b*c*d^3+9*c^2*d^3+25*a*d^4+4*b*d^4-25*c*d^4-49*d^5-15*a^4*e-11*a^3*b*e+7*a^2*b^2*e+37*a*b^3*e-21*b^4*e+18*a^3*c*e+46*a^2*b*c*e+6*a*b^2*c*e+43*b^3*c*e-5*a^2*c^2*e+49*a*b*c^2*e+44*b^2*c^2*e-18*a*c^3*e+30*b*c^3*e+30*c^4*e+37*a^3*d*e-47*a^2*b*d*e+23*a*b^2*d*e-26*b^3*d*e-12*a^2*c*d*e+49*a*b*c*d*e+37*b^2*c*d*e+3*a*c^2*d*e-15*b*c^2*d*e+c^3*d*e-13*a^2*d^2*e+32*a*b*d^2*e-29*b^2*d^2*e-11*a*c*d^2*e-28*b*c*d^2*e+21*c^2*d^2*e-10*a*d^3*e-20*b*d^3*e-2*c*d^3*e-25*d^4*e-18*a^3*e^2-10*a^2*b*e^2-26*a*b^2*e^2+15*b^3*e^2-6*a^2*c*e^2+48*a*b*c*e^2-36*b^2*c*e^2-18*a*c^2*e^2+8*b*c^2*e^2+36*c^3*e^2+2*a^2*d*e^2+48*a*b*d*e^2-32*b^2*d*e^2+47*a*c*d*e^2+b*c*d*e^2-35*c^2*d*e^2+16*a*d^2*e^2-26*b*d^2*e^2+40*c*d^2*e^2+50*d^3*e^2+16*a^2*e^3+32*a*b*e^3-22*b^2*e^3-43*a*c*e^3+4*b*c*e^3-26*c^2*e^3-29*a*d*e^3+7*b*d*e^3+20*c*d*e^3+8*d^2*e^3-9*a*e^4-7*b*e^4+3*c*e^4+49*d*e^4-48*e^5,
2855a^4*c-40*a^2*c^2*d+21*a*b*c^2*d+43*b^2*c^2*d+31*a*c^3*d-4*b*c^3*d+49*c^4*d+24*a^3*d^2-14*a^2*b*d^2+3*a*b^2*d^2-6*b^3*d^2+27*a^2*c*d^2+24*a*b*c*d^2-47*b^2*c*d^2-16*a*c^2*d^2+21*b*c^2*d^2-33*c^3*d^2+39*a^2*d^3-34*a*b*d^3-7*b^2*d^3+3*a*c*d^3+30*b*c*d^3-10*c^2*d^3+17*a*d^4+28*b*d^4+16*c*d^4-19*d^5+16*a^4*e-14*a^3*b*e+19*a^2*b^2*e-12*a*b^3*e-41*b^4*e-28*a^3*c*e+13*a^2*b*c*e+35*a*b^2*c*e-35*b^3*c*e+37*a^2*c^2*e-7*a*b*c^2*e+33*b^2*c^2*e-30*a*c^3*e+36*b*c^3*e-26*c^4*e-27*a^3*d*e+28*a^2*b*d*e+2*a*b^2*d*e+22*b^3*d*e-9*a^2*c*d*e+39*a*b*c*d*e-11*b^2*c*d*e+48*a*c^2*d*e+b*c^2*d*e-25*c^3*d*e-28*a^2*d^2*e-38*a*b*d^2*e-13*b^2*d^2*e-12*a*c*d^2*e-35*b*c*d^2*e-45*c^2*d^2*e-27*a*d^3*e-31*b*d^3*e+20*c*d^3*e+40*d^4*e+11*a^3*e^2-33*a^2*b*e^2-3*a*b^2*e^2+32*b^3*e^2+10*a^2*c*e^2+48*a*b*c*e^2-50*b^2*c*e^2+2*a*c^2*e^2-46*b*c^2*e^2+15*c^3*e^2-15*a^2*d*e^2+29*a*b*d*e^2+4*b^2*d*e^2-16*a*c*d*e^2+34*b*c*d*e^2-21*c^2*d*e^2+44*a*d^2*e^2-35*b*d^2*e^2+4*c*d^2*e^2-16*d^3*e^2-14*a^2*e^3+39*a*b*e^3+44*b^2*e^3-22*a*c*e^3-16*b*c*e^3+38*c^2*e^3-a*d*e^3+14*b*d*e^3-44*c*d*e^3-31*d^2*e^3+4*a*e^4+33*c*e^4-5*d*e^4+46*e^5,
2856b^5-5*a^2*c^2*d-23*a*b*c^2*d+3*b^2*c^2*d-30*a*c^3*d-48*b*c^3*d-40*c^4*d-21*a^3*d^2-13*a^2*b*d^2+36*a*b^2*d^2-35*b^3*d^2-9*a^2*c*d^2+32*a*b*c*d^2-19*b^2*c*d^2+3*a*c^2*d^2-2*b*c^2*d^2+22*c^3*d^2-37*a^2*d^3+46*a*b*d^3-38*b^2*d^3-33*a*c*d^3-7*b*c*d^3+3*c^2*d^3-33*a*d^4+b*d^4+22*c*d^4+50*d^5-33*a^4*e+18*a^3*b*e+11*a^2*b^2*e-19*a*b^3*e+49*b^4*e+3*a^3*c*e-10*a^2*b*c*e-29*a*b^2*c*e-17*b^3*c*e-15*a^2*c^2*e+30*a*b*c^2*e+39*b^2*c^2*e+7*a*c^3*e-46*b*c^3*e+29*c^4*e-17*a^3*d*e+26*a^2*b*d*e+27*a*b^2*d*e-27*b^3*d*e-27*a^2*c*d*e-7*a*b*c*d*e-36*b^2*c*d*e+18*a*c^2*d*e-34*b*c^2*d*e+31*c^3*d*e+22*a^2*d^2*e-2*a*b*d^2*e+39*b^2*d^2*e+40*a*c*d^2*e+49*b*c*d^2*e-41*c^2*d^2*e-46*a*d^3*e-33*b*d^3*e-40*c*d^3*e+16*d^4*e-37*a^3*e^2-14*a^2*b*e^2-49*a*b^2*e^2+39*b^3*e^2-20*a^2*c*e^2-39*a*b*c*e^2+20*b^2*c*e^2+10*a*c^2*e^2+29*b*c^2*e^2+20*c^3*e^2-19*a^2*d*e^2+37*a*b*d*e^2+20*b^2*d*e^2+26*a*c*d*e^2-8*b*c*d*e^2+14*c^2*d*e^2+24*a*d^2*e^2-14*b*d^2*e^2-33*c*d^2*e^2-18*d^3*e^2-2*a^2*e^3-32*a*b*e^3-37*b^2*e^3+45*a*c*e^3-33*b*c*e^3+28*c^2*e^3-19*a*d*e^3-43*b*d*e^3-10*c*d*e^3+30*d^2*e^3+44*a*e^4+40*b*e^4-20*c*e^4-40*d*e^4-2*e^5,
2857a*b^4-14*a^2*c^2*d+14*b^2*c^2*d+36*a*c^3*d+7*b*c^3*d-14*c^4*d-11*a^3*d^2+40*a^2*b*d^2-29*a*b^2*d^2-45*b^3*d^2+23*a^2*c*d^2+8*a*b*c*d^2+28*b^2*c*d^2+42*a*c^2*d^2+14*b*c^2*d^2+42*c^3*d^2-36*a^2*d^3-4*a*b*d^3+6*a*c*d^3-18*b*c*d^3+40*c^2*d^3-47*a*d^4-19*b*d^4-16*c*d^4+31*d^5-15*a^4*e+46*a^3*b*e+13*a^2*b^2*e-18*a*b^3*e+9*b^4*e+50*a^3*c*e-10*a^2*b*c*e-12*a*b^2*c*e+44*b^3*c*e+7*a^2*c^2*e+39*a*b*c^2*e-36*b^2*c^2*e+29*a*c^3*e-37*b*c^3*e-28*c^4*e-43*a^3*d*e+50*a^2*b*d*e-16*a*b^2*d*e+17*b^3*d*e+23*a^2*c*d*e-14*a*b*c*d*e+10*b^2*c*d*e+18*a*c^2*d*e+40*b*c^2*d*e-30*c^3*d*e+44*a^2*d^2*e+26*a*b*d^2*e+17*b^2*d^2*e+9*a*c*d^2*e+37*b*c*d^2*e-38*c^2*d^2*e+46*a*d^3*e+15*b*d^3*e+33*c*d^3*e+20*d^4*e+4*a^3*e^2-43*a^2*b*e^2-14*a*b^2*e^2-29*b^3*e^2+44*a^2*c*e^2-37*a*b*c*e^2-2*b^2*c*e^2+39*a*c^2*e^2-36*b*c^2*e^2+45*c^3*e^2-34*a^2*d*e^2-48*a*b*d*e^2-25*b^2*d*e^2+48*a*c*d*e^2+5*b*c*d*e^2-16*c^2*d*e^2+20*a*d^2*e^2+8*b*d^2*e^2-48*c*d^2*e^2+27*d^3*e^2-39*a^2*e^3-23*a*b*e^3-45*b^2*e^3-34*a*c*e^3-50*b*c*e^3-42*c^2*e^3+50*a*d*e^3+26*b*d*e^3+48*c*d*e^3-37*d^2*e^3-20*a*e^4-19*b*e^4+23*c*e^4+23*d*e^4+12*e^5,
2858a^2*b^3-25*a^2*c^2*d+26*a*b*c^2*d+32*b^2*c^2*d-48*a*c^3*d-7*b*c^3*d-44*c^4*d+14*a^3*d^2+19*a^2*b*d^2-7*a*b^2*d^2-15*b^3*d^2+50*a^2*c*d^2-11*a*b*c*d^2-13*b^2*c*d^2-33*a*c^2*d^2-46*b*c^2*d^2+12*c^3*d^2-26*a^2*d^3-11*a*b*d^3+22*b^2*d^3+24*a*c*d^3-12*b*c*d^3-22*c^2*d^3+40*a*d^4-23*b*d^4-48*c*d^4-20*d^5+17*a^4*e-41*a^3*b*e-a^2*b^2*e-12*a*b^3*e-9*b^4*e-30*a^3*c*e+50*a^2*b*c*e+31*a*b^2*c*e+5*b^3*c*e+33*a^2*c^2*e+15*a*b*c^2*e-50*b^2*c^2*e+24*a*c^3*e-b*c^3*e-6*c^4*e-31*a^3*d*e-26*a^2*b*d*e+49*a*b^2*d*e-13*b^3*d*e+43*a^2*c*d*e-10*a*b*c*d*e+35*b^2*c*d*e+36*a*c^2*d*e-22*b*c^2*d*e+40*c^3*d*e-7*a^2*d^2*e+28*a*b*d^2*e-b^2*d^2*e+17*a*c*d^2*e+13*b*c*d^2*e+26*c^2*d^2*e+32*a*d^3*e+3*b*d^3*e+12*c*d^3*e+40*d^4*e-40*a^3*e^2+12*a^2*b*e^2+27*a*b^2*e^2-24*b^3*e^2+13*a^2*c*e^2-19*a*b*c*e^2-27*b^2*c*e^2-28*a*c^2*e^2+50*b*c^2*e^2-48*c^3*e^2-14*a^2*d*e^2+26*a*b*d*e^2+35*b^2*d*e^2-43*a*c*d*e^2+42*b*c*d*e^2+9*c^2*d*e^2-10*a*d^2*e^2+21*c*d^2*e^2-5*d^3*e^2-30*a^2*e^3+38*a*b*e^3-25*b^2*e^3-28*a*c*e^3+23*b*c*e^3+38*c^2*e^3-30*a*d*e^3-16*b*d*e^3-35*c*d*e^3+2*d^2*e^3+33*a*e^4+12*b*e^4-25*c*e^4+26*d*e^4-40*e^5,
2859a^3*b^2-40*a^2*c^2*d+50*a*b*c^2*d+25*b^2*c^2*d+46*a*c^3*d-45*b*c^3*d-6*c^4*d-24*a^3*d^2-9*a^2*b*d^2-15*a*b^2*d^2+5*b^3*d^2+36*a^2*c*d^2-19*a*b*c*d^2+19*b^2*c*d^2+17*a*c^2*d^2+12*b*c^2*d^2-25*c^3*d^2-33*a^2*d^3-27*a*b*d^3+42*b^2*d^3-4*a*c*d^3+33*b*c*d^3+32*c^2*d^3+10*a*d^4+47*c*d^4-3*d^5-23*a^4*e-45*a^3*b*e+41*a^2*b^2*e+47*a*b^3*e+15*b^4*e-2*a^3*c*e+12*a^2*b*c*e+13*a*b^2*c*e-45*b^3*c*e-28*a^2*c^2*e-3*a*b*c^2*e-37*b^2*c^2*e+39*a*c^3*e+37*c^4*e-12*a^3*d*e-48*a^2*b*d*e-5*a*b^2*d*e+47*b^3*d*e-41*a^2*c*d*e-36*a*b*c*d*e-37*b^2*c*d*e-a*c^2*d*e-38*b*c^2*d*e+17*c^3*d*e-29*a^2*d^2*e-3*a*b*d^2*e-23*b^2*d^2*e-19*a*c*d^2*e+43*b*c*d^2*e-48*c^2*d^2*e-46*a*d^3*e+48*b*d^3*e+40*c*d^3*e-15*d^4*e-23*a^3*e^2-22*a^2*b*e^2-50*a*b^2*e^2-33*b^3*e^2+27*a^2*c*e^2-46*a*b*c*e^2+29*b^2*c*e^2-14*a*c^2*e^2+9*b*c^2*e^2-43*c^3*e^2-19*a^2*d*e^2-38*a*b*d*e^2+12*b^2*d*e^2+18*a*c*d*e^2+20*b*c*d*e^2+3*c^2*d*e^2-9*a*d^2*e^2-27*b*d^2*e^2-6*c*d^2*e^2+38*d^3*e^2+43*a^2*e^3+43*a*b*e^3+3*b^2*e^3+10*a*c*e^3+8*b*c*e^3+13*c^2*e^3+37*a*d*e^3+b*d*e^3-21*c*d*e^3+27*d^2*e^3+26*a*e^4-29*b*e^4-39*c*e^4+29*d*e^4+21*e^5,
2860a^4*b-45*a^2*c^2*d-6*a*b*c^2*d-42*b^2*c^2*d-4*a*c^3*d-49*b*c^3*d+14*c^4*d+35*a^3*d^2-3*a^2*b*d^2+23*a*b^2*d^2+21*b^3*d^2-24*a^2*c*d^2-14*a*b*c*d^2+20*b^2*c*d^2-20*a*c^2*d^2+41*b*c^2*d^2-34*c^3*d^2-13*a^2*d^3-48*a*b*d^3-13*b^2*d^3+38*a*c*d^3+21*b*c*d^3+40*c^2*d^3-28*a*d^4-34*b*d^4+38*c*d^4-24*d^5-48*a^4*e-2*a^3*b*e-35*a^2*b^2*e+2*a*b^3*e-25*b^4*e+47*a^3*c*e-14*a^2*b*c*e+25*a*b^2*c*e-12*b^3*c*e-11*a^2*c^2*e+22*a*b*c^2*e+15*b^2*c^2*e+17*a*c^3*e+47*b*c^3*e-43*c^4*e+28*a^3*d*e+9*a^2*b*d*e+6*a*b^2*d*e+30*a^2*c*d*e+31*a*b*c*d*e-2*b^2*c*d*e-6*a*c^2*d*e-45*b*c^2*d*e-24*c^3*d*e-39*a^2*d^2*e-7*a*b*d^2*e-11*b^2*d^2*e+8*a*c*d^2*e-47*b*c*d^2*e+c^2*d^2*e+30*a*d^3*e-30*b*d^3*e-38*c*d^3*e-14*d^4*e-25*a^3*e^2-14*a^2*b*e^2+24*a*b^2*e^2-37*b^3*e^2-14*a^2*c*e^2+40*a*b*c*e^2+27*b^2*c*e^2+22*a*c^2*e^2-38*b*c^2*e^2+43*c^3*e^2-44*a^2*d*e^2+28*a*b*d*e^2-4*b^2*d*e^2-26*a*c*d*e^2+18*b*c*d*e^2+24*c^2*d*e^2-35*a*d^2*e^2+6*b*d^2*e^2+5*c*d^2*e^2-38*d^3*e^2-37*a^2*e^3+34*a*b*e^3-27*b^2*e^3-4*a*c*e^3-3*b*c*e^3-16*c^2*e^3+22*a*d*e^3-4*b*d*e^3-41*c*d*e^3+25*d^2*e^3-38*a*e^4+49*b*e^4+c*e^4+14*d*e^4+47*e^5,
2861a^5-45*a^2*c^2*d-14*a*b*c^2*d-47*b^2*c^2*d-8*a*c^3*d+13*b*c^3*d+50*c^4*d-34*a^3*d^2-5*a^2*b*d^2+36*a*b^2*d^2+11*b^3*d^2+41*a^2*c*d^2-32*a*b*c*d^2+41*b^2*c*d^2-40*a*c^2*d^2+14*b*c^2*d^2+5*c^3*d^2+25*a^2*d^3+10*a*b*d^3-24*b^2*d^3-33*b*c*d^3-21*c^2*d^3+a*d^4+44*b*d^4-46*c*d^4-23*d^5-13*a^4*e+13*a^3*b*e-49*a*b^3*e+18*b^4*e+2*a^3*c*e+15*a^2*b*c*e-14*a*b^2*c*e-38*b^3*c*e+34*a^2*c^2*e+42*a*b*c^2*e-42*b^2*c^2*e-36*a*c^3*e+35*b*c^3*e-11*c^4*e+20*a^3*d*e+41*a*b^2*d*e+40*b^3*d*e-39*a^2*c*d*e-35*a*b*c*d*e-7*b^2*c*d*e-34*a*c^2*d*e-35*b*c^2*d*e+45*c^3*d*e+17*a^2*d^2*e+39*a*b*d^2*e+5*b^2*d^2*e-35*a*c*d^2*e-26*b*c*d^2*e-47*c^2*d^2*e+5*a*d^3*e-2*b*d^3*e+44*c*d^3*e+9*d^4*e-12*a^3*e^2+49*a^2*b*e^2-2*a*b^2*e^2-11*b^3*e^2-49*a^2*c*e^2-16*a*b*c*e^2-34*b^2*c*e^2+19*a*c^2*e^2-24*b*c^2*e^2-33*c^3*e^2-39*a^2*d*e^2+2*a*b*d*e^2+46*b^2*d*e^2-17*a*c*d*e^2+47*b*c*d*e^2+39*c^2*d*e^2+13*a*d^2*e^2+50*b*d^2*e^2-11*c*d^2*e^2+3*d^3*e^2+22*a^2*e^3-50*a*b*e^3+30*b^2*e^3-22*a*c*e^3-29*b*c*e^3-40*c^2*e^3+34*a*d*e^3+15*b*d*e^3-17*c*d*e^3+43*d^2*e^3+46*a*e^4-19*b*e^4-46*c*e^4-39*d*e^4-e^5,
2862e^6, d*e^5, c*e^5, b*e^5, a*e^5, d^2*e^4, c*d*e^4, b*d*e^4, a*d*e^4, c^2*e^4,
2863b*c*e^4, a*c*e^4, b^2*e^4, a*b*e^4, a^2*e^4, d^3*e^3, c*d^2*e^3, b*d^2*e^3,
2864a*d^2*e^3, c^2*d*e^3, b*c*d*e^3, a*c*d*e^3, b^2*d*e^3, a*b*d*e^3, a^2*d*e^3,
2865c^3*e^3, b*c^2*e^3, a*c^2*e^3, b^2*c*e^3, a*b*c*e^3, a^2*c*e^3, b^3*e^3,
2866a*b^2*e^3, a^2*b*e^3, a^3*e^3, d^4*e^2, c*d^3*e^2, b*d^3*e^2, a*d^3*e^2,
2867c^2*d^2*e^2, b*c*d^2*e^2, a*c*d^2*e^2, b^2*d^2*e^2, a*b*d^2*e^2, a^2*d^2*e^2,
2868c^3*d*e^2, b*c^2*d*e^2, a*c^2*d*e^2, b^2*c*d*e^2, a*b*c*d*e^2, a^2*c*d*e^2,
2869b^3*d*e^2, a*b^2*d*e^2, a^2*b*d*e^2, a^3*d*e^2, c^4*e^2, b*c^3*e^2, a*c^3*e^2,
2870b^2*c^2*e^2, a*b*c^2*e^2;
2871  TestSSresAttribs2tr(M, "AGR101n4d007s021%4");
2872/*
2873options:  1 1 0 :  Time:  5/9/10 (35 without LCM)
2874options:  1 1 1 :  Time:  6/8/25
2875lres  Time:  5
2876nres  Time:  5
2877sres  Time:  693
2878*/
2879
2880  kill M;
2881
2882
2883
2884  // AGR101n4d008s020%1, too big?
2885  ideal M =
2886c^5*d-49*a^4*d^2-36*a^3*b*d^2-a^2*b^2*d^2-26*a*b^3*d^2+2*b^4*d^2+8*a^3*c*d^2-46*a^2*b*c*d^2-43*a*b^2*c*d^2-46*b^3*c*d^2-3*a^2*c^2*d^2-43*a*b*c^2*d^2+49*b^2*c^2*d^2-10*a*c^3*d^2+35*b*c^3*d^2+20*c^4*d^2-42*a^3*d^3+45*a^2*b*d^3+32*a*b^2*d^3-45*b^3*d^3-27*a^2*c*d^3+13*a*b*c*d^3+25*b^2*c*d^3+8*a*c^2*d^3+9*b*c^2*d^3+9*c^3*d^3+45*a^2*d^4+30*a*b*d^4+39*b^2*d^4-23*a*c*d^4+2*b*c*d^4-16*c^2*d^4+32*a*d^5-34*b*d^5+39*c*d^5+12*d^6-29*a^5*e-23*a^4*b*e-29*a^3*b^2*e-a^2*b^3*e-20*a*b^4*e+42*b^5*e+20*a^4*c*e-27*a^3*b*c*e-5*a^2*b^2*c*e-14*b^4*c*e-27*a^3*c^2*e-7*a^2*b*c^2*e-25*a*b^2*c^2*e+14*b^3*c^2*e+19*a^2*c^3*e+43*a*b*c^3*e-31*b^2*c^3*e+37*a*c^4*e-34*b*c^4*e+44*c^5*e+21*a^4*d*e+22*a^3*b*d*e+14*a^2*b^2*d*e-35*a*b^3*d*e-29*b^4*d*e-9*a^3*c*d*e-41*a^2*b*c*d*e+28*a*b^2*c*d*e+35*b^3*c*d*e+48*a^2*c^2*d*e+26*a*b*c^2*d*e-47*b^2*c^2*d*e+18*a*c^3*d*e+8*b*c^3*d*e-46*c^4*d*e+50*a^3*d^2*e-46*a^2*b*d^2*e-41*a*b^2*d^2*e-44*b^3*d^2*e+7*a^2*c*d^2*e-a*b*c*d^2*e+38*b^2*c*d^2*e+33*a*c^2*d^2*e-24*b*c^2*d^2*e-7*c^3*d^2*e+27*a^2*d^3*e+19*a*b*d^3*e-14*b^2*d^3*e+9*a*c*d^3*e+3*b*c*d^3*e+34*c^2*d^3*e-49*a*d^4*e-2*b*d^4*e+9*c*d^4*e+17*d^5*e+12*a^4*e^2-17*a^3*b*e^2+16*a^2*b^2*e^2+2*a*b^3*e^2+25*b^4*e^2+49*a^3*c*e^2+10*a^2*b*c*e^2-43*a*b^2*c*e^2+5*b^3*c*e^2+4*a^2*c^2*e^2-44*a*b*c^2*e^2-25*b^2*c^2*e^2+15*a*c^3*e^2-44*b*c^3*e^2-17*c^4*e^2+17*a^3*d*e^2+40*a^2*b*d*e^2+3*a*b^2*d*e^2-25*b^3*d*e^2-47*a^2*c*d*e^2-45*a*b*c*d*e^2+9*b^2*c*d*e^2-41*a*c^2*d*e^2-36*b*c^2*d*e^2-17*c^3*d*e^2-15*a^2*d^2*e^2+49*a*b*d^2*e^2+13*b^2*d^2*e^2-39*a*c*d^2*e^2+36*b*c*d^2*e^2-32*c^2*d^2*e^2+23*a*d^3*e^2+14*b*d^3*e^2+10*c*d^3*e^2-d^4*e^2+24*a^3*e^3+27*a^2*b*e^3+31*a*b^2*e^3-45*b^3*e^3-50*a^2*c*e^3-a*b*c*e^3+43*b^2*c*e^3+46*a*c^2*e^3-25*b*c^2*e^3+2*c^3*e^3+44*a^2*d*e^3+43*a*b*d*e^3-30*b^2*d*e^3-18*a*c*d*e^3+44*b*c*d*e^3-34*c^2*d*e^3-49*a*d^2*e^3-18*b*d^2*e^3-21*c*d^2*e^3-43*d^3*e^3-26*a^2*e^4-18*a*b*e^4+6*b^2*e^4-48*a*c*e^4+6*b*c*e^4-16*c^2*e^4-2*a*d*e^4-21*b*d*e^4+5*c*d*e^4-18*d^2*e^4+33*a*e^5-23*b*e^5-48*c*e^5+37*d*e^5-44*e^6,
2887b*c^4*d-26*a^4*d^2-47*a^3*b*d^2+28*a^2*b^2*d^2+5*a*b^3*d^2+37*b^4*d^2-32*a^3*c*d^2+44*a^2*b*c*d^2+13*a*b^2*c*d^2-45*b^3*c*d^2+35*a^2*c^2*d^2-18*a*b*c^2*d^2-3*b^2*c^2*d^2-4*a*c^3*d^2-27*b*c^3*d^2-37*a^3*d^3-44*a^2*b*d^3-36*a*b^2*d^3+49*b^3*d^3-16*a^2*c*d^3+24*a*b*c*d^3+43*b^2*c*d^3-40*a*c^2*d^3-3*b*c^2*d^3-16*c^3*d^3+6*a^2*d^4+46*a*b*d^4+8*b^2*d^4-11*a*c*d^4-4*b*c*d^4-40*c^2*d^4-31*a*d^5-41*b*d^5-35*c*d^5-35*d^6+5*a^5*e-20*a^4*b*e+48*a^3*b^2*e-42*a^2*b^3*e+46*a*b^4*e-28*b^5*e+42*a^4*c*e+22*a^3*b*c*e+23*a^2*b^2*c*e-6*a*b^3*c*e-2*b^4*c*e+26*a^3*c^2*e+28*a^2*b*c^2*e+28*a*b^2*c^2*e-31*b^3*c^2*e-50*a^2*c^3*e+3*a*b*c^3*e+39*b^2*c^3*e-21*b*c^4*e+24*c^5*e-a^4*d*e+12*a^3*b*d*e+43*a^2*b^2*d*e+17*a*b^3*d*e-33*b^4*d*e-31*a^3*c*d*e+11*a^2*b*c*d*e-16*a*b^2*c*d*e-49*b^3*c*d*e+6*a^2*c^2*d*e+49*a*b*c^2*d*e-47*b^2*c^2*d*e-40*a*c^3*d*e-11*b*c^3*d*e-7*a^3*d^2*e+10*a^2*b*d^2*e-37*a*b^2*d^2*e+37*b^3*d^2*e+49*a^2*c*d^2*e+11*b^2*c*d^2*e-43*a*c^2*d^2*e+46*b*c^2*d^2*e-18*c^3*d^2*e+38*a^2*d^3*e+20*a*b*d^3*e-22*b^2*d^3*e-32*a*c*d^3*e+41*b*c*d^3*e+c^2*d^3*e+7*a*d^4*e+18*b*d^4*e-12*c*d^4*e-15*d^5*e+34*a^4*e^2-a^3*b*e^2+47*a^2*b^2*e^2+47*a*b^3*e^2-37*b^4*e^2-36*a^3*c*e^2-21*a^2*b*c*e^2-3*b^3*c*e^2-34*a^2*c^2*e^2-4*a*b*c^2*e^2+33*b^2*c^2*e^2+19*a*c^3*e^2+3*b*c^3*e^2-13*c^4*e^2-45*a^3*d*e^2+28*a^2*b*d*e^2-23*a*b^2*d*e^2+30*b^3*d*e^2+15*a^2*c*d*e^2+a*b*c*d*e^2-50*a*c^2*d*e^2-6*b*c^2*d*e^2+32*c^3*d*e^2+17*a^2*d^2*e^2-15*a*b*d^2*e^2+6*b^2*d^2*e^2+15*a*c*d^2*e^2-b*c*d^2*e^2+41*c^2*d^2*e^2-47*a*d^3*e^2+49*b*d^3*e^2-4*c*d^3*e^2-5*d^4*e^2+35*a^3*e^3+36*a^2*b*e^3+49*a*b^2*e^3+b^3*e^3-11*a^2*c*e^3+a*b*c*e^3+18*b^2*c*e^3+19*a*c^2*e^3+11*b*c^2*e^3-41*c^3*e^3-42*a^2*d*e^3+6*a*b*d*e^3-23*b^2*d*e^3+47*a*c*d*e^3+35*b*c*d*e^3+39*c^2*d*e^3-30*a*d^2*e^3-21*b*d^2*e^3-48*c*d^2*e^3-6*d^3*e^3+38*a^2*e^4-43*a*b*e^4-10*b^2*e^4-a*c*e^4+2*b*c*e^4-29*c^2*e^4+31*a*d*e^4+24*b*d*e^4+18*c*d*e^4+38*d^2*e^4+36*a*e^5-32*b*e^5-17*c*e^5+36*d*e^5+13*e^6,
2888a*c^4*d+8*a^4*d^2+41*a^3*b*d^2-36*a^2*b^2*d^2+7*a*b^3*d^2+35*b^4*d^2+19*a^3*c*d^2-31*a^2*b*c*d^2+23*a*b^2*c*d^2-18*b^3*c*d^2+14*a*b*c^2*d^2-8*b^2*c^2*d^2+31*a*c^3*d^2-46*b*c^3*d^2-29*c^4*d^2-42*a^3*d^3+46*a^2*b*d^3-24*a*b^2*d^3+46*b^3*d^3-18*a^2*c*d^3-49*a*b*c*d^3-6*b^2*c*d^3+20*a*c^2*d^3+17*b*c^2*d^3+38*c^3*d^3-36*a^2*d^4+16*a*b*d^4+23*b^2*d^4-34*a*c*d^4-9*b*c*d^4-18*c^2*d^4-18*a*d^5+26*b*d^5-9*c*d^5-3*d^6-17*a^5*e+32*a^4*b*e-23*a^3*b^2*e-4*a^2*b^3*e+42*a*b^4*e-43*b^5*e+28*a^4*c*e+5*a^3*b*c*e-14*a^2*b^2*c*e-43*a*b^3*c*e+41*b^4*c*e+2*a^3*c^2*e-27*a^2*b*c^2*e-35*a*b^2*c^2*e+2*b^3*c^2*e-42*a^2*c^3*e+47*a*b*c^3*e+50*b^2*c^3*e-a*c^4*e+10*b*c^4*e+47*c^5*e-23*a^4*d*e+25*a^3*b*d*e-41*a^2*b^2*d*e+32*a*b^3*d*e-35*b^4*d*e+14*a^3*c*d*e-25*a^2*b*c*d*e+47*a*b^2*c*d*e-32*b^3*c*d*e+50*a^2*c^2*d*e-30*a*b*c^2*d*e+39*b^2*c^2*d*e+30*a*c^3*d*e-33*b*c^3*d*e+37*c^4*d*e-21*a^3*d^2*e+34*a^2*b*d^2*e+7*a*b^2*d^2*e-43*b^3*d^2*e+13*a^2*c*d^2*e+32*a*b*c*d^2*e-35*b^2*c*d^2*e+18*a*c^2*d^2*e-2*b*c^2*d^2*e+9*c^3*d^2*e+13*a^2*d^3*e-32*a*b*d^3*e-9*b^2*d^3*e-35*a*c*d^3*e-14*b*c*d^3*e+9*c^2*d^3*e+19*a*d^4*e-50*b*d^4*e+28*c*d^4*e-40*d^5*e+17*a^4*e^2-44*a^3*b*e^2+30*a^2*b^2*e^2+41*a*b^3*e^2+20*b^4*e^2+21*a^3*c*e^2+48*a^2*b*c*e^2+15*a*b^2*c*e^2-40*b^3*c*e^2-6*a^2*c^2*e^2-29*a*b*c^2*e^2-42*b^2*c^2*e^2-40*a*c^3*e^2-48*b*c^3*e^2+36*c^4*e^2+38*a^3*d*e^2+19*a^2*b*d*e^2+41*a*b^2*d*e^2+34*b^3*d*e^2+20*a^2*c*d*e^2-23*a*b*c*d*e^2-2*b^2*c*d*e^2+36*a*c^2*d*e^2-37*b*c^2*d*e^2+9*c^3*d*e^2-47*a^2*d^2*e^2-35*a*b*d^2*e^2+13*b^2*d^2*e^2-20*a*c*d^2*e^2-45*b*c*d^2*e^2+17*c^2*d^2*e^2-32*a*d^3*e^2+13*b*d^3*e^2-4*c*d^3*e^2-26*d^4*e^2+32*a^3*e^3-25*a^2*b*e^3+30*a*b^2*e^3-12*b^3*e^3+28*a^2*c*e^3+41*a*b*c*e^3-49*b^2*c*e^3+35*a*c^2*e^3+38*b*c^2*e^3+49*c^3*e^3-9*a^2*d*e^3-31*a*b*d*e^3-6*b^2*d*e^3+29*a*c*d*e^3+13*b*c*d*e^3-14*c^2*d*e^3+36*a*d^2*e^3+33*b*d^2*e^3-46*c*d^2*e^3+50*d^3*e^3-47*a^2*e^4+5*a*b*e^4+36*b^2*e^4-5*a*c*e^4+4*b*c*e^4-20*c^2*e^4+29*a*d*e^4+25*b*d*e^4-24*c*d*e^4-10*d^2*e^4-2*a*e^5-29*b*e^5-34*c*e^5-d*e^5+e^6,
2889b^2*c^3*d-49*a^4*d^2+36*a^3*b*d^2-3*a^2*b^2*d^2+12*a*b^3*d^2+11*b^4*d^2+10*a^3*c*d^2+9*a^2*b*c*d^2-13*a*b^2*c*d^2+43*b^3*c*d^2-27*a^2*c^2*d^2-20*a*b*c^2*d^2+34*b^2*c^2*d^2-30*a*c^3*d^2-50*b*c^3*d^2+43*c^4*d^2+17*a^3*d^3+5*a^2*b*d^3+16*a*b^2*d^3+27*b^3*d^3-26*a^2*c*d^3+17*a*b*c*d^3-31*b^2*c*d^3-43*a*c^2*d^3-18*b*c^2*d^3-8*c^3*d^3-8*a^2*d^4+8*a*b*d^4+23*b^2*d^4+7*a*c*d^4-48*b*c*d^4+21*c^2*d^4+5*a*d^5+4*b*d^5+40*c*d^5-22*d^6+3*a^5*e-a^4*b*e+26*a^3*b^2*e+16*a^2*b^3*e-29*a*b^4*e-50*b^5*e-6*a^4*c*e+31*a^3*b*c*e+43*a^2*b^2*c*e+12*a*b^3*c*e+31*b^4*c*e-21*a^3*c^2*e+25*a^2*b*c^2*e+20*a*b^2*c^2*e+15*b^3*c^2*e-4*a^2*c^3*e-48*a*b*c^3*e-29*b^2*c^3*e+43*a*c^4*e-41*b*c^4*e-15*c^5*e-13*a^4*d*e-29*a^3*b*d*e+7*a^2*b^2*d*e+4*a*b^3*d*e-50*b^4*d*e+3*a^3*c*d*e+4*a^2*b*c*d*e+7*a*b^2*c*d*e+4*b^3*c*d*e+16*a^2*c^2*d*e-42*a*b*c^2*d*e+36*b^2*c^2*d*e-5*a*c^3*d*e+13*b*c^3*d*e+17*c^4*d*e+18*a^3*d^2*e-16*a^2*b*d^2*e-32*a*b^2*d^2*e-16*b^3*d^2*e-34*a^2*c*d^2*e-22*a*b*c*d^2*e-12*b^2*c*d^2*e+35*a*c^2*d^2*e+33*b*c^2*d^2*e-47*c^3*d^2*e+12*a^2*d^3*e-43*a*b*d^3*e+11*b^2*d^3*e+2*a*c*d^3*e+42*b*c*d^3*e-18*c^2*d^3*e+44*a*d^4*e+25*b*d^4*e+41*c*d^4*e+40*d^5*e+40*a^4*e^2-3*a^3*b*e^2-8*a^2*b^2*e^2+a*b^3*e^2-27*b^4*e^2+15*a^3*c*e^2+49*a^2*b*c*e^2-14*a*b^2*c*e^2+31*b^3*c*e^2+36*a^2*c^2*e^2-14*a*b*c^2*e^2-31*b^2*c^2*e^2+48*a*c^3*e^2-24*b*c^3*e^2-30*c^4*e^2-47*a^3*d*e^2+12*a^2*b*d*e^2+44*a*b^2*d*e^2+47*b^3*d*e^2-5*a^2*c*d*e^2+23*a*b*c*d*e^2+48*b^2*c*d*e^2-25*a*c^2*d*e^2-7*b*c^2*d*e^2+32*a^2*d^2*e^2+35*a*b*d^2*e^2-19*b^2*d^2*e^2+19*a*c*d^2*e^2+26*b*c*d^2*e^2+26*c^2*d^2*e^2+8*a*d^3*e^2-21*b*d^3*e^2-6*c*d^3*e^2-35*d^4*e^2-30*a^3*e^3+36*a^2*b*e^3-27*a*b^2*e^3-33*b^3*e^3-50*a^2*c*e^3+41*a*b*c*e^3+13*b^2*c*e^3+20*a*c^2*e^3+36*b*c^2*e^3+14*c^3*e^3+40*a^2*d*e^3-35*a*b*d*e^3+11*b^2*d*e^3+36*a*c*d*e^3+23*b*c*d*e^3-34*c^2*d*e^3+25*a*d^2*e^3-14*b*d^2*e^3-5*c*d^2*e^3+11*d^3*e^3+42*a^2*e^4-48*a*b*e^4-27*b^2*e^4-17*a*c*e^4+32*b*c*e^4-3*c^2*e^4-3*a*d*e^4-33*b*d*e^4-3*c*d*e^4-14*d^2*e^4+8*a*e^5+14*b*e^5+3*c*e^5-34*d*e^5-46*e^6,
2890a*b*c^3*d-20*a^4*d^2+23*a^3*b*d^2-14*a^2*b^2*d^2+29*a*b^3*d^2-36*b^4*d^2-48*a^3*c*d^2+39*a^2*b*c*d^2-34*a*b^2*c*d^2+b^3*c*d^2-25*a^2*c^2*d^2+22*a*b*c^2*d^2-12*b^2*c^2*d^2+48*a*c^3*d^2-41*b*c^3*d^2+13*c^4*d^2-24*a^3*d^3-43*a^2*b*d^3-31*a*b^2*d^3-13*b^3*d^3+10*a^2*c*d^3-16*a*b*c*d^3+48*b^2*c*d^3-18*a*c^2*d^3+7*b*c^2*d^3+8*c^3*d^3-14*a^2*d^4-14*a*b*d^4+49*b^2*d^4+43*a*c*d^4+7*b*c*d^4-50*c^2*d^4-21*a*d^5-33*b*d^5-44*c*d^5-40*d^6-42*a^5*e+39*a^4*b*e-14*a^3*b^2*e+34*a^2*b^3*e+22*a*b^4*e+37*b^5*e+24*a^4*c*e+39*a^3*b*c*e-43*a^2*b^2*c*e-40*a*b^3*c*e-6*b^4*c*e-45*a^3*c^2*e+18*a^2*b*c^2*e-8*a*b^2*c^2*e+22*b^3*c^2*e-36*a^2*c^3*e+31*a*b*c^3*e+15*b^2*c^3*e+7*a*c^4*e-18*b*c^4*e-31*c^5*e-20*a^4*d*e+25*a^3*b*d*e-11*a^2*b^2*d*e-21*a*b^3*d*e-23*b^4*d*e+18*a^3*c*d*e-49*a^2*b*c*d*e+5*a*b^2*c*d*e+21*b^3*c*d*e-2*a^2*c^2*d*e+42*a*b*c^2*d*e-37*b^2*c^2*d*e+28*a*c^3*d*e-8*b*c^3*d*e+c^4*d*e+10*a^3*d^2*e-16*a^2*b*d^2*e-20*a*b^2*d^2*e+42*b^3*d^2*e+23*a^2*c*d^2*e-16*a*b*c*d^2*e+39*b^2*c*d^2*e+3*a*c^2*d^2*e+25*b*c^2*d^2*e-16*c^3*d^2*e-33*a^2*d^3*e-28*a*b*d^3*e+4*b^2*d^3*e-15*a*c*d^3*e-30*b*c*d^3*e-5*c^2*d^3*e-8*b*d^4*e-21*c*d^4*e+6*d^5*e-9*a^4*e^2-23*a^3*b*e^2-45*a^2*b^2*e^2+33*a*b^3*e^2+14*b^4*e^2+8*a^3*c*e^2+5*a^2*b*c*e^2-13*a*b^2*c*e^2-39*b^3*c*e^2-4*a^2*c^2*e^2+30*a*b*c^2*e^2-38*b^2*c^2*e^2+24*a*c^3*e^2-29*b*c^3*e^2-3*c^4*e^2+3*a^3*d*e^2+43*a^2*b*d*e^2-21*a*b^2*d*e^2-45*b^3*d*e^2-3*a^2*c*d*e^2-22*a*b*c*d*e^2+16*b^2*c*d*e^2-42*b*c^2*d*e^2-43*c^3*d*e^2-10*a*b*d^2*e^2+23*b^2*d^2*e^2-36*a*c*d^2*e^2+29*b*c*d^2*e^2-11*c^2*d^2*e^2+18*a*d^3*e^2-46*b*d^3*e^2-34*c*d^3*e^2+21*d^4*e^2+4*a^3*e^3+23*a^2*b*e^3-18*a*b^2*e^3-10*b^3*e^3+3*a^2*c*e^3+a*b*c*e^3-32*b^2*c*e^3-19*a*c^2*e^3-5*b*c^2*e^3+25*c^3*e^3-40*a^2*d*e^3-37*a*b*d*e^3-10*b^2*d*e^3-20*a*c*d*e^3+35*b*c*d*e^3+2*c^2*d*e^3+46*a*d^2*e^3+46*b*d^2*e^3+25*c*d^2*e^3+14*d^3*e^3-28*a^2*e^4+24*a*b*e^4-38*b^2*e^4+11*a*c*e^4+15*b*c*e^4-10*c^2*e^4-32*a*d*e^4+37*b*d*e^4+21*c*d*e^4-25*d^2*e^4-47*a*e^5-32*b*e^5+5*c*e^5+17*d*e^5+44*e^6,
2891a^2*c^3*d+25*a^4*d^2-40*a^3*b*d^2-49*a^2*b^2*d^2+30*a*b^3*d^2-36*b^4*d^2+41*a^3*c*d^2+23*a^2*b*c*d^2-16*a*b^2*c*d^2-20*b^3*c*d^2-46*a^2*c^2*d^2-29*a*b*c^2*d^2-14*b^2*c^2*d^2-38*a*c^3*d^2+9*b*c^3*d^2+50*c^4*d^2-20*a^3*d^3-14*a^2*b*d^3+13*a*b^2*d^3+5*b^3*d^3+7*a^2*c*d^3+46*a*b*c*d^3+40*b^2*c*d^3-46*a*c^2*d^3+27*b*c^2*d^3-5*c^3*d^3+43*a^2*d^4+5*a*b*d^4+3*b^2*d^4+29*a*c*d^4-43*b*c*d^4-31*c^2*d^4-24*a*d^5-45*b*d^5-26*c*d^5-6*d^6+18*a^5*e+22*a^4*b*e-12*a^3*b^2*e+40*a^2*b^3*e-8*a*b^4*e+36*b^5*e+5*a^4*c*e+46*a^3*b*c*e+6*a^2*b^2*c*e-39*a*b^3*c*e-29*b^4*c*e+36*a^3*c^2*e+35*a^2*b*c^2*e+11*a*b^2*c^2*e-12*b^3*c^2*e+13*a^2*c^3*e+15*a*b*c^3*e+38*b^2*c^3*e-4*a*c^4*e-46*b*c^4*e+25*c^5*e-31*a^4*d*e+35*a^3*b*d*e+37*a^2*b^2*d*e+27*a*b^3*d*e-30*b^4*d*e-37*a^3*c*d*e-2*a^2*b*c*d*e+10*a*b^2*c*d*e+12*b^3*c*d*e+39*a^2*c^2*d*e+35*a*b*c^2*d*e-17*b^2*c^2*d*e-30*a*c^3*d*e+32*b*c^3*d*e+41*c^4*d*e+49*a^3*d^2*e-42*a^2*b*d^2*e-22*a*b^2*d^2*e-3*b^3*d^2*e+17*a^2*c*d^2*e+31*a*b*c*d^2*e+23*b^2*c*d^2*e+4*a*c^2*d^2*e+50*b*c^2*d^2*e+43*c^3*d^2*e+17*a^2*d^3*e-30*a*b*d^3*e+43*b^2*d^3*e+7*a*c*d^3*e+30*b*c*d^3*e+37*c^2*d^3*e-a*d^4*e+6*b*d^4*e+22*c*d^4*e-34*d^5*e-48*a^4*e^2+14*a^3*b*e^2+17*a^2*b^2*e^2-39*a*b^3*e^2+37*b^4*e^2-27*a^3*c*e^2+14*a^2*b*c*e^2-43*a*b^2*c*e^2+42*b^3*c*e^2-31*a^2*c^2*e^2+43*a*b*c^2*e^2-34*b^2*c^2*e^2-40*a*c^3*e^2-14*b*c^3*e^2+19*c^4*e^2+11*a^3*d*e^2+23*a^2*b*d*e^2+11*a*b^2*d*e^2+22*b^3*d*e^2+41*a^2*c*d*e^2-20*a*b*c*d*e^2+b^2*c*d*e^2-34*a*c^2*d*e^2-39*b*c^2*d*e^2-20*c^3*d*e^2+25*a^2*d^2*e^2+33*a*b*d^2*e^2-38*b^2*d^2*e^2-34*a*c*d^2*e^2-37*b*c*d^2*e^2-15*c^2*d^2*e^2-13*a*d^3*e^2-42*b*d^3*e^2+49*c*d^3*e^2+29*d^4*e^2-48*a^3*e^3+49*a^2*b*e^3-50*a*b^2*e^3-44*b^3*e^3-42*a^2*c*e^3+14*a*b*c*e^3-34*b^2*c*e^3+3*a*c^2*e^3-b*c^2*e^3+28*c^3*e^3+24*a^2*d*e^3+37*a*b*d*e^3+29*b^2*d*e^3-a*c*d*e^3+31*b*c*d*e^3-14*c^2*d*e^3-36*a*d^2*e^3-4*b*d^2*e^3+29*c*d^2*e^3-47*d^3*e^3-36*a^2*e^4-13*a*b*e^4-45*b^2*e^4-23*a*c*e^4-32*b*c*e^4+2*c^2*e^4+11*a*d*e^4-24*b*d*e^4-46*c*d*e^4-40*d^2*e^4-4*a*e^5-29*b*e^5+14*c*e^5-44*d*e^5+32*e^6,
2892b^3*c^2*d+13*a^4*d^2+14*a^3*b*d^2-11*a^2*b^2*d^2-12*a*b^3*d^2-8*b^4*d^2-46*a^3*c*d^2-26*a^2*b*c*d^2+28*a*b^2*c*d^2+13*b^3*c*d^2-36*a^2*c^2*d^2+35*a*b*c^2*d^2+49*b^2*c^2*d^2+32*a*c^3*d^2+17*b*c^3*d^2+34*c^4*d^2-8*a^3*d^3-10*a^2*b*d^3+31*a*b^2*d^3-22*b^3*d^3+a^2*c*d^3+32*a*b*c*d^3+33*b^2*c*d^3+34*a*c^2*d^3-36*b*c^2*d^3-11*c^3*d^3-42*a^2*d^4-15*a*b*d^4-3*b^2*d^4-48*a*c*d^4+12*b*c*d^4+35*c^2*d^4-43*a*d^5+9*b*d^5+47*c*d^5+19*d^6-18*a^5*e+9*a^4*b*e+34*a^3*b^2*e+5*a^2*b^3*e+46*a*b^4*e-34*b^5*e-42*a^4*c*e-36*a^3*b*c*e+5*a^2*b^2*c*e+43*a*b^3*c*e-18*b^4*c*e+21*a^3*c^2*e-45*a^2*b*c^2*e-31*a*b^2*c^2*e+2*b^3*c^2*e+a*b*c^3*e-45*b^2*c^3*e+41*a*c^4*e+37*b*c^4*e-32*c^5*e+19*a^4*d*e-30*a^3*b*d*e+5*a^2*b^2*d*e+17*a*b^3*d*e+47*b^4*d*e-23*a^3*c*d*e+4*a^2*b*c*d*e+14*a*b^2*c*d*e-31*b^3*c*d*e+50*a^2*c^2*d*e-18*a*b*c^2*d*e-37*b^2*c^2*d*e-35*a*c^3*d*e+29*b*c^3*d*e-28*c^4*d*e+3*a^3*d^2*e+13*a^2*b*d^2*e-30*a*b^2*d^2*e-9*b^3*d^2*e+20*a^2*c*d^2*e+17*a*b*c*d^2*e-21*b^2*c*d^2*e-41*a*c^2*d^2*e-32*b*c^2*d^2*e+33*c^3*d^2*e-3*a^2*d^3*e-23*a*b*d^3*e-47*b^2*d^3*e-19*c^2*d^3*e+12*a*d^4*e-32*b*d^4*e-37*c*d^4*e+20*d^5*e+21*a^4*e^2+18*a^3*b*e^2-4*a^2*b^2*e^2+25*a*b^3*e^2-13*b^4*e^2+28*a^3*c*e^2-28*a^2*b*c*e^2-37*a*b^2*c*e^2-32*b^3*c*e^2+8*a^2*c^2*e^2+34*a*b*c^2*e^2-21*b^2*c^2*e^2+15*a*c^3*e^2-39*b*c^3*e^2-45*c^4*e^2-26*a^3*d*e^2+34*a^2*b*d*e^2-25*a*b^2*d*e^2+24*b^3*d*e^2+5*a^2*c*d*e^2+36*a*b*c*d*e^2-27*b^2*c*d*e^2+31*a*c^2*d*e^2+31*b*c^2*d*e^2+13*c^3*d*e^2-3*a^2*d^2*e^2-18*a*b*d^2*e^2+47*b^2*d^2*e^2+20*a*c*d^2*e^2+8*b*c*d^2*e^2-37*c^2*d^2*e^2+21*a*d^3*e^2+3*b*d^3*e^2-34*c*d^3*e^2+28*d^4*e^2-19*a^3*e^3+33*a^2*b*e^3-50*a*b^2*e^3-44*b^3*e^3+17*a^2*c*e^3-48*a*b*c*e^3-3*b^2*c*e^3+33*a*c^2*e^3+13*b*c^2*e^3-29*c^3*e^3+38*a^2*d*e^3-44*a*b*d*e^3-36*b^2*d*e^3-17*a*c*d*e^3+38*b*c*d*e^3+47*c^2*d*e^3+4*a*d^2*e^3-11*b*d^2*e^3-14*c*d^2*e^3-46*d^3*e^3-17*a^2*e^4-23*a*b*e^4+26*b^2*e^4+24*a*c*e^4-37*b*c*e^4+34*c^2*e^4+24*a*d*e^4-32*b*d*e^4-19*c*d*e^4+15*d^2*e^4-33*a*e^5+7*b*e^5-29*c*e^5+37*d*e^5-16*e^6,
2893a*b^2*c^2*d-26*a^4*d^2-24*a^3*b*d^2-36*a^2*b^2*d^2+26*a*b^3*d^2+26*b^4*d^2+44*a^3*c*d^2-31*a^2*b*c*d^2-49*a*b^2*c*d^2-30*b^3*c*d^2-13*a^2*c^2*d^2+49*a*b*c^2*d^2-50*b^2*c^2*d^2+27*a*c^3*d^2+24*c^4*d^2-47*a^3*d^3+29*a^2*b*d^3+31*a*b^2*d^3-30*b^3*d^3+39*a^2*c*d^3+23*a*b*c*d^3+5*b^2*c*d^3-30*a*c^2*d^3-20*b*c^2*d^3-27*c^3*d^3-40*a^2*d^4+36*a*b*d^4+28*b^2*d^4+29*a*c*d^4+2*b*c*d^4+14*c^2*d^4-41*a*d^5+22*b*d^5+22*c*d^5+9*d^6-22*a^5*e-33*a^4*b*e-19*a^3*b^2*e+30*a^2*b^3*e+4*a*b^4*e+42*b^5*e-13*a^4*c*e+27*a^3*b*c*e-10*a^2*b^2*c*e+21*a*b^3*c*e-46*b^4*c*e-22*a^3*c^2*e-9*a^2*b*c^2*e+11*a*b^2*c^2*e+33*b^3*c^2*e-4*a^2*c^3*e-26*a*b*c^3*e+47*b^2*c^3*e+41*a*c^4*e-23*b*c^4*e-35*c^5*e-28*a^4*d*e+6*a^3*b*d*e+39*a^2*b^2*d*e+12*a*b^3*d*e-46*b^4*d*e+5*a^3*c*d*e-4*a^2*b*c*d*e+45*a*b^2*c*d*e-8*b^3*c*d*e-46*a^2*c^2*d*e-34*a*b*c^2*d*e-47*b^2*c^2*d*e+20*a*c^3*d*e+10*b*c^3*d*e+2*c^4*d*e+22*a^3*d^2*e-5*a^2*b*d^2*e+24*a*b^2*d^2*e+27*b^3*d^2*e+10*a^2*c*d^2*e-27*a*b*c*d^2*e+13*b^2*c*d^2*e+38*a*c^2*d^2*e+20*b*c^2*d^2*e-46*c^3*d^2*e-47*a^2*d^3*e+42*a*b*d^3*e-34*b^2*d^3*e-3*a*c*d^3*e+4*b*c*d^3*e+4*c^2*d^3*e+47*a*d^4*e+46*b*d^4*e+29*c*d^4*e+28*d^5*e+18*a^4*e^2+19*a^3*b*e^2+6*a^2*b^2*e^2-38*a*b^3*e^2-22*b^4*e^2-21*a^3*c*e^2+44*a^2*b*c*e^2-23*a*b^2*c*e^2-20*b^3*c*e^2-35*a^2*c^2*e^2-33*a*b*c^2*e^2+b^2*c^2*e^2+2*a*c^3*e^2+36*b*c^3*e^2+29*c^4*e^2-14*a^2*b*d*e^2-44*a*b^2*d*e^2+7*b^3*d*e^2+17*a^2*c*d*e^2-2*a*b*c*d*e^2+18*b^2*c*d*e^2-41*a*c^2*d*e^2+41*b*c^2*d*e^2+40*c^3*d*e^2+6*a^2*d^2*e^2-15*a*b*d^2*e^2-39*b^2*d^2*e^2-50*a*c*d^2*e^2-43*b*c*d^2*e^2-3*c^2*d^2*e^2+29*a*d^3*e^2-3*b*d^3*e^2+48*c*d^3*e^2+22*d^4*e^2+24*a^3*e^3+5*a^2*b*e^3-3*a*b^2*e^3-36*b^3*e^3-50*a^2*c*e^3+23*a*b*c*e^3+9*b^2*c*e^3+3*a*c^2*e^3+45*b*c^2*e^3-24*c^3*e^3-30*a^2*d*e^3+31*a*b*d*e^3+26*b^2*d*e^3-37*a*c*d*e^3-38*b*c*d*e^3-36*c^2*d*e^3-8*a*d^2*e^3-41*b*d^2*e^3-40*c*d^2*e^3+25*d^3*e^3-25*a^2*e^4+12*a*b*e^4-25*b^2*e^4-39*a*c*e^4-19*b*c*e^4-21*c^2*e^4+34*a*d*e^4-35*b*d*e^4+9*c*d*e^4-32*d^2*e^4+29*a*e^5+32*b*e^5-25*c*e^5-31*d*e^5-34*e^6,
2894a^2*b*c^2*d+14*a^4*d^2+25*a^3*b*d^2-2*a^2*b^2*d^2-32*a*b^3*d^2-31*b^4*d^2-40*a^3*c*d^2-15*a^2*b*c*d^2+50*a*b^2*c*d^2+b^3*c*d^2-7*a^2*c^2*d^2-14*a*b*c^2*d^2+8*b^2*c^2*d^2+25*a*c^3*d^2+6*b*c^3*d^2+25*c^4*d^2-20*a^3*d^3+a^2*b*d^3-27*a*b^2*d^3+24*b^3*d^3+33*a^2*c*d^3-14*a*b*c*d^3-48*b^2*c*d^3+10*a*c^2*d^3+8*b*c^2*d^3+13*c^3*d^3-11*a^2*d^4+41*a*b*d^4+48*b^2*d^4+29*a*c*d^4-29*b*c*d^4+40*c^2*d^4+50*a*d^5+33*b*d^5-35*c*d^5-17*d^6-31*a^5*e+42*a^4*b*e+48*a^3*b^2*e-48*a^2*b^3*e-6*a*b^4*e+27*b^5*e+31*a^4*c*e+6*a^3*b*c*e-20*a^2*b^2*c*e-10*a*b^3*c*e-34*b^4*c*e-45*a^3*c^2*e+15*a^2*b*c^2*e+37*a*b^2*c^2*e+34*b^3*c^2*e-14*a^2*c^3*e-9*a*b*c^3*e-33*b^2*c^3*e-42*a*c^4*e+20*b*c^4*e+4*c^5*e+28*a^4*d*e+10*a^3*b*d*e-23*a^2*b^2*d*e-17*a*b^3*d*e-44*b^4*d*e-8*a^3*c*d*e-13*a^2*b*c*d*e+35*a*b^2*c*d*e-49*b^3*c*d*e-23*a^2*c^2*d*e-43*a*b*c^2*d*e+11*b^2*c^2*d*e+45*a*c^3*d*e-38*b*c^3*d*e-44*c^4*d*e+45*a^3*d^2*e+9*a^2*b*d^2*e+31*a*b^2*d^2*e-18*b^3*d^2*e-30*a^2*c*d^2*e+4*a*b*c*d^2*e+50*b^2*c*d^2*e+24*a*c^2*d^2*e+24*b*c^2*d^2*e-11*c^3*d^2*e-11*a^2*d^3*e-36*a*b*d^3*e+5*b^2*d^3*e+26*a*c*d^3*e-18*b*c*d^3*e-41*c^2*d^3*e-2*a*d^4*e+17*b*d^4*e+46*c*d^4*e+9*d^5*e-49*a^4*e^2-13*a^3*b*e^2+47*a^2*b^2*e^2+19*a*b^3*e^2+42*b^4*e^2+15*a^3*c*e^2-48*a^2*b*c*e^2+33*a*b^2*c*e^2-28*b^3*c*e^2-5*a^2*c^2*e^2-32*a*b*c^2*e^2+2*b^2*c^2*e^2-25*a*c^3*e^2-8*b*c^3*e^2+8*c^4*e^2-48*a^3*d*e^2-12*a^2*b*d*e^2-49*a*b^2*d*e^2+49*b^3*d*e^2-4*a^2*c*d*e^2-40*a*b*c*d*e^2+42*b^2*c*d*e^2-11*a*c^2*d*e^2+12*b*c^2*d*e^2+5*c^3*d*e^2+40*a^2*d^2*e^2+21*a*b*d^2*e^2-37*b^2*d^2*e^2+10*a*c*d^2*e^2-38*b*c*d^2*e^2-22*c^2*d^2*e^2-a*d^3*e^2+20*b*d^3*e^2-31*c*d^3*e^2-15*d^4*e^2+31*a^3*e^3-24*a^2*b*e^3-6*b^3*e^3-10*a^2*c*e^3-27*a*b*c*e^3+15*b^2*c*e^3-40*b*c^2*e^3+36*c^3*e^3+12*a^2*d*e^3+32*a*b*d*e^3-39*b^2*d*e^3-9*a*c*d*e^3+13*b*c*d*e^3+35*c^2*d*e^3+31*a*d^2*e^3-4*b*d^2*e^3+14*c*d^2*e^3+19*d^3*e^3-36*a^2*e^4-44*a*b*e^4-10*b^2*e^4+29*a*c*e^4-26*b*c*e^4+43*c^2*e^4+5*a*d*e^4+3*b*d*e^4-17*c*d*e^4+48*d^2*e^4-16*a*e^5+2*b*e^5-41*c*e^5-15*d*e^5-19*e^6,
2895a^3*c^2*d+17*a^4*d^2+4*a^3*b*d^2+a^2*b^2*d^2+20*a*b^3*d^2-36*b^4*d^2-13*a^3*c*d^2+40*a^2*b*c*d^2-21*a*b^2*c*d^2-35*b^3*c*d^2-33*a^2*c^2*d^2-a*b*c^2*d^2+12*b^2*c^2*d^2+33*a*c^3*d^2-34*b*c^3*d^2-11*c^4*d^2+9*a^3*d^3-32*a^2*b*d^3+42*a*b^2*d^3-49*b^3*d^3-12*a^2*c*d^3-12*a*b*c*d^3+12*b^2*c*d^3+20*a*c^2*d^3+44*b*c^2*d^3+15*c^3*d^3+16*a^2*d^4+46*a*b*d^4+26*b^2*d^4+2*a*c*d^4-28*b*c*d^4-45*c^2*d^4+17*a*d^5-29*b*d^5+28*c*d^5-39*d^6+16*a^5*e+50*a^4*b*e+5*a^3*b^2*e+5*a^2*b^3*e-30*a*b^4*e-8*b^5*e+29*a^4*c*e-48*a^3*b*c*e-33*a^2*b^2*c*e-25*a*b^3*c*e+40*b^4*c*e-31*a^3*c^2*e-15*a^2*b*c^2*e+2*a*b^2*c^2*e+28*b^3*c^2*e-39*a^2*c^3*e+10*a*b*c^3*e-35*b^2*c^3*e+33*a*c^4*e-26*b*c^4*e-23*c^5*e+27*a^4*d*e-34*a^3*b*d*e+9*a^2*b^2*d*e+22*a*b^3*d*e-35*b^4*d*e+24*a^3*c*d*e+6*a^2*b*c*d*e+29*a*b^2*c*d*e-43*b^3*c*d*e+12*a^2*c^2*d*e+50*a*b*c^2*d*e-21*b^2*c^2*d*e-5*a*c^3*d*e-3*b*c^3*d*e-25*c^4*d*e+38*a^3*d^2*e-37*a^2*b*d^2*e+6*a*b^2*d^2*e+47*b^3*d^2*e+25*a^2*c*d^2*e+27*a*b*c*d^2*e+6*b^2*c*d^2*e-12*a*c^2*d^2*e-45*b*c^2*d^2*e-31*c^3*d^2*e-40*a^2*d^3*e+44*b^2*d^3*e-32*a*c*d^3*e-4*b*c*d^3*e-31*c^2*d^3*e+16*a*d^4*e-24*b*d^4*e+40*c*d^4*e-13*d^5*e-10*a^4*e^2+26*a^3*b*e^2+12*a^2*b^2*e^2+45*a*b^3*e^2+43*b^4*e^2+26*a^3*c*e^2+21*a^2*b*c*e^2-3*a*b^2*c*e^2-18*b^3*c*e^2+24*a^2*c^2*e^2+20*a*b*c^2*e^2-13*b^2*c^2*e^2+43*a*c^3*e^2+34*b*c^3*e^2-24*c^4*e^2+29*a^3*d*e^2+13*a^2*b*d*e^2-7*a*b^2*d*e^2-5*b^3*d*e^2+45*a^2*c*d*e^2+10*a*b*c*d*e^2+30*b^2*c*d*e^2-13*a*c^2*d*e^2+43*b*c^2*d*e^2+37*c^3*d*e^2+29*a^2*d^2*e^2+46*a*b*d^2*e^2+33*b^2*d^2*e^2+18*a*c*d^2*e^2-22*b*c*d^2*e^2+13*c^2*d^2*e^2+44*a*d^3*e^2+38*b*d^3*e^2+27*c*d^3*e^2+44*d^4*e^2-29*a^2*b*e^3-36*a*b^2*e^3+40*b^3*e^3+9*a^2*c*e^3-19*a*b*c*e^3+36*b^2*c*e^3+5*a*c^2*e^3+20*b*c^2*e^3+3*c^3*e^3+49*a^2*d*e^3-46*a*b*d*e^3+7*b^2*d*e^3-26*a*c*d*e^3+17*b*c*d*e^3-48*c^2*d*e^3-9*a*d^2*e^3-25*b*d^2*e^3-25*c*d^2*e^3-12*d^3*e^3+13*a^2*e^4+a*b*e^4+5*b^2*e^4+44*a*c*e^4+14*b*c*e^4+42*c^2*e^4+16*a*d*e^4+12*b*d*e^4+20*c*d*e^4+16*d^2*e^4-27*a*e^5+13*b*e^5+38*c*e^5-d*e^5-26*e^6,
2896b^4*c*d-16*a^4*d^2-19*a^3*b*d^2+43*a^2*b^2*d^2+18*a*b^3*d^2-14*b^4*d^2-6*a^3*c*d^2-33*a^2*b*c*d^2-38*a*b^2*c*d^2-4*b^3*c*d^2+16*a^2*c^2*d^2-38*a*b*c^2*d^2+40*b^2*c^2*d^2+11*a*c^3*d^2+36*b*c^3*d^2+26*c^4*d^2+a^3*d^3-37*a^2*b*d^3-5*a*b^2*d^3-36*b^3*d^3+38*a^2*c*d^3+32*a*b*c*d^3+12*b^2*c*d^3+24*a*c^2*d^3-40*b*c^2*d^3-9*c^3*d^3+15*a^2*d^4+36*a*b*d^4-50*b^2*d^4-43*a*c*d^4+43*b*c*d^4+33*c^2*d^4-8*a*d^5-28*b*d^5-42*c*d^5-20*d^6+16*a^5*e+4*a^4*b*e+41*a^3*b^2*e+18*a^2*b^3*e+26*a*b^4*e+12*b^5*e+3*a^4*c*e-50*a^3*b*c*e+12*a^2*b^2*c*e-6*a*b^3*c*e-40*b^4*c*e+48*a^3*c^2*e+46*a^2*b*c^2*e-24*a*b^2*c^2*e+47*b^3*c^2*e-30*a^2*c^3*e+30*a*b*c^3*e+19*b^2*c^3*e-9*a*c^4*e-33*b*c^4*e-43*c^5*e-31*a^4*d*e-46*a^3*b*d*e-19*a^2*b^2*d*e-40*a*b^3*d*e+17*b^4*d*e-7*a^3*c*d*e+27*a^2*b*c*d*e-18*a*b^2*c*d*e+40*b^3*c*d*e+13*a^2*c^2*d*e-40*a*b*c^2*d*e-21*b^2*c^2*d*e+48*a*c^3*d*e-23*b*c^3*d*e-41*c^4*d*e-19*a^3*d^2*e+26*a^2*b*d^2*e-35*a*b^2*d^2*e-5*b^3*d^2*e+23*a^2*c*d^2*e+44*a*b*c*d^2*e-11*b^2*c*d^2*e+2*a*c^2*d^2*e-23*b*c^2*d^2*e-9*c^3*d^2*e+26*a^2*d^3*e+3*a*b*d^3*e+27*b^2*d^3*e+24*a*c*d^3*e+b*c*d^3*e-33*c^2*d^3*e+27*a*d^4*e-49*b*d^4*e-33*c*d^4*e+3*d^5*e-5*a^4*e^2-39*a^3*b*e^2-a^2*b^2*e^2+9*a*b^3*e^2+38*b^4*e^2+48*a^3*c*e^2-50*a^2*b*c*e^2+31*a*b^2*c*e^2-b^3*c*e^2+40*a^2*c^2*e^2+46*a*b*c^2*e^2-9*b^2*c^2*e^2-5*a*c^3*e^2+2*b*c^3*e^2-3*c^4*e^2-4*a^3*d*e^2+20*a^2*b*d*e^2-42*a*b^2*d*e^2+5*b^3*d*e^2-29*a^2*c*d*e^2+21*a*b*c*d*e^2-36*b^2*c*d*e^2+34*a*c^2*d*e^2+18*b*c^2*d*e^2-45*c^3*d*e^2+13*a^2*d^2*e^2-25*a*b*d^2*e^2+27*b^2*d^2*e^2+32*b*c*d^2*e^2+38*c^2*d^2*e^2+2*a*d^3*e^2+10*b*d^3*e^2+31*c*d^3*e^2-6*d^4*e^2+8*a^3*e^3-40*a^2*b*e^3+34*a*b^2*e^3+50*b^3*e^3-10*a^2*c*e^3-36*a*b*c*e^3-17*b^2*c*e^3-39*a*c^2*e^3+19*b*c^2*e^3-13*c^3*e^3+28*a^2*d*e^3+27*a*b*d*e^3+28*b^2*d*e^3+13*a*c*d*e^3+47*b*c*d*e^3-32*c^2*d*e^3+6*a*d^2*e^3+16*b*d^2*e^3-2*c*d^2*e^3+39*d^3*e^3+12*a^2*e^4-12*a*b*e^4+27*b^2*e^4-4*a*c*e^4+7*b*c*e^4-2*c^2*e^4+30*a*d*e^4-16*b*d*e^4-13*c*d*e^4+18*d^2*e^4-6*a*e^5+32*b*e^5-46*c*e^5+33*d*e^5+26*e^6,
2897a*b^3*c*d-15*a^4*d^2-41*a^3*b*d^2-50*a^2*b^2*d^2-45*b^4*d^2+29*a^3*c*d^2+43*a^2*b*c*d^2-7*a*b^2*c*d^2-49*b^3*c*d^2+10*a^2*c^2*d^2+13*a*b*c^2*d^2-8*b^2*c^2*d^2+22*a*c^3*d^2+21*b*c^3*d^2-20*c^4*d^2-25*a^3*d^3+28*a^2*b*d^3+36*a*b^2*d^3+b^3*d^3-38*a^2*c*d^3+34*a*b*c*d^3-33*b^2*c*d^3+11*a*c^2*d^3+48*b*c^2*d^3+33*c^3*d^3+5*a^2*d^4+5*a*b*d^4+4*b^2*d^4+37*a*c*d^4+44*b*c*d^4-35*c^2*d^4+8*a*d^5+38*b*d^5+43*c*d^5-15*d^6+15*a^5*e+31*a^4*b*e-30*a^3*b^2*e+46*a^2*b^3*e-29*a*b^4*e+13*b^5*e-38*a^4*c*e+39*a^3*b*c*e+3*a^2*b^2*c*e-19*a*b^3*c*e-50*b^4*c*e-a^3*c^2*e+3*a^2*b*c^2*e-8*a*b^2*c^2*e-34*b^3*c^2*e-40*a^2*c^3*e+43*a*b*c^3*e+45*b^2*c^3*e-31*a*c^4*e+19*b*c^4*e+38*c^5*e+5*a^4*d*e-43*a^3*b*d*e+23*a^2*b^2*d*e+38*a*b^3*d*e-35*b^4*d*e-46*a^3*c*d*e+46*a^2*b*c*d*e-41*a*b^2*c*d*e+16*b^3*c*d*e-37*a^2*c^2*d*e+28*a*b*c^2*d*e-8*b^2*c^2*d*e+40*a*c^3*d*e-42*b*c^3*d*e-22*c^4*d*e+36*a^3*d^2*e+17*a^2*b*d^2*e+4*a*b^2*d^2*e+38*b^3*d^2*e-41*a^2*c*d^2*e-7*a*b*c*d^2*e-34*b^2*c*d^2*e+10*a*c^2*d^2*e-7*b*c^2*d^2*e-35*c^3*d^2*e-26*a^2*d^3*e-a*b*d^3*e-12*b^2*d^3*e+46*a*c*d^3*e-44*b*c*d^3*e+14*c^2*d^3*e-42*a*d^4*e-8*b*d^4*e+39*c*d^4*e+17*d^5*e+43*a^4*e^2+10*a^3*b*e^2-13*a^2*b^2*e^2-a*b^3*e^2+32*b^4*e^2+4*a^3*c*e^2+10*a^2*b*c*e^2-34*a*b^2*c*e^2+5*b^3*c*e^2-30*a^2*c^2*e^2-6*a*b*c^2*e^2+38*b^2*c^2*e^2-44*a*c^3*e^2+9*b*c^3*e^2+11*c^4*e^2+10*a^3*d*e^2+50*a^2*b*d*e^2-2*a*b^2*d*e^2-26*b^3*d*e^2+15*a^2*c*d*e^2-40*a*b*c*d*e^2+21*b^2*c*d*e^2-45*a*c^2*d*e^2-5*b*c^2*d*e^2-8*c^3*d*e^2+5*a^2*d^2*e^2+8*a*b*d^2*e^2-40*b^2*d^2*e^2+28*a*c*d^2*e^2-26*b*c*d^2*e^2+28*c^2*d^2*e^2+20*a*d^3*e^2-32*b*d^3*e^2-c*d^3*e^2-47*d^4*e^2-41*a^3*e^3-10*a^2*b*e^3-9*a*b^2*e^3+18*b^3*e^3-36*a^2*c*e^3+43*a*b*c*e^3+b^2*c*e^3+5*a*c^2*e^3+35*b*c^2*e^3-29*c^3*e^3+49*a^2*d*e^3+11*a*b*d*e^3-14*b^2*d*e^3-18*a*c*d*e^3+48*b*c*d*e^3-5*c^2*d*e^3-39*a*d^2*e^3+16*c*d^2*e^3+21*d^3*e^3+29*a^2*e^4+42*a*b*e^4+16*b^2*e^4+21*a*c*e^4-40*b*c*e^4-23*a*d*e^4-27*b*d*e^4+19*c*d*e^4-3*d^2*e^4+29*a*e^5+23*b*e^5-48*c*e^5-14*d*e^5-39*e^6,
2898a^2*b^2*c*d+30*a^4*d^2-8*a^3*b*d^2-31*a^2*b^2*d^2-48*a*b^3*d^2-8*b^4*d^2-a^3*c*d^2-45*a^2*b*c*d^2+24*a*b^2*c*d^2-50*b^3*c*d^2+26*a^2*c^2*d^2-21*a*b*c^2*d^2+7*b^2*c^2*d^2-23*a*c^3*d^2-3*b*c^3*d^2-37*c^4*d^2+30*a^3*d^3-49*a^2*b*d^3-10*a*b^2*d^3+19*b^3*d^3-a^2*c*d^3-23*a*b*c*d^3+27*b^2*c*d^3+8*a*c^2*d^3+36*b*c^2*d^3+14*c^3*d^3-14*a^2*d^4+11*a*b*d^4+24*b^2*d^4-22*a*c*d^4+14*b*c*d^4-12*c^2*d^4+33*a*d^5-35*b*d^5-20*c*d^5-22*d^6-25*a^5*e-50*a^4*b*e-3*a^3*b^2*e-49*a^2*b^3*e-47*a*b^4*e-12*b^5*e+24*a^4*c*e+10*a^3*b*c*e-49*a^2*b^2*c*e-46*a*b^3*c*e-39*b^4*c*e+47*a^3*c^2*e-a^2*b*c^2*e+45*a*b^2*c^2*e-46*b^3*c^2*e+27*a^2*c^3*e-27*a*b*c^3*e+7*b^2*c^3*e+48*a*c^4*e-17*b*c^4*e+13*c^5*e+40*a^4*d*e+50*a^3*b*d*e-9*a^2*b^2*d*e-9*a*b^3*d*e+18*b^4*d*e+30*a^3*c*d*e-36*a^2*b*c*d*e-41*a*b^2*c*d*e+34*b^3*c*d*e+10*a^2*c^2*d*e-19*a*b*c^2*d*e+38*b^2*c^2*d*e-17*a*c^3*d*e-15*b*c^3*d*e-25*c^4*d*e+26*a^3*d^2*e-22*a^2*b*d^2*e+33*a*b^2*d^2*e+3*b^3*d^2*e+33*a^2*c*d^2*e+13*a*b*c*d^2*e-36*b^2*c*d^2*e+16*a*c^2*d^2*e+16*b*c^2*d^2*e+27*c^3*d^2*e-20*a^2*d^3*e+8*a*b*d^3*e+12*b^2*d^3*e-7*a*c*d^3*e-11*b*c*d^3*e-32*c^2*d^3*e+49*a*d^4*e-45*b*d^4*e+4*c*d^4*e+23*d^5*e-42*a^4*e^2-10*a^3*b*e^2+47*a^2*b^2*e^2+31*a*b^3*e^2-9*b^4*e^2-45*a^3*c*e^2-16*a^2*b*c*e^2-16*a*b^2*c*e^2+6*b^3*c*e^2+9*a^2*c^2*e^2-35*a*b*c^2*e^2-17*b^2*c^2*e^2-48*a*c^3*e^2-6*b*c^3*e^2+33*c^4*e^2+46*a^3*d*e^2-22*a^2*b*d*e^2+41*a*b^2*d*e^2+28*b^3*d*e^2+37*a^2*c*d*e^2-35*a*b*c*d*e^2+11*b^2*c*d*e^2-40*a*c^2*d*e^2-25*b*c^2*d*e^2-6*c^3*d*e^2+50*a^2*d^2*e^2-29*a*b*d^2*e^2-30*b^2*d^2*e^2+12*a*c*d^2*e^2+37*b*c*d^2*e^2-23*c^2*d^2*e^2-30*a*d^3*e^2-43*b*d^3*e^2+31*c*d^3*e^2-35*d^4*e^2+32*a^3*e^3-45*a^2*b*e^3-35*a*b^2*e^3+26*b^3*e^3-43*a^2*c*e^3-41*a*b*c*e^3-6*b^2*c*e^3-14*a*c^2*e^3-20*b*c^2*e^3-44*c^3*e^3+10*a^2*d*e^3-4*a*b*d*e^3-38*b^2*d*e^3-28*a*c*d*e^3+8*b*c*d*e^3+30*c^2*d*e^3-5*a*d^2*e^3+24*b*d^2*e^3+2*c*d^2*e^3-19*d^3*e^3-25*a^2*e^4+21*a*b*e^4-20*b^2*e^4-11*a*c*e^4+40*b*c*e^4+12*c^2*e^4-30*a*d*e^4+8*b*d*e^4-14*c*d*e^4-23*d^2*e^4+20*a*e^5-7*b*e^5-38*c*e^5-50*d*e^5-30*e^6,
2899a^3*b*c*d+41*a^4*d^2+15*a^3*b*d^2-2*a^2*b^2*d^2-33*a*b^3*d^2+9*b^4*d^2+25*a^3*c*d^2-22*a^2*b*c*d^2-7*a*b^2*c*d^2-14*b^3*c*d^2-34*a^2*c^2*d^2-30*a*b*c^2*d^2+50*b^2*c^2*d^2+12*a*c^3*d^2-6*b*c^3*d^2+25*c^4*d^2-41*a^3*d^3-2*a^2*b*d^3+10*a*b^2*d^3+6*b^3*d^3-26*a^2*c*d^3+17*a*b*c*d^3+24*b^2*c*d^3+42*a*c^2*d^3-28*b*c^2*d^3+9*c^3*d^3+41*a^2*d^4-48*a*b*d^4+18*b^2*d^4-26*a*c*d^4+33*b*c*d^4-8*c^2*d^4+35*a*d^5+14*b*d^5-48*c*d^5-23*d^6+49*a^5*e+16*a^4*b*e+2*a^3*b^2*e+26*a^2*b^3*e+5*a*b^4*e+39*b^5*e-32*a^4*c*e+19*a^3*b*c*e-37*a^2*b^2*c*e+44*a*b^3*c*e+34*b^4*c*e+37*a^3*c^2*e-25*a^2*b*c^2*e-43*a*b^2*c^2*e+31*b^3*c^2*e-17*a^2*c^3*e-7*a*b*c^3*e-29*b^2*c^3*e+39*a*c^4*e-13*b*c^4*e+46*c^5*e-14*a^4*d*e-23*a^3*b*d*e-31*a^2*b^2*d*e+14*a*b^3*d*e+35*b^4*d*e-44*a^3*c*d*e+15*a^2*b*c*d*e-38*a*b^2*c*d*e-38*b^3*c*d*e-7*a^2*c^2*d*e-36*a*b*c^2*d*e-36*b^2*c^2*d*e+36*a*c^3*d*e+4*b*c^3*d*e+14*c^4*d*e+35*a^2*b*d^2*e+35*a*b^2*d^2*e-28*b^3*d^2*e+3*a^2*c*d^2*e+11*a*b*c*d^2*e-41*b^2*c*d^2*e-12*a*c^2*d^2*e-4*b*c^2*d^2*e+2*c^3*d^2*e+15*a^2*d^3*e-18*a*b*d^3*e+2*b^2*d^3*e+2*a*c*d^3*e-21*b*c*d^3*e+27*c^2*d^3*e+34*a*d^4*e+22*b*d^4*e-38*c*d^4*e+45*d^5*e+3*a^4*e^2+21*a^3*b*e^2-2*a^2*b^2*e^2+11*a*b^3*e^2-29*b^4*e^2-31*a^3*c*e^2+27*a^2*b*c*e^2-44*a*b^2*c*e^2-27*b^3*c*e^2-26*a^2*c^2*e^2+48*a*b*c^2*e^2-46*b^2*c^2*e^2-46*a*c^3*e^2-44*b*c^3*e^2-3*c^4*e^2+18*a^3*d*e^2-34*a^2*b*d*e^2+14*a*b^2*d*e^2+32*b^3*d*e^2+40*a^2*c*d*e^2+20*a*b*c*d*e^2+35*b^2*c*d*e^2-19*a*c^2*d*e^2+16*b*c^2*d*e^2-6*c^3*d*e^2-a^2*d^2*e^2+38*a*b*d^2*e^2+23*b^2*d^2*e^2-26*a*c*d^2*e^2-47*b*c*d^2*e^2+11*c^2*d^2*e^2+34*a*d^3*e^2-27*b*d^3*e^2-41*c*d^3*e^2-2*d^4*e^2+7*a^3*e^3-46*a^2*b*e^3-17*a*b^2*e^3+18*b^3*e^3+25*a^2*c*e^3+24*a*b*c*e^3+48*b^2*c*e^3-25*a*c^2*e^3-12*b*c^2*e^3+17*c^3*e^3+15*a^2*d*e^3+49*a*b*d*e^3-44*b^2*d*e^3+31*a*c*d*e^3-14*b*c*d*e^3-13*c^2*d*e^3-49*a*d^2*e^3-42*b*d^2*e^3-40*c*d^2*e^3+49*d^3*e^3-13*a^2*e^4-3*a*b*e^4-33*b^2*e^4+21*a*c*e^4-23*b*c*e^4+35*c^2*e^4+41*a*d*e^4-6*b*d*e^4+23*c*d*e^4-44*d^2*e^4-10*a*e^5-5*b*e^5+22*c*e^5-13*d*e^5-24*e^6,
2900a^4*c*d-22*a^3*b*d^2+25*a^2*b^2*d^2+46*a*b^3*d^2+4*b^4*d^2-49*a^3*c*d^2+10*a^2*b*c*d^2-18*a*b^2*c*d^2-24*b^3*c*d^2+a^2*c^2*d^2-44*a*b*c^2*d^2+19*b^2*c^2*d^2+2*a*c^3*d^2-16*b*c^3*d^2+23*c^4*d^2-34*a^3*d^3+29*a^2*b*d^3+18*a*b^2*d^3-31*b^3*d^3-26*a^2*c*d^3+35*a*b*c*d^3-2*b^2*c*d^3-3*a*c^2*d^3-8*b*c^2*d^3+50*c^3*d^3-11*a^2*d^4+30*a*b*d^4-41*b^2*d^4+41*a*c*d^4+12*b*c*d^4+2*c^2*d^4+44*a*d^5+5*b*d^5-8*c*d^5-37*d^6+10*a^5*e+20*a^4*b*e-32*a^3*b^2*e-7*a^2*b^3*e-11*a*b^4*e-3*b^5*e+47*a^4*c*e-39*a^3*b*c*e+27*a^2*b^2*c*e+14*a*b^3*c*e+25*b^4*c*e+45*a^3*c^2*e-22*a^2*b*c^2*e-4*a*b^2*c^2*e+8*b^3*c^2*e+10*a^2*c^3*e-18*a*b*c^3*e-25*b^2*c^3*e-35*a*c^4*e+7*b*c^4*e+44*c^5*e+13*a^4*d*e-17*a^3*b*d*e+23*a^2*b^2*d*e-4*a*b^3*d*e+23*b^4*d*e-4*a^3*c*d*e+34*a^2*b*c*d*e+48*a*b^2*c*d*e-32*b^3*c*d*e-44*a^2*c^2*d*e+37*a*b*c^2*d*e-38*b^2*c^2*d*e-23*a*c^3*d*e-42*b*c^3*d*e-19*c^4*d*e-48*a^3*d^2*e+29*a^2*b*d^2*e-25*a*b^2*d^2*e+36*b^3*d^2*e-46*a^2*c*d^2*e+37*a*b*c*d^2*e+28*b^2*c*d^2*e+12*a*c^2*d^2*e+2*b*c^2*d^2*e-13*c^3*d^2*e-40*a^2*d^3*e+44*a*b*d^3*e+29*b^2*d^3*e+20*a*c*d^3*e+23*b*c*d^3*e-44*c^2*d^3*e+23*a*d^4*e+22*b*d^4*e+12*c*d^4*e-16*d^5*e+50*a^4*e^2+12*a^3*b*e^2-16*a^2*b^2*e^2+27*a*b^3*e^2+27*b^4*e^2-25*a^3*c*e^2+13*a^2*b*c*e^2-21*a*b^2*c*e^2+46*b^3*c*e^2-6*a^2*c^2*e^2+13*a*b*c^2*e^2-8*b^2*c^2*e^2+39*a*c^3*e^2+36*b*c^3*e^2+46*c^4*e^2-9*a^3*d*e^2-35*a^2*b*d*e^2-47*a*b^2*d*e^2-41*b^3*d*e^2+26*a^2*c*d*e^2-38*a*b*c*d*e^2+48*b^2*c*d*e^2-36*a*c^2*d*e^2+32*b*c^2*d*e^2-17*c^3*d*e^2+39*a^2*d^2*e^2-a*b*d^2*e^2+48*a*c*d^2*e^2-20*b*c*d^2*e^2-49*c^2*d^2*e^2-37*a*d^3*e^2-8*b*d^3*e^2-c*d^3*e^2-8*d^4*e^2-47*a^3*e^3+2*a^2*b*e^3-14*a*b^2*e^3-32*b^3*e^3+18*a^2*c*e^3+49*a*b*c*e^3-43*b^2*c*e^3-8*a*c^2*e^3-36*b*c^2*e^3+18*c^3*e^3+11*a^2*d*e^3+4*a*b*d*e^3+49*b^2*d*e^3+26*a*c*d*e^3+5*b*c*d*e^3-14*c^2*d*e^3+12*a*d^2*e^3+b*d^2*e^3-49*c*d^2*e^3+24*d^3*e^3+11*a^2*e^4-43*a*b*e^4-36*b^2*e^4+30*a*c*e^4-12*b*c*e^4+10*c^2*e^4-29*a*d*e^4-12*b*d*e^4+37*c*d*e^4+46*d^2*e^4+34*a*e^5+14*b*e^5-26*c*e^5+d*e^5+35*e^6,
2901b^5*d-5*a^4*d^2-29*a^3*b*d^2-36*a^2*b^2*d^2-11*a*b^3*d^2+32*b^4*d^2-17*a^3*c*d^2+47*a^2*b*c*d^2+16*a*b^2*c*d^2-24*b^3*c*d^2+12*a^2*c^2*d^2+20*a*b*c^2*d^2-24*b^2*c^2*d^2-10*a*c^3*d^2-26*b*c^3*d^2+22*c^4*d^2-14*a^3*d^3-49*a^2*b*d^3-44*a*b^2*d^3-20*b^3*d^3+11*a^2*c*d^3-45*a*b*c*d^3-5*b^2*c*d^3-19*a*c^2*d^3-10*b*c^2*d^3-35*c^3*d^3-13*a^2*d^4+18*a*b*d^4+10*b^2*d^4+46*a*c*d^4+15*b*c*d^4-13*c^2*d^4-8*a*d^5+50*b*d^5+2*c*d^5-43*d^6-18*a^5*e-2*a^4*b*e-31*a^3*b^2*e-37*a^2*b^3*e+32*a*b^4*e-4*b^5*e+19*a^4*c*e-42*a^3*b*c*e+40*a^2*b^2*c*e+37*a*b^3*c*e+17*b^4*c*e+39*a^3*c^2*e+10*a^2*b*c^2*e-38*a*b^2*c^2*e+4*b^3*c^2*e+18*a^2*c^3*e+35*a*b*c^3*e-29*b^2*c^3*e-19*a*c^4*e-4*b*c^4*e+28*c^5*e+17*a^4*d*e-20*a^3*b*d*e+18*a^2*b^2*d*e+11*a*b^3*d*e+30*b^4*d*e-2*a^3*c*d*e+43*a^2*b*c*d*e+46*a*b^2*c*d*e+14*b^3*c*d*e+48*a^2*c^2*d*e-5*a*b*c^2*d*e-7*b^2*c^2*d*e+13*a*c^3*d*e+11*b*c^3*d*e+48*c^4*d*e+41*a^3*d^2*e+10*a^2*b*d^2*e-43*a*b^2*d^2*e-41*b^3*d^2*e+47*a^2*c*d^2*e-42*a*b*c*d^2*e+34*b^2*c*d^2*e+34*a*c^2*d^2*e-14*b*c^2*d^2*e-16*c^3*d^2*e-39*a^2*d^3*e+23*a*b*d^3*e-32*b^2*d^3*e-20*a*c*d^3*e+7*b*c*d^3*e-4*c^2*d^3*e+2*a*d^4*e+42*b*d^4*e-38*c*d^4*e-14*d^5*e-9*a^4*e^2+2*a^3*b*e^2-20*a^2*b^2*e^2-15*a*b^3*e^2+30*b^4*e^2-44*a^3*c*e^2-47*a^2*b*c*e^2+11*a*b^2*c*e^2+20*b^3*c*e^2-2*a^2*c^2*e^2+4*a*b*c^2*e^2+49*b^2*c^2*e^2-41*a*c^3*e^2-36*b*c^3*e^2+31*c^4*e^2+22*a^3*d*e^2+39*a^2*b*d*e^2-21*a*b^2*d*e^2+26*b^3*d*e^2+28*a^2*c*d*e^2+41*a*b*c*d*e^2-14*b^2*c*d*e^2+44*a*c^2*d*e^2+27*b*c^2*d*e^2-25*c^3*d*e^2-28*a^2*d^2*e^2-37*a*b*d^2*e^2+20*b^2*d^2*e^2+45*a*c*d^2*e^2+45*b*c*d^2*e^2-28*c^2*d^2*e^2-18*a*d^3*e^2+5*b*d^3*e^2-3*c*d^3*e^2+17*d^4*e^2+18*a^3*e^3+46*a^2*b*e^3+28*a*b^2*e^3-22*b^3*e^3-15*a^2*c*e^3+30*a*b*c*e^3-40*b^2*c*e^3-20*a*c^2*e^3+10*b*c^2*e^3-31*c^3*e^3+19*a^2*d*e^3+29*a*b*d*e^3+12*b^2*d*e^3-39*a*c*d*e^3-32*b*c*d*e^3+12*a*d^2*e^3-26*c*d^2*e^3+14*a^2*e^4+40*a*b*e^4-b^2*e^4+15*a*c*e^4+27*b*c*e^4+34*c^2*e^4-30*a*d*e^4+25*b*d*e^4-50*c*d*e^4+35*d^2*e^4+25*a*e^5+21*b*e^5-10*c*e^5-4*d*e^5-43*e^6,
2902a*b^4*d+47*a^4*d^2+25*a^3*b*d^2-13*a^2*b^2*d^2+26*a*b^3*d^2-24*b^4*d^2-4*a^3*c*d^2-30*a^2*b*c*d^2+11*a*b^2*c*d^2+49*b^3*c*d^2-11*a^2*c^2*d^2-4*a*b*c^2*d^2+44*b^2*c^2*d^2+46*a*c^3*d^2-3*b*c^3*d^2-30*c^4*d^2+8*a^3*d^3+49*a^2*b*d^3+33*a*b^2*d^3+8*b^3*d^3-34*a^2*c*d^3-29*a*b*c*d^3-35*b^2*c*d^3-10*a*c^2*d^3+13*b*c^2*d^3-22*c^3*d^3+8*a^2*d^4+2*a*b*d^4+7*b^2*d^4-14*a*c*d^4+40*b*c*d^4+41*c^2*d^4-14*a*d^5+10*c*d^5-11*d^6-43*a^5*e-2*a^4*b*e-10*a^3*b^2*e-39*a^2*b^3*e+15*a*b^4*e-8*b^5*e+19*a^4*c*e+35*a^3*b*c*e+48*a^2*b^2*c*e-24*a*b^3*c*e-41*b^4*c*e-24*a^3*c^2*e+35*a^2*b*c^2*e-47*a*b^2*c^2*e+28*b^3*c^2*e-10*a^2*c^3*e+28*a*b*c^3*e-43*b^2*c^3*e+10*a*c^4*e-26*b*c^4*e-30*c^5*e+3*a^4*d*e-42*a^3*b*d*e-23*a^2*b^2*d*e+41*a*b^3*d*e+12*b^4*d*e-16*a^3*c*d*e+4*a^2*b*c*d*e+30*a*b^2*c*d*e+14*b^3*c*d*e+15*a^2*c^2*d*e-11*a*b*c^2*d*e+34*b^2*c^2*d*e-48*a*c^3*d*e+15*b*c^3*d*e+38*c^4*d*e+26*a^3*d^2*e-41*a^2*b*d^2*e-8*a*b^2*d^2*e+44*b^3*d^2*e-7*a^2*c*d^2*e+11*a*b*c*d^2*e-3*b^2*c*d^2*e+42*a*c^2*d^2*e+31*b*c^2*d^2*e-35*c^3*d^2*e-23*a^2*d^3*e+47*a*b*d^3*e+26*b^2*d^3*e+40*a*c*d^3*e-24*b*c*d^3*e-34*c^2*d^3*e+4*a*d^4*e-48*b*d^4*e-49*c*d^4*e-23*d^5*e-5*a^4*e^2-15*a^3*b*e^2+5*a^2*b^2*e^2+41*a*b^3*e^2-7*b^4*e^2-35*a^3*c*e^2+5*a^2*b*c*e^2+25*a*b^2*c*e^2-50*b^3*c*e^2+23*a^2*c^2*e^2+43*a*b*c^2*e^2+41*b^2*c^2*e^2+9*a*c^3*e^2-36*b*c^3*e^2-49*c^4*e^2-36*a^3*d*e^2-43*a^2*b*d*e^2-24*a*b^2*d*e^2+34*b^3*d*e^2-29*a^2*c*d*e^2-48*a*b*c*d*e^2+42*b^2*c*d*e^2+34*a*c^2*d*e^2+20*b*c^2*d*e^2-31*c^3*d*e^2+18*a^2*d^2*e^2-3*a*b*d^2*e^2+24*b^2*d^2*e^2-39*a*c*d^2*e^2+39*b*c*d^2*e^2-48*c^2*d^2*e^2-30*a*d^3*e^2-28*b*d^3*e^2+4*c*d^3*e^2+13*d^4*e^2-30*a^3*e^3+47*a^2*b*e^3+2*a*b^2*e^3+31*b^3*e^3+35*a^2*c*e^3+36*a*b*c*e^3-47*b^2*c*e^3+48*a*c^2*e^3-8*b*c^2*e^3-23*c^3*e^3+35*a^2*d*e^3+21*a*b*d*e^3+17*b^2*d*e^3-15*a*c*d*e^3-41*b*c*d*e^3+13*c^2*d*e^3+17*a*d^2*e^3-19*b*d^2*e^3+26*c*d^2*e^3-26*d^3*e^3-38*a^2*e^4+17*a*b*e^4+22*b^2*e^4-6*a*c*e^4-18*b*c*e^4+42*c^2*e^4+26*a*d*e^4-19*b*d*e^4-36*c*d*e^4-22*d^2*e^4+44*a*e^5+32*b*e^5-15*c*e^5-16*d*e^5+2*e^6,
2903a^2*b^3*d-26*a^4*d^2+24*a^3*b*d^2-21*a^2*b^2*d^2-7*a*b^3*d^2-39*b^4*d^2-47*a^3*c*d^2+37*a^2*b*c*d^2+24*a*b^2*c*d^2-6*b^3*c*d^2+20*a^2*c^2*d^2-4*b^2*c^2*d^2+21*a*c^3*d^2-15*b*c^3*d^2-22*c^4*d^2-23*a^3*d^3+21*a^2*b*d^3-16*a*b^2*d^3-38*b^3*d^3-16*a^2*c*d^3+7*a*b*c*d^3-37*b^2*c*d^3-12*a*c^2*d^3+42*b*c^2*d^3+40*c^3*d^3-35*a^2*d^4+29*a*b*d^4-b^2*d^4+21*a*c*d^4+47*b*c*d^4-22*c^2*d^4-11*a*d^5-44*b*d^5+49*c*d^5+33*d^6-35*a^5*e-41*a^4*b*e+17*a^3*b^2*e-6*a^2*b^3*e-12*a*b^4*e+36*b^5*e-6*a^4*c*e-28*a^3*b*c*e+22*a^2*b^2*c*e+10*a*b^3*c*e-34*b^4*c*e+28*a^3*c^2*e-2*a^2*b*c^2*e-48*a*b^2*c^2*e-28*b^3*c^2*e+42*a^2*c^3*e+30*a*b*c^3*e-43*b^2*c^3*e-34*a*c^4*e+33*b*c^4*e-38*c^5*e+39*a^4*d*e-27*a^3*b*d*e+44*a^2*b^2*d*e+12*a*b^3*d*e+18*b^4*d*e-19*a^3*c*d*e-42*a^2*b*c*d*e+24*a*b^2*c*d*e-49*b^3*c*d*e+17*a^2*c^2*d*e+3*a*b*c^2*d*e+39*b^2*c^2*d*e-31*a*c^3*d*e-8*b*c^3*d*e+42*c^4*d*e-42*a^3*d^2*e+49*a^2*b*d^2*e-17*a*b^2*d^2*e-49*b^3*d^2*e-20*a^2*c*d^2*e-11*a*b*c*d^2*e-17*b^2*c*d^2*e+16*a*c^2*d^2*e+41*b*c^2*d^2*e+50*c^3*d^2*e-28*a^2*d^3*e+44*a*b*d^3*e-25*b^2*d^3*e-24*a*c*d^3*e-b*c*d^3*e-45*c^2*d^3*e-3*a*d^4*e-26*b*d^4*e-12*c*d^4*e+4*d^5*e+5*a^4*e^2+28*a^3*b*e^2-42*a^2*b^2*e^2+33*a*b^3*e^2-15*b^4*e^2-40*a^3*c*e^2+47*a^2*b*c*e^2-4*a*b^2*c*e^2-22*b^3*c*e^2-35*a^2*c^2*e^2-8*a*b*c^2*e^2-11*b^2*c^2*e^2-37*a*c^3*e^2-23*b*c^3*e^2+33*c^4*e^2-34*a^3*d*e^2+16*a^2*b*d*e^2-38*a*b^2*d*e^2+32*b^3*d*e^2+10*a^2*c*d*e^2-30*a*b*c*d*e^2+32*b^2*c*d*e^2-6*a*c^2*d*e^2-45*b*c^2*d*e^2-5*c^3*d*e^2-16*a^2*d^2*e^2-14*a*b*d^2*e^2+22*b^2*d^2*e^2+4*a*c*d^2*e^2-37*b*c*d^2*e^2-28*c^2*d^2*e^2-16*a*d^3*e^2+6*b*d^3*e^2+9*c*d^3*e^2-46*d^4*e^2-10*a^3*e^3-50*a^2*b*e^3+18*a*b^2*e^3+20*b^3*e^3-34*a^2*c*e^3+33*a*b*c*e^3-17*b^2*c*e^3-19*a*c^2*e^3-5*b*c^2*e^3+19*c^3*e^3-23*a^2*d*e^3+4*a*b*d*e^3+28*b^2*d*e^3+17*a*c*d*e^3+7*b*c*d*e^3+39*c^2*d*e^3+4*a*d^2*e^3-39*b*d^2*e^3-16*c*d^2*e^3-23*d^3*e^3-23*a^2*e^4-16*a*b*e^4-2*b^2*e^4-24*a*c*e^4-5*b*c*e^4+45*c^2*e^4-10*a*d*e^4-b*d*e^4+50*c*d*e^4+31*d^2*e^4+31*a*e^5-37*b*e^5-44*c*e^5+37*d*e^5-43*e^6,
2904a^3*b^2*d-42*a^4*d^2-17*a^3*b*d^2-23*a^2*b^2*d^2-17*a*b^3*d^2-27*b^4*d^2-50*a^3*c*d^2+27*a^2*b*c*d^2-30*a*b^2*c*d^2-7*b^3*c*d^2+21*a^2*c^2*d^2+13*a*b*c^2*d^2+29*b^2*c^2*d^2-46*a*c^3*d^2+43*b*c^3*d^2-2*c^4*d^2-2*a^3*d^3+45*a^2*b*d^3-15*a*b^2*d^3-47*b^3*d^3-17*a^2*c*d^3-25*a*b*c*d^3+9*b^2*c*d^3-24*a*c^2*d^3+32*b*c^2*d^3+37*c^3*d^3+14*a^2*d^4+23*a*b*d^4+49*b^2*d^4+10*a*c*d^4+19*b*c*d^4-13*c^2*d^4-9*a*d^5+44*b*d^5+39*c*d^5-28*d^6-2*a^5*e+5*a^4*b*e-36*a^3*b^2*e-12*a^2*b^3*e+2*a*b^4*e+15*b^5*e-31*a^4*c*e-3*a^3*b*c*e+46*a^2*b^2*c*e+33*a*b^3*c*e+16*b^4*c*e+24*a^3*c^2*e-36*a^2*b*c^2*e+10*a*b^2*c^2*e+4*b^3*c^2*e+44*a^2*c^3*e+18*a*b*c^3*e-37*b^2*c^3*e-47*a*c^4*e+32*b*c^4*e-29*c^5*e+14*a^4*d*e+6*a^3*b*d*e+44*a^2*b^2*d*e+23*a*b^3*d*e+33*b^4*d*e-7*a^3*c*d*e+10*a^2*b*c*d*e+30*a*b^2*c*d*e+41*b^3*c*d*e-50*a^2*c^2*d*e+a*b*c^2*d*e+33*b^2*c^2*d*e-26*a*c^3*d*e-32*b*c^3*d*e+47*c^4*d*e+39*a^3*d^2*e+40*a^2*b*d^2*e+6*a*b^2*d^2*e+30*b^3*d^2*e-30*a^2*c*d^2*e-21*a*b*c*d^2*e-41*b^2*c*d^2*e-21*a*c^2*d^2*e-17*b*c^2*d^2*e-21*c^3*d^2*e+26*a^2*d^3*e+50*a*b*d^3*e+39*b^2*d^3*e-34*a*c*d^3*e-25*b*c*d^3*e-34*c^2*d^3*e+9*a*d^4*e-40*b*d^4*e-45*c*d^4*e-3*d^5*e-34*a^4*e^2-22*a^3*b*e^2-5*a^2*b^2*e^2+45*a*b^3*e^2-16*b^4*e^2-12*a^3*c*e^2+33*a^2*b*c*e^2+31*a*b^2*c*e^2+19*b^3*c*e^2+49*a^2*c^2*e^2-19*a*b*c^2*e^2+8*b^2*c^2*e^2+32*a*c^3*e^2+31*b*c^3*e^2+21*c^4*e^2+13*a^3*d*e^2-35*a^2*b*d*e^2-29*a*b^2*d*e^2-41*b^3*d*e^2+11*a^2*c*d*e^2+46*a*b*c*d*e^2+b^2*c*d*e^2+5*a*c^2*d*e^2+18*c^3*d*e^2-17*a^2*d^2*e^2+45*a*b*d^2*e^2-40*b^2*d^2*e^2-6*a*c*d^2*e^2-32*b*c*d^2*e^2-19*c^2*d^2*e^2+48*a*d^3*e^2+41*b*d^3*e^2-30*c*d^3*e^2-38*d^4*e^2+4*a^3*e^3+8*a^2*b*e^3-49*a*b^2*e^3+36*b^3*e^3-5*a^2*c*e^3-21*a*b*c*e^3-27*b^2*c*e^3+5*a*c^2*e^3+31*b*c^2*e^3+15*c^3*e^3+41*a^2*d*e^3+19*a*b*d*e^3+10*b^2*d*e^3+41*a*c*d*e^3+45*b*c*d*e^3+12*c^2*d*e^3-28*a*d^2*e^3+14*b*d^2*e^3+4*c*d^2*e^3-25*d^3*e^3+38*a^2*e^4+37*a*b*e^4-15*b^2*e^4-11*a*c*e^4-24*b*c*e^4+33*c^2*e^4-31*a*d*e^4+14*b*d*e^4+49*c*d*e^4+34*d^2*e^4-34*a*e^5-23*b*e^5+50*c*e^5+19*d*e^5+26*e^6,
2905a^4*b*d+4*a^4*d^2-24*a^3*b*d^2+8*a^2*b^2*d^2-24*a*b^3*d^2-b^4*d^2+31*a^3*c*d^2-45*a^2*b*c*d^2-12*a*b^2*c*d^2+45*b^3*c*d^2+29*a^2*c^2*d^2+41*a*b*c^2*d^2-2*b^2*c^2*d^2-44*a*c^3*d^2-9*b*c^3*d^2+32*c^4*d^2+50*a^3*d^3-6*a^2*b*d^3+11*a*b^2*d^3-6*b^3*d^3-36*a^2*c*d^3-13*a*b*c*d^3-44*b^2*c*d^3+35*a*c^2*d^3+29*b*c^2*d^3-32*c^3*d^3+45*a^2*d^4-24*a*b*d^4-b^2*d^4+48*a*c*d^4+29*b*c*d^4+43*c^2*d^4+34*a*d^5-b*d^5+14*c*d^5+12*d^6-50*a^5*e-26*a^4*b*e-38*a^3*b^2*e-5*a^2*b^3*e+41*a*b^4*e+38*b^5*e-14*a^4*c*e+46*a^3*b*c*e-14*a^2*b^2*c*e-24*a*b^3*c*e+31*b^4*c*e-24*a^3*c^2*e-50*a^2*b*c^2*e+47*a*b^2*c^2*e+42*b^3*c^2*e-15*a^2*c^3*e-26*a*b*c^3*e+26*b^2*c^3*e-38*a*c^4*e-34*b*c^4*e+44*c^5*e-29*a^4*d*e+26*a^3*b*d*e-25*a^2*b^2*d*e+41*a*b^3*d*e+46*b^4*d*e+46*a^3*c*d*e-28*a^2*b*c*d*e-10*a*b^2*c*d*e+18*b^3*c*d*e+28*a^2*c^2*d*e+25*a*b*c^2*d*e-8*b^2*c^2*d*e-36*a*c^3*d*e+50*b*c^3*d*e-25*c^4*d*e+7*a^3*d^2*e+29*a^2*b*d^2*e-50*a*b^2*d^2*e-34*b^3*d^2*e-6*a^2*c*d^2*e-13*a*b*c*d^2*e+21*b^2*c*d^2*e+32*a*c^2*d^2*e-10*b*c^2*d^2*e-19*c^3*d^2*e-27*a^2*d^3*e+46*a*b*d^3*e-4*b^2*d^3*e+17*a*c*d^3*e+11*b*c*d^3*e+7*c^2*d^3*e+18*a*d^4*e-23*b*d^4*e-45*c*d^4*e+40*d^5*e+36*a^4*e^2-2*a^3*b*e^2-17*a^2*b^2*e^2+11*a*b^3*e^2+49*b^4*e^2-31*a^3*c*e^2+8*a^2*b*c*e^2-12*a*b^2*c*e^2-15*b^3*c*e^2+14*a^2*c^2*e^2-a*b*c^2*e^2+38*b^2*c^2*e^2-40*a*c^3*e^2-25*b*c^3*e^2+34*c^4*e^2-2*a^3*d*e^2-19*a^2*b*d*e^2+35*a*b^2*d*e^2-49*b^3*d*e^2-20*a^2*c*d*e^2+47*a*b*c*d*e^2-42*b^2*c*d*e^2+41*a*c^2*d*e^2+23*b*c^2*d*e^2+22*c^3*d*e^2-16*a^2*d^2*e^2+14*a*b*d^2*e^2-10*b^2*d^2*e^2+47*a*c*d^2*e^2+43*b*c*d^2*e^2+50*c^2*d^2*e^2-35*b*d^3*e^2+45*c*d^3*e^2+5*d^4*e^2+18*a^3*e^3+42*a^2*b*e^3+a*b^2*e^3+26*b^3*e^3+16*a^2*c*e^3+40*b^2*c*e^3-27*a*c^2*e^3-9*b*c^2*e^3-26*c^3*e^3-24*a^2*d*e^3-6*a*b*d*e^3-26*b^2*d*e^3+47*a*c*d*e^3-40*b*c*d*e^3+30*c^2*d*e^3-46*a*d^2*e^3-27*b*d^2*e^3-42*c*d^2*e^3-10*d^3*e^3+25*a^2*e^4+a*b*e^4-15*b^2*e^4-13*a*c*e^4-33*b*c*e^4+20*c^2*e^4+5*a*d*e^4-42*b*d*e^4-5*c*d*e^4-24*d^2*e^4-34*a*e^5+35*b*e^5-27*c*e^5-43*d*e^5-43*e^6,
2906a^5*d+14*a^4*d^2-3*a^3*b*d^2+7*a^2*b^2*d^2-31*a*b^3*d^2-42*b^4*d^2-16*a^3*c*d^2+36*a^2*b*c*d^2-17*a*b^2*c*d^2-15*b^3*c*d^2+17*a^2*c^2*d^2+36*a*b*c^2*d^2+12*b^2*c^2*d^2-47*a*c^3*d^2-16*b*c^3*d^2-9*c^4*d^2-38*a^3*d^3-43*a^2*b*d^3+2*a*b^2*d^3-44*b^3*d^3-12*a^2*c*d^3+32*a*b*c*d^3+21*b^2*c*d^3-10*a*c^2*d^3-28*b*c^2*d^3-c^3*d^3+18*a^2*d^4-13*a*b*d^4+13*b^2*d^4+31*a*c*d^4+27*b*c*d^4+34*c^2*d^4-19*a*d^5-36*b*d^5-46*c*d^5+11*d^6-26*a^5*e-24*a^4*b*e-5*a^3*b^2*e+27*a^2*b^3*e-6*a*b^4*e-30*b^5*e+35*a^4*c*e-42*a^3*b*c*e+a^2*b^2*c*e-22*a*b^3*c*e+12*b^4*c*e+7*a^3*c^2*e-26*a^2*b*c^2*e-43*a*b^2*c^2*e-18*b^3*c^2*e+10*a^2*c^3*e-10*a*b*c^3*e+48*b^2*c^3*e-19*a*c^4*e-29*b*c^4*e-3*c^5*e+20*a^4*d*e+10*a^3*b*d*e+28*a^2*b^2*d*e+14*a*b^3*d*e-15*b^4*d*e-7*a^3*c*d*e-24*a^2*b*c*d*e-26*a*b^2*c*d*e+32*b^3*c*d*e+2*a^2*c^2*d*e+16*a*b*c^2*d*e+44*b^2*c^2*d*e-48*a*c^3*d*e+7*b*c^3*d*e+3*c^4*d*e-8*a^3*d^2*e+23*a^2*b*d^2*e-39*a*b^2*d^2*e+35*b^3*d^2*e-2*a^2*c*d^2*e-17*a*b*c*d^2*e+46*b^2*c*d^2*e-26*a*c^2*d^2*e+7*b*c^2*d^2*e+47*c^3*d^2*e-38*a^2*d^3*e+12*a*b*d^3*e-14*b^2*d^3*e-a*c*d^3*e+12*b*c*d^3*e+30*c^2*d^3*e-50*a*d^4*e-34*b*d^4*e-6*c*d^4*e-24*d^5*e-37*a^4*e^2-15*a^3*b*e^2+17*a^2*b^2*e^2+26*a*b^3*e^2-31*b^4*e^2+14*a^3*c*e^2+30*a^2*b*c*e^2-9*a*b^2*c*e^2-42*b^3*c*e^2-39*a^2*c^2*e^2-43*a*b*c^2*e^2+41*b^2*c^2*e^2-38*a*c^3*e^2-47*b*c^3*e^2+33*c^4*e^2+15*a^3*d*e^2-36*a^2*b*d*e^2+6*a*b^2*d*e^2-15*b^3*d*e^2+24*a^2*c*d*e^2-50*a*b*c*d*e^2-6*b^2*c*d*e^2-41*a*c^2*d*e^2+42*b*c^2*d*e^2+28*c^3*d*e^2-19*a^2*d^2*e^2-47*a*b*d^2*e^2+49*b^2*d^2*e^2-41*a*c*d^2*e^2-3*b*c*d^2*e^2-38*c^2*d^2*e^2+4*a*d^3*e^2-30*b*d^3*e^2+47*c*d^3*e^2+11*d^4*e^2-44*a^3*e^3-25*a^2*b*e^3+18*a*b^2*e^3-14*b^3*e^3+18*a^2*c*e^3-15*a*b*c*e^3+32*b^2*c*e^3+38*a*c^2*e^3-30*b*c^2*e^3-3*c^3*e^3-33*a^2*d*e^3-42*a*b*d*e^3-8*b^2*d*e^3-14*a*c*d*e^3+49*b*c*d*e^3-40*c^2*d*e^3-40*a*d^2*e^3+32*b*d^2*e^3-40*c*d^2*e^3+11*d^3*e^3-43*a^2*e^4-29*a*b*e^4+9*b^2*e^4-20*a*c*e^4+14*b*c*e^4+38*c^2*e^4-32*a*d*e^4+22*b*d*e^4-9*c*d*e^4-34*d^2*e^4+6*a*e^5-15*b*e^5+13*c*e^5-40*d*e^5-40*e^6,
2907c^6+36*a^4*d^2-8*a^3*b*d^2-40*a^2*b^2*d^2-45*a*b^3*d^2+36*b^4*d^2-21*a^3*c*d^2-27*a^2*b*c*d^2+46*a*b^2*c*d^2+30*b^3*c*d^2+4*a*b*c^2*d^2-20*b^2*c^2*d^2+3*a*c^3*d^2-48*b*c^3*d^2-29*c^4*d^2+13*a^3*d^3-3*a^2*b*d^3-13*a*b^2*d^3-38*b^3*d^3+35*a^2*c*d^3-5*a*b*c*d^3-46*b^2*c*d^3-26*a*c^2*d^3-20*b*c^2*d^3-4*c^3*d^3+6*a^2*d^4-14*a*b*d^4+16*b^2*d^4+44*a*c*d^4-10*b*c*d^4+15*c^2*d^4+31*a*d^5-22*b*d^5-36*c*d^5-34*d^6-28*a^5*e+46*a^4*b*e+5*a^3*b^2*e+36*a^2*b^3*e-2*a*b^4*e+13*b^5*e-40*a^4*c*e+31*a^3*b*c*e+49*a^2*b^2*c*e+50*a*b^3*c*e+8*b^4*c*e-23*a^2*b*c^2*e+7*a*b^2*c^2*e+36*b^3*c^2*e-12*a^2*c^3*e-a*b*c^3*e-32*b^2*c^3*e+33*a*c^4*e-45*b*c^4*e+7*c^5*e-13*a^4*d*e-38*a^3*b*d*e+17*a^2*b^2*d*e-33*a*b^3*d*e-33*b^4*d*e-47*a^3*c*d*e+42*a^2*b*c*d*e-5*a*b^2*c*d*e-35*b^3*c*d*e-34*a^2*c^2*d*e-36*a*b*c^2*d*e+17*b^2*c^2*d*e+19*a*c^3*d*e+41*b*c^3*d*e-8*c^4*d*e-15*a^3*d^2*e-10*a^2*b*d^2*e-37*a*b^2*d^2*e-40*b^3*d^2*e-2*a^2*c*d^2*e-28*a*b*c*d^2*e+30*b^2*c*d^2*e+45*a*c^2*d^2*e+26*b*c^2*d^2*e-20*c^3*d^2*e-48*a^2*d^3*e+16*a*b*d^3*e+12*b^2*d^3*e+47*a*c*d^3*e-11*b*c*d^3*e+27*c^2*d^3*e-29*a*d^4*e+33*b*d^4*e+6*c*d^4*e-10*d^5*e-2*a^4*e^2-27*a^3*b*e^2-18*a^2*b^2*e^2-46*a*b^3*e^2-19*b^4*e^2+9*a^3*c*e^2+45*a^2*b*c*e^2+30*a*b^2*c*e^2+35*b^3*c*e^2-31*a^2*c^2*e^2+33*a*b*c^2*e^2+36*b^2*c^2*e^2-18*a*c^3*e^2+5*b*c^3*e^2-8*c^4*e^2-37*a^3*d*e^2+46*a^2*b*d*e^2-37*a*b^2*d*e^2+28*b^3*d*e^2+6*a^2*c*d*e^2-24*a*b*c*d*e^2+9*b^2*c*d*e^2+36*a*c^2*d*e^2-44*b*c^2*d*e^2+32*c^3*d*e^2+49*a^2*d^2*e^2-44*a*b*d^2*e^2-12*b^2*d^2*e^2-6*a*c*d^2*e^2+7*b*c*d^2*e^2-2*c^2*d^2*e^2+17*a*d^3*e^2-15*b*d^3*e^2+18*c*d^3*e^2-24*d^4*e^2-26*a^3*e^3+44*a^2*b*e^3-28*a*b^2*e^3+28*b^3*e^3-8*a^2*c*e^3+6*a*b*c*e^3-12*b^2*c*e^3-25*a*c^2*e^3-37*b*c^2*e^3+36*c^3*e^3-18*a^2*d*e^3-38*a*b*d*e^3+b^2*d*e^3+3*a*c*d*e^3+47*b*c*d*e^3+3*c^2*d*e^3-5*a*d^2*e^3-34*c*d^2*e^3-11*d^3*e^3-19*a^2*e^4+16*a*b*e^4+17*b^2*e^4+23*a*c*e^4-26*b*c*e^4+10*c^2*e^4+23*a*d*e^4-30*b*d*e^4-46*c*d*e^4-13*d^2*e^4-23*a*e^5+41*b*e^5+6*c*e^5-50*d*e^5+28*e^6,
2908b*c^5+8*a^4*d^2-16*a^3*b*d^2+26*a^2*b^2*d^2+a*b^3*d^2+40*b^4*d^2-34*a^3*c*d^2+5*a^2*b*c*d^2+18*a*b^2*c*d^2-30*b^3*c*d^2+9*a^2*c^2*d^2+30*a*b*c^2*d^2-17*b^2*c^2*d^2+26*a*c^3*d^2+49*b*c^3*d^2+42*c^4*d^2+2*a^3*d^3+28*a^2*b*d^3-7*a*b^2*d^3-37*b^3*d^3+38*a^2*c*d^3-5*a*b*c*d^3-13*b^2*c*d^3-11*a*c^2*d^3-37*b*c^2*d^3+4*c^3*d^3-8*a^2*d^4-9*a*b*d^4+28*b^2*d^4+4*a*c*d^4+27*b*c*d^4+39*c^2*d^4+9*a*d^5-24*b*d^5+27*c*d^5+13*d^6-23*a^5*e-41*a^4*b*e-23*a^3*b^2*e+28*a^2*b^3*e+29*a*b^4*e-49*b^5*e-4*a^4*c*e-16*a^3*b*c*e-16*a^2*b^2*c*e+29*a*b^3*c*e-15*b^4*c*e-27*a^3*c^2*e+44*a^2*b*c^2*e-23*a*b^2*c^2*e-18*b^3*c^2*e-24*a^2*c^3*e-12*b^2*c^3*e-48*a*c^4*e+12*b*c^4*e+28*c^5*e-49*a^4*d*e+18*a^3*b*d*e+40*a^2*b^2*d*e-5*a*b^3*d*e-23*b^4*d*e-9*a^3*c*d*e-12*a^2*b*c*d*e-39*a*b^2*c*d*e-43*b^3*c*d*e+36*a^2*c^2*d*e+19*a*b*c^2*d*e+11*b^2*c^2*d*e+24*a*c^3*d*e+22*b*c^3*d*e+14*c^4*d*e-23*a^3*d^2*e-14*a^2*b*d^2*e+47*a*b^2*d^2*e+32*b^3*d^2*e+47*a^2*c*d^2*e+26*a*b*c*d^2*e-39*b^2*c*d^2*e+11*a*c^2*d^2*e-44*b*c^2*d^2*e-20*c^3*d^2*e-23*a^2*d^3*e-3*a*b*d^3*e-11*b^2*d^3*e-34*a*c*d^3*e+5*b*c*d^3*e-3*c^2*d^3*e-6*a*d^4*e-15*b*d^4*e+41*c*d^4*e+18*d^5*e+44*a^4*e^2-49*a^3*b*e^2+38*a^2*b^2*e^2+7*a*b^3*e^2-11*b^4*e^2+2*a^3*c*e^2-6*a^2*b*c*e^2-34*a*b^2*c*e^2-21*b^3*c*e^2+12*a^2*c^2*e^2+7*a*b*c^2*e^2-20*b^2*c^2*e^2-3*a*c^3*e^2-38*b*c^3*e^2-5*c^4*e^2-46*a^3*d*e^2-20*a^2*b*d*e^2+21*a*b^2*d*e^2-36*b^3*d*e^2-14*a^2*c*d*e^2+6*a*b*c*d*e^2+29*b^2*c*d*e^2+12*a*c^2*d*e^2-2*b*c^2*d*e^2+41*c^3*d*e^2+41*a^2*d^2*e^2+34*a*b*d^2*e^2-2*b^2*d^2*e^2+9*a*c*d^2*e^2+10*b*c*d^2*e^2-11*c^2*d^2*e^2+45*a*d^3*e^2+38*b*d^3*e^2-20*c*d^3*e^2-12*d^4*e^2-35*a^3*e^3+23*a*b^2*e^3+37*b^3*e^3+10*a^2*c*e^3+6*a*b*c*e^3+21*b^2*c*e^3-24*a*c^2*e^3+28*b*c^2*e^3+26*c^3*e^3+22*a^2*d*e^3+26*a*b*d*e^3+50*b^2*d*e^3+43*a*c*d*e^3+39*b*c*d*e^3-42*c^2*d*e^3-27*a*d^2*e^3+38*b*d^2*e^3+19*c*d^2*e^3-15*d^3*e^3+37*a^2*e^4+7*a*b*e^4-12*b^2*e^4-34*a*c*e^4+25*b*c*e^4+26*c^2*e^4+a*d*e^4-25*b*d*e^4-15*c*d*e^4-50*d^2*e^4-50*a*e^5-45*b*e^5+30*c*e^5+6*d*e^5+49*e^6,
2909a*c^5+28*a^4*d^2-23*a^3*b*d^2+10*a^2*b^2*d^2-36*a*b^3*d^2+6*b^4*d^2+25*a^3*c*d^2-47*a^2*b*c*d^2+28*a*b^2*c*d^2-36*b^3*c*d^2-31*a^2*c^2*d^2-35*a*b*c^2*d^2-42*b^2*c^2*d^2+20*a*c^3*d^2-45*b*c^3*d^2+49*c^4*d^2-24*a^3*d^3+25*a^2*b*d^3+27*a*b^2*d^3+49*b^3*d^3-9*a^2*c*d^3-46*a*b*c*d^3-39*b^2*c*d^3-9*a*c^2*d^3-46*b*c^2*d^3+43*c^3*d^3-35*a^2*d^4+11*a*b*d^4+15*b^2*d^4-4*a*c*d^4+42*b*c*d^4+19*c^2*d^4-35*a*d^5-23*b*d^5-45*c*d^5+6*d^6-36*a^5*e-35*a^4*b*e+47*a^3*b^2*e-20*a^2*b^3*e+28*a*b^4*e+37*b^5*e-50*a^4*c*e-35*a^3*b*c*e+a^2*b^2*c*e+15*a*b^3*c*e-2*b^4*c*e-10*a^3*c^2*e-50*a^2*b*c^2*e-34*a*b^2*c^2*e+28*b^3*c^2*e+18*a^2*c^3*e-13*a*b*c^3*e-17*b^2*c^3*e-19*a*c^4*e+9*b*c^4*e-43*c^5*e-29*a^4*d*e-17*a^3*b*d*e+47*a^2*b^2*d*e+26*a*b^3*d*e-13*b^4*d*e+11*a^3*c*d*e+5*a^2*b*c*d*e-25*a*b^2*c*d*e+26*b^3*c*d*e-17*a^2*c^2*d*e-37*a*b*c^2*d*e-7*b^2*c^2*d*e+28*a*c^3*d*e+28*b*c^3*d*e-16*c^4*d*e+30*a^3*d^2*e-25*a^2*b*d^2*e+9*a*b^2*d^2*e+34*b^3*d^2*e+2*a^2*c*d^2*e+30*a*b*c*d^2*e-37*b^2*c*d^2*e+33*a*c^2*d^2*e-5*b*c^2*d^2*e-4*c^3*d^2*e+50*a^2*d^3*e-50*a*b*d^3*e+9*b^2*d^3*e+11*a*c*d^3*e-31*b*c*d^3*e+29*c^2*d^3*e-37*a*d^4*e-22*b*d^4*e-20*c*d^4*e-30*d^5*e+19*a^4*e^2+42*a^3*b*e^2+43*a^2*b^2*e^2-22*a*b^3*e^2+40*b^4*e^2-12*a^3*c*e^2-37*a^2*b*c*e^2-38*a*b^2*c*e^2+47*b^3*c*e^2+33*a^2*c^2*e^2-26*a*b*c^2*e^2+8*b^2*c^2*e^2+43*a*c^3*e^2+43*b*c^3*e^2-26*c^4*e^2+13*a^3*d*e^2+7*a^2*b*d*e^2-38*a*b^2*d*e^2+28*b^3*d*e^2-35*a^2*c*d*e^2+41*a*b*c*d*e^2+2*b^2*c*d*e^2-44*a*c^2*d*e^2-5*b*c^2*d*e^2+35*c^3*d*e^2+46*a^2*d^2*e^2-32*a*b*d^2*e^2-37*b^2*d^2*e^2+4*a*c*d^2*e^2+15*b*c*d^2*e^2+13*c^2*d^2*e^2+14*a*d^3*e^2+3*b*d^3*e^2-7*c*d^3*e^2+9*d^4*e^2-43*a^3*e^3+46*a^2*b*e^3-17*a*b^2*e^3+12*b^3*e^3-9*a^2*c*e^3+40*a*b*c*e^3+7*b^2*c*e^3-31*a*c^2*e^3+32*b*c^2*e^3-49*a^2*d*e^3+22*a*b*d*e^3+27*b^2*d*e^3+34*a*c*d*e^3-39*b*c*d*e^3-17*c^2*d*e^3-39*a*d^2*e^3+20*b*d^2*e^3-10*c*d^2*e^3+2*d^3*e^3+4*a^2*e^4+21*a*b*e^4+20*b^2*e^4+36*a*c*e^4+49*b*c*e^4+24*c^2*e^4-31*a*d*e^4+23*b*d*e^4+48*c*d*e^4-12*d^2*e^4+8*a*e^5-8*b*e^5-15*c*e^5-d*e^5+24*e^6,
2910b^2*c^4-39*a^4*d^2+a^3*b*d^2+26*a^2*b^2*d^2+29*a*b^3*d^2-5*b^4*d^2+13*a^3*c*d^2-47*a^2*b*c*d^2+17*a*b^2*c*d^2+22*b^3*c*d^2+25*a^2*c^2*d^2-2*a*b*c^2*d^2+18*b^2*c^2*d^2+43*a*c^3*d^2+48*b*c^3*d^2-24*c^4*d^2-17*a^3*d^3-16*a^2*b*d^3-3*a*b^2*d^3+35*b^3*d^3+8*a^2*c*d^3+30*a*b*c*d^3-6*b^2*c*d^3+17*a*c^2*d^3-25*b*c^2*d^3+34*c^3*d^3+13*a^2*d^4-49*a*b*d^4-48*b^2*d^4-6*a*c*d^4+43*b*c*d^4+31*c^2*d^4+30*a*d^5-12*b*d^5+4*c*d^5+39*d^6+48*a^5*e+15*a^4*b*e-41*a^3*b^2*e+41*a^2*b^3*e-16*a*b^4*e+28*b^5*e-48*a^4*c*e+11*a^3*b*c*e+42*a^2*b^2*c*e+34*a*b^3*c*e+48*b^4*c*e-24*a^3*c^2*e+29*a^2*b*c^2*e+6*a*b^2*c^2*e+18*b^3*c^2*e-31*a^2*c^3*e+15*a*b*c^3*e+22*b^2*c^3*e-a*c^4*e+15*b*c^4*e-46*c^5*e-36*a^4*d*e+a^3*b*d*e+46*a^2*b^2*d*e-29*a*b^3*d*e+41*b^4*d*e-13*a^3*c*d*e-4*a^2*b*c*d*e-39*a*b^2*c*d*e-39*b^3*c*d*e+35*a^2*c^2*d*e-29*a*b*c^2*d*e-26*b^2*c^2*d*e-37*a*c^3*d*e-8*b*c^3*d*e-13*c^4*d*e+44*a^3*d^2*e-9*a^2*b*d^2*e-38*a*b^2*d^2*e-30*b^3*d^2*e+49*a^2*c*d^2*e+8*a*b*c*d^2*e-35*b^2*c*d^2*e+40*a*c^2*d^2*e-19*b*c^2*d^2*e-25*c^3*d^2*e+47*a^2*d^3*e+17*a*b*d^3*e-41*b^2*d^3*e-18*a*c*d^3*e+38*b*c*d^3*e+22*c^2*d^3*e-30*a*d^4*e+25*b*d^4*e-11*c*d^4*e-8*d^5*e+47*a^4*e^2+2*a^3*b*e^2+5*a^2*b^2*e^2-31*a*b^3*e^2+21*b^4*e^2-46*a^3*c*e^2-28*a^2*b*c*e^2+49*a*b^2*c*e^2+31*b^3*c*e^2-45*a^2*c^2*e^2+26*a*b*c^2*e^2+18*b^2*c^2*e^2+6*a*c^3*e^2-17*b*c^3*e^2-4*c^4*e^2-8*a^3*d*e^2-37*a^2*b*d*e^2-43*a*b^2*d*e^2+10*b^3*d*e^2+32*a^2*c*d*e^2+21*a*b*c*d*e^2+9*b^2*c*d*e^2-34*a*c^2*d*e^2-50*b*c^2*d*e^2-7*c^3*d*e^2+31*a^2*d^2*e^2+22*b^2*d^2*e^2-35*a*c*d^2*e^2-3*b*c*d^2*e^2+13*c^2*d^2*e^2-35*a*d^3*e^2-45*b*d^3*e^2-44*c*d^3*e^2+44*d^4*e^2+7*a^3*e^3+17*a^2*b*e^3+8*a*b^2*e^3+30*b^3*e^3-28*a^2*c*e^3-25*a*b*c*e^3+6*b^2*c*e^3-29*a*c^2*e^3-29*b*c^2*e^3-23*c^3*e^3-43*a^2*d*e^3+44*a*b*d*e^3+41*b^2*d*e^3-8*a*c*d*e^3-13*b*c*d*e^3+27*c^2*d*e^3+5*a*d^2*e^3+8*b*d^2*e^3+11*c*d^2*e^3-50*d^3*e^3+4*a^2*e^4-31*a*b*e^4-2*b^2*e^4-2*a*c*e^4-27*b*c*e^4-c^2*e^4-17*a*d*e^4-30*b*d*e^4-15*c*d*e^4+5*d^2*e^4-34*a*e^5-49*b*e^5+26*c*e^5-44*d*e^5+46*e^6,
2911a*b*c^4+44*a^4*d^2-12*a^3*b*d^2-6*a^2*b^2*d^2-20*a*b^3*d^2+48*b^4*d^2+19*a^3*c*d^2+4*a^2*b*c*d^2+50*a*b^2*c*d^2+34*b^3*c*d^2-a^2*c^2*d^2-24*a*b*c^2*d^2+43*b^2*c^2*d^2-21*a*c^3*d^2-29*b*c^3*d^2+36*c^4*d^2+48*a^3*d^3-26*a^2*b*d^3-16*a*b^2*d^3+29*b^3*d^3-48*a^2*c*d^3-19*a*b*c*d^3-17*b^2*c*d^3-44*a*c^2*d^3+5*b*c^2*d^3-6*c^3*d^3-a^2*d^4-30*a*b*d^4-16*b^2*d^4+20*a*c*d^4+17*b*c*d^4-50*c^2*d^4+36*a*d^5-36*b*d^5-2*c*d^5+46*d^6-10*a^5*e-39*a^4*b*e+20*a^3*b^2*e+45*a^2*b^3*e-35*a*b^4*e+2*b^5*e+23*a^4*c*e-12*a^3*b*c*e-5*a^2*b^2*c*e+5*a*b^3*c*e-8*b^4*c*e+49*a^3*c^2*e+11*a^2*b*c^2*e-11*a*b^2*c^2*e+28*b^3*c^2*e+34*a^2*c^3*e+50*a*b*c^3*e+33*b^2*c^3*e-48*a*c^4*e-12*b*c^4*e+30*c^5*e+3*a^4*d*e-34*a^3*b*d*e+14*a^2*b^2*d*e-47*a*b^3*d*e+34*b^4*d*e-50*a^3*c*d*e-18*a^2*b*c*d*e-39*a*b^2*c*d*e-27*b^3*c*d*e-42*a^2*c^2*d*e-43*a*b*c^2*d*e+28*b^2*c^2*d*e+45*a*c^3*d*e+37*b*c^3*d*e-36*c^4*d*e+21*a^3*d^2*e+36*a^2*b*d^2*e+8*a*b^2*d^2*e-16*b^3*d^2*e+43*a^2*c*d^2*e+24*b^2*c*d^2*e-21*a*c^2*d^2*e+29*b*c^2*d^2*e-14*c^3*d^2*e+11*a^2*d^3*e+16*a*b*d^3*e-24*b^2*d^3*e+8*a*c*d^3*e-44*b*c*d^3*e+13*c^2*d^3*e-32*a*d^4*e+b*d^4*e-31*c*d^4*e-32*d^5*e+32*a^4*e^2-27*a^3*b*e^2+29*a^2*b^2*e^2-30*a*b^3*e^2+35*b^4*e^2-19*a^3*c*e^2+45*a^2*b*c*e^2-9*a*b^2*c*e^2+9*b^3*c*e^2-33*a^2*c^2*e^2+24*a*b*c^2*e^2-5*b^2*c^2*e^2-42*a*c^3*e^2+32*b*c^3*e^2+37*c^4*e^2+36*a^3*d*e^2-44*a^2*b*d*e^2+46*a*b^2*d*e^2+37*b^3*d*e^2+31*a^2*c*d*e^2+32*a*b*c*d*e^2-37*b^2*c*d*e^2-45*a*c^2*d*e^2-37*b*c^2*d*e^2+38*c^3*d*e^2+40*a^2*d^2*e^2-44*a*b*d^2*e^2+39*b^2*d^2*e^2-20*a*c*d^2*e^2+46*b*c*d^2*e^2+c^2*d^2*e^2-13*a*d^3*e^2+16*b*d^3*e^2-17*c*d^3*e^2+41*d^4*e^2-18*a^3*e^3+12*a^2*b*e^3-20*a*b^2*e^3+34*b^3*e^3+21*a^2*c*e^3+19*a*b*c*e^3+22*b^2*c*e^3+41*a*c^2*e^3+42*b*c^2*e^3-32*c^3*e^3-24*a^2*d*e^3-26*a*b*d*e^3-43*b^2*d*e^3-17*a*c*d*e^3-24*b*c*d*e^3+36*c^2*d*e^3+48*a*d^2*e^3+38*b*d^2*e^3-43*c*d^2*e^3-31*d^3*e^3-21*a^2*e^4+45*a*b*e^4-12*b^2*e^4-42*a*c*e^4-38*b*c*e^4-27*c^2*e^4-3*a*d*e^4-45*b*d*e^4-17*c*d*e^4+15*d^2*e^4+48*a*e^5+21*b*e^5-7*c*e^5-36*d*e^5+12*e^6,
2912a^2*c^4+45*a^4*d^2-49*a^3*b*d^2-20*a^2*b^2*d^2-12*a*b^3*d^2-21*b^4*d^2-29*a^3*c*d^2+23*a^2*b*c*d^2+6*a*b^2*c*d^2-30*b^3*c*d^2-33*a^2*c^2*d^2+31*a*b*c^2*d^2+12*b^2*c^2*d^2+20*a*c^3*d^2-48*b*c^3*d^2-21*c^4*d^2-23*a^3*d^3-38*a^2*b*d^3-41*a*b^2*d^3-3*b^3*d^3+13*a^2*c*d^3-10*a*b*c*d^3-14*b^2*c*d^3+47*a*c^2*d^3+46*b*c^2*d^3-49*c^3*d^3-a^2*d^4-13*a*b*d^4+34*b^2*d^4+8*a*c*d^4-44*b*c*d^4+c^2*d^4-10*a*d^5-b*d^5-34*c*d^5-8*d^6-28*a^5*e+21*a^4*b*e-44*a^3*b^2*e-3*a^2*b^3*e-7*a*b^4*e+49*b^5*e-25*a^4*c*e+22*a^3*b*c*e+18*a^2*b^2*c*e-15*a*b^3*c*e+31*b^4*c*e-27*a^3*c^2*e+9*a^2*b*c^2*e-9*a*b^2*c^2*e+50*b^3*c^2*e-a^2*c^3*e-20*a*b*c^3*e+21*b^2*c^3*e+25*a*c^4*e-29*b*c^4*e-41*c^5*e+28*a^4*d*e-7*a^3*b*d*e-18*a^2*b^2*d*e-33*a*b^3*d*e-32*b^4*d*e-9*a^3*c*d*e-18*a^2*b*c*d*e-7*a*b^2*c*d*e-49*b^3*c*d*e+23*a^2*c^2*d*e+32*a*b*c^2*d*e+17*b^2*c^2*d*e-26*a*c^3*d*e+30*b*c^3*d*e-4*c^4*d*e+17*a^3*d^2*e-31*a^2*b*d^2*e+7*a*b^2*d^2*e-10*a^2*c*d^2*e+9*a*b*c*d^2*e+49*b^2*c*d^2*e-26*a*c^2*d^2*e-21*b*c^2*d^2*e+13*c^3*d^2*e+32*a^2*d^3*e+8*a*b*d^3*e+44*b^2*d^3*e+49*a*c*d^3*e-b*c*d^3*e+39*c^2*d^3*e-a*d^4*e-19*b*d^4*e-40*c*d^4*e-30*d^5*e-2*a^4*e^2-5*a^3*b*e^2-10*a^2*b^2*e^2-31*a*b^3*e^2+37*b^4*e^2+45*a^3*c*e^2+17*a^2*b*c*e^2-34*a*b^2*c*e^2-32*b^3*c*e^2-7*a^2*c^2*e^2-21*a*b*c^2*e^2+50*b^2*c^2*e^2+35*a*c^3*e^2-38*b*c^3*e^2+14*c^4*e^2-21*a^3*d*e^2-4*a^2*b*d*e^2-14*a*b^2*d*e^2+13*b^3*d*e^2-38*a^2*c*d*e^2+44*a*b*c*d*e^2+7*b^2*c*d*e^2-16*a*c^2*d*e^2+38*b*c^2*d*e^2+38*c^3*d*e^2+25*a^2*d^2*e^2-34*a*b*d^2*e^2-32*b^2*d^2*e^2+22*a*c*d^2*e^2+40*b*c*d^2*e^2+4*c^2*d^2*e^2-16*a*d^3*e^2+36*b*d^3*e^2-39*c*d^3*e^2-45*d^4*e^2+39*a^3*e^3+31*a^2*b*e^3-43*a*b^2*e^3-18*b^3*e^3+44*a^2*c*e^3-8*a*b*c*e^3+38*b^2*c*e^3-4*a*c^2*e^3+3*b*c^2*e^3-43*c^3*e^3-6*a^2*d*e^3+34*a*b*d*e^3+6*b^2*d*e^3-13*a*c*d*e^3+32*b*c*d*e^3+30*c^2*d*e^3+28*a*d^2*e^3+17*b*d^2*e^3-19*c*d^2*e^3-46*d^3*e^3+12*a^2*e^4+44*a*b*e^4-42*b^2*e^4-41*a*c*e^4-35*b*c*e^4-37*c^2*e^4+42*a*d*e^4+43*b*d*e^4+5*c*d*e^4+11*d^2*e^4+25*a*e^5-9*b*e^5-27*c*e^5+50*d*e^5+23*e^6,
2913b^3*c^3-13*a^4*d^2-41*a^3*b*d^2+27*a^2*b^2*d^2+a*b^3*d^2+33*b^4*d^2+47*a^3*c*d^2-19*a^2*b*c*d^2-27*a*b^2*c*d^2-6*b^3*c*d^2+37*a^2*c^2*d^2+40*a*b*c^2*d^2+12*b^2*c^2*d^2+36*a*c^3*d^2-25*b*c^3*d^2-45*c^4*d^2-12*a^3*d^3-5*a^2*b*d^3+31*a*b^2*d^3-b^3*d^3-37*a^2*c*d^3+26*a*b*c*d^3-48*b^2*c*d^3+36*a*c^2*d^3+16*b*c^2*d^3+44*c^3*d^3+47*a^2*d^4-20*a*b*d^4-13*b^2*d^4+39*a*c*d^4+17*b*c*d^4-32*c^2*d^4-24*a*d^5-41*b*d^5-31*c*d^5+29*a^5*e+26*a^4*b*e+12*a^3*b^2*e-45*a^2*b^3*e+40*a*b^4*e+20*b^5*e-21*a^4*c*e-28*a^3*b*c*e+38*a^2*b^2*c*e+40*a*b^3*c*e-13*b^4*c*e-9*a^3*c^2*e-9*a^2*b*c^2*e-a*b^2*c^2*e-b^3*c^2*e+32*a^2*c^3*e+43*a*b*c^3*e-44*b^2*c^3*e+39*a*c^4*e+8*b*c^4*e-8*c^5*e+27*a^4*d*e+15*a^3*b*d*e-12*a^2*b^2*d*e-33*a*b^3*d*e+16*b^4*d*e+19*a^3*c*d*e-34*a^2*b*c*d*e+5*a*b^2*c*d*e-31*b^3*c*d*e+5*a^2*c^2*d*e-20*a*b*c^2*d*e-4*b^2*c^2*d*e-50*a*c^3*d*e+44*b*c^3*d*e-31*a^3*d^2*e+31*a^2*b*d^2*e+28*a*b^2*d^2*e-10*b^3*d^2*e+2*a^2*c*d^2*e-19*a*b*c*d^2*e-9*a*c^2*d^2*e+2*b*c^2*d^2*e+40*c^3*d^2*e+45*a^2*d^3*e+9*a*b*d^3*e+26*b^2*d^3*e-14*a*c*d^3*e+2*b*c*d^3*e+7*c^2*d^3*e+36*a*d^4*e-43*b*d^4*e-27*c*d^4*e-4*d^5*e+23*a^4*e^2+45*a^3*b*e^2+41*a^2*b^2*e^2+22*a*b^3*e^2+14*b^4*e^2-30*a^3*c*e^2+19*a^2*b*c*e^2-34*a*b^2*c*e^2+17*b^3*c*e^2-42*a^2*c^2*e^2-12*a*b*c^2*e^2-9*b^2*c^2*e^2-3*a*c^3*e^2+47*b*c^3*e^2+47*c^4*e^2+7*a^3*d*e^2+6*a^2*b*d*e^2+26*a*b^2*d*e^2+10*b^3*d*e^2-11*a^2*c*d*e^2-17*a*b*c*d*e^2+34*b^2*c*d*e^2+21*a*c^2*d*e^2+11*b*c^2*d*e^2+5*c^3*d*e^2-40*a^2*d^2*e^2+11*a*b*d^2*e^2+17*b^2*d^2*e^2+38*a*c*d^2*e^2-18*b*c*d^2*e^2+23*c^2*d^2*e^2+35*a*d^3*e^2+4*b*d^3*e^2-2*c*d^3*e^2+46*d^4*e^2+44*a^3*e^3-14*a^2*b*e^3+25*a*b^2*e^3-41*b^3*e^3-34*a^2*c*e^3-44*a*b*c*e^3+17*a*c^2*e^3+9*b*c^2*e^3+45*c^3*e^3+23*a^2*d*e^3-15*a*b*d*e^3+9*b^2*d*e^3-14*a*c*d*e^3-23*b*c*d*e^3+17*c^2*d*e^3+46*a*d^2*e^3+30*b*d^2*e^3+35*c*d^2*e^3-27*d^3*e^3-40*a^2*e^4-50*a*b*e^4-23*b^2*e^4-46*a*c*e^4+44*b*c*e^4+7*c^2*e^4+14*a*d*e^4-4*b*d*e^4-9*c*d*e^4+44*d^2*e^4-9*a*e^5+28*b*e^5+25*c*e^5+36*d*e^5+28*e^6,
2914a*b^2*c^3+41*a^4*d^2-33*a^3*b*d^2+21*a^2*b^2*d^2-47*a*b^3*d^2-23*b^4*d^2+9*a^3*c*d^2+49*a^2*b*c*d^2+44*a*b^2*c*d^2-25*b^3*c*d^2-28*a^2*c^2*d^2+37*a*b*c^2*d^2+9*b^2*c^2*d^2-21*a*c^3*d^2+36*b*c^3*d^2+48*c^4*d^2+2*a^3*d^3+15*a^2*b*d^3-3*a*b^2*d^3-40*b^3*d^3-19*a^2*c*d^3+4*a*b*c*d^3-29*b^2*c*d^3-48*a*c^2*d^3+41*b*c^2*d^3+34*c^3*d^3+33*a^2*d^4-13*a*b*d^4-34*b^2*d^4-47*a*c*d^4+36*b*c*d^4+34*c^2*d^4+41*a*d^5+25*b*d^5-28*c*d^5-31*d^6+22*a^5*e+a^4*b*e+27*a^3*b^2*e+5*a^2*b^3*e-33*a*b^4*e+2*b^5*e+20*a^4*c*e-30*a^3*b*c*e+11*a^2*b^2*c*e+44*a*b^3*c*e-37*b^4*c*e+a^3*c^2*e+7*a^2*b*c^2*e-20*a*b^2*c^2*e+34*b^3*c^2*e-35*a^2*c^3*e+28*a*b*c^3*e-50*b^2*c^3*e-11*a*c^4*e-26*b*c^4*e+c^5*e-37*a^4*d*e+23*a^3*b*d*e+50*a^2*b^2*d*e+35*a*b^3*d*e-4*b^4*d*e-15*a^3*c*d*e-39*a^2*b*c*d*e-50*a*b^2*c*d*e+47*b^3*c*d*e-38*a^2*c^2*d*e-42*a*b*c^2*d*e+43*b^2*c^2*d*e+24*a*c^3*d*e+31*b*c^3*d*e+41*c^4*d*e-15*a^3*d^2*e+20*a^2*b*d^2*e-24*a*b^2*d^2*e-47*b^3*d^2*e+4*a^2*c*d^2*e+42*a*b*c*d^2*e+20*b^2*c*d^2*e-37*a*c^2*d^2*e+42*b*c^2*d^2*e+6*c^3*d^2*e-45*a^2*d^3*e-7*a*b*d^3*e-37*b^2*d^3*e-34*a*c*d^3*e-44*b*c*d^3*e-c^2*d^3*e-29*a*d^4*e+22*b*d^4*e-27*c*d^4*e-34*d^5*e-13*a^4*e^2+48*a^3*b*e^2+22*a^2*b^2*e^2+30*a*b^3*e^2-10*b^4*e^2-2*a^3*c*e^2+10*a^2*b*c*e^2+23*a*b^2*c*e^2+27*b^3*c*e^2+15*a^2*c^2*e^2-a*b*c^2*e^2+33*b^2*c^2*e^2-13*a*c^3*e^2-13*b*c^3*e^2+44*c^4*e^2-34*a^3*d*e^2+7*a^2*b*d*e^2+a*b^2*d*e^2-50*b^3*d*e^2+23*a^2*c*d*e^2+12*a*b*c*d*e^2+50*b^2*c*d*e^2+29*a*c^2*d*e^2+41*b*c^2*d*e^2+22*c^3*d*e^2-20*a^2*d^2*e^2+4*a*b*d^2*e^2-33*b^2*d^2*e^2-38*a*c*d^2*e^2+47*b*c*d^2*e^2+21*c^2*d^2*e^2+18*b*d^3*e^2+44*c*d^3*e^2+31*d^4*e^2-3*a^3*e^3-32*a^2*b*e^3-45*a*b^2*e^3-20*b^3*e^3+29*a^2*c*e^3-35*a*b*c*e^3-11*b^2*c*e^3-13*a*c^2*e^3-38*b*c^2*e^3+17*c^3*e^3-41*a^2*d*e^3-36*a*b*d*e^3-6*b^2*d*e^3-14*a*c*d*e^3-16*b*c*d*e^3-6*c^2*d*e^3+20*a*d^2*e^3-29*b*d^2*e^3+50*c*d^2*e^3-37*d^3*e^3-27*a^2*e^4+15*a*b*e^4+46*b^2*e^4+39*a*c*e^4-26*b*c*e^4-10*c^2*e^4-40*a*d*e^4-5*b*d*e^4-23*c*d*e^4+36*d^2*e^4-21*a*e^5+4*b*e^5-48*c*e^5+38*d*e^5-36*e^6,
2915a^2*b*c^3+6*a^4*d^2-4*a^3*b*d^2+37*a^2*b^2*d^2+18*a*b^3*d^2-34*b^4*d^2+23*a^3*c*d^2-9*a^2*b*c*d^2-46*a*b^2*c*d^2+19*b^3*c*d^2+42*a^2*c^2*d^2-34*a*b*c^2*d^2-14*b^2*c^2*d^2-10*a*c^3*d^2+13*b*c^3*d^2+14*c^4*d^2-38*a^3*d^3-13*a^2*b*d^3+47*a*b^2*d^3-9*b^3*d^3-a^2*c*d^3+33*a*b*c*d^3+9*b^2*c*d^3+33*a*c^2*d^3+37*b*c^2*d^3+41*c^3*d^3+12*a^2*d^4-50*a*b*d^4+11*b^2*d^4-48*a*c*d^4+27*b*c*d^4-48*c^2*d^4-48*a*d^5-19*b*d^5+46*c*d^5+5*d^6+43*a^5*e-13*a^4*b*e-16*a^3*b^2*e+34*a^2*b^3*e+25*a*b^4*e+29*b^5*e-8*a^4*c*e-2*a^3*b*c*e+4*a^2*b^2*c*e+23*a*b^3*c*e+7*b^4*c*e-6*a^3*c^2*e-39*a^2*b*c^2*e-10*a*b^2*c^2*e+18*b^3*c^2*e-18*a^2*c^3*e+35*a*b*c^3*e+18*b^2*c^3*e-2*a*c^4*e+16*b*c^4*e-21*c^5*e-44*a^4*d*e-a^3*b*d*e+19*a^2*b^2*d*e+32*a*b^3*d*e+20*b^4*d*e+36*a^3*c*d*e+16*a^2*b*c*d*e+7*a*b^2*c*d*e+21*b^3*c*d*e+21*a^2*c^2*d*e-31*a*b*c^2*d*e+10*b^2*c^2*d*e-16*a*c^3*d*e+40*b*c^3*d*e-16*c^4*d*e-43*a^3*d^2*e+50*a^2*b*d^2*e-14*a*b^2*d^2*e-24*b^3*d^2*e-23*a^2*c*d^2*e-21*a*b*c*d^2*e-2*b^2*c*d^2*e+38*a*c^2*d^2*e+40*b*c^2*d^2*e+38*c^3*d^2*e-5*a^2*d^3*e+31*a*b*d^3*e-50*b^2*d^3*e+46*a*c*d^3*e-14*b*c*d^3*e+45*c^2*d^3*e-25*a*d^4*e-8*b*d^4*e+3*c*d^4*e+7*d^5*e-a^4*e^2-29*a^3*b*e^2-23*a^2*b^2*e^2+19*a*b^3*e^2-41*b^4*e^2+46*a^3*c*e^2-27*a^2*b*c*e^2-24*a*b^2*c*e^2+26*b^3*c*e^2+8*a^2*c^2*e^2-11*a*b*c^2*e^2-9*b^2*c^2*e^2+29*a*c^3*e^2+15*b*c^3*e^2-10*c^4*e^2-37*a^3*d*e^2+25*a^2*b*d*e^2-26*a*b^2*d*e^2+7*b^3*d*e^2-19*a^2*c*d*e^2-12*a*b*c*d*e^2+50*b^2*c*d*e^2-40*a*c^2*d*e^2-28*b*c^2*d*e^2+26*c^3*d*e^2+28*a^2*d^2*e^2+38*a*b*d^2*e^2+44*b^2*d^2*e^2-32*a*c*d^2*e^2-14*b*c*d^2*e^2+23*c^2*d^2*e^2+44*a*d^3*e^2+47*b*d^3*e^2+46*c*d^3*e^2+3*d^4*e^2-27*a^3*e^3+5*a^2*b*e^3-48*a*b^2*e^3+22*b^3*e^3+32*a^2*c*e^3+23*a*b*c*e^3+34*b^2*c*e^3+4*a*c^2*e^3-25*b*c^2*e^3+13*c^3*e^3+25*a^2*d*e^3-24*a*b*d*e^3+11*b^2*d*e^3+32*a*c*d*e^3-14*b*c*d*e^3+4*c^2*d*e^3+10*a*d^2*e^3-7*b*d^2*e^3+22*c*d^2*e^3-4*d^3*e^3+6*a^2*e^4+19*a*b*e^4+15*b^2*e^4+9*a*c*e^4-49*b*c*e^4+37*c^2*e^4-46*a*d*e^4+33*b*d*e^4+41*c*d*e^4-41*d^2*e^4+11*a*e^5-44*b*e^5+46*c*e^5+12*d*e^5-50*e^6,
2916a^3*c^3-8*a^4*d^2+24*a^3*b*d^2-28*a^2*b^2*d^2+27*a*b^3*d^2-17*b^4*d^2-40*a^3*c*d^2+28*a^2*b*c*d^2+2*a*b^2*c*d^2-18*b^3*c*d^2+45*a^2*c^2*d^2-13*a*b*c^2*d^2-14*b^2*c^2*d^2+35*a*c^3*d^2-32*b*c^3*d^2+2*c^4*d^2-27*a^3*d^3-41*a^2*b*d^3-36*a*b^2*d^3-50*b^3*d^3+23*a^2*c*d^3+25*a*b*c*d^3+22*b^2*c*d^3+15*a*c^2*d^3-36*b*c^2*d^3-43*c^3*d^3-26*a^2*d^4-43*a*b*d^4-25*b^2*d^4-14*a*c*d^4+32*b*c*d^4+25*c^2*d^4+23*a*d^5-32*b*d^5+28*c*d^5-24*d^6+4*a^5*e-15*a^4*b*e-45*a^3*b^2*e-47*a^2*b^3*e+50*a*b^4*e+3*b^5*e+41*a^4*c*e+45*a^2*b^2*c*e+7*a*b^3*c*e-41*b^4*c*e+13*a^3*c^2*e+5*a^2*b*c^2*e+33*a*b^2*c^2*e+35*b^3*c^2*e+9*a^2*c^3*e-4*a*b*c^3*e-43*b^2*c^3*e-8*a*c^4*e+10*b*c^4*e-17*c^5*e+24*a^4*d*e-6*a^3*b*d*e+22*a^2*b^2*d*e+3*a*b^3*d*e+31*b^4*d*e-24*a^3*c*d*e+10*a^2*b*c*d*e+28*a*b^2*c*d*e-28*b^3*c*d*e+49*a^2*c^2*d*e+17*a*b*c^2*d*e+21*b^2*c^2*d*e-29*a*c^3*d*e-18*b*c^3*d*e+18*c^4*d*e+46*a^3*d^2*e+27*a^2*b*d^2*e+5*a*b^2*d^2*e+17*b^3*d^2*e+42*a^2*c*d^2*e+37*a*b*c*d^2*e+48*b^2*c*d^2*e+34*a*c^2*d^2*e+35*b*c^2*d^2*e+8*c^3*d^2*e+a^2*d^3*e-27*a*b*d^3*e+31*b^2*d^3*e+16*a*c*d^3*e+49*b*c*d^3*e-c^2*d^3*e+3*a*d^4*e-22*b*d^4*e+50*c*d^4*e-18*d^5*e+26*a^4*e^2+23*a^3*b*e^2+23*a^2*b^2*e^2-47*a*b^3*e^2+32*b^4*e^2-5*a^3*c*e^2-10*a^2*b*c*e^2-32*a*b^2*c*e^2+21*b^3*c*e^2+50*a^2*c^2*e^2+9*a*b*c^2*e^2+39*b^2*c^2*e^2+24*a*c^3*e^2-15*b*c^3*e^2-12*c^4*e^2+25*a^3*d*e^2+39*a^2*b*d*e^2+34*a*b^2*d*e^2+9*b^3*d*e^2+4*a^2*c*d*e^2+45*a*b*c*d*e^2+14*b^2*c*d*e^2+24*a*c^2*d*e^2+25*b*c^2*d*e^2-33*c^3*d*e^2+43*a^2*d^2*e^2-27*a*b*d^2*e^2+19*b^2*d^2*e^2-20*a*c*d^2*e^2-35*b*c*d^2*e^2+45*c^2*d^2*e^2-17*a*d^3*e^2-48*b*d^3*e^2-25*c*d^3*e^2-19*d^4*e^2+44*a^3*e^3+10*a^2*b*e^3+21*a*b^2*e^3-42*b^3*e^3+40*a^2*c*e^3-50*a*b*c*e^3-9*a*c^2*e^3+39*b*c^2*e^3+25*c^3*e^3+23*a^2*d*e^3-14*a*b*d*e^3+16*b^2*d*e^3+16*a*c*d*e^3+43*b*c*d*e^3-13*c^2*d*e^3-9*a*d^2*e^3-7*b*d^2*e^3+26*c*d^2*e^3-44*d^3*e^3-24*a^2*e^4+34*a*b*e^4+41*b^2*e^4-9*a*c*e^4+13*b*c*e^4-37*c^2*e^4-20*a*d*e^4-37*b*d*e^4+29*c*d*e^4+34*d^2*e^4+45*a*e^5+8*b*e^5+7*d*e^5+e^6,
2917b^4*c^2-14*a^4*d^2-37*a^3*b*d^2+19*a^2*b^2*d^2+4*a*b^3*d^2+20*b^4*d^2+34*a^3*c*d^2+17*a^2*b*c*d^2-35*a*b^2*c*d^2-21*b^3*c*d^2+32*a^2*c^2*d^2-31*a*b*c^2*d^2+18*b^2*c^2*d^2+6*a*c^3*d^2+21*b*c^3*d^2+24*c^4*d^2-4*a^3*d^3+41*a^2*b*d^3-14*a*b^2*d^3+38*b^3*d^3-26*a^2*c*d^3-48*a*b*c*d^3-39*b^2*c*d^3+a*c^2*d^3+50*b*c^2*d^3-13*c^3*d^3+21*a^2*d^4-17*a*b*d^4+47*b^2*d^4+16*a*c*d^4+12*b*c*d^4+30*c^2*d^4+11*a*d^5-5*b*d^5-42*c*d^5-15*d^6+15*a^5*e-15*a^4*b*e+36*a^3*b^2*e-21*a^2*b^3*e-9*a*b^4*e-34*b^5*e-40*a^4*c*e+7*a^3*b*c*e-22*a^2*b^2*c*e+48*a*b^3*c*e-24*b^4*c*e-40*a^3*c^2*e+17*a^2*b*c^2*e-15*a*b^2*c^2*e+19*b^3*c^2*e-19*a^2*c^3*e-36*a*b*c^3*e+26*b^2*c^3*e-32*a*c^4*e-46*b*c^4*e+26*c^5*e-33*a^4*d*e+33*a^3*b*d*e+28*a^2*b^2*d*e+48*a*b^3*d*e-22*b^4*d*e+46*a^3*c*d*e+35*a^2*b*c*d*e-21*a*b^2*c*d*e+b^3*c*d*e+8*a^2*c^2*d*e+14*a*b*c^2*d*e+12*b^2*c^2*d*e-4*a*c^3*d*e+32*b*c^3*d*e-17*c^4*d*e-42*a^3*d^2*e-43*a^2*b*d^2*e+17*a*b^2*d^2*e+21*b^3*d^2*e-31*a^2*c*d^2*e-46*a*b*c*d^2*e-26*b^2*c*d^2*e+35*a*c^2*d^2*e+14*b*c^2*d^2*e-35*c^3*d^2*e-3*a^2*d^3*e+50*a*b*d^3*e+41*b^2*d^3*e+36*a*c*d^3*e+7*b*c*d^3*e+7*c^2*d^3*e+15*a*d^4*e-38*b*d^4*e-37*c*d^4*e-34*d^5*e+15*a^4*e^2+44*a^3*b*e^2+42*a^2*b^2*e^2+10*a*b^3*e^2-23*b^4*e^2+37*a^3*c*e^2+50*a^2*b*c*e^2+20*a*b^2*c*e^2-50*b^3*c*e^2-4*a^2*c^2*e^2-3*a*b*c^2*e^2-14*b^2*c^2*e^2-28*a*c^3*e^2-10*b*c^3*e^2-33*c^4*e^2-11*a^3*d*e^2-8*a^2*b*d*e^2-23*a*b^2*d*e^2-14*a^2*c*d*e^2+42*a*b*c*d*e^2-42*b^2*c*d*e^2-36*a*c^2*d*e^2+41*b*c^2*d*e^2-27*c^3*d*e^2+30*a^2*d^2*e^2+3*a*b*d^2*e^2+33*b^2*d^2*e^2-28*a*c*d^2*e^2-26*b*c*d^2*e^2+c^2*d^2*e^2+46*a*d^3*e^2+21*b*d^3*e^2-32*c*d^3*e^2-16*d^4*e^2-23*a^3*e^3+6*a^2*b*e^3+40*a*b^2*e^3-38*b^3*e^3+28*a^2*c*e^3-14*a*b*c*e^3+6*b^2*c*e^3+45*a*c^2*e^3+2*b*c^2*e^3-11*c^3*e^3+18*a^2*d*e^3+36*a*b*d*e^3-40*b^2*d*e^3-43*a*c*d*e^3+44*b*c*d*e^3-26*c^2*d*e^3+23*a*d^2*e^3+28*b*d^2*e^3+15*c*d^2*e^3-18*d^3*e^3-13*a^2*e^4-47*a*b*e^4-28*b^2*e^4-22*a*c*e^4+20*b*c*e^4+17*c^2*e^4+a*d*e^4+46*b*d*e^4-15*c*d*e^4+40*d^2*e^4+34*a*e^5-9*b*e^5-29*c*e^5+15*d*e^5+32*e^6,
2918a*b^3*c^2-37*a^4*d^2-46*a^3*b*d^2+11*a^2*b^2*d^2+21*a*b^3*d^2+21*b^4*d^2-23*a^3*c*d^2-3*a^2*b*c*d^2+3*a*b^2*c*d^2-32*b^3*c*d^2-37*a^2*c^2*d^2-36*a*b*c^2*d^2+37*b^2*c^2*d^2-6*a*c^3*d^2-34*b*c^3*d^2+48*c^4*d^2+28*a^3*d^3+43*a^2*b*d^3+43*a*b^2*d^3+17*b^3*d^3+26*a^2*c*d^3+33*a*b*c*d^3-2*b^2*c*d^3-21*a*c^2*d^3-14*b*c^2*d^3-39*c^3*d^3-a^2*d^4-22*a*b*d^4-39*b^2*d^4-35*a*c*d^4+13*b*c*d^4-24*c^2*d^4-11*a*d^5+16*b*d^5+30*c*d^5-22*d^6-22*a^5*e+19*a^4*b*e-15*a^3*b^2*e-8*a^2*b^3*e+14*a*b^4*e-5*b^5*e+6*a^4*c*e+6*a^3*b*c*e+46*a^2*b^2*c*e+39*a*b^3*c*e+21*b^4*c*e-22*a^3*c^2*e+26*a^2*b*c^2*e+24*a*b^2*c^2*e+10*b^3*c^2*e-23*a^2*c^3*e+26*a*b*c^3*e+b^2*c^3*e+39*a*c^4*e+35*b*c^4*e-19*c^5*e+17*a^4*d*e+38*a^3*b*d*e+9*a^2*b^2*d*e-19*a*b^3*d*e+42*b^4*d*e-11*a^3*c*d*e-6*a^2*b*c*d*e+10*a*b^2*c*d*e-10*b^3*c*d*e+41*a^2*c^2*d*e+10*a*b*c^2*d*e+46*b^2*c^2*d*e-33*a*c^3*d*e-6*b*c^3*d*e+11*c^4*d*e-33*a^3*d^2*e-22*a^2*b*d^2*e-6*a*b^2*d^2*e-11*b^3*d^2*e+34*a^2*c*d^2*e-39*a*b*c*d^2*e-45*b^2*c*d^2*e-17*a*c^2*d^2*e-8*b*c^2*d^2*e-41*c^3*d^2*e+13*a^2*d^3*e-11*a*b*d^3*e-13*b^2*d^3*e+3*a*c*d^3*e-28*b*c*d^3*e+33*c^2*d^3*e-8*a*d^4*e+24*b*d^4*e-34*c*d^4*e-7*d^5*e+26*a^4*e^2+12*a^3*b*e^2-20*a^2*b^2*e^2+5*a*b^3*e^2+30*b^4*e^2+6*a^3*c*e^2-45*a^2*b*c*e^2-49*a*b^2*c*e^2+43*b^3*c*e^2-29*a^2*c^2*e^2+4*a*b*c^2*e^2+17*b^2*c^2*e^2+13*a*c^3*e^2+21*b*c^3*e^2+16*c^4*e^2-25*a^3*d*e^2-7*a^2*b*d*e^2+42*a*b^2*d*e^2-44*b^3*d*e^2+19*a^2*c*d*e^2+5*a*b*c*d*e^2-38*b^2*c*d*e^2-17*a*c^2*d*e^2-15*b*c^2*d*e^2-26*c^3*d*e^2+47*a^2*d^2*e^2-42*a*b*d^2*e^2-26*b^2*d^2*e^2-50*a*c*d^2*e^2+25*b*c*d^2*e^2-3*c^2*d^2*e^2-47*a*d^3*e^2-40*b*d^3*e^2+24*c*d^3*e^2+35*d^4*e^2-22*a^3*e^3-5*a^2*b*e^3-10*a*b^2*e^3-7*b^3*e^3+6*a^2*c*e^3-16*a*b*c*e^3-28*b^2*c*e^3-43*a*c^2*e^3+24*b*c^2*e^3-9*c^3*e^3+42*a^2*d*e^3-12*a*b*d*e^3-29*b^2*d*e^3+35*a*c*d*e^3+27*b*c*d*e^3+40*c^2*d*e^3-17*a*d^2*e^3+29*b*d^2*e^3+38*c*d^2*e^3+13*d^3*e^3-23*a^2*e^4+32*a*b*e^4+5*b^2*e^4+11*a*c*e^4-b*c*e^4-37*c^2*e^4+3*a*d*e^4-3*b*d*e^4+37*c*d*e^4-28*d^2*e^4-33*a*e^5+18*b*e^5+45*c*e^5-11*d*e^5+42*e^6,
2919a^2*b^2*c^2+34*a^4*d^2+5*a^3*b*d^2-6*a^2*b^2*d^2-24*a*b^3*d^2+14*b^4*d^2+24*a^3*c*d^2-13*a^2*b*c*d^2+27*a*b^2*c*d^2+10*b^3*c*d^2-38*a^2*c^2*d^2+14*a*b*c^2*d^2+49*b^2*c^2*d^2+42*a*c^3*d^2-4*b*c^3*d^2+32*c^4*d^2+47*a^3*d^3+38*a^2*b*d^3+12*a*b^2*d^3-7*b^3*d^3+30*a^2*c*d^3+2*a*b*c*d^3+23*b^2*c*d^3-42*a*c^2*d^3+19*b*c^2*d^3-19*c^3*d^3-12*a^2*d^4+37*a*b*d^4+47*b^2*d^4+31*a*c*d^4+4*b*c*d^4-36*c^2*d^4-10*a*d^5-7*b*d^5+6*c*d^5-12*d^6-46*a^5*e-47*a^4*b*e+49*a^3*b^2*e+45*a^2*b^3*e+44*a*b^4*e+35*b^5*e+24*a^4*c*e+8*a^3*b*c*e-31*a^2*b^2*c*e+21*a*b^3*c*e+40*b^4*c*e-35*a^3*c^2*e+38*a^2*b*c^2*e+12*a*b^2*c^2*e-27*b^3*c^2*e+39*a^2*c^3*e-48*a*b*c^3*e+21*b^2*c^3*e+29*a*c^4*e-36*b*c^4*e-46*c^5*e-46*a^4*d*e+a^3*b*d*e+11*a^2*b^2*d*e+10*a*b^3*d*e-29*b^4*d*e-16*a^3*c*d*e-18*a^2*b*c*d*e+15*a*b^2*c*d*e-30*b^3*c*d*e-34*a^2*c^2*d*e+36*a*b*c^2*d*e+6*a*c^3*d*e-6*b*c^3*d*e+40*c^4*d*e+49*a^3*d^2*e-14*a^2*b*d^2*e-33*a*b^2*d^2*e+34*b^3*d^2*e-26*a^2*c*d^2*e-31*a*b*c*d^2*e-10*b^2*c*d^2*e+40*a*c^2*d^2*e+34*b*c^2*d^2*e+17*c^3*d^2*e-32*a^2*d^3*e-5*a*b*d^3*e-47*b^2*d^3*e-4*a*c*d^3*e+b*c*d^3*e+47*c^2*d^3*e+8*a*d^4*e+48*b*d^4*e-38*c*d^4*e+34*d^5*e-12*a^4*e^2+6*a^2*b^2*e^2-9*a*b^3*e^2-17*b^4*e^2-16*a^3*c*e^2-32*a^2*b*c*e^2+49*a*b^2*c*e^2+3*b^3*c*e^2+27*a^2*c^2*e^2-42*a*b*c^2*e^2-b^2*c^2*e^2+42*a*c^3*e^2+21*b*c^3*e^2-18*c^4*e^2-a^3*d*e^2+8*a^2*b*d*e^2+45*a*b^2*d*e^2+36*b^3*d*e^2+42*a^2*c*d*e^2-29*a*b*c*d*e^2+45*b^2*c*d*e^2-9*a*c^2*d*e^2-32*b*c^2*d*e^2-50*c^3*d*e^2-25*a^2*d^2*e^2+14*a*b*d^2*e^2-44*b^2*d^2*e^2-16*a*c*d^2*e^2+29*b*c*d^2*e^2+17*c^2*d^2*e^2-12*a*d^3*e^2+28*b*d^3*e^2+36*c*d^3*e^2+24*d^4*e^2+24*a^3*e^3-39*a^2*b*e^3-2*a*b^2*e^3-28*b^3*e^3+31*a^2*c*e^3-47*a*b*c*e^3-b^2*c*e^3-17*a*c^2*e^3+50*b*c^2*e^3-c^3*e^3-a^2*d*e^3+41*a*b*d*e^3-13*b^2*d*e^3-13*a*c*d*e^3+4*b*c*d*e^3+32*c^2*d*e^3-16*a*d^2*e^3-11*b*d^2*e^3+49*c*d^2*e^3+d^3*e^3+32*a^2*e^4-11*a*b*e^4+5*b^2*e^4+3*a*c*e^4-49*b*c*e^4+32*c^2*e^4-11*a*d*e^4-43*b*d*e^4+35*c*d*e^4-5*d^2*e^4+40*a*e^5+18*b*e^5+3*c*e^5+25*d*e^5+28*e^6,
2920a^3*b*c^2-30*a^4*d^2+28*a^3*b*d^2+41*a^2*b^2*d^2-11*a*b^3*d^2+27*b^4*d^2-36*a^3*c*d^2+27*a^2*b*c*d^2+50*a*b^2*c*d^2-34*b^3*c*d^2-21*a^2*c^2*d^2-6*a*b*c^2*d^2-8*b^2*c^2*d^2-14*a*c^3*d^2-35*b*c^3*d^2+21*c^4*d^2+37*a^3*d^3-14*a^2*b*d^3-41*a*b^2*d^3+30*b^3*d^3+35*a^2*c*d^3-28*a*b*c*d^3+26*b^2*c*d^3+19*a*c^2*d^3+b*c^2*d^3-5*c^3*d^3-29*a^2*d^4+25*a*b*d^4-38*b^2*d^4+50*a*c*d^4+10*b*c*d^4+30*c^2*d^4+31*a*d^5-49*b*d^5+39*c*d^5-40*d^6+16*a^5*e-47*a^4*b*e+39*a^3*b^2*e-41*a^2*b^3*e-27*a*b^4*e+10*b^5*e-20*a^4*c*e+23*a^3*b*c*e-39*a^2*b^2*c*e+28*a*b^3*c*e-16*b^4*c*e+20*a^3*c^2*e+22*a^2*b*c^2*e+45*a*b^2*c^2*e-b^3*c^2*e+37*a^2*c^3*e-3*a*b*c^3*e-49*b^2*c^3*e+8*a*c^4*e-3*b*c^4*e+41*c^5*e+33*a^4*d*e+35*a^3*b*d*e+10*a^2*b^2*d*e-42*a*b^3*d*e+14*b^4*d*e+a^3*c*d*e-28*a^2*b*c*d*e-26*a*b^2*c*d*e+35*b^3*c*d*e-24*a^2*c^2*d*e-3*a*b*c^2*d*e+20*b^2*c^2*d*e+a*c^3*d*e+8*b*c^3*d*e-41*c^4*d*e-12*a^3*d^2*e-43*a^2*b*d^2*e+32*a*b^2*d^2*e-26*b^3*d^2*e-37*a^2*c*d^2*e+50*a*b*c*d^2*e-21*b^2*c*d^2*e+46*a*c^2*d^2*e-26*b*c^2*d^2*e+41*c^3*d^2*e+39*a^2*d^3*e+6*a*b*d^3*e-34*b^2*d^3*e+13*a*c*d^3*e-12*b*c*d^3*e-7*c^2*d^3*e-31*a*d^4*e+19*b*d^4*e-22*c*d^4*e+44*d^5*e+15*a^4*e^2-24*a^3*b*e^2-23*a^2*b^2*e^2-25*a*b^3*e^2+21*b^4*e^2+28*a^3*c*e^2+32*a^2*b*c*e^2+6*a*b^2*c*e^2-6*b^3*c*e^2-32*a^2*c^2*e^2+37*a*b*c^2*e^2-15*b^2*c^2*e^2-3*a*c^3*e^2+5*b*c^3*e^2+33*c^4*e^2+50*a^3*d*e^2+46*a^2*b*d*e^2+3*a*b^2*d*e^2+11*b^3*d*e^2-6*a^2*c*d*e^2-26*a*b*c*d*e^2-26*b^2*c*d*e^2+49*a*c^2*d*e^2+48*b*c^2*d*e^2+14*c^3*d*e^2-11*a^2*d^2*e^2-49*a*b*d^2*e^2+37*b^2*d^2*e^2-20*a*c*d^2*e^2+10*b*c*d^2*e^2+22*c^2*d^2*e^2+46*a*d^3*e^2+3*b*d^3*e^2+24*c*d^3*e^2-49*d^4*e^2-31*a^3*e^3+35*a^2*b*e^3-38*a*b^2*e^3+4*b^3*e^3-10*a^2*c*e^3+a*b*c*e^3-15*b^2*c*e^3-8*a*c^2*e^3-18*b*c^2*e^3-26*c^3*e^3+26*a^2*d*e^3+23*a*b*d*e^3+4*b^2*d*e^3-37*a*c*d*e^3+49*b*c*d*e^3-9*c^2*d*e^3-39*a*d^2*e^3+44*b*d^2*e^3+44*c*d^2*e^3+6*d^3*e^3+49*a^2*e^4+23*a*b*e^4+15*a*c*e^4-10*b*c*e^4+24*c^2*e^4+23*a*d*e^4-34*b*d*e^4-9*c*d*e^4-11*d^2*e^4+49*a*e^5+32*b*e^5-12*c*e^5+32*d*e^5+13*e^6,
2921a^4*c^2-10*a^4*d^2+38*a^3*b*d^2-a^2*b^2*d^2+6*a*b^3*d^2+39*b^4*d^2-11*a^3*c*d^2+9*a^2*b*c*d^2+21*a*b^2*c*d^2-13*b^3*c*d^2+22*a^2*c^2*d^2+33*a*b*c^2*d^2-19*b^2*c^2*d^2-18*a*c^3*d^2-38*b*c^3*d^2-50*c^4*d^2-11*a^3*d^3-41*a^2*b*d^3-9*a*b^2*d^3-40*b^3*d^3-8*a^2*c*d^3+49*a*b*c*d^3+34*b^2*c*d^3+36*a*c^2*d^3-37*b*c^2*d^3+14*c^3*d^3-2*a^2*d^4+34*a*b*d^4+47*b^2*d^4+47*a*c*d^4-20*b*c*d^4-13*c^2*d^4+6*a*d^5-31*b*d^5+28*c*d^5-31*d^6-3*a^5*e+39*a^4*b*e+16*a^3*b^2*e+16*a^2*b^3*e+9*a*b^4*e+37*b^5*e-39*a^4*c*e+5*a^3*b*c*e+36*a^2*b^2*c*e-7*a*b^3*c*e+16*b^4*c*e-43*a^3*c^2*e-5*a^2*b*c^2*e+30*a*b^2*c^2*e+12*b^3*c^2*e-26*a^2*c^3*e+45*a*b*c^3*e+9*b^2*c^3*e+17*a*c^4*e-19*b*c^4*e-6*c^5*e-47*a^4*d*e-33*a^3*b*d*e+12*a^2*b^2*d*e+4*a*b^3*d*e+33*b^4*d*e+3*a^3*c*d*e-33*a^2*b*c*d*e-13*a*b^2*c*d*e+28*b^3*c*d*e-46*a^2*c^2*d*e-32*a*b*c^2*d*e+26*b^2*c^2*d*e-14*a*c^3*d*e+8*b*c^3*d*e-40*c^4*d*e+38*a^3*d^2*e-29*a^2*b*d^2*e+45*a*b^2*d^2*e+6*b^3*d^2*e-34*a^2*c*d^2*e-15*a*b*c*d^2*e-20*b^2*c*d^2*e-24*a*c^2*d^2*e-5*b*c^2*d^2*e-36*c^3*d^2*e+17*a^2*d^3*e-17*a*b*d^3*e-18*b^2*d^3*e+44*a*c*d^3*e+11*b*c*d^3*e-14*c^2*d^3*e-31*a*d^4*e-39*b*d^4*e-48*c*d^4*e+20*d^5*e+a^4*e^2-8*a^3*b*e^2+13*a^2*b^2*e^2-18*a*b^3*e^2-28*b^4*e^2-26*a^3*c*e^2+21*a^2*b*c*e^2-12*a*b^2*c*e^2-46*b^3*c*e^2-45*a^2*c^2*e^2+32*a*b*c^2*e^2-9*b^2*c^2*e^2+36*a*c^3*e^2+38*b*c^3*e^2-15*c^4*e^2-21*a^3*d*e^2+25*a^2*b*d*e^2-6*a*b^2*d*e^2+2*b^3*d*e^2-21*a*b*c*d*e^2+38*b^2*c*d*e^2-3*a*c^2*d*e^2-29*b*c^2*d*e^2-9*c^3*d*e^2-20*a^2*d^2*e^2+32*a*b*d^2*e^2-12*b^2*d^2*e^2-21*a*c*d^2*e^2-b*c*d^2*e^2-31*c^2*d^2*e^2-24*a*d^3*e^2-16*b*d^3*e^2+47*c*d^3*e^2+41*d^4*e^2-12*a^3*e^3-38*a^2*b*e^3-23*a*b^2*e^3+44*b^3*e^3-7*a^2*c*e^3+28*a*b*c*e^3+42*b^2*c*e^3+10*a*c^2*e^3-12*b*c^2*e^3-7*c^3*e^3+33*a^2*d*e^3+37*a*b*d*e^3+39*b^2*d*e^3-43*a*c*d*e^3-21*b*c*d*e^3+20*c^2*d*e^3+48*a*d^2*e^3+25*b*d^2*e^3-20*c*d^2*e^3+35*d^3*e^3+a^2*e^4+40*a*b*e^4+23*b^2*e^4+45*a*c*e^4-4*b*c*e^4-15*c^2*e^4+42*a*d*e^4-49*b*d*e^4-28*c*d*e^4-8*d^2*e^4-38*a*e^5-12*b*e^5+42*c*e^5+11*d*e^5+45*e^6,
2922b^5*c+40*a^4*d^2-47*a^3*b*d^2+16*a^2*b^2*d^2+18*a*b^3*d^2+33*b^4*d^2+9*a^3*c*d^2-38*a^2*b*c*d^2-22*a*b^2*c*d^2+8*b^3*c*d^2-21*a^2*c^2*d^2-2*a*b*c^2*d^2+33*b^2*c^2*d^2+5*a*c^3*d^2-50*b*c^3*d^2-35*c^4*d^2+29*a^3*d^3+25*a^2*b*d^3-38*a*b^2*d^3+17*b^3*d^3-32*a^2*c*d^3-44*a*b*c*d^3-20*b^2*c*d^3-26*a*c^2*d^3-37*b*c^2*d^3+47*c^3*d^3+19*a^2*d^4-34*a*b*d^4-20*b^2*d^4+31*a*c*d^4-14*b*c*d^4-37*c^2*d^4-37*a*d^5+7*b*d^5-42*c*d^5+16*d^6-23*a^5*e-48*a^3*b^2*e-41*a^2*b^3*e+6*a*b^4*e+49*a^4*c*e+34*a^3*b*c*e-8*a^2*b^2*c*e+17*a*b^3*c*e+39*b^4*c*e+2*a^3*c^2*e+42*a^2*b*c^2*e+21*a*b^2*c^2*e-8*b^3*c^2*e-11*a^2*c^3*e+50*a*b*c^3*e+25*b^2*c^3*e-46*a*c^4*e-4*b*c^4*e-10*c^5*e+12*a^4*d*e+9*a^3*b*d*e-46*a^2*b^2*d*e-12*a*b^3*d*e-44*b^4*d*e-35*a^3*c*d*e-46*a^2*b*c*d*e+17*a*b^2*c*d*e+48*b^3*c*d*e-28*a^2*c^2*d*e-50*a*b*c^2*d*e-46*b^2*c^2*d*e+4*a*c^3*d*e-41*b*c^3*d*e-8*c^4*d*e+42*a^3*d^2*e+39*a^2*b*d^2*e+27*a*b^2*d^2*e-40*b^3*d^2*e-8*a^2*c*d^2*e+40*a*b*c*d^2*e-20*b^2*c*d^2*e+35*a*c^2*d^2*e-26*b*c^2*d^2*e-2*c^3*d^2*e-14*a^2*d^3*e-34*a*b*d^3*e-24*b^2*d^3*e+22*a*c*d^3*e+45*b*c*d^3*e-9*c^2*d^3*e-38*a*d^4*e-14*b*d^4*e+50*c*d^4*e-49*d^5*e-23*a^4*e^2-10*a^3*b*e^2-4*a^2*b^2*e^2+49*a*b^3*e^2+28*b^4*e^2-50*a^3*c*e^2+38*a^2*b*c*e^2+26*a*b^2*c*e^2-44*b^3*c*e^2+3*a^2*c^2*e^2+46*a*b*c^2*e^2+42*b^2*c^2*e^2+9*a*c^3*e^2+18*b*c^3*e^2-9*c^4*e^2+16*a^3*d*e^2-42*a^2*b*d*e^2+37*a*b^2*d*e^2-10*b^3*d*e^2-41*a^2*c*d*e^2-5*a*b*c*d*e^2+19*b^2*c*d*e^2+17*a*c^2*d*e^2-19*b*c^2*d*e^2+16*c^3*d*e^2+21*a^2*d^2*e^2-17*a*b*d^2*e^2-15*b^2*d^2*e^2-49*a*c*d^2*e^2+36*b*c*d^2*e^2-41*c^2*d^2*e^2+37*a*d^3*e^2-13*b*d^3*e^2-27*c*d^3*e^2-37*d^4*e^2+37*a^3*e^3-50*a^2*b*e^3+21*a*b^2*e^3+14*b^3*e^3-16*a^2*c*e^3+24*a*b*c*e^3-44*b^2*c*e^3+18*b*c^2*e^3+3*c^3*e^3-38*a^2*d*e^3+41*a*b*d*e^3+29*b^2*d*e^3-9*a*c*d*e^3+9*b*c*d*e^3-39*c^2*d*e^3+42*a*d^2*e^3+22*b*d^2*e^3+18*c*d^2*e^3+35*d^3*e^3+43*a^2*e^4+5*a*b*e^4+5*b^2*e^4+16*a*c*e^4-37*b*c*e^4+20*c^2*e^4-10*a*d*e^4+45*b*d*e^4-46*c*d*e^4+42*d^2*e^4+14*a*e^5+15*b*e^5+38*c*e^5+49*d*e^5+3*e^6,
2923a*b^4*c+32*a^4*d^2+43*a^3*b*d^2+49*a^2*b^2*d^2+38*a*b^3*d^2+47*b^4*d^2+19*a^3*c*d^2+43*a^2*b*c*d^2-25*a*b^2*c*d^2+25*b^3*c*d^2+26*a^2*c^2*d^2-5*a*b*c^2*d^2-19*b^2*c^2*d^2+33*a*c^3*d^2-3*b*c^3*d^2-37*c^4*d^2+18*a^3*d^3-27*a^2*b*d^3-33*a*b^2*d^3-49*b^3*d^3+48*a^2*c*d^3-12*a*b*c*d^3+17*b^2*c*d^3+6*a*c^2*d^3-36*b*c^2*d^3+36*c^3*d^3+a^2*d^4-12*b^2*d^4-3*a*c*d^4-43*b*c*d^4-24*c^2*d^4-14*a*d^5-43*b*d^5-20*c*d^5+24*d^6-42*a^5*e-48*a^4*b*e+29*a^3*b^2*e-29*a^2*b^3*e-37*a*b^4*e+b^5*e-31*a^4*c*e+35*a^3*b*c*e+9*a^2*b^2*c*e-17*a*b^3*c*e-34*b^4*c*e+42*a^3*c^2*e-47*a^2*b*c^2*e+31*a*b^2*c^2*e+9*b^3*c^2*e+48*a^2*c^3*e-15*a*b*c^3*e+34*b^2*c^3*e+15*a*c^4*e-23*b*c^4*e+45*c^5*e-12*a^4*d*e+42*a^3*b*d*e-15*a^2*b^2*d*e-14*a*b^3*d*e+33*b^4*d*e-41*a^3*c*d*e+9*a^2*b*c*d*e+15*a*b^2*c*d*e-44*b^3*c*d*e-32*a^2*c^2*d*e+9*a*b*c^2*d*e+22*b^2*c^2*d*e-23*a*c^3*d*e+43*b*c^3*d*e-37*c^4*d*e+19*a^3*d^2*e-47*a^2*b*d^2*e+39*a*b^2*d^2*e-24*b^3*d^2*e-44*a^2*c*d^2*e-27*a*b*c*d^2*e-30*b^2*c*d^2*e-19*a*c^2*d^2*e-28*b*c^2*d^2*e-30*c^3*d^2*e-41*a^2*d^3*e+17*a*b*d^3*e-30*b^2*d^3*e+3*a*c*d^3*e+50*b*c*d^3*e+47*c^2*d^3*e+47*a*d^4*e-40*b*d^4*e+3*c*d^4*e+28*d^5*e-35*a^4*e^2+23*a^3*b*e^2+2*a^2*b^2*e^2-17*a*b^3*e^2-22*b^4*e^2+35*a^3*c*e^2-38*a^2*b*c*e^2-7*a*b^2*c*e^2-12*b^3*c*e^2+38*a^2*c^2*e^2-12*a*b*c^2*e^2+13*b^2*c^2*e^2+19*b*c^3*e^2-25*c^4*e^2-45*a^3*d*e^2-35*a^2*b*d*e^2+41*a*b^2*d*e^2+10*b^3*d*e^2+17*a^2*c*d*e^2-10*a*b*c*d*e^2-42*b^2*c*d*e^2+13*a*c^2*d*e^2-3*b*c^2*d*e^2-42*c^3*d*e^2-2*a^2*d^2*e^2-7*a*b*d^2*e^2+46*b^2*d^2*e^2+43*a*c*d^2*e^2+29*b*c*d^2*e^2+19*c^2*d^2*e^2-26*a*d^3*e^2+28*b*d^3*e^2+27*c*d^3*e^2+32*d^4*e^2+49*a^3*e^3+48*a^2*b*e^3+34*a*b^2*e^3-48*b^3*e^3+12*a^2*c*e^3+30*a*b*c*e^3+18*b^2*c*e^3-50*a*c^2*e^3+13*b*c^2*e^3+48*c^3*e^3+17*a^2*d*e^3+22*a*b*d*e^3-6*b^2*d*e^3-40*a*c*d*e^3-33*b*c*d*e^3-2*c^2*d*e^3-48*a*d^2*e^3-7*b*d^2*e^3+32*c*d^2*e^3-31*d^3*e^3+46*a^2*e^4+17*a*b*e^4+14*b^2*e^4+8*a*c*e^4-43*b*c*e^4+24*a*d*e^4-41*b*d*e^4-35*c*d*e^4-44*d^2*e^4-29*a*e^5+11*b*e^5+50*c*e^5-32*d*e^5+23*e^6,
2924a^2*b^3*c-22*a^4*d^2+38*a^3*b*d^2+10*a^2*b^2*d^2-31*a*b^3*d^2+42*b^4*d^2-7*a^3*c*d^2-47*a^2*b*c*d^2+37*a*b^2*c*d^2-23*b^3*c*d^2-43*a^2*c^2*d^2+38*a*b*c^2*d^2+18*b^2*c^2*d^2+18*a*c^3*d^2+25*b*c^3*d^2+4*c^4*d^2+36*a^3*d^3-21*a^2*b*d^3+35*a*b^2*d^3+28*b^3*d^3+13*a^2*c*d^3+36*a*b*c*d^3-33*b^2*c*d^3+9*a*c^2*d^3+18*b*c^2*d^3-49*c^3*d^3-5*a^2*d^4-8*a*b*d^4-34*b^2*d^4-43*a*c*d^4-47*b*c*d^4-12*c^2*d^4+34*a*d^5+50*b*d^5-13*c*d^5-20*d^6+29*a^5*e-10*a^4*b*e+17*a^3*b^2*e+7*a^2*b^3*e+45*a*b^4*e-23*b^5*e+41*a^4*c*e+31*a^3*b*c*e+9*a^2*b^2*c*e+3*a*b^3*c*e-11*b^4*c*e+6*a^3*c^2*e+11*a^2*b*c^2*e-42*a*b^2*c^2*e+17*b^3*c^2*e+5*a^2*c^3*e-44*a*b*c^3*e-44*b^2*c^3*e+42*a*c^4*e-29*b*c^4*e+6*c^5*e+7*a^4*d*e-50*a^3*b*d*e+29*a^2*b^2*d*e-42*a*b^3*d*e-25*b^4*d*e-5*a^3*c*d*e-33*a^2*b*c*d*e+36*a*b^2*c*d*e+47*b^3*c*d*e-41*a^2*c^2*d*e+4*a*b*c^2*d*e+44*b^2*c^2*d*e-10*a*c^3*d*e-2*b*c^3*d*e+20*c^4*d*e+21*a^3*d^2*e+6*a^2*b*d^2*e-50*a*b^2*d^2*e+35*b^3*d^2*e-8*a^2*c*d^2*e-17*a*b*c*d^2*e+7*b^2*c*d^2*e+35*a*c^2*d^2*e+28*b*c^2*d^2*e+25*c^3*d^2*e-6*a^2*d^3*e-16*a*b*d^3*e+35*b^2*d^3*e-12*a*c*d^3*e+46*b*c*d^3*e+7*c^2*d^3*e+16*a*d^4*e-24*b*d^4*e+32*c*d^4*e-26*d^5*e+6*a^4*e^2+48*a^3*b*e^2-27*a^2*b^2*e^2+15*a*b^3*e^2-15*b^4*e^2-25*a^3*c*e^2+39*a^2*b*c*e^2-21*a*b^2*c*e^2-8*b^3*c*e^2+15*a^2*c^2*e^2+31*a*b*c^2*e^2+33*b^2*c^2*e^2-31*a*c^3*e^2-27*b*c^3*e^2-16*c^4*e^2+41*a^3*d*e^2-17*a^2*b*d*e^2-25*a*b^2*d*e^2-3*b^3*d*e^2+6*a^2*c*d*e^2-24*a*b*c*d*e^2+b^2*c*d*e^2-a*c^2*d*e^2-15*b*c^2*d*e^2+16*c^3*d*e^2+42*a^2*d^2*e^2+6*a*b*d^2*e^2-25*b^2*d^2*e^2+21*a*c*d^2*e^2+48*b*c*d^2*e^2-10*c^2*d^2*e^2+31*b*d^3*e^2-32*c*d^3*e^2+2*d^4*e^2+35*a^3*e^3+42*a^2*b*e^3+10*a*b^2*e^3-38*b^3*e^3+32*a^2*c*e^3+34*a*b*c*e^3+14*b^2*c*e^3-7*a*c^2*e^3+22*b*c^2*e^3+37*c^3*e^3+2*a^2*d*e^3-42*a*b*d*e^3-6*b^2*d*e^3-9*a*c*d*e^3+22*b*c*d*e^3+19*c^2*d*e^3-21*a*d^2*e^3-37*b*d^2*e^3+43*c*d^2*e^3-36*d^3*e^3+16*a^2*e^4-21*a*b*e^4+44*b^2*e^4-48*a*c*e^4+35*b*c*e^4-25*c^2*e^4+15*a*d*e^4+42*b*d*e^4-27*c*d*e^4+27*d^2*e^4-25*a*e^5-12*b*e^5+20*c*e^5+7*d*e^5+3*e^6,
2925a^3*b^2*c-24*a^4*d^2+20*a^3*b*d^2+24*a^2*b^2*d^2-29*a*b^3*d^2-24*b^4*d^2+13*a^3*c*d^2+31*a*b^2*c*d^2-26*b^3*c*d^2-29*a^2*c^2*d^2-27*a*b*c^2*d^2+4*b^2*c^2*d^2+23*a*c^3*d^2+42*b*c^3*d^2-47*c^4*d^2+50*a^3*d^3+48*a^2*b*d^3-22*a*b^2*d^3+16*b^3*d^3-46*a^2*c*d^3-43*a*b*c*d^3+50*b^2*c*d^3-35*a*c^2*d^3-29*b*c^2*d^3-12*c^3*d^3+23*a^2*d^4+31*a*b*d^4+22*b^2*d^4-27*a*c*d^4-25*b*c*d^4-41*c^2*d^4+42*a*d^5-50*b*d^5+33*c*d^5+11*d^6+19*a^5*e-22*a^4*b*e+33*a^3*b^2*e+43*a^2*b^3*e+43*a*b^4*e-5*b^5*e-14*a^4*c*e-46*a^3*b*c*e-21*a^2*b^2*c*e+29*a*b^3*c*e+15*b^4*c*e+12*a^3*c^2*e-a^2*b*c^2*e-43*a*b^2*c^2*e+48*b^3*c^2*e+26*a^2*c^3*e-46*a*b*c^3*e-35*b^2*c^3*e+a*c^4*e+16*b*c^4*e+6*c^5*e-47*a^4*d*e-a^3*b*d*e+a^2*b^2*d*e-32*a*b^3*d*e-19*b^4*d*e-44*a^3*c*d*e+22*a^2*b*c*d*e+40*a*b^2*c*d*e-19*b^3*c*d*e+12*a^2*c^2*d*e-a*b*c^2*d*e-23*b^2*c^2*d*e-11*a*c^3*d*e-26*b*c^3*d*e-4*c^4*d*e-32*a^3*d^2*e-13*a^2*b*d^2*e-b^3*d^2*e+8*a^2*c*d^2*e-28*a*b*c*d^2*e+46*b^2*c*d^2*e-24*a*c^2*d^2*e+26*b*c^2*d^2*e+27*c^3*d^2*e+12*a^2*d^3*e+10*a*b*d^3*e-32*b^2*d^3*e-12*a*c*d^3*e-30*b*c*d^3*e+50*c^2*d^3*e+6*a*d^4*e+32*b*d^4*e+6*c*d^4*e-48*d^5*e+14*a^4*e^2+48*a^3*b*e^2+16*a^2*b^2*e^2+34*a*b^3*e^2+39*b^4*e^2+2*a^3*c*e^2+5*a^2*b*c*e^2-11*a*b^2*c*e^2-4*b^3*c*e^2-39*a^2*c^2*e^2+46*a*b*c^2*e^2-16*b^2*c^2*e^2-46*a*c^3*e^2-b*c^3*e^2+47*c^4*e^2-3*a^3*d*e^2-48*a^2*b*d*e^2-34*a*b^2*d*e^2+19*b^3*d*e^2+46*a^2*c*d*e^2-49*a*b*c*d*e^2-45*b^2*c*d*e^2-4*a*c^2*d*e^2+33*b*c^2*d*e^2-8*c^3*d*e^2-39*a^2*d^2*e^2-34*a*b*d^2*e^2+9*b^2*d^2*e^2-15*a*c*d^2*e^2+b*c*d^2*e^2+44*c^2*d^2*e^2-39*a*d^3*e^2+10*b*d^3*e^2+9*c*d^3*e^2-6*d^4*e^2-7*a^3*e^3+2*a^2*b*e^3+39*a*b^2*e^3+4*b^3*e^3-49*a^2*c*e^3+48*a*b*c*e^3+b^2*c*e^3+28*a*c^2*e^3-29*b*c^2*e^3-7*c^3*e^3+23*a^2*d*e^3+16*a*b*d*e^3+24*b^2*d*e^3-47*a*c*d*e^3+20*b*c*d*e^3+26*c^2*d*e^3+9*a*d^2*e^3+49*b*d^2*e^3+32*c*d^2*e^3+33*d^3*e^3-3*a^2*e^4+48*a*b*e^4-18*b^2*e^4-43*a*c*e^4-14*b*c*e^4-29*c^2*e^4+49*a*d*e^4-49*b*d*e^4-18*c*d*e^4-18*d^2*e^4+45*a*e^5-40*b*e^5-13*c*e^5+3*d*e^5+5*e^6,
2926a^4*b*c-38*a^4*d^2+23*a^3*b*d^2-28*a^2*b^2*d^2-49*a*b^3*d^2-37*b^4*d^2+46*a^3*c*d^2-39*a^2*b*c*d^2+31*a*b^2*c*d^2+43*b^3*c*d^2+40*a^2*c^2*d^2-30*a*b*c^2*d^2-7*b^2*c^2*d^2+32*a*c^3*d^2+50*b*c^3*d^2+13*c^4*d^2-9*a^3*d^3+23*a^2*b*d^3-12*a*b^2*d^3-42*b^3*d^3+4*a^2*c*d^3-3*a*b*c*d^3+50*b^2*c*d^3+16*a*c^2*d^3+40*b*c^2*d^3-23*c^3*d^3+39*a^2*d^4+35*a*b*d^4-45*b^2*d^4+45*a*c*d^4-15*b*c*d^4-26*c^2*d^4+29*a*d^5+37*b*d^5+3*c*d^5-22*d^6-8*a^5*e+15*a^4*b*e+19*a^3*b^2*e-12*a^2*b^3*e+22*a*b^4*e-48*b^5*e+32*a^4*c*e+48*a^3*b*c*e-14*a^2*b^2*c*e+43*a*b^3*c*e-23*b^4*c*e-36*a^3*c^2*e+36*a^2*b*c^2*e+15*a*b^2*c^2*e-34*b^3*c^2*e-16*a^2*c^3*e+20*a*b*c^3*e-23*b^2*c^3*e+39*a*c^4*e-37*b*c^4*e+43*c^5*e+30*a^4*d*e-38*a^3*b*d*e-25*a^2*b^2*d*e-5*a*b^3*d*e-24*b^4*d*e+5*a^3*c*d*e-47*a^2*b*c*d*e-17*a*b^2*c*d*e+30*b^3*c*d*e-a^2*c^2*d*e-43*a*b*c^2*d*e-6*b^2*c^2*d*e-46*a*c^3*d*e-37*b*c^3*d*e-43*c^4*d*e+48*a^3*d^2*e+20*a^2*b*d^2*e+21*a*b^2*d^2*e+35*b^3*d^2*e-47*a^2*c*d^2*e+27*a*b*c*d^2*e+b^2*c*d^2*e+7*a*c^2*d^2*e-11*b*c^2*d^2*e+46*c^3*d^2*e+40*a^2*d^3*e+43*a*b*d^3*e-31*b^2*d^3*e+22*a*c*d^3*e+2*b*c*d^3*e-18*c^2*d^3*e+35*a*d^4*e+31*b*d^4*e-48*c*d^4*e+43*d^5*e+16*a^4*e^2+27*a^3*b*e^2-28*a^2*b^2*e^2-13*a*b^3*e^2+17*b^4*e^2-34*a^3*c*e^2+12*a^2*b*c*e^2-25*a*b^2*c*e^2+7*b^3*c*e^2-19*a^2*c^2*e^2-31*a*b*c^2*e^2+22*b^2*c^2*e^2-45*a*c^3*e^2-25*b*c^3*e^2+7*c^4*e^2-9*a^3*d*e^2-3*a^2*b*d*e^2+20*a*b^2*d*e^2+28*b^3*d*e^2+41*a^2*c*d*e^2-2*a*b*c*d*e^2+8*b^2*c*d*e^2-20*a*c^2*d*e^2+35*b*c^2*d*e^2-11*c^3*d*e^2-27*a^2*d^2*e^2-29*a*b*d^2*e^2+28*b^2*d^2*e^2+10*a*c*d^2*e^2-8*b*c*d^2*e^2+13*c^2*d^2*e^2-32*a*d^3*e^2+23*b*d^3*e^2-50*c*d^3*e^2+20*d^4*e^2+49*a^3*e^3+9*a^2*b*e^3+27*a*b^2*e^3-15*b^3*e^3-38*a^2*c*e^3+26*a*b*c*e^3-47*b^2*c*e^3+10*a*c^2*e^3-21*b*c^2*e^3+2*c^3*e^3+7*a^2*d*e^3-8*a*b*d*e^3-25*b^2*d*e^3+15*a*c*d*e^3+17*b*c*d*e^3-39*c^2*d*e^3+7*a*d^2*e^3-47*b*d^2*e^3+6*c*d^2*e^3+5*d^3*e^3+21*a^2*e^4-49*a*b*e^4-35*b^2*e^4+32*a*c*e^4-16*b*c*e^4+7*c^2*e^4-25*a*d*e^4+30*b*d*e^4-31*c*d*e^4-21*d^2*e^4+42*a*e^5-b*e^5+14*c*e^5+18*d*e^5+28*e^6,
2927a^5*c-2*a^4*d^2-22*a^3*b*d^2-38*a^2*b^2*d^2+10*a*b^3*d^2+32*b^4*d^2-28*a^3*c*d^2+11*a^2*b*c*d^2-12*a*b^2*c*d^2-39*b^3*c*d^2+43*a^2*c^2*d^2+39*a*b*c^2*d^2-24*b^2*c^2*d^2+27*a*c^3*d^2+47*b*c^3*d^2+9*c^4*d^2+12*a^3*d^3+34*a^2*b*d^3-37*a*b^2*d^3+18*b^3*d^3+45*a^2*c*d^3+21*a*b*c*d^3+29*b^2*c*d^3+31*a*c^2*d^3+23*b*c^2*d^3+44*c^3*d^3-19*a^2*d^4+32*a*b*d^4+46*b^2*d^4+27*a*c*d^4+8*b*c*d^4-20*c^2*d^4-35*a*d^5-21*b*d^5+15*c*d^5-45*d^6-38*a^5*e-35*a^4*b*e-28*a^3*b^2*e-30*a^2*b^3*e-19*a*b^4*e-49*b^5*e+34*a^4*c*e-2*a^3*b*c*e-16*a^2*b^2*c*e-8*a*b^3*c*e-10*b^4*c*e-22*a^3*c^2*e+50*a^2*b*c^2*e-29*a*b^2*c^2*e-19*b^3*c^2*e+39*a^2*c^3*e-4*a*b*c^3*e-36*b^2*c^3*e-24*a*c^4*e-2*b*c^4*e-12*c^5*e-22*a^4*d*e-22*a^3*b*d*e-a^2*b^2*d*e-42*a*b^3*d*e-10*b^4*d*e-7*a^3*c*d*e-6*a^2*b*c*d*e+5*a*b^2*c*d*e+36*b^3*c*d*e-5*a^2*c^2*d*e-21*a*b*c^2*d*e-14*b^2*c^2*d*e-21*a*c^3*d*e+18*b*c^3*d*e+49*c^4*d*e-32*a^3*d^2*e-5*a^2*b*d^2*e-45*a*b^2*d^2*e+6*b^3*d^2*e-40*a*b*c*d^2*e-17*b^2*c*d^2*e-47*a*c^2*d^2*e+12*b*c^2*d^2*e-18*c^3*d^2*e-a^2*d^3*e+6*a*b*d^3*e+2*b^2*d^3*e-29*a*c*d^3*e+15*b*c*d^3*e+21*c^2*d^3*e-36*a*d^4*e-7*b*d^4*e+c*d^4*e-23*d^5*e-24*a^4*e^2+47*a^3*b*e^2+19*a^2*b^2*e^2-44*a*b^3*e^2-13*b^4*e^2+49*a^3*c*e^2+39*a^2*b*c*e^2+44*a*b^2*c*e^2+41*b^3*c*e^2-29*a^2*c^2*e^2+24*a*b*c^2*e^2+34*a*c^3*e^2+14*b*c^3*e^2+7*c^4*e^2+44*a^3*d*e^2+22*a^2*b*d*e^2+41*a*b^2*d*e^2+21*a^2*c*d*e^2+12*a*b*c*d*e^2-33*b^2*c*d*e^2-40*a*c^2*d*e^2+16*b*c^2*d*e^2-36*c^3*d*e^2+13*a^2*d^2*e^2-22*a*b*d^2*e^2+28*b^2*d^2*e^2+29*a*c*d^2*e^2+50*b*c*d^2*e^2+48*c^2*d^2*e^2+40*a*d^3*e^2+2*c*d^3*e^2-5*d^4*e^2-37*a^3*e^3+49*a^2*b*e^3-10*a*b^2*e^3-41*b^3*e^3+11*a^2*c*e^3-37*a*b*c*e^3+26*b^2*c*e^3-39*a*c^2*e^3-46*b*c^2*e^3-3*c^3*e^3+47*a^2*d*e^3+5*a*b*d*e^3-45*b^2*d*e^3+28*a*c*d*e^3+22*b*c*d*e^3+29*c^2*d*e^3+11*a*d^2*e^3+21*b*d^2*e^3+14*c*d^2*e^3+14*d^3*e^3+32*a^2*e^4-27*a*b*e^4-47*b^2*e^4-6*b*c*e^4-38*c^2*e^4-38*a*d*e^4-17*b*d*e^4+20*c*d*e^4-d^2*e^4-4*a*e^5-11*b*e^5-41*c*e^5+25*d*e^5-e^6,
2928b^6-11*a^4*d^2+23*a^3*b*d^2+41*a^2*b^2*d^2+7*a*b^3*d^2+10*b^4*d^2-31*a^3*c*d^2+10*a^2*b*c*d^2+7*a*b^2*c*d^2+36*b^3*c*d^2-10*a^2*c^2*d^2+9*a*b*c^2*d^2-41*b^2*c^2*d^2-26*a*c^3*d^2+26*b*c^3*d^2+12*c^4*d^2+36*a^3*d^3-35*a^2*b*d^3+12*a*b^2*d^3-8*b^3*d^3+23*a^2*c*d^3+16*a*b*c*d^3-24*b^2*c*d^3+17*a*c^2*d^3-29*b*c^2*d^3-48*c^3*d^3+33*a^2*d^4+30*a*b*d^4-41*b^2*d^4-23*a*c*d^4+8*b*c*d^4-10*c^2*d^4+22*a*d^5+5*b*d^5-32*c*d^5+19*d^6+19*a^5*e+21*a^4*b*e-29*a^3*b^2*e+10*a^2*b^3*e-6*a*b^4*e-10*b^5*e-35*a^4*c*e-47*a^3*b*c*e-16*a^2*b^2*c*e-35*a*b^3*c*e+34*b^4*c*e-28*a^3*c^2*e-6*a^2*b*c^2*e-44*a*b^2*c^2*e-47*b^3*c^2*e-18*a^2*c^3*e+48*a*b*c^3*e-b^2*c^3*e-17*a*c^4*e-48*b*c^4*e-25*c^5*e-29*a^4*d*e-18*a^3*b*d*e-28*a^2*b^2*d*e-43*a*b^3*d*e-48*b^4*d*e+45*a^3*c*d*e+18*a^2*b*c*d*e+19*a*b^2*c*d*e-27*b^3*c*d*e-13*a^2*c^2*d*e+50*a*b*c^2*d*e+33*b^2*c^2*d*e+14*a*c^3*d*e+40*b*c^3*d*e+41*c^4*d*e-34*a^3*d^2*e-41*a^2*b*d^2*e+2*a*b^2*d^2*e+37*b^3*d^2*e-a^2*c*d^2*e+8*a*b*c*d^2*e-22*b^2*c*d^2*e-25*a*c^2*d^2*e+41*b*c^2*d^2*e+35*c^3*d^2*e-14*a^2*d^3*e+32*a*b*d^3*e+20*b^2*d^3*e+3*a*c*d^3*e+12*b*c*d^3*e-6*c^2*d^3*e+44*a*d^4*e+36*b*d^4*e+32*c*d^4*e-6*d^5*e+17*a^4*e^2-39*a^3*b*e^2+22*a^2*b^2*e^2+9*a*b^3*e^2+7*b^4*e^2-9*a^3*c*e^2-49*a^2*b*c*e^2+36*a*b^2*c*e^2+16*b^3*c*e^2-10*a^2*c^2*e^2+20*a*b*c^2*e^2+b^2*c^2*e^2-29*a*c^3*e^2-4*b*c^3*e^2-34*c^4*e^2-47*a^3*d*e^2+38*a^2*b*d*e^2+10*a*b^2*d*e^2+21*b^3*d*e^2-42*a^2*c*d*e^2-28*a*b*c*d*e^2-6*b^2*c*d*e^2+22*a*c^2*d*e^2+7*b*c^2*d*e^2-12*c^3*d*e^2-6*a^2*d^2*e^2+2*a*b*d^2*e^2-4*b^2*d^2*e^2+7*a*c*d^2*e^2-39*b*c*d^2*e^2-c^2*d^2*e^2+45*a*d^3*e^2+40*b*d^3*e^2+46*c*d^3*e^2+44*d^4*e^2-30*a^3*e^3+3*a^2*b*e^3+27*a*b^2*e^3+42*b^3*e^3-18*a^2*c*e^3+11*a*b*c*e^3+18*b^2*c*e^3-31*a*c^2*e^3-37*b*c^2*e^3+5*c^3*e^3-46*a^2*d*e^3+32*a*b*d*e^3+34*b^2*d*e^3-50*a*c*d*e^3+8*b*c*d*e^3+47*c^2*d*e^3-35*a*d^2*e^3+38*b*d^2*e^3-38*c*d^2*e^3-47*d^3*e^3+35*a^2*e^4+25*a*b*e^4+31*b^2*e^4+8*a*c*e^4+9*b*c*e^4+40*c^2*e^4-3*a*d*e^4-29*b*d*e^4+20*c*d*e^4+16*d^2*e^4+25*a*e^5+b*e^5+21*c*e^5+13*d*e^5-e^6,
2929a*b^5+6*a^4*d^2-30*a^3*b*d^2+48*a^2*b^2*d^2+22*a*b^3*d^2+49*b^4*d^2-4*a^3*c*d^2+45*a^2*b*c*d^2-28*a*b^2*c*d^2-12*b^3*c*d^2+12*a^2*c^2*d^2+47*a*b*c^2*d^2-14*b^2*c^2*d^2+35*a*c^3*d^2-b*c^3*d^2-39*c^4*d^2-40*a^3*d^3+7*a^2*b*d^3+16*a*b^2*d^3+45*b^3*d^3-a^2*c*d^3+20*a*b*c*d^3-9*b^2*c*d^3-31*a*c^2*d^3-44*b*c^2*d^3-13*c^3*d^3+36*a^2*d^4+8*a*b*d^4+25*b^2*d^4-4*a*c*d^4-10*b*c*d^4-40*c^2*d^4+39*a*d^5-4*b*d^5-24*c*d^5-11*d^6+33*a^5*e+40*a^4*b*e+21*a^3*b^2*e-7*a^2*b^3*e-22*a*b^4*e-48*b^5*e-2*a^4*c*e-32*a^3*b*c*e+4*a^2*b^2*c*e-4*a*b^3*c*e+38*b^4*c*e+50*a^3*c^2*e-15*a^2*b*c^2*e-14*a*b^2*c^2*e+43*b^3*c^2*e+44*a^2*c^3*e-11*a*b*c^3*e-20*b^2*c^3*e-14*a*c^4*e+30*b*c^4*e-44*c^5*e-27*a^4*d*e+2*a^3*b*d*e-31*a^2*b^2*d*e-8*a*b^3*d*e-47*a^3*c*d*e-39*a^2*b*c*d*e-46*a*b^2*c*d*e+6*b^3*c*d*e+32*a^2*c^2*d*e+43*a*b*c^2*d*e-30*b^2*c^2*d*e-31*a*c^3*d*e-48*b*c^3*d*e+31*c^4*d*e+49*a^3*d^2*e-2*a^2*b*d^2*e-7*a*b^2*d^2*e-38*b^3*d^2*e+6*a^2*c*d^2*e+7*a*b*c*d^2*e+5*b^2*c*d^2*e+29*a*c^2*d^2*e-39*b*c^2*d^2*e-15*c^3*d^2*e+9*a^2*d^3*e-28*a*b*d^3*e+19*b^2*d^3*e-11*a*c*d^3*e-5*b*c*d^3*e-46*c^2*d^3*e-34*a*d^4*e-27*b*d^4*e-27*c*d^4*e+11*d^5*e-36*a^4*e^2-28*a^3*b*e^2+7*a^2*b^2*e^2+20*a*b^3*e^2-34*b^4*e^2+43*a^3*c*e^2-44*a^2*b*c*e^2+30*a*b^2*c*e^2-b^3*c*e^2-15*a^2*c^2*e^2+47*a*b*c^2*e^2-5*b^2*c^2*e^2-34*a*c^3*e^2-42*b*c^3*e^2-44*c^4*e^2-7*a^3*d*e^2+32*a^2*b*d*e^2-18*a*b^2*d*e^2-45*b^3*d*e^2+50*a^2*c*d*e^2+27*a*b*c*d*e^2-43*b^2*c*d*e^2-49*a*c^2*d*e^2-12*b*c^2*d*e^2+30*c^3*d*e^2-38*a^2*d^2*e^2+16*a*b*d^2*e^2-32*b^2*d^2*e^2-45*a*c*d^2*e^2+41*b*c*d^2*e^2+8*c^2*d^2*e^2+42*a*d^3*e^2+43*b*d^3*e^2+18*c*d^3*e^2-37*d^4*e^2-13*a^3*e^3+33*a^2*b*e^3-12*a*b^2*e^3-31*b^3*e^3-24*a^2*c*e^3+5*a*b*c*e^3-29*b^2*c*e^3+5*a*c^2*e^3+10*b*c^2*e^3+38*c^3*e^3+31*a^2*d*e^3+49*a*b*d*e^3-39*b^2*d*e^3+49*a*c*d*e^3+11*b*c*d*e^3+17*c^2*d*e^3-a*d^2*e^3+45*b*d^2*e^3-16*c*d^2*e^3+28*d^3*e^3+8*a^2*e^4+19*a*b*e^4+5*b^2*e^4+36*a*c*e^4-19*b*c*e^4-18*c^2*e^4-29*a*d*e^4+33*b*d*e^4-15*c*d*e^4+46*d^2*e^4+43*a*e^5+50*b*e^5+35*c*e^5+38*d*e^5+39*e^6,
2930a^2*b^4-27*a^4*d^2-11*a^3*b*d^2+23*a^2*b^2*d^2+42*a*b^3*d^2+33*b^4*d^2-45*a^2*b*c*d^2+42*a*b^2*c*d^2+30*b^3*c*d^2-a^2*c^2*d^2+41*a*b*c^2*d^2+32*b^2*c^2*d^2-4*a*c^3*d^2-4*b*c^3*d^2+50*c^4*d^2+14*a^3*d^3-17*a^2*b*d^3+20*a*b^2*d^3-31*b^3*d^3+44*a^2*c*d^3+14*a*b*c*d^3+43*b^2*c*d^3+48*a*c^2*d^3-10*b*c^2*d^3-3*c^3*d^3-33*a^2*d^4+9*a*b*d^4+28*b^2*d^4-3*a*c*d^4+15*b*c*d^4+46*c^2*d^4-35*a*d^5-42*b*d^5+44*c*d^5-4*d^6+28*a^5*e+46*a^4*b*e+16*a^3*b^2*e+31*a^2*b^3*e-20*a*b^4*e-15*b^5*e-50*a^4*c*e-8*a^3*b*c*e+4*a^2*b^2*c*e+38*a*b^3*c*e+27*b^4*c*e-29*a^3*c^2*e+27*a^2*b*c^2*e-33*a*b^2*c^2*e-22*b^3*c^2*e-3*a^2*c^3*e-40*a*b*c^3*e+10*b^2*c^3*e-20*a*c^4*e-38*b*c^4*e+36*c^5*e-26*a^4*d*e+41*a^3*b*d*e-15*a^2*b^2*d*e+50*a*b^3*d*e+41*b^4*d*e-18*a^3*c*d*e+18*a^2*b*c*d*e-32*a*b^2*c*d*e+41*b^3*c*d*e-5*a^2*c^2*d*e-a*b*c^2*d*e-10*b^2*c^2*d*e-12*a*c^3*d*e-46*b*c^3*d*e+34*c^4*d*e-42*a^3*d^2*e+2*a^2*b*d^2*e+37*a*b^2*d^2*e-b^3*d^2*e-29*a^2*c*d^2*e+46*a*b*c*d^2*e-49*b^2*c*d^2*e+24*a*c^2*d^2*e-47*b*c^2*d^2*e-34*c^3*d^2*e+46*a^2*d^3*e-5*a*b*d^3*e-27*b^2*d^3*e-29*a*c*d^3*e+25*b*c*d^3*e-30*c^2*d^3*e-2*a*d^4*e-50*b*d^4*e-46*c*d^4*e+2*d^5*e+11*a^4*e^2+48*a^3*b*e^2+24*a^2*b^2*e^2+41*a*b^3*e^2-17*b^4*e^2-10*a^3*c*e^2+8*a^2*b*c*e^2+28*b^3*c*e^2-21*a^2*c^2*e^2+23*a*b*c^2*e^2+8*b^2*c^2*e^2+41*a*c^3*e^2+12*b*c^3*e^2+25*c^4*e^2+25*a^3*d*e^2-49*a^2*b*d*e^2+24*a*b^2*d*e^2-7*b^3*d*e^2-20*a^2*c*d*e^2-48*a*b*c*d*e^2+46*b^2*c*d*e^2-18*a*c^2*d*e^2+13*b*c^2*d*e^2-31*c^3*d*e^2-40*a^2*d^2*e^2+2*a*b*d^2*e^2-48*b^2*d^2*e^2-38*a*c*d^2*e^2+20*b*c*d^2*e^2+47*c^2*d^2*e^2-3*a*d^3*e^2+27*b*d^3*e^2+44*c*d^3*e^2+19*d^4*e^2+38*a^3*e^3+22*a^2*b*e^3+37*a*b^2*e^3+20*b^3*e^3-6*a^2*c*e^3-33*a*b*c*e^3+45*b^2*c*e^3+24*a*c^2*e^3+33*b*c^2*e^3+c^3*e^3+50*a^2*d*e^3-44*a*b*d*e^3-50*b^2*d*e^3-11*a*c*d*e^3-11*b*c*d*e^3-30*c^2*d*e^3-a*d^2*e^3-14*b*d^2*e^3-11*c*d^2*e^3-42*d^3*e^3+3*a^2*e^4-6*a*b*e^4+31*b^2*e^4-47*a*c*e^4+23*b*c*e^4-44*c^2*e^4-28*a*d*e^4-50*b*d*e^4+41*c*d*e^4-19*d^2*e^4+10*a*e^5+13*b*e^5+47*c*e^5+31*d*e^5-49*e^6,
2931a^3*b^3-15*a^4*d^2-17*a^3*b*d^2-a^2*b^2*d^2+18*a*b^3*d^2-30*b^4*d^2-37*a^3*c*d^2+21*a^2*b*c*d^2-a*b^2*c*d^2+16*b^3*c*d^2-41*a^2*c^2*d^2+39*a*b*c^2*d^2-16*b^2*c^2*d^2-22*a*c^3*d^2+19*b*c^3*d^2+46*c^4*d^2-14*a^3*d^3+2*a^2*b*d^3+45*a*b^2*d^3+12*b^3*d^3-28*a^2*c*d^3-19*a*b*c*d^3-20*b^2*c*d^3-6*a*c^2*d^3+17*b*c^2*d^3-20*c^3*d^3+34*a^2*d^4+15*a*b*d^4-8*b^2*d^4+31*a*c*d^4-5*b*c*d^4+41*c^2*d^4-32*a*d^5-38*b*d^5+35*c*d^5-4*d^6-26*a^5*e-20*a^4*b*e-12*a^3*b^2*e+22*a^2*b^3*e-48*a*b^4*e+39*b^5*e-46*a^4*c*e-50*a^3*b*c*e+11*a^2*b^2*c*e-2*a*b^3*c*e+23*b^4*c*e+44*a^3*c^2*e+4*a^2*b*c^2*e+17*a*b^2*c^2*e-39*b^3*c^2*e-a^2*c^3*e-20*a*b*c^3*e-16*b^2*c^3*e+7*a*c^4*e+31*b*c^4*e+18*c^5*e-44*a^4*d*e+7*a^3*b*d*e+26*a^2*b^2*d*e-19*a*b^3*d*e-35*b^4*d*e+47*a^3*c*d*e+17*a^2*b*c*d*e-27*a*b^2*c*d*e-6*b^3*c*d*e-16*a^2*c^2*d*e-10*a*b*c^2*d*e+21*b^2*c^2*d*e-27*a*c^3*d*e+4*b*c^3*d*e-32*c^4*d*e-22*a^3*d^2*e+50*a^2*b*d^2*e-a*b^2*d^2*e+41*b^3*d^2*e-46*a^2*c*d^2*e-18*a*b*c*d^2*e+8*b^2*c*d^2*e-16*a*c^2*d^2*e-38*b*c^2*d^2*e-c^3*d^2*e+18*a^2*d^3*e-25*a*b*d^3*e-47*b^2*d^3*e-23*a*c*d^3*e+8*b*c*d^3*e+20*c^2*d^3*e-41*a*d^4*e-18*b*d^4*e-18*c*d^4*e+33*d^5*e+17*a^4*e^2-10*a^3*b*e^2+28*a^2*b^2*e^2-12*a*b^3*e^2-19*b^4*e^2-20*a^3*c*e^2+45*a^2*b*c*e^2+39*a*b^2*c*e^2+37*b^3*c*e^2-6*a^2*c^2*e^2+19*a*b*c^2*e^2+23*b^2*c^2*e^2+34*a*c^3*e^2+24*b*c^3*e^2+20*c^4*e^2+14*a^3*d*e^2-8*a^2*b*d*e^2+15*a*b^2*d*e^2+19*b^3*d*e^2+14*a^2*c*d*e^2-42*a*b*c*d*e^2-27*b^2*c*d*e^2+11*a*c^2*d*e^2+24*b*c^2*d*e^2-10*c^3*d*e^2+12*a^2*d^2*e^2+18*a*b*d^2*e^2+21*b^2*d^2*e^2+35*a*c*d^2*e^2-15*b*c*d^2*e^2-32*c^2*d^2*e^2+8*a*d^3*e^2+40*b*d^3*e^2+50*c*d^3*e^2-41*d^4*e^2+42*a^3*e^3-38*a^2*b*e^3-27*a*b^2*e^3+32*b^3*e^3+41*a^2*c*e^3+3*a*b*c*e^3+28*b^2*c*e^3+21*a*c^2*e^3-8*b*c^2*e^3+22*c^3*e^3+8*a^2*d*e^3+49*a*b*d*e^3-24*b^2*d*e^3-8*a*c*d*e^3+30*b*c*d*e^3+35*c^2*d*e^3+49*a*d^2*e^3+39*b*d^2*e^3+23*c*d^2*e^3-47*d^3*e^3+43*a^2*e^4-15*a*b*e^4+20*b^2*e^4-35*b*c*e^4+28*c^2*e^4+35*b*d*e^4+12*c*d*e^4+40*d^2*e^4+32*a*e^5-32*b*e^5+25*c*e^5+9*d*e^5-26*e^6,
2932a^4*b^2-31*a^4*d^2+30*a^3*b*d^2-42*a^2*b^2*d^2-32*a*b^3*d^2-38*b^4*d^2-49*a^3*c*d^2-4*a^2*b*c*d^2-45*a*b^2*c*d^2+8*b^3*c*d^2+44*a^2*c^2*d^2+21*a*b*c^2*d^2-13*b^2*c^2*d^2-16*a*c^3*d^2+31*b*c^3*d^2-42*c^4*d^2+49*a^3*d^3+44*a^2*b*d^3+a*b^2*d^3+47*b^3*d^3-31*a^2*c*d^3+42*a*b*c*d^3-34*b^2*c*d^3-44*a*c^2*d^3-3*b*c^2*d^3-14*c^3*d^3+24*a^2*d^4+12*a*b*d^4+14*b^2*d^4-32*a*c*d^4+16*b*c*d^4+40*c^2*d^4+8*a*d^5+5*b*d^5+35*c*d^5+2*d^6+7*a^5*e+a^4*b*e-24*a^3*b^2*e-25*a^2*b^3*e-8*a*b^4*e-46*b^5*e+12*a^4*c*e-49*a^3*b*c*e+47*a^2*b^2*c*e-22*a*b^3*c*e-22*b^4*c*e+31*a^3*c^2*e-48*a^2*b*c^2*e-46*a*b^2*c^2*e+28*b^3*c^2*e-5*a^2*c^3*e+42*a*b*c^3*e-9*b^2*c^3*e+13*a*c^4*e+23*b*c^4*e-29*c^5*e+9*a^4*d*e+9*a^3*b*d*e+3*a^2*b^2*d*e+47*a*b^3*d*e+31*b^4*d*e-25*a^3*c*d*e-37*a*b^2*c*d*e-23*b^3*c*d*e+18*a^2*c^2*d*e+8*a*b*c^2*d*e-15*b^2*c^2*d*e-40*a*c^3*d*e+26*b*c^3*d*e-29*c^4*d*e+20*a^3*d^2*e-25*a^2*b*d^2*e+41*a*b^2*d^2*e+10*b^3*d^2*e-12*a^2*c*d^2*e+38*a*b*c*d^2*e-30*b^2*c*d^2*e-49*b*c^2*d^2*e-34*c^3*d^2*e+14*a^2*d^3*e+45*a*b*d^3*e-29*b^2*d^3*e-23*a*c*d^3*e+33*b*c*d^3*e-23*c^2*d^3*e-36*a*d^4*e+29*b*d^4*e+22*c*d^4*e+45*d^5*e-46*a^4*e^2-37*a^3*b*e^2-36*a^2*b^2*e^2-23*a*b^3*e^2-4*b^4*e^2+31*a^3*c*e^2+45*a^2*b*c*e^2-34*a*b^2*c*e^2+6*b^3*c*e^2-38*a^2*c^2*e^2-26*a*b*c^2*e^2-5*b^2*c^2*e^2-24*a*c^3*e^2-28*b*c^3*e^2+20*c^4*e^2+25*a^3*d*e^2+14*a^2*b*d*e^2+a*b^2*d*e^2+18*b^3*d*e^2+12*a^2*c*d*e^2+32*a*b*c*d*e^2+17*b^2*c*d*e^2+50*a*c^2*d*e^2-12*b*c^2*d*e^2-46*c^3*d*e^2+4*a^2*d^2*e^2-29*a*b*d^2*e^2-16*b^2*d^2*e^2+38*a*c*d^2*e^2+3*b*c*d^2*e^2-19*c^2*d^2*e^2+50*a*d^3*e^2+23*b*d^3*e^2+5*c*d^3*e^2+47*d^4*e^2-38*a^3*e^3-31*a^2*b*e^3+14*a*b^2*e^3-43*b^3*e^3+22*a^2*c*e^3+26*a*b*c*e^3-28*b^2*c*e^3-49*a*c^2*e^3+15*c^3*e^3-40*a^2*d*e^3+5*a*b*d*e^3-20*b^2*d*e^3-40*a*c*d*e^3+35*b*c*d*e^3+17*c^2*d*e^3-8*a*d^2*e^3-6*b*d^2*e^3+3*c*d^2*e^3-7*d^3*e^3+45*a^2*e^4-49*a*b*e^4+45*b^2*e^4-25*a*c*e^4+b*c*e^4-33*c^2*e^4-44*a*d*e^4+30*b*d*e^4-26*c*d*e^4+42*d^2*e^4+14*b*e^5-3*c*e^5-47*d*e^5+22*e^6,
2933a^5*b-48*a^4*d^2-33*a^3*b*d^2-34*a^2*b^2*d^2-14*a*b^3*d^2-29*b^4*d^2-7*a^3*c*d^2-13*a^2*b*c*d^2+15*a*b^2*c*d^2+27*b^3*c*d^2+49*a^2*c^2*d^2-a*b*c^2*d^2+46*b^2*c^2*d^2+37*a*c^3*d^2+20*b*c^3*d^2-27*c^4*d^2+33*a^3*d^3+30*a^2*b*d^3+32*a*b^2*d^3+b^3*d^3-47*a^2*c*d^3-2*a*b*c*d^3-36*b^2*c*d^3-7*a*c^2*d^3-23*b*c^2*d^3-41*c^3*d^3-43*a^2*d^4-4*a*b*d^4+14*b^2*d^4+38*a*c*d^4+41*b*c*d^4+27*c^2*d^4-33*a*d^5-50*b*d^5+8*c*d^5+42*d^6-21*a^5*e+46*a^4*b*e+6*a^3*b^2*e+22*a^2*b^3*e+2*a*b^4*e-15*b^5*e+50*a^4*c*e-40*a^2*b^2*c*e+49*a*b^3*c*e+5*b^4*c*e+a^3*c^2*e+47*a^2*b*c^2*e-36*a*b^2*c^2*e+25*b^3*c^2*e-36*a^2*c^3*e+46*a*b*c^3*e+24*b^2*c^3*e-9*a*c^4*e+39*b*c^4*e-40*c^5*e+29*a^4*d*e-49*a^3*b*d*e+16*a^2*b^2*d*e+7*a*b^3*d*e-30*b^4*d*e+42*a^3*c*d*e+22*a^2*b*c*d*e-49*a*b^2*c*d*e+19*b^3*c*d*e-23*a^2*c^2*d*e+7*a*b*c^2*d*e+2*b^2*c^2*d*e-2*a*c^3*d*e-2*b*c^3*d*e+5*c^4*d*e+35*a^3*d^2*e-47*a^2*b*d^2*e-28*a*b^2*d^2*e+5*b^3*d^2*e+45*a^2*c*d^2*e+7*a*b*c*d^2*e+3*b^2*c*d^2*e+33*a*c^2*d^2*e-37*b*c^2*d^2*e+26*c^3*d^2*e-18*a*b*d^3*e-42*b^2*d^3*e-22*a*c*d^3*e-46*b*c*d^3*e-25*c^2*d^3*e+6*a*d^4*e-50*b*d^4*e+22*c*d^4*e-4*d^5*e-42*a^4*e^2+43*a^3*b*e^2+39*a^2*b^2*e^2+12*a*b^3*e^2-20*b^4*e^2+2*a^3*c*e^2+27*a^2*b*c*e^2-21*a*b^2*c*e^2+36*b^3*c*e^2+47*a^2*c^2*e^2-41*a*b*c^2*e^2-23*b^2*c^2*e^2+34*a*c^3*e^2-29*b*c^3*e^2-46*c^4*e^2+15*a^3*d*e^2+4*a^2*b*d*e^2-13*a*b^2*d*e^2+43*b^3*d*e^2-7*a^2*c*d*e^2+4*a*b*c*d*e^2-37*a*c^2*d*e^2-34*b*c^2*d*e^2+20*c^3*d*e^2-5*a^2*d^2*e^2-42*a*b*d^2*e^2+14*b^2*d^2*e^2+9*a*c*d^2*e^2-19*b*c*d^2*e^2+15*c^2*d^2*e^2-35*a*d^3*e^2+24*b*d^3*e^2-35*c*d^3*e^2-14*d^4*e^2-27*a^3*e^3-39*a^2*b*e^3-44*a*b^2*e^3-6*b^3*e^3-30*a^2*c*e^3+47*a*b*c*e^3-26*b^2*c*e^3+9*a*c^2*e^3+16*b*c^2*e^3+37*c^3*e^3-49*a^2*d*e^3+19*a*b*d*e^3+44*b^2*d*e^3-9*a*c*d*e^3-41*b*c*d*e^3+29*c^2*d*e^3-43*a*d^2*e^3+33*b*d^2*e^3-2*c*d^2*e^3-15*d^3*e^3-4*a^2*e^4-46*a*b*e^4+15*b^2*e^4+21*a*c*e^4+13*b*c*e^4+38*c^2*e^4-20*a*d*e^4+16*b*d*e^4-9*c*d*e^4-19*d^2*e^4+14*a*e^5-33*b*e^5+34*c*e^5+16*d*e^5-24*e^6,
2934a^6-2*a^4*d^2+3*a^3*b*d^2+18*a^2*b^2*d^2-46*a*b^3*d^2-31*b^4*d^2+48*a^3*c*d^2+7*a^2*b*c*d^2+26*a*b^2*c*d^2+17*b^3*c*d^2-30*a^2*c^2*d^2-2*a*b*c^2*d^2+5*b^2*c^2*d^2-43*a*c^3*d^2-33*b*c^3*d^2-28*c^4*d^2-26*a^3*d^3-5*a^2*b*d^3+48*a*b^2*d^3+2*b^3*d^3-15*a^2*c*d^3-18*a*b*c*d^3-16*b^2*c*d^3-12*a*c^2*d^3+21*b*c^2*d^3-31*c^3*d^3+34*a^2*d^4-40*a*b*d^4+41*b^2*d^4+21*a*c*d^4+26*b*c*d^4+50*c^2*d^4-20*a*d^5+8*b*d^5+30*c*d^5+48*d^6-37*a^5*e+28*a^4*b*e+8*a^3*b^2*e+30*a^2*b^3*e-a*b^4*e-49*b^5*e-8*a^4*c*e+26*a^3*b*c*e+20*a^2*b^2*c*e+19*a*b^3*c*e-23*b^4*c*e+11*a^3*c^2*e+37*a^2*b*c^2*e+40*a*b^2*c^2*e-33*b^3*c^2*e-26*a^2*c^3*e+12*a*b*c^3*e+29*b^2*c^3*e-a*c^4*e-15*b*c^4*e-24*c^5*e-41*a^4*d*e-4*a^3*b*d*e+42*a^2*b^2*d*e+9*a*b^3*d*e-49*b^4*d*e-11*a^3*c*d*e+21*a^2*b*c*d*e+22*a*b^2*c*d*e+22*b^3*c*d*e-9*a^2*c^2*d*e+27*a*b*c^2*d*e-36*b^2*c^2*d*e-10*a*c^3*d*e-39*b*c^3*d*e-3*c^4*d*e+16*a^3*d^2*e+9*a^2*b*d^2*e+7*a*b^2*d^2*e+33*b^3*d^2*e+42*a^2*c*d^2*e-38*a*b*c*d^2*e+33*b^2*c*d^2*e+41*a*c^2*d^2*e-36*b*c^2*d^2*e-21*c^3*d^2*e+34*a^2*d^3*e-43*a*b*d^3*e+32*b^2*d^3*e-9*a*c*d^3*e-34*b*c*d^3*e-4*c^2*d^3*e-10*a*d^4*e-29*b*d^4*e+4*c*d^4*e+36*d^5*e+40*a^4*e^2-32*a^3*b*e^2+13*a^2*b^2*e^2+22*a*b^3*e^2-15*b^4*e^2+31*a^3*c*e^2+7*a^2*b*c*e^2-15*a*b^2*c*e^2+43*b^3*c*e^2-45*a^2*c^2*e^2-42*a*b*c^2*e^2+41*b^2*c^2*e^2-46*a*c^3*e^2-6*b*c^3*e^2+26*c^4*e^2+45*a^3*d*e^2+11*a^2*b*d*e^2+10*a*b^2*d*e^2+5*b^3*d*e^2+3*a^2*c*d*e^2-49*a*b*c*d*e^2-10*b^2*c*d*e^2-50*a*c^2*d*e^2+38*b*c^2*d*e^2+21*c^3*d*e^2+37*a^2*d^2*e^2+a*b*d^2*e^2+38*b^2*d^2*e^2+25*a*c*d^2*e^2-7*b*c*d^2*e^2-13*c^2*d^2*e^2+32*a*d^3*e^2+37*b*d^3*e^2-27*c*d^3*e^2-7*d^4*e^2+44*a^3*e^3+48*a^2*b*e^3+21*a*b^2*e^3+11*b^3*e^3+9*a^2*c*e^3+49*a*b*c*e^3-39*b^2*c*e^3+24*a*c^2*e^3+35*b*c^2*e^3-11*c^3*e^3+17*a^2*d*e^3+36*a*b*d*e^3-19*b^2*d*e^3-47*a*c*d*e^3-47*b*c*d*e^3-12*c^2*d*e^3+34*a*d^2*e^3+35*b*d^2*e^3+18*d^3*e^3-31*a^2*e^4+45*a*b*e^4+27*b^2*e^4+43*a*c*e^4-35*b*c*e^4-29*c^2*e^4-21*a*d*e^4+49*b*d*e^4-23*c*d*e^4+34*d^2*e^4-2*a*e^5+47*b*e^5+31*c*e^5-46*d*e^5-13*e^6,
2935e^7, d*e^6, c*e^6, b*e^6, a*e^6, d^2*e^5, c*d*e^5, b*d*e^5, a*d*e^5, c^2*e^5,
2936b*c*e^5, a*c*e^5, b^2*e^5, a*b*e^5, a^2*e^5, d^3*e^4, c*d^2*e^4, b*d^2*e^4,
2937a*d^2*e^4, c^2*d*e^4, b*c*d*e^4, a*c*d*e^4, b^2*d*e^4, a*b*d*e^4, a^2*d*e^4,
2938c^3*e^4, b*c^2*e^4, a*c^2*e^4, b^2*c*e^4, a*b*c*e^4, a^2*c*e^4, b^3*e^4,
2939a*b^2*e^4, a^2*b*e^4, a^3*e^4, d^4*e^3, c*d^3*e^3, b*d^3*e^3, a*d^3*e^3,
2940c^2*d^2*e^3, b*c*d^2*e^3, a*c*d^2*e^3, b^2*d^2*e^3, a*b*d^2*e^3, a^2*d^2*e^3,
2941c^3*d*e^3, b*c^2*d*e^3, a*c^2*d*e^3, b^2*c*d*e^3, a*b*c*d*e^3, a^2*c*d*e^3,
2942b^3*d*e^3, a*b^2*d*e^3, a^2*b*d*e^3, a^3*d*e^3, c^4*e^3, b*c^3*e^3, a*c^3*e^3,
2943b^2*c^2*e^3, a*b*c^2*e^3, a^2*c^2*e^3, b^3*c*e^3, a*b^2*c*e^3, a^2*b*c*e^3,
2944a^3*c*e^3, b^4*e^3, a*b^3*e^3, a^2*b^2*e^3, a^3*b*e^3, a^4*e^3, d^5*e^2,
2945c*d^4*e^2, b*d^4*e^2, a*d^4*e^2, c^2*d^3*e^2, b*c*d^3*e^2, a*c*d^3*e^2,
2946b^2*d^3*e^2, a*b*d^3*e^2, a^2*d^3*e^2, c^3*d^2*e^2, b*c^2*d^2*e^2,
2947a*c^2*d^2*e^2, b^2*c*d^2*e^2, a*b*c*d^2*e^2;
2948//  M;
2949  TestSSresAttribs2tr(M, "AGR101n4d008s020%1_big");
2950/*
2951options:  1 1 0 :  Time:  29/32/73/92 (316 without LCM)
2952options:  1 1 1 :  Time:  32/34/43/202
2953lres  Time:  24
2954nres  Time:  19
2955sres  Time:  71
2956*/
2957  kill M;
2958
2959  kill AGR;
2960
2961  ring AGR = (101), (a,b,c,d,e,f), dp; AGR;
2962
2963  // AGR@101n5d005s016%1, new, medium difficulty?
2964  ideal M =
2965b*d-13*c*d+7*a*e-32*b*e+31*c*e+3*d*e+46*a*f-13*b*f+22*c*f-19*d*f-33*e*f, a*d+2*c*d-42*a*e+46*b*e+7*c*e-38*d*e+31*a*f+9*b*f+27*c*f-19*d*f-24*e*f, b*c-35*c*d-34*a*e+4*b*e+33*c*e+23*d*e+4*a*f-43*b*f+43*c*f+17*d*f-13*e*f, a*c+49*c*d-28*a*e+18*b*e-23*c*e+3*d*e-5*a*f-23*b*f+2*c*f+46*d*f-40*e*f, a*b-38*c*d+a*e-49*b*e-20*c*e+32*d*e+13*a*f+25*b*f+37*c*f-27*d*f+25*e*f, f^4, e*f^3, d*f^3, c*f^3, b*f^3, a*f^3, e^2*f^2, d*e*f^2, c*e*f^2, b*e*f^2, a*e*f^2, d^2*f^2, c*d*f^2, c^2*f^2, b^2*f^2, a^2*f^2, e^3*f, d*e^2*f, c*e^2*f, b*e^2*f, a*e^2*f, d^2*e*f, d^3*f, c^3*f, b^3*f, a^3*f, e^4, d^4, c^4, b^4, a^4;
2966  TestSSresAttribs(M, "AGR@101n5d005s016%1");
2967  kill M;
2968}
2969
2970static proc testAGRhard(list #)
2971{
2972  def DEBUG = 0;
2973  if(size(#) > 0) { DEBUG = #[1]; }
2974
2975  system("--min-time", "0.01");
2976  system("--ticks-per-sec", 100);
2977
2978  attrib(SSinit, "DEBUG", 0);
2979  attrib(SSinit, "SYZCHECK", (DEBUG > 0));
2980  attrib(SSinit, "KERCHECK", 0);
2981  attrib(SSinit, "TREEOUTPUT", 0);
2982  attrib(SSinit, "PROFILE", 0);
2983 
2984  option(prot);
2985  // AGR@101n5d006s016%1, new, hard
2986  ring AGR = (101), (a,b,c,d,e,f), dp; AGR;
2987  ideal M =
2988b*d+47*c*d-27*a*e+37*b*e+21*c*e+31*d*e-31*a*f+23*b*f+47*c*f+42*d*f+11*e*f, a*d+7*c*d+19*a*e+28*b*e-33*c*e-28*d*e+15*a*f+28*b*f+47*c*f+3*d*f+14*e*f, b*c+29*c*d-25*a*e+12*b*e+23*c*e-50*d*e-17*a*f+30*b*f-37*c*f+35*d*f-e*f, a*c+46*c*d+12*a*e+27*b*e+39*c*e+23*d*e-45*a*f+39*b*f-35*c*f+4*d*f-10*e*f, a*b+38*c*d-18*a*e-34*b*e-30*c*e+38*d*e+22*a*f+34*b*f+39*c*f+30*d*f-19*e*f, f^5, e*f^4, d*f^4, c*f^4, b*f^4, a*f^4, e^2*f^3, d*e*f^3, c*e*f^3, b*e*f^3, a*e*f^3, d^2*f^3, c*d*f^3, c^2*f^3, b^2*f^3, a^2*f^3, e^3*f^2, d*e^2*f^2, c*e^2*f^2, b*e^2*f^2, a*e^2*f^2, d^2*e*f^2, d^3*f^2, c^3*f^2, b^3*f^2, a^3*f^2, e^4*f, e^5, d^5, c^5, b^5, a^5;
2989  TestSSresAttribs2tr(M, "AGR@101n5d006s016%1_hard");
2990 kill M;
2991}
Note: See TracBrowser for help on using the repository browser.