load "Subgroups/functions.txt";
load "Subgroups/E8/ComputeFactorsE8.txt";

load "Traces/E8/Tr21E8Eigs";
Tr21E8:={EigsToTracePowers(i,21):i in Tr21E8Eigs};
delete Tr21E8Eigs;

Tr cat:=<{},{},{},{},{},Tr21E8>;


function OrbitReps(X,frob)

Orbs:=[];
SpanOfOrbs:=[];
for i in X do
  if(not(Sort(i) in SpanOfOrbs)) then
    Append(~Orbs,i);
    SpanOfOrbs cat:=[Sort(i^(frob^j)):j in [1..Order(frob)-1]];
  end if;
end for;
return Orbs;
end function;

frob:=Sym(45)!(2,4,6)(3,5,7)(8,9,10)(11,19,15)(12,20,16)(13,21,17)(14,22,18) (23,31,29)(24,32,30)(25,33,27)(26,34,28)(37,41,39)(38,42,40)(43,45,44);

function FindOrb(Orbs,i)
for Orb in Orbs do if(i in Orb) then return Orb; end if; end for;
return {};
end function;

q:=2^18;
m:=189;
F<w>:=GF(q);
n:=(q-1) div m;
G:=GroupOfLieType("E8",q);
V:=VectorSpace(GF(q),8);
rho1:=StandardRepresentation(G);
Over1:=GL(248,q);
g1:=elt<G|V![w^n,1,1,1,1,1,1,1]>;
g2:=elt<G|V![1,w^n,1,1,1,1,1,1]>;
g3:=elt<G|V![1,1,w^n,1,1,1,1,1]>;
g4:=elt<G|V![1,1,1,w^n,1,1,1,1]>;
g5:=elt<G|V![1,1,1,1,w^n,1,1,1]>;
g6:=elt<G|V![1,1,1,1,1,w^n,1,1]>;
g7:=elt<G|V![1,1,1,1,1,1,w^n,1]>;
g8:=elt<G|V![1,1,1,1,1,1,1,w^n]>;
W:=Reflections(G);
Mats1:=[rho1(i):i in [g1,g2,g3,g4,g5,g6,g7,g8]];
MatsE:=[rho1(i):i in W];
NGT:=sub<Over1|Mats1 cat MatsE>;
T:=sub<NGT|Mats1>;
E:=sub<NGT|MatsE>;
//T189:=sub<T|[T.i^13:i in [1..8]]>;
T63:=sub<T|[T.i^3:i in [1..8]]>;
T21:=sub<T|[T.i^9:i in [1..8]]>;
T7:=sub<T|[T.i^27:i in [1..8]]>;

NGT7:=sub<NGT|E,T7>;

R:=ResidueClassRing(189);
X:=[[R!(Log((T.j)[i,i]) div 1387):i in [1..248]]:j in [1..8]];


