//Standard generators of L2(27) are a and b where a has order 2, b has order 3
//and ab has order 7.
//Standard generators of the double cover 2.L2(27) = SL2(27) are preimages A and
//B where B has order 3 and AB has order 7.  
_LR := rec < recformat< F: GrpFP, AI: SeqEnum, G: GrpMat > |
      F := FreeGroup(2) >;
_LR`AI := [ [a^-1, b^-1], //PSL(2,27).2 = PGL(2,27)
        [a, a^-1*b^-1*a*b*a*b^-1*a*b*a*b*a*b^-1*a*b*a*b^-1*a*b*a*b^-1*a*b]]
                 //PSL(2,27).3 = PSigmaL(2,27)
             where a is (_LR`F).1 where b is (_LR`F).2;
//two constituents interchanged by _LR`AI[1], fixed by _LR`AI[2]
_LR`G :=
MatrixGroup<13, ext<K|Polynomial(K, [1, -1, 1])> where K is RationalField() |
[[-1,3],[3,-3],[
-2,2],[1,0],[
1,-1],[2,-2],[0,-2],[
1,-1],[1,0],[
1,-2],[-1,2],[-1,-2],[
0,0],[-1,2],[
3,-2],[-1,1],[1,0],[
1,-1],[2,-2],[
0,-2],[1,0],[2,-1],[
1,-2],[-1,2],[
0,-3],[1,-1],[-1,0],[
1,0],[1,-1],[
1,0],[1,0],[1,0],[
0,0],[0,0],[1,
-1],[0,0],[0,0],[
2,-2],[1,-1],[
0,0],[0,0],[0,0],[
0,0],[0,0],[0,
0],[0,0],[0,0],[
-1,0],[0,0],[
0,0],[0,0],[0,0],[
1,-1],[-1,1],[
1,0],[0,0],[0,0],[
0,0],[-1,0],[
-1,1],[1,0],[0,0],[
0,0],[1,0],[0,
0],[0,0],[0,0],[
-1,0],[0,0],[
0,0],[0,0],[1,0],[
-1,0],[-1,0],[
0,0],[0,0],[0,0],[
-1,0],[-1,0],[
1,0],[0,0],[0,0],[
0,0],[1,0],[0,
0],[0,0],[0,0],[
0,0],[0,0],[1,
-1],[0,0],[-1,1],[
1,-1],[-1,1],[
0,0],[0,0],[0,0],[
0,0],[0,0],[
-1,1],[0,0],[0,0],[
0,0],[-1,1],[
0,0],[0,0],[0,0],[
-1,0],[0,0],[
0,0],[0,0],[0,0],[
0,0],[0,0],[0,
0],[0,0],[0,0],[
1,0],[0,-1],[
1,0],[1,0],[0,0],[
0,-1],[-2,0],[
0,0],[2,-2],[0,-1],[
1,1],[0,-1],[
1,-1],[-2,1],[2,0],[
-1,0],[0,0],[
0,0],[2,-1],[1,-1],[
0,1],[1,0],[2,
-1],[-1,1],[2,-3],[
0,0],[-1,1],[
1,-1],[-1,1],[0,0],[
0,0],[0,0],[0,
0],[1,0],[-1,1],[
0,0],[0,0],[
-1,0],[-1,1],[1,-1],[
-1,1],[0,0],[
0,0],[-1,0],[-1,0],[
0,0],[0,0],[0,
0],[0,0],[0,0],[
-1,1],[0,0]],
[[-1,0],[1,0],[
-2,0],[0,0],[0,-1],[
1,-1],[2,-1],[
-1,1],[-1,1],[1,0],[
-1,1],[0,-1],[
-1,0],[1,-2],[-2,1],[
1,-1],[0,-1],[
-1,0],[-1,1],[0,2],[
-1,0],[-1,0],[
-1,2],[1,-1],[0,2],[
0,0],[0,0],[0,
0],[0,0],[0,0],[
0,0],[0,0],[0,
0],[1,-1],[0,0],[
0,0],[0,0],[0,
0],[1,0],[-1,2],[
1,-1],[-2,1],[
0,0],[0,0],[0,-1],[
1,-1],[0,0],[
-1,1],[1,-1],[0,0],[
-1,-1],[-1,0],[
2,0],[-1,-2],[2,1],[
1,-1],[0,0],[
-1,0],[-3,1],[0,-1],[
2,-2],[-2,0],[
2,0],[-2,2],[0,0],[
-3,2],[3,0],[
-2,0],[0,1],[1,0],[
2,-1],[2,-2],[
1,0],[0,1],[2,-1],[
-2,1],[2,-3],[
1,-1],[0,0],[0,0],[
-1,0],[0,0],[
0,0],[0,0],[1,0],[
-1,0],[-1,0],[
0,0],[0,0],[0,0],[
-1,0],[-2,3],[
3,-2],[-3,1],[0,1],[
1,-1],[2,-2],[
2,-3],[0,0],[0,1],[
2,-2],[-2,2],[
0,-3],[-1,0],[1,0],[
0,-1],[1,0],[
1,-1],[0,0],[0,0],[
-2,1],[0,-1],[
1,-2],[-1,0],[1,0],[
-1,1],[0,-1],[
1,-1],[-2,1],[1,0],[
0,-1],[-1,0],[
-1,0],[-1,1],[0,0],[
0,0],[-1,1],[
1,-1],[-1,2],[0,1],[
2,-1],[-2,0],[
1,0],[1,-1],[0,-1],[
-1,0],[-1,1],[
-1,0],[0,-1],[-2,1],[
1,0],[-2,2],[
0,0],[0,1],[1,-1],[
-1,0],[0,0],[
1,-1],[1,-1],[1,-1],[
-1,1],[0,0],[
1,-1],[-1,1],[0,-2],[
-1,0],[1,-3],[
-3,3],[2,-2],[-1,0],[
-1,1],[-2,2],[
0,2],[-1,1],[-1,0],[
-1,2],[1,-2],[
1,2],[0,0]]>;

return _LR;