Eigs1NoTrivs:=[
    { <w^108186, 4>, <w^228855, 5>, <w^29127, 3>, <w^45771, 3>, <w^70737, 4>, <w^62415, 3>, <w^74898, 5>, <w^41610, 4>, <w^145635, 5>, <w^153957, 4>, <w^203889, 4>, <w^162279, 3>, <w^116508, 5>, <w^141474, 3>, <w^79059, 4>, <w^195567,
    3>, <w^4161, 5>, <w^216372, 3>, <w^91542, 4>, <w^112347, 5>, <w^174762, 2>, <w^224694, 6>, <w^37449, 6>, <w^191406, 4>, <w^137313, 3>, <w^49932, 3>, <w^120669, 3>, <w^99864, 3>, <w^249660, 3>, <w^16644, 5>, <w^133152, 5>, <w^20805,
    5>, <w^124830, 3>, <w^233016, 3>, <w^8322, 3>, <w^212211, 3>, <w^257982, 5>, <w^95703, 5>, <w^199728, 3>, <w^33288, 5>, <w^66576, 3>, <w^253821, 3>, <w^245499, 5>, <w^187245, 5>, <w^237177, 3>, <w^208050, 4>, <w^220533, 4>, <w^83220,
    3>, <w^158118, 3>, <w^241338, 5>, <w^24966, 3>, <w^54093, 4>, <w^170601, 4>, <w^58254, 4>, <w^128991, 5>, <w^166440, 5>, <w^12483, 3>, <w^87381, 2>, <w^183084, 4>, <1, 8>, <w^104025, 3>, <w^178923, 3>, <w^149796, 5> },
    { <w^249660, 4>, <w^208050, 5>, <w^170601, 5>, <w^108186, 4>, <w^228855, 5>, <w^220533, 3>, <w^104025, 2>, <w^191406, 3>, <w^145635, 6>, <w^83220, 2>, <w^45771, 2>, <w^70737, 3>, <w^241338, 6>, <w^153957, 4>, <w^95703, 6>, <w^37449,
    5>, <w^203889, 4>, <w^178923, 2>, <w^79059, 4>, <w^24966, 2>, <w^116508, 6>, <w^233016, 2>, <w^128991, 7>, <w^237177, 2>, <w^4161, 5>, <w^54093, 5>, <w^166440, 6>, <w^174762, 2>, <w^74898, 4>, <w^137313, 3>, <w^49932, 3>, <w^133152,
    7>, <w^216372, 2>, <w^245499, 7>, <w^20805, 6>, <w^253821, 2>, <w^158118, 2>, <w^124830, 3>, <w^224694, 5>, <w^199728, 2>, <w^212211, 3>, <w^257982, 5>, <w^33288, 5>, <w^8322, 2>, <w^62415, 2>, <w^141474, 2>, <w^41610, 3>, <w^149796,
    7>, <w^120669, 2>, <w^12483, 4>, <w^66576, 2>, <w^162279, 4>, <w^16644, 7>, <w^112347, 7>, <w^91542, 5>, <w^187245, 4>, <w^58254, 4>, <w^195567, 2>, <w^87381, 2>, <w^29127, 2>, <w^183084, 4>, <1, 8>, <w^99864, 4> },
    { <w^203889, 3>, <w^208050, 5>, <w^170601, 5>, <w^29127, 3>, <w^220533, 3>, <w^191406, 3>, <w^212211, 2>, <w^145635, 4>, <w^45771, 3>, <w^4161, 4>, <w^87381, 6>, <w^137313, 2>, <w^62415, 3>, <w^70737, 3>, <w^74898, 5>, <w^153957, 5>,
    <w^224694, 3>, <w^183084, 5>, <w^245499, 3>, <w^253821, 5>, <w^257982, 4>, <w^54093, 5>, <w^216372, 3>, <w^112347, 2>, <w^128991, 3>, <w^141474, 4>, <w^133152, 3>, <w^79059, 5>, <w^178923, 4>, <w^66576, 5>, <w^20805, 5>, <w^233016,
    3>, <w^95703, 5>, <w^116508, 4>, <w^199728, 3>, <w^228855, 4>, <w^33288, 4>, <w^58254, 3>, <w^16644, 3>, <w^174762, 6>, <w^187245, 5>, <w^237177, 3>, <w^37449, 3>, <w^41610, 3>, <w^120669, 4>, <w^49932, 2>, <w^158118, 3>, <w^241338,
    5>, <w^108186, 5>, <w^8322, 5>, <w^162279, 5>, <w^249660, 5>, <w^24966, 3>, <w^91542, 5>, <w^149796, 2>, <w^166440, 5>, <w^12483, 5>, <w^83220, 4>, <w^104025, 3>, <1, 8>, <w^195567, 5>, <w^99864, 5>, <w^124830, 2> },
    { <w^249660, 4>, <w^208050, 5>, <w^62415, 4>, <w^203889, 3>, <w^170601, 5>, <w^108186, 4>, <w^83220, 5>, <w^45771, 3>, <w^4161, 4>, <w^70737, 4>, <w^87381, 4>, <w^233016, 4>, <w^224694, 2>, <w^41610, 4>, <w^145635, 5>, <w^253821, 4>,
    <w^153957, 4>, <w^116508, 5>, <w^79059, 4>, <w^120669, 5>, <w^149796, 4>, <w^257982, 4>, <w^54093, 5>, <w^8322, 4>, <w^29127, 4>, <w^216372, 3>, <w^74898, 4>, <w^191406, 4>, <w^137313, 3>, <w^174762, 4>, <w^37449, 2>, <w^49932, 3>,
    <w^128991, 2>, <w^245499, 2>, <w^16644, 2>, <w^141474, 5>, <w^24966, 4>, <w^133152, 2>, <w^195567, 4>, <w^20805, 5>, <w^124830, 3>, <w^212211, 3>, <w^95703, 5>, <w^228855, 4>, <w^33288, 4>, <w^58254, 3>, <w^220533, 4>, <w^158118, 3>,
    <w^12483, 4>, <w^241338, 5>, <w^178923, 5>, <w^112347, 4>, <w^162279, 4>, <w^237177, 4>, <w^91542, 5>, <w^187245, 4>, <w^66576, 4>, <w^166440, 5>, <w^199728, 4>, <w^183084, 4>, <1, 8>, <w^104025, 3>, <w^99864, 4> },
    { <w^108186, 4>, <w^228855, 5>, <w^29127, 3>, <w^212211, 2>, <w^145635, 6>, <w^45771, 3>, <w^87381, 4>, <w^249660, 2>, <w^137313, 2>, <w^153957, 4>, <w^24966, 7>, <w^79059, 4>, <w^116508, 6>, <w^91542, 3>, <w^12483, 2>, <w^4161, 5>,
    <w^216372, 3>, <w^112347, 2>, <w^195567, 1>, <w^66576, 1>, <w^224694, 6>, <w^37449, 6>, <w^162279, 2>, <w^141474, 8>, <w^174762, 4>, <w^99864, 2>, <1, 10>, <w^128991, 2>, <w^245499, 2>, <w^16644, 2>, <w^178923, 8>, <w^83220, 8>,
    <w^133152, 2>, <w^20805, 5>, <w^233016, 3>, <w^237177, 7>, <w^257982, 5>, <w^95703, 5>, <w^120669, 8>, <w^8322, 1>, <w^33288, 5>, <w^74898, 1>, <w^70737, 2>, <w^49932, 2>, <w^220533, 2>, <w^158118, 3>, <w^199728, 7>, <w^241338, 5>,
    <w^191406, 2>, <w^62415, 7>, <w^253821, 1>, <w^58254, 9>, <w^149796, 2>, <w^203889, 9>, <w^41610, 2>, <w^54093, 3>, <w^166440, 5>, <w^170601, 3>, <w^187245, 1>, <w^208050, 3>, <w^183084, 4>, <w^104025, 3>, <w^124830, 2> },
    { <w^208050, 5>, <w^170601, 5>, <w^4161, 4>, <w^87381, 4>, <w^124830, 4>, <w^95703, 3>, <w^166440, 3>, <w^145635, 2>, <w^70737, 6>, <w^195567, 3>, <w^241338, 3>, <w^24966, 2>, <w^237177, 2>, <w^233016, 5>, <w^245499, 4>, <w^149796,
    4>, <w^257982, 4>, <w^54093, 5>, <w^158118, 4>, <w^141474, 4>, <w^174762, 4>, <w^137313, 4>, <w^29127, 5>, <w^178923, 4>, <w^37449, 4>, <w^224694, 4>, <w^220533, 6>, <w^203889, 5>, <w^183084, 3>, <w^187245, 2>, <w^8322, 3>,
    <w^199728, 2>, <w^212211, 4>, <w^216372, 4>, <w^66576, 3>, <w^228855, 4>, <w^153957, 3>, <w^33288, 4>, <w^253821, 3>, <w^62415, 2>, <w^191406, 6>, <w^74898, 2>, <w^120669, 4>, <w^41610, 6>, <w^58254, 5>, <w^79059, 3>, <w^133152, 4>,
    <w^112347, 4>, <w^128991, 4>, <w^162279, 5>, <w^249660, 5>, <w^91542, 5>, <w^20805, 3>, <w^104025, 4>, <w^116508, 2>, <w^49932, 4>, <w^45771, 4>, <w^108186, 3>, <w^16644, 4>, <w^12483, 5>, <w^83220, 4>, <1, 8>, <w^99864, 5> }
];

Eigs2NoTrivs:=[
    { <w^212211, 12>, <w^224694, 11>, <w^37449, 11>, <w^237177, 12>, <w^249660, 12>, <w^112347, 12>, <w^174762, 12>, <w^124830, 12>, <w^24966, 12>, <w^187245, 11>, <w^74898, 11>, <w^199728, 12>, <w^137313, 12>, <1, 12>, <w^87381, 12>,
    <w^62415, 12>, <w^49932, 12>, <w^149796, 12>, <w^99864, 12>, <w^12483, 12>, <w^162279, 12> },
    { <w^212211, 12>, <w^112347, 11>, <w^237177, 12>, <w^249660, 12>, <w^174762, 12>, <w^124830, 12>, <w^24966, 12>, <w^187245, 11>, <w^74898, 11>, <w^199728, 12>, <w^149796, 11>, <w^137313, 12>, <1, 12>, <w^87381, 12>, <w^224694, 12>,
    <w^62415, 12>, <w^49932, 12>, <w^37449, 12>, <w^99864, 12>, <w^12483, 12>, <w^162279, 12> },
    { <w^87381, 10>, <w^112347, 7>, <1, 20>, <w^249660, 13>, <w^74898, 8>, <w^149796, 7>, <w^199728, 15>, <w^62415, 15>, <w^137313, 9>, <w^49932, 9>, <w^37449, 15>, <w^174762, 10>, <w^99864, 13>, <w^212211, 9>, <w^187245, 8>, <w^162279,
    13>, <w^224694, 15>, <w^12483, 13>, <w^24966, 15>, <w^237177, 15>, <w^124830, 9> },
    { <w^224694, 12>, <w^37449, 12>, <w^112347, 8>, <w^249660, 14>, <1, 16>, <w^87381, 12>, <w^187245, 12>, <w^149796, 8>, <w^74898, 12>, <w^137313, 9>, <w^49932, 9>, <w^199728, 13>, <w^212211, 9>, <w^62415, 13>, <w^162279, 14>,
    <w^237177, 13>, <w^99864, 14>, <w^24966, 13>, <w^174762, 12>, <w^12483, 14>, <w^124830, 9> },
    { <w^99864, 16>, <w^87381, 18>, <w^237177, 10>, <w^162279, 16>, <1, 18>, <w^74898, 16>, <w^249660, 16>, <w^199728, 10>, <w^62415, 10>, <w^187245, 16>, <w^12483, 16>, <w^49932, 7>, <w^24966, 10>, <w^37449, 5>, <w^224694, 5>,
    <w^137313, 7>, <w^212211, 7>, <w^149796, 10>, <w^174762, 18>, <w^124830, 7>, <w^112347, 10> },
    { <w^149796, 12>, <w^224694, 12>, <w^237177, 9>, <w^37449, 12>, <w^49932, 14>, <w^249660, 13>, <w^74898, 8>, <1, 16>, <w^137313, 14>, <w^87381, 12>, <w^24966, 9>, <w^124830, 14>, <w^99864, 13>, <w^187245, 8>, <w^199728, 9>, <w^62415,
    9>, <w^212211, 14>, <w^162279, 13>, <w^12483, 13>, <w^112347, 12>, <w^174762, 12> }
];

Eigs1Trivs:=[
    { <w^241338, 17>, <w^208050, 1>, <w^195567, 1>, <w^166440, 17>, <w^29127, 8>, <w^54093, 1>, <w^20805, 17>, <w^74898, 9>, <w^116508, 17>, <w^253821, 1>, <w^137313, 9>, <w^104025, 1>, <w^8322, 1>, <w^70737, 8>, <w^191406, 8>, <w^91542,
    1>, <w^124830, 9>, <w^158118, 1>, <w^233016, 8>, <w^45771, 1>, <w^212211, 9>, <w^220533, 8>, <w^95703, 17>, <w^187245, 9>, <w^145635, 17>, <w^49932, 9>, <w^41610, 8>, <w^170601, 1>, <1, 32>, <w^66576, 1>, <w^216372, 1> },
    { <w^187245, 10>, <w^54093, 3>, <w^66576, 3>, <w^237177, 1>, <w^8322, 3>, <w^95703, 15>, <w^45771, 3>, <w^145635, 15>, <w^170601, 3>, <w^191406, 6>, <w^166440, 15>, <w^220533, 6>, <w^137313, 10>, <w^104025, 3>, <w^216372, 3>,
    <w^24966, 1>, <w^87381, 1>, <w^158118, 3>, <w^29127, 6>, <w^20805, 15>, <w^241338, 15>, <w^212211, 10>, <w^62415, 1>, <w^253821, 3>, <w^208050, 3>, <w^41610, 6>, <w^116508, 15>, <w^174762, 1>, <1, 20>, <w^74898, 10>, <w^199728, 1>,
    <w^49932, 10>, <w^124830, 10>, <w^70737, 6>, <w^195567, 3>, <w^233016, 6>, <w^91542, 3> },
    { <w^133152, 1>, <w^245499, 1>, <w^108186, 4>, <w^4161, 4>, <w^249660, 2>, <w^153957, 4>, <w^24966, 7>, <w^54093, 1>, <w^79059, 4>, <w^91542, 1>, <w^166440, 7>, <w^12483, 2>, <w^29127, 1>, <w^257982, 4>, <w^145635, 7>, <w^174762, 2>,
    <w^158118, 4>, <1, 14>, <w^162279, 2>, <w^141474, 9>, <w^137313, 3>, <w^233016, 1>, <w^128991, 1>, <w^187245, 3>, <w^49932, 3>, <w^99864, 2>, <w^178923, 9>, <w^124830, 3>, <w^237177, 7>, <w^212211, 3>, <w^216372, 4>, <w^228855, 4>,
    <w^33288, 4>, <w^241338, 7>, <w^83220, 9>, <w^224694, 7>, <w^70737, 2>, <w^220533, 2>, <w^199728, 7>, <w^191406, 2>, <w^62415, 7>, <w^58254, 9>, <w^16644, 1>, <w^74898, 3>, <w^116508, 7>, <w^104025, 4>, <w^95703, 7>, <w^203889, 9>,
    <w^41610, 2>, <w^20805, 7>, <w^45771, 4>, <w^208050, 1>, <w^87381, 2>, <w^37449, 7>, <w^170601, 1>, <w^183084, 4>, <w^120669, 9> },
    { <w^112347, 2>, <w^178923, 7>, <w^191406, 7>, <w^74898, 2>, <w^62415, 4>, <w^41610, 7>, <w^145635, 9>, <w^183084, 2>, <w^216372, 2>, <w^87381, 4>, <w^174762, 4>, <w^162279, 4>, <w^37449, 2>, <w^91542, 2>, <w^20805, 7>, <w^212211,
    4>, <w^49932, 4>, <w^70737, 7>, <w^170601, 2>, <w^108186, 2>, <w^116508, 9>, <w^224694, 2>, <w^153957, 2>, <w^233016, 9>, <w^241338, 7>, <w^45771, 2>, <w^79059, 2>, <w^249660, 4>, <w^24966, 4>, <w^124830, 4>, <w^29127, 9>, <w^120669,
    7>, <w^220533, 7>, <w^104025, 2>, <w^83220, 7>, <w^12483, 4>, <w^58254, 9>, <w^95703, 7>, <w^158118, 2>, <w^149796, 2>, <w^199728, 4>, <w^54093, 2>, <w^99864, 4>, <w^187245, 2>, <w^141474, 7>, <w^203889, 9>, <w^237177, 4>, <1, 18>,
    <w^208050, 2>, <w^166440, 7>, <w^137313, 4> },
    { <w^166440, 11>, <w^20805, 11>, <w^62415, 3>, <w^112347, 1>, <w^228855, 1>, <w^253821, 4>, <w^74898, 8>, <w^70737, 6>, <w^249660, 1>, <w^4161, 1>, <w^79059, 1>, <w^8322, 4>, <w^137313, 8>, <w^116508, 11>, <w^162279, 1>, <w^91542,
    4>, <w^120669, 1>, <w^158118, 4>, <w^29127, 6>, <1, 14>, <w^183084, 1>, <w^95703, 11>, <w^220533, 6>, <w^33288, 1>, <w^195567, 4>, <w^12483, 1>, <w^216372, 4>, <w^199728, 3>, <w^141474, 1>, <w^108186, 1>, <w^191406, 6>, <w^187245,
    8>, <w^124830, 8>, <w^237177, 3>, <w^208050, 4>, <w^99864, 1>, <w^41610, 6>, <w^174762, 3>, <w^241338, 11>, <w^83220, 1>, <w^153957, 1>, <w^24966, 3>, <w^54093, 4>, <w^87381, 3>, <w^170601, 4>, <w^104025, 4>, <w^233016, 6>,
    <w^212211, 8>, <w^49932, 8>, <w^66576, 4>, <w^45771, 4>, <w^178923, 1>, <w^149796, 1>, <w^257982, 1>, <w^145635, 11> },
    { <1, 20>, <w^4161, 7>, <w^74898, 4>, <w^79059, 3>, <w^41610, 11>, <w^158118, 3>, <w^183084, 3>, <w^58254, 5>, <w^29127, 11>, <w^70737, 11>, <w^104025, 3>, <w^153957, 3>, <w^33288, 7>, <w^228855, 7>, <w^45771, 3>, <w^216372, 3>,
    <w^141474, 5>, <w^162279, 4>, <w^191406, 11>, <w^16644, 1>, <w^220533, 11>, <w^120669, 5>, <w^24966, 3>, <w^178923, 5>, <w^83220, 5>, <w^187245, 4>, <w^8322, 4>, <w^128991, 1>, <w^149796, 5>, <w^249660, 4>, <w^62415, 3>, <w^199728,
    3>, <w^245499, 1>, <w^233016, 11>, <w^12483, 4>, <w^66576, 4>, <w^253821, 4>, <w^108186, 3>, <w^224694, 7>, <w^112347, 5>, <w^203889, 5>, <w^195567, 4>, <w^99864, 4>, <w^133152, 1>, <w^37449, 7>, <w^237177, 3>, <w^257982, 7> },
    { <w^208050, 5>, <w^116508, 3>, <w^170601, 5>, <w^108186, 4>, <w^95703, 4>, <w^104025, 2>, <w^45771, 2>, <w^62415, 3>, <w^124830, 4>, <w^153957, 4>, <w^33288, 2>, <w^70737, 6>, <w^203889, 4>, <w^79059, 4>, <w^195567, 3>, <w^245499,
    4>, <w^54093, 5>, <w^257982, 2>, <w^112347, 5>, <w^29127, 6>, <w^141474, 4>, <w^4161, 2>, <w^187245, 3>, <w^137313, 4>, <w^241338, 4>, <w^178923, 4>, <w^216372, 2>, <w^37449, 4>, <w^224694, 4>, <w^220533, 6>, <w^158118, 2>, <w^8322,
    3>, <w^212211, 4>, <w^199728, 3>, <w^66576, 3>, <w^253821, 3>, <w^191406, 6>, <w^237177, 3>, <w^120669, 4>, <w^145635, 3>, <w^41610, 6>, <w^174762, 3>, <w^133152, 4>, <w^128991, 4>, <w^162279, 5>, <w^249660, 5>, <w^24966, 3>,
    <w^87381, 3>, <w^74898, 3>, <w^91542, 5>, <w^166440, 4>, <w^233016, 6>, <w^58254, 4>, <w^228855, 2>, <w^49932, 4>, <w^20805, 4>, <w^16644, 4>, <w^12483, 5>, <w^183084, 4>, <w^83220, 4>, <1, 8>, <w^99864, 5>, <w^149796, 5> },
    { <w^16644, 9>, <w^249660, 4>, <w^108186, 4>, <w^245499, 9>, <w^220533, 3>, <w^29127, 3>, <w^212211, 2>, <w^191406, 3>, <w^199728, 1>, <w^24966, 1>, <w^137313, 2>, <w^70737, 3>, <w^203889, 2>, <w^153957, 4>, <w^112347, 9>, <w^79059,
    4>, <w^166440, 7>, <w^237177, 1>, <w^62415, 1>, <w^257982, 7>, <w^145635, 7>, <w^91542, 4>, <w^120669, 1>, <w^195567, 1>, <1, 14>, <w^66576, 1>, <w^187245, 3>, <w^133152, 9>, <w^228855, 7>, <w^149796, 9>, <w^233016, 3>, <w^33288, 7>,
    <w^141474, 1>, <w^8322, 1>, <w^241338, 7>, <w^208050, 4>, <w^41610, 3>, <w^224694, 7>, <w^49932, 2>, <w^12483, 4>, <w^83220, 1>, <w^162279, 4>, <w^128991, 9>, <w^253821, 1>, <w^74898, 3>, <w^54093, 4>, <w^116508, 7>, <w^170601, 4>,
    <w^95703, 7>, <w^20805, 7>, <w^4161, 7>, <w^37449, 7>, <w^58254, 2>, <w^178923, 1>, <w^183084, 4>, <w^99864, 4>, <w^124830, 2> },
    { <w^249660, 4>, <w^108186, 4>, <w^45771, 1>, <w^4161, 3>, <w^216372, 1>, <w^74898, 5>, <w^241338, 6>, <w^145635, 5>, <w^153957, 4>, <w^95703, 6>, <w^33288, 3>, <w^203889, 4>, <w^70737, 6>, <w^116508, 5>, <w^141474, 3>, <w^79059, 4>,
    <w^195567, 3>, <w^24966, 2>, <w^237177, 2>, <w^245499, 4>, <w^149796, 4>, <w^166440, 6>, <w^91542, 4>, <w^228855, 3>, <w^174762, 2>, <1, 14>, <w^158118, 1>, <w^137313, 3>, <w^49932, 3>, <w^120669, 3>, <w^257982, 3>, <w^104025, 1>,
    <w^37449, 4>, <w^224694, 4>, <w^220533, 6>, <w^20805, 6>, <w^124830, 3>, <w^8322, 3>, <w^199728, 2>, <w^212211, 3>, <w^29127, 7>, <w^66576, 3>, <w^253821, 3>, <w^62415, 2>, <w^191406, 6>, <w^187245, 5>, <w^208050, 4>, <w^41610, 6>,
    <w^83220, 3>, <w^133152, 4>, <w^12483, 4>, <w^112347, 4>, <w^128991, 4>, <w^162279, 4>, <w^54093, 4>, <w^170601, 4>, <w^233016, 7>, <w^58254, 4>, <w^87381, 2>, <w^16644, 4>, <w^183084, 4>, <w^178923, 3>, <w^99864, 4> },
    { <w^62415, 4>, <w^108186, 4>, <w^95703, 4>, <w^83220, 5>, <w^145635, 6>, <w^249660, 2>, <w^153957, 4>, <w^203889, 4>, <w^70737, 6>, <w^54093, 1>, <w^79059, 4>, <w^195567, 3>, <w^116508, 6>, <w^120669, 5>, <w^91542, 1>, <w^12483, 2>,
    <w^257982, 7>, <w^112347, 2>, <w^174762, 2>, <w^74898, 4>, <w^158118, 4>, <w^29127, 6>, <1, 14>, <w^162279, 2>, <w^137313, 3>, <w^49932, 3>, <w^99864, 2>, <w^241338, 4>, <w^220533, 6>, <w^228855, 7>, <w^141474, 5>, <w^24966, 4>,
    <w^124830, 3>, <w^212211, 3>, <w^8322, 3>, <w^216372, 4>, <w^33288, 7>, <w^66576, 3>, <w^253821, 3>, <w^191406, 6>, <w^224694, 7>, <w^41610, 6>, <w^178923, 5>, <w^237177, 4>, <w^166440, 4>, <w^187245, 4>, <w^149796, 2>, <w^104025,
    4>, <w^233016, 6>, <w^58254, 4>, <w^4161, 7>, <w^45771, 4>, <w^208050, 1>, <w^87381, 2>, <w^37449, 7>, <w^199728, 4>, <w^20805, 4>, <w^183084, 4>, <w^170601, 1> },
    { <w^199728, 6>, <w^29127, 3>, <w^116508, 9>, <w^45771, 3>, <w^4161, 4>, <w^87381, 6>, <w^37449, 5>, <w^249660, 1>, <w^91542, 3>, <w^166440, 7>, <w^257982, 4>, <w^216372, 3>, <w^162279, 1>, <w^195567, 1>, <1, 16>, <w^66576, 1>,
    <w^141474, 9>, <w^137313, 3>, <w^49932, 3>, <w^203889, 8>, <w^24966, 6>, <w^178923, 9>, <w^183084, 3>, <w^124830, 3>, <w^224694, 5>, <w^233016, 3>, <w^212211, 3>, <w^12483, 1>, <w^8322, 1>, <w^228855, 4>, <w^153957, 3>, <w^33288, 4>,
    <w^241338, 7>, <w^74898, 1>, <w^145635, 9>, <w^174762, 6>, <w^83220, 9>, <w^99864, 1>, <w^58254, 8>, <w^79059, 3>, <w^70737, 2>, <w^220533, 2>, <w^158118, 3>, <w^191406, 2>, <w^253821, 1>, <w^237177, 6>, <w^95703, 7>, <w^41610, 2>,
    <w^20805, 7>, <w^54093, 3>, <w^170601, 3>, <w^187245, 1>, <w^208050, 3>, <w^108186, 3>, <w^104025, 3>, <w^120669, 9>, <w^62415, 6> }
];
Eigs2Trivs:=
[
    { <w^237177, 18>, <w^87381, 25>, <w^224694, 9>, <w^149796, 18>, <w^62415, 18>, <w^249660, 1>, <w^137313, 9>, <w^49932, 9>, <w^112347, 18>, <w^212211, 9>, <w^99864, 1>, <w^199728, 18>, <1, 32>, <w^24966, 18>, <w^162279, 1>, <w^12483,
    1>, <w^174762, 25>, <w^37449, 9>, <w^124830, 9> },
    { <1, 22>, <w^237177, 18>, <w^187245, 2>, <w^74898, 2>, <w^162279, 3>, <w^224694, 10>, <w^62415, 18>, <w^137313, 9>, <w^49932, 9>, <w^212211, 9>, <w^149796, 20>, <w^199728, 18>, <w^112347, 20>, <w^174762, 21>, <w^37449, 10>,
    <w^24966, 18>, <w^99864, 3>, <w^249660, 3>, <w^12483, 3>, <w^124830, 9>, <w^87381, 21> },
    { <w^162279, 14>, <w^249660, 14>, <w^74898, 14>, <w^124830, 7>, <w^199728, 11>, <w^237177, 11>, <w^149796, 13>, <w^87381, 17>, <w^49932, 7>, <w^12483, 14>, <w^37449, 7>, <w^212211, 7>, <w^62415, 11>, <w^112347, 13>, <w^137313, 7>,
    <w^187245, 14>, <w^224694, 7>, <w^99864, 14>, <1, 18>, <w^24966, 11>, <w^174762, 17> },
    { <w^12483, 9>, <w^237177, 9>, <w^99864, 9>, <w^162279, 9>, <w^174762, 27>, <w^224694, 10>, <w^24966, 9>, <w^74898, 10>, <w^137313, 9>, <w^49932, 9>, <w^212211, 9>, <w^199728, 9>, <w^62415, 9>, <1, 26>, <w^149796, 10>, <w^37449, 10>,
    <w^87381, 27>, <w^249660, 9>, <w^187245, 10>, <w^112347, 10>, <w^124830, 9> },
    { <w^49932, 10>, <1, 20>, <w^237177, 16>, <w^74898, 7>, <w^199728, 16>, <w^224694, 10>, <w^24966, 16>, <w^212211, 10>, <w^249660, 6>, <w^37449, 10>, <w^162279, 6>, <w^124830, 10>, <w^87381, 17>, <w^112347, 16>, <w^12483, 6>,
    <w^62415, 16>, <w^149796, 16>, <w^137313, 10>, <w^99864, 6>, <w^187245, 7>, <w^174762, 17> },
    { <w^137313, 15>, <w^49932, 15>, <w^112347, 7>, <w^12483, 12>, <1, 20>, <w^187245, 11>, <w^224694, 12>, <w^37449, 12>, <w^124830, 15>, <w^24966, 7>, <w^74898, 11>, <w^149796, 7>, <w^249660, 12>, <w^212211, 15>, <w^162279, 12>,
    <w^237177, 7>, <w^62415, 7>, <w^199728, 7>, <w^174762, 16>, <w^87381, 16>, <w^99864, 12> },
    { <w^212211, 12>, <w^224694, 13>, <w^249660, 11>, <w^162279, 11>, <w^199728, 11>, <w^237177, 11>, <w^112347, 12>, <w^87381, 13>, <w^124830, 12>, <w^187245, 11>, <w^74898, 11>, <w^62415, 11>, <w^137313, 12>, <w^12483, 11>, <w^174762,
    13>, <w^49932, 12>, <1, 14>, <w^149796, 12>, <w^37449, 13>, <w^99864, 11>, <w^24966, 11> },
    { <w^212211, 12>, <w^112347, 11>, <w^224694, 11>, <w^37449, 11>, <w^237177, 12>, <w^249660, 12>, <w^174762, 12>, <w^124830, 12>, <w^24966, 12>, <w^187245, 11>, <w^74898, 11>, <w^199728, 12>, <w^149796, 11>, <w^137313, 12>, <w^87381,
    12>, <w^62415, 12>, <w^49932, 12>, <1, 14>, <w^99864, 12>, <w^12483, 12>, <w^162279, 12> },
    { <w^162279, 10>, <w^137313, 11>, <1, 18>, <w^74898, 8>, <w^49932, 11>, <w^199728, 13>, <w^124830, 11>, <w^187245, 8>, <w^37449, 13>, <w^149796, 10>, <w^62415, 13>, <w^237177, 13>, <w^224694, 13>, <w^174762, 16>, <w^24966, 13>,
    <w^99864, 10>, <w^249660, 10>, <w^212211, 11>, <w^12483, 10>, <w^112347, 10>, <w^87381, 16> },
    { <w^224694, 8>, <w^199728, 11>, <w^237177, 11>, <w^149796, 13>, <w^187245, 10>, <w^12483, 13>, <w^74898, 10>, <w^137313, 10>, <w^49932, 10>, <w^124830, 10>, <w^62415, 11>, <w^37449, 8>, <w^112347, 13>, <w^249660, 13>, <w^99864, 13>,
    <w^174762, 16>, <w^212211, 10>, <1, 18>, <w^87381, 16>, <w^24966, 11>, <w^162279, 13> },
    { <w^99864, 16>, <w^162279, 16>, <w^249660, 16>, <w^137313, 5>, <w^24966, 11>, <w^187245, 12>, <w^74898, 12>, <w^212211, 5>, <w^12483, 16>, <w^49932, 5>, <w^124830, 5>, <w^237177, 11>, <1, 28>, <w^224694, 3>, <w^62415, 11>, <w^37449,
    3>, <w^149796, 11>, <w^87381, 20>, <w^112347, 11>, <w^199728, 11>, <w^174762, 20> }
];



G2:=SL(3,8);
CC:=ConjugacyClasses(G2);
S1:=TrivialModule(G2,GF(8));
S31:=GModule(G2); S31d:=Dual(S31);
S32:=Socle(SymmetricSquare(S31)); S32d:=Dual(S32);
S33:=Socle(SymmetricSquare(S32)); S33d:=Dual(S33);
S81:=TensorProduct(S31,S31d); S81:=S81/Fix(S81);
S82:=TensorProduct(S32,S32d); S82:=S82/Fix(S82);
S83:=TensorProduct(S33,S33d); S83:=S83/Fix(S83);
S912:=TensorProduct(S31,S32); S912d:=Dual(S912);
S921:=TensorProduct(S31,S32d); S921d:=Dual(S921);
S913:=TensorProduct(S31,S33); S913d:=Dual(S913);
S931:=TensorProduct(S31,S33d); S931d:=Dual(S931);
S923:=TensorProduct(S32,S33); S923d:=Dual(S923);
S932:=TensorProduct(S32,S33d); S932d:=Dual(S932);
S2412:=TensorProduct(S31,S82); S2412d:=Dual(S2412);
S2413:=TensorProduct(S31,S83); S2413d:=Dual(S2413);
S2423:=TensorProduct(S32,S83); S2423d:=Dual(S2423);
S2421:=TensorProduct(S32,S81); S2421d:=Dual(S2421);
S2431:=TensorProduct(S33,S81); S2431d:=Dual(S2431);
S2432:=TensorProduct(S33,S82); S2432d:=Dual(S2432);
S271:=TensorProduct(S912,S33); S271d:=Dual(S271);
S272:=TensorProduct(S912,S33d); S272d:=Dual(S272);
S273:=TensorProduct(S913,S32d); S273d:=Dual(S273);
S274:=TensorProduct(S923,S31d); S274d:=Dual(S274);
S6412:=TensorProduct(S81,S82);
S6413:=TensorProduct(S81,S83);
S6423:=TensorProduct(S82,S83);
S721:=TensorProduct(S912,S83); S721d:=Dual(S721);
S722:=TensorProduct(S913,S82); S722d:=Dual(S722);
S723:=TensorProduct(S923,S81); S723d:=Dual(S723);
S724:=TensorProduct(S921,S83); S724d:=Dual(S724);
S725:=TensorProduct(S931,S82); S725d:=Dual(S725);
S726:=TensorProduct(S932,S81); S726d:=Dual(S726);
Irr2:=[S1,S31,S31d,S32,S32d,S33,S33d,S81,S82,S83,S912,S912d,S921,S921d,S913,S913d,S931,S931d,S923,S923d,S932,S932d,
S2412,S2412d,S2421,S2421d,S2413,S2413d,S2431,S2431d,S2423,S2423d,S2432,S2432d,S271,S271d,S272,S272d,S273,S273d,S274,S274d,
S6412,S6413,S6423,S721,S721d,S722,S722d,S723,S723d,S724,S724d,S725,S725d,S726,S726d];

for i in [31..48] do if(EigenvaluesOfElement(ChangeRing(S31,F),CC[i,3]) eq { <w^224694, 1>, <w^33288, 1>, <w^4161, 1> }) then x:=CC[i,3]; end if; end for;

P:=[21,9,7];

Ans:=RestrictedPartitions(248,{1,6,8,18,48,54,64,144});
AnsA:=[i:i in Ans|Multiplicity(i,1)+Multiplicity(i,64)-Multiplicity(i,8) in {-4,5,14,77}];
AnsB:=[i:i in AnsA|not(1 in i) or Multiplicity(i,1) lt 2*Multiplicity(i,18)];

Ans3,Mods,Irr:=ComputeConspicuousFactorsE8LowMemory(Irr2,CC,Tr,P,AnsB);
Ans3a:=[IdentifyFactors(i,Irr2):i in Mods];

// We just want to take orbits under the field automorphism. Our set isn't quite what we obtain under the OrbitReps program, so we have to be a bit careful.

Ans4a:=[
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 5, 8, 10, 10, 10, 10, 10, 10, 10, 10, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8, 8, 8, 8, 10, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8, 8, 8, 8, 10, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 21, 22 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 8, 8, 9, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 25, 26 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 7, 8, 8, 10, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 29, 30 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 21, 21, 22, 22, 44 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 8, 9, 10, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 19, 19, 19, 20, 20, 20, 37, 38 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 8, 9, 10, 11, 11, 12, 12, 15, 15, 16, 16, 19, 19, 20, 20, 35, 35, 36, 36 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 8, 9, 10, 13, 13, 13, 14, 14, 14, 17, 17, 17, 18, 18, 18, 21, 21, 21, 22, 22, 22, 35, 36 ],
[ 1, 1, 1, 1, 1, 1, 8, 8, 11, 12, 15, 15, 15, 16, 16, 16, 21, 21, 22, 22, 41, 42, 44 ],
[ 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 8, 8, 8, 8, 8, 8, 8, 8, 11, 12, 13, 13, 13, 14, 14, 14 ],
[ 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 7, 8, 8, 8, 9, 9, 9, 9, 9, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 14, 14 ],
[ 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 7, 15, 16, 17, 17, 17, 18, 18, 18, 19, 20, 29, 30, 44 ],
[ 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 5, 6, 7, 15, 16, 17, 18, 21, 22, 27, 28, 29, 30, 44 ],
[ 1, 1, 1, 1, 2, 2, 3, 3, 4, 5, 11, 12, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 39, 40, 44 ],
[ 1, 1, 1, 1, 2, 3, 11, 12, 17, 18, 19, 20, 21, 22, 27, 28, 41, 42, 44 ],
[ 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 10, 10, 10, 15, 15, 16, 16, 17, 17, 17, 18, 18, 18, 27, 28 ],
[ 1, 1, 2, 3, 4, 5, 8, 8, 8, 8, 8, 10, 15, 15, 16, 16, 17, 17, 18, 18, 19, 20, 27, 28, 31, 32 ],
[ 1, 1, 2, 3, 4, 5, 8, 8, 9, 9, 9, 9, 11, 11, 12, 12, 13, 13, 14, 14, 15, 16, 23, 24, 25, 26 ],
[ 1, 1, 2, 3, 8, 9, 9, 10, 10, 10, 19, 19, 20, 20, 23, 24, 35, 36, 41, 42 ],
[ 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 7, 8, 8, 8, 10, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 20, 21, 22, 29, 30 ],
[ 2, 2, 2, 3, 3, 3, 4, 5, 6, 7, 8, 8, 10, 10, 15, 15, 16, 16, 17, 17, 18, 18, 21, 22, 27, 28, 29, 30 ],
[ 2, 2, 3, 3, 4, 4, 5, 5, 8, 9, 10, 10, 17, 17, 18, 18, 31, 32, 37, 38, 41, 42 ],
[ 2, 2, 3, 3, 4, 5, 9, 9, 9, 10, 11, 11, 12, 12, 17, 17, 18, 18, 21, 22, 41, 41, 42, 42 ],
[ 2, 3, 8, 9, 10, 10, 13, 14, 19, 19, 20, 20, 27, 28, 35, 36, 41, 42 ],
[ 2, 3, 8, 9, 10, 10, 11, 12, 21, 21, 22, 22, 27, 28, 37, 38, 39, 40 ]];

frob:=Sym(57)![IdentifyModule(GModule(G2,FrobeniusImage(i,1)),Irr2):i in Irr2];
#Ans4a eq #OrbitReps(Ans3a,frob) and Ans4a eq OrbitReps(Ans4a,frob); // This checks that they have the same size and Ans4a has no two sets from the same orbit.

// Now remove those of non-positive pressure.

Cohoms:=[11,12,15,16,19,20];

Ans5:=[i:i in Ans4a|not(1 in i) or Multiplicity(i,1) lt &+[Multiplicity(i,j):j in Cohoms]];

ModsNoTrivs:=[DirectSum([Irr2[i]:i in Ans5[j]]):j in [12..17]];
ModsTrivs:=[DirectSum([Irr2[i]:i in Ans5[j]]):j in [1..11]];

"Checking if eigenvalues match those of modules";
Eigs1NoTrivs eq [EigenvaluesOfElement(ChangeRing(i,F),x):i in ModsNoTrivs];
Eigs1Trivs eq [EigenvaluesOfElement(ChangeRing(i,F),x):i in ModsTrivs];
Eigs2NoTrivs eq [EigenvaluesOfElement(ChangeRing(i,F),x^3):i in ModsNoTrivs];
Eigs2Trivs eq [EigenvaluesOfElement(ChangeRing(i,F),x^3):i in ModsTrivs];


/* Some code for how to generate the elements below.
El1:=[];
for i in Eigs2 do repeat x1:=Random(T21); until Eigenvalues(x1) eq i; Append(~El1,ExpressElementInGenerators(T21,x1)); El1; end for;

El1:=[];
repeat x1:=Random(T21); until Eigenvalues(x1) eq Eigs2Trivs[3]; ExpressElementInGenerators(T21,x1);
*/
El1NoTrivs:=[
    [ 14, 15, 1, 10, 7, 13, 4, 15 ],
    [ 17, 12, 19, 1, 16, 14, 3, 13 ],
    [ 9, 10, 1, 10, 3, 3, 19, 15 ],
    [ 9, 8, 14, 5, 8, 12, 7, 18 ],
    [ 10, 7, 5, 15, 20, 9, 4, 2 ],
    [ 12, 17, 13, 17, 6, 18, 0, 1 ]
];


El1Trivs:=[
    [ 4, 19, 10, 9, 2, 10, 16, 2 ],
    [ 5, 15, 7, 13, 19, 14, 7, 12 ],
    [ 2, 9, 18, 0, 9, 20, 12, 7 ],
    [ 14, 3, 19, 6, 8, 16, 12, 13 ],
    [ 19, 18, 16, 1, 13, 19, 3, 20 ],
    [ 4, 18, 9, 4, 15, 10, 17, 13 ],
    [ 7, 7, 16, 6, 11, 16, 18, 15 ],
    [ 16, 8, 3, 7, 9, 3, 20, 9 ],
    [ 1, 1, 18, 20, 3, 10, 4, 0 ],
    [ 4, 6, 5, 2, 11, 7, 15, 8 ],
    [ 7, 6, 0, 7, 3, 3, 1, 0 ]
];


Eigs2:=Eigs2Trivs cat Eigs2NoTrivs;
Eigs1:=Eigs1Trivs cat Eigs1NoTrivs;
El1:=El1Trivs cat El1NoTrivs;



"Testing that the elements all power up correctly";
h1:=ProduceGroupElements(T21,El1);

&and[Eigenvalues(h1[i]) eq Eigs2[i]:i in [1..#h1]];

NextEls1All:=[];
for OneToCheck in [1..#Eigs2] do
  Els1:=ConstructPreimages([9*i:i in El1[OneToCheck]],189,3);
  e22:={*i[1]^^i[2]:i in Eigs1[OneToCheck]*};
  e2:={*R!(Log(i) div 1387):i in e22*};
  NextEls1:=[];
  for ii in [1..#Els1] do
    if e2 eq {*&+[Els1[ii,i]*X[i,j]:i in [1..8]]:j in [1..248]*} then Append(~NextEls1,Els1[ii]); end if;
    if(ii mod 1000 eq 0) then "At stage",ii,"of",#Els1,"there are",#NextEls1,"elements with the correct eigenvalues"; end if;
  end for;
  Append(~NextEls1All,NextEls1);
end for;

EltsToMerge:=[[],
[E.2*E.3*E.4*E.5*E.4*E.2*E.3*E.1*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.1*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.1*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.7*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4],
[E.2*E.4*E.3*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.7*E.6*E.5*E.4*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.7*E.6*E.5*E.4*E.2,E.2*E.4*E.2*E.3*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.7*E.6*E.5*E.4*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.7*E.6*E.5*E.4*E.2,E.2*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.1*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5],
[],
[E.3*E.1*E.4*E.2*E.3*E.4*E.5*E.4*E.2*E.3*E.1*E.4*E.3,E.6*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.7],
[],
[E.1*E.5*E.4*E.3*E.6*E.5*E.4*E.2*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.7*E.6*E.5*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.5*E.6*E.7,E.1*E.2*E.3*E.4*E.5*E.6*E.5*E.4*E.2*E.3*E.1,E.1*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.7*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.5*E.6*E.7],
[],
[],
[E.4*E.2*E.3*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.6*E.5*E.4*E.2*E.3*E.1*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.7*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.7*E.6*E.5*E.4,E.4*E.2*E.3*E.4*E.5*E.4*E.2*E.6*E.5*E.4*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.1*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.1*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.4,E.2*E.4*E.5*E.4*E.2],
[E.1*E.3*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.1*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.1*E.7*E.6*E.5*E.4,E.3*E.4*E.2*E.5*E.4*E.3*E.1*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.8],
[E.4*E.3*E.1*E.5*E.4*E.2*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.6*E.5*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.6,E.4*E.3*E.1*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.6],
[E.1*E.4*E.2*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.6*E.7*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.5*E.6,E.4*E.2*E.3*E.4*E.5*E.6*E.5*E.4*E.2*E.3*E.4],
[E.2*E.3*E.1*E.4*E.2*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.7*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5,E.1*E.3*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.6*E.5*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.1*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.5],
[E.1*E.2*E.3*E.4*E.5*E.6*E.7*E.6*E.5*E.4*E.2*E.3*E.1,E.2*E.4*E.5*E.4*E.2,E.3*E.1*E.4*E.2*E.3*E.4*E.5*E.4*E.2*E.3*E.1*E.4*E.3,
E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.1*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.7*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.1*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.7*E.8],
[E.4*E.3*E.1*E.5*E.4*E.2*E.3*E.1*E.6*E.5*E.4*E.2*E.3*E.1*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.7*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.5*E.4*E.3*E.7*E.6*E.5*E.4,
E.2*E.4*E.3*E.1*E.5*E.7*E.6*E.5*E.4*E.2*E.3*E.4*E.5*E.6*E.7*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.3*E.5*E.4*E.2*E.6*E.7],
[E.1*E.3*E.4*E.3*E.1,E.1*E.2*E.3*E.4*E.5*E.6*E.7*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1,E.4*E.5*E.6*E.7*E.8*E.7*E.6*E.5*E.4,E.1*E.2*E.3*E.7*E.8*E.7*E.6*E.5*E.4*E.2*E.3*E.1*E.4*E.5*E.6*E.7*E.8]];

for OneToCheck in [1..#NextEls1All] do
  if #NextEls1All[OneToCheck] le 1 then "Case",OneToCheck,"Nothing to check here"; continue OneToCheck; end if;
  gg1:=ProduceGroupElements(T,NextEls1All[OneToCheck]);
  g:=gg1[1]^3;
  Orbs:={{i}:i in [1..#gg1]};
  for e in EltsToMerge[OneToCheck] do
    for i in [1..#gg1] do
      j:=Position(gg1,gg1[i]^e);
      Orb1:=FindOrb(Orbs,i);
      if(not(j in Orb1)) then
        Orb2:=FindOrb(Orbs,j);
        Exclude(~Orbs,Orb1);
        Exclude(~Orbs,Orb2);
        Include(~Orbs,Orb1 join Orb2); //printf "Merged %o and %o.\n",Orb1,Orb2;
        delete Orb1; delete Orb2; if(#Orbs eq 1) then "Case",OneToCheck,"All merged"; break e; end if;
      end if;
    end for;
//  "So far we have merged elements into",#Orbs,"orbits";
  end for;
end for;


labs:=["1","3_1","3_1^*","3_2","3_2^*","3_3","3_3^*","8_1","8_2","8_3","9_{1,2}","9_{1,2}^*","\\bar 9_{1,2}","\\bar 9_{1,2}^*","9_{1,3}","9_{1,3}^*","\\bar 9_{1,3}","\\bar 9_{1,3}^*","9_{2,3}","9_{2,3}^*","\\bar 9_{2,3}","\\bar 9_{2,3}^*",
"24_{1,2}","24_{1,2}^*","24_{2,1}","24_{2,1}^*","24_{1,3}","24_{1,3}^*","24_{3,1}","24_{3,1}^*","24_{2,3}","24_{2,3}^*","24_{3,2}","24_{3,2}^*","27_1","27_1^*","27_2","27_2^*","27_3","27_3^*","27_4","27_4^*","
6412","6413","6423","721","721^*","722","722^*","723","723^*","724","724^*","725","725^*","726","726^*"];


"Check cases 1,2,5,8 with trivials have elements of order 189 that preserve all eigenspaces.";
for JJ in [1,2,5,8] do
  g:=ProduceGroupElement(T,NextEls1All[JJ,1]); nn:=#Eigenvalues(g);
  Els2:=ConstructPreimages(NextEls1All[JJ,1],189,3);
  EigEls2:=[{&+[ii[i]*X[i,j]:i in [1..8]]:j in [1..248]}:ii in Els2];
  #[i:i in EigEls2|#i eq nn] gt 0;
end for;

"Check cases 3,10,11 with trivials have the elements of order 189 that is said in the text.";
for JJ in [3,10,11] do
  Els2:=ConstructPreimages(NextEls1All[JJ,1],189,3);
  EigEls2:=[{*&+[ii[i]*X[i,j]:i in [1..8]]:j in [1..248]*}:ii in Els2];
  EigMults2:=[{*i*3:i in MultisetToSet(j)*}:j in EigEls2];
  WhatMults:=[{i:i in j|Multiplicity(j,i) eq 1}:j in EigMults2];

  g:=ProduceGroupElement(T,NextEls1All[JJ,1]); nn:=#Eigenvalues(g);
  EigsToTest1:=[EigenvaluesOfElement(ChangeRing(Irr2[i],F),x):i in [1..45]];
  EigsToTest2:=[{R!(Log(i[1]) div 1387):i in j}:j in EigsToTest1];
  "Case",JJ;
  for j in SequenceToSet(Ans5[JJ]) do labs[j],"is stabilized by",#[i:i in WhatMults|EigsToTest2[j] subset i],"elements"; end for;
end for;

"Check cases with no trivials have the elements of order 189 that is said in the text.";
for JJ in [12..17] do
  Els2:=ConstructPreimages(NextEls1All[JJ,1],189,3);
  EigEls2:=[{*&+[ii[i]*X[i,j]:i in [1..8]]:j in [1..248]*}:ii in Els2];
  EigMults2:=[{*i*3:i in MultisetToSet(j)*}:j in EigEls2];
  WhatMults:=[{i:i in j|Multiplicity(j,i) eq 1}:j in EigMults2];

  g:=ProduceGroupElement(T,NextEls1All[JJ,1]); nn:=#Eigenvalues(g);
  EigsToTest1:=[EigenvaluesOfElement(ChangeRing(Irr2[i],F),x):i in [1..45]];
  EigsToTest2:=[{R!(Log(i[1]) div 1387):i in j}:j in EigsToTest1];
  "Case",JJ-11;
  for j in SequenceToSet(Ans5[JJ]) do labs[j],"is stabilized by",#[i:i in WhatMults|EigsToTest2[j] subset i],"elements"; end for;
end for;

// Now we check the various facts about modules that are mentioned in the proof

"Checking that the modules split off that are said to split off.";
"8_3 splits off in cases 2,3,4 with no trivials";
for i in SequenceToSet(Ans5[13] cat Ans5[14] cat Ans5[15]) do Dimension(Ext(Irr2[i],S83)) eq 0; end for;

"8_1 splits off in Case 5 with no trivials, and Case 11 with trivials";
for i in SequenceToSet(Ans5[16] cat Ans5[11]) do Dimension(Ext(Irr2[i],S81)) eq 0; end for;

"8_2 splits off in Case 5 with no trivials, and Cases 3 and 11 with trivials";
for i in SequenceToSet(Ans5[16] cat Ans5[3] cat Ans5[11]) do Dimension(Ext(Irr2[i],S82)) eq 0; end for;

"3_1 splits off in Case 6 with no trivials";
for i in SequenceToSet(Ans5[17]) do Dimension(Ext(Irr2[i],S31)) eq 0; end for;

"24_{2,1} splits off in Case 10 with trivials";
for i in SequenceToSet(Ans5[10]) do Dimension(Ext(Irr2[i],S2421)) eq 0; end for;

"64_{1,3} splits off in Case 7 with trivials";
for i in SequenceToSet(Prune(Ans5[7])) do Dimension(Ext(Irr2[i],S6413)) eq 0; end for;

"Now we need to check radicals from Case 1 with no trivials.";

A1:=S921d; for i in [S32d,S913d,S923,S83,S31,S33,S2431d,S931d,S923d,S932,S32d,S31] do E,rho:=Ext(A1,i); A1:=MaximalExtension(A1,i,E,rho); DescribeLayers(Dual(A1),Irr2,labs); end for;
// Should all be zero.
for i in [ 2, 3, 4, 5, 6, 7, 8, 10, 15, 16, 17, 18, 19, 20, 21, 22, 29, 30 ] do Dimension(Ext(A1,Irr2[i])) eq 0; end for;

A2:=S923d; for i in [S931,S921,S83,S31d,S32,S31d,S2431] do E,rho:=Ext(A2,i); A2:=MaximalExtension(A2,i,E,rho); DescribeLayers(Dual(A2),Irr2,labs); end for;
// Should all be zero.
for i in [ 2, 3, 4, 5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 21, 22, 29, 30 ] do Dimension(Ext(A2,Irr2[i])) eq 0; end for;

A3:=S932d; for i in [S913,S33d,S81,S32,S31,S913d,S921,S33d] do E,rho:=Ext(A3,i); A3:=MaximalExtension(A3,i,E,rho); DescribeLayers(Dual(A3),Irr2,labs); end for;
// Should all be zero.
for i in [ 2, 3, 4, 5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 29, 30 ] do Dimension(Ext(A3,Irr2[i])) eq 0; end for;

A4:=S2431d; for i in [S31,S32d,S921d,S31,S931d,S32d,S923,S31,S931d] do E,rho:=Ext(A4,i); A4:=MaximalExtension(A4,i,E,rho); DescribeLayers(Dual(A4),Irr2,labs); end for;
// Should all be zero.
for i in [ 2, 3, 4, 5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 ] do Dimension(Ext(A4,Irr2[i])) eq 0; end for;

"Now we need to check radicals from Case 7 with trivials.";

B1:=S923d; for i in [S273d,S931,S1,S931d,S912,S31d,S31,S32,S912d,S32d,S31,S931d,S273d] do E,rho:=Ext(B1,i); B1:=MaximalExtension(B1,i,E,rho); DescribeLayers(Dual(B1),Irr2,labs); end for;
for i in [ 1, 2, 3, 4, 5, 11, 12, 17, 18, 39, 40 ] do Dimension(Ext(B1,Irr2[i])) eq 0; end for;

Dimension(Ext(B1,S923)) eq 0;
E,rho:=Ext(B1,S923d); B1a:=MaximalExtension(B1,S923,E,rho);

B2:=S912d; for i in [S1,S931d,S273d,S923,S923d,S1] do E,rho:=Ext(B2,i); B2:=MaximalExtension(B2,i,E,rho); DescribeLayers(Dual(B2),Irr2,labs); end for;
for i in [ S1,S31,S31d,S32,S32d,S923,S923d,S931,S931d,S273,S273d ] do Dimension(Ext(B2,i)) eq 0; end for;

Dimension(Ext(B2,S912)) eq 0;
