<?xml version="1.0" encoding="UTF-8"?>
<Worksheet>
<Version major="2016" minor="2"/>
<Label-Scheme value="2" prefix=""/>
<View-Properties presentation="false" autoexpanding_sections="true" UserProfileName="Maple Default Profile" NumericFormat-ApplyInteger="true" NumericFormat-ApplyRational="true" NumericFormat-ApplyExponent="false">
</View-Properties>
<MapleNet-Properties prettyprint="3" warnlevel="3" preplot="" helpbrowser="standard" contextmenusize="automatic" displayprecision="-1" echo="1" unitattributes="&quot;fontweight&quot; = &quot;bold&quot;" imaginaryunit="I" longdelim="true" elisiontermsthreshold="10000" elisiondigitsafter="100" elisiondigitsbefore="100" plotdevice="inline" errorbreak="1" plotoptions="" plotdriver="opengl" quiet="false" elisiontermsbefore="100" elisiontermsafter="100" screenwidth="79" indentamount="4" plotoutput="terminal" screenpixelheight="1080" rtablesize="50" useclientjvm="true" labelwidth="20" postplot="" typesetting="standard" ansi="false" elisiondigitsthreshold="10000" showassumed="1" errorcursor="false" labelling="true" screenheight="25" prompt="&gt; " verboseproc="1" latexwidth="8.0" ShowLabels="true"/>
<Styles>
<Font name="Heading 1" background="[255,255,255]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="18" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Warning" background="[255,255,255]" bold="false" executable="false" family="Courier New" foreground="[0,0,255]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="2D Output" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,255]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Heading 4" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Line Printed Output" background="[255,255,255]" bold="false" executable="false" family="Courier New" foreground="[0,0,255]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Heading 2" background="[255,255,255]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="16" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Maple Output" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="2D Inert Output" background="[255,255,255]" bold="false" executable="true" family="Times New Roman" foreground="[144,144,144]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Heading 3" background="[255,255,255]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" opaque="false" readonly="false" size="14" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Diagnostic" background="[255,255,255]" bold="false" executable="false" family="Courier New" foreground="[40,120,40]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Ordered List 1" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Maple Input" background="[255,255,255]" bold="true" executable="true" family="Courier New" foreground="[120,0,14]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Text Output" background="[255,255,255]" bold="false" executable="false" family="Courier New" foreground="[0,0,255]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Ordered List 2" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Ordered List 3" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Ordered List 4" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Ordered List 5" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Annotation Title" background="[255,255,255]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="18" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Header and Footer" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="10" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="HyperlinkError" background="[255,255,255]" bold="false" executable="false" family="Courier New" foreground="[255,0,255]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="true" placeholder="false"/>
<Font name="Atomic Variable" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[175,0,175]" italic="true" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="HyperlinkWarning" background="[255,255,255]" bold="false" executable="false" family="Courier New" foreground="[0,0,255]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="true" placeholder="false"/>
<Font name="Dictionary Hyperlink" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[147,0,15]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="true" placeholder="false"/>
<Font name="2D Math" background="[255,255,255]" bold="false" executable="true" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Bullet Item" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Maple Plot" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Annotation Text" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="List Item" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Dash Item" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="2D Input" background="[255,255,255]" bold="false" executable="true" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Error" background="[255,255,255]" bold="false" executable="false" family="Courier New" foreground="[255,0,255]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Title" background="[255,255,255]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="18" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Text" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Normal" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Caption Reference" background="[255,255,255]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Code" background="[255,255,255]" bold="false" executable="false" family="Courier New" foreground="[255,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Maple Input Placeholder" background="[255,255,255]" bold="true" executable="true" family="Courier New" foreground="[200,0,200]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="true"/>
<Font name="Equation Label" background="[255,255,255]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Author" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Hyperlink" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,128,128]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="true" placeholder="false"/>
<Font name="Caption Text" background="[255,255,255]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Layout name="Heading 1" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="8" spacebelow="4" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Warning" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Heading 4" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Line Printed Output" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="any" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Heading 2" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="8" spacebelow="2" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Maple Output" alignment="centred" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.3" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Heading 3" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Diagnostic" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="any" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Ordered List 1" alignment="left" bullet="numeric" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="-1" bulletsuffix="."/>
<Layout name="Text Output" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="newline" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Ordered List 2" alignment="left" bullet="alphabetic" firstindent="0" leftmargin="36" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="-1" bulletsuffix="."/>
<Layout name="Ordered List 3" alignment="left" bullet="roman" firstindent="0" leftmargin="72" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="-1" bulletsuffix="."/>
<Layout name="Ordered List 4" alignment="left" bullet="ALPHABETIC" firstindent="0" leftmargin="108" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="-1" bulletsuffix="."/>
<Layout name="Ordered List 5" alignment="left" bullet="ROMAN" firstindent="0" leftmargin="144" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="-1" bulletsuffix="."/>
<Layout name="Annotation Title" alignment="centred" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="12" spacebelow="12" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="HyperlinkError" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="HyperlinkWarning" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Bullet Item" alignment="left" bullet="dot" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Maple Plot" alignment="centred" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="List Item" alignment="left" bullet="indent" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Dash Item" alignment="left" bullet="dash" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Error" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Title" alignment="centred" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="12" spacebelow="12" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Normal" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Author" alignment="centred" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="8" spacebelow="8" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Pencil-style name="Pencil 1" pen-color="[0,0,0]" pen-height="1.0" pen-width="1.0" pen-opacity="1.0"/>
<Pencil-style name="Pencil 2" pen-color="[0,0,255]" pen-height="1.0" pen-width="1.0" pen-opacity="1.0"/>
<Pencil-style name="Pencil 3" pen-color="[0,0,0]" pen-height="3.0" pen-width="3.0" pen-opacity="1.0"/>
<Pencil-style name="Pencil 4" pen-color="[0,0,255]" pen-height="3.0" pen-width="3.0" pen-opacity="1.0"/>
<Pencil-style name="Pencil 5" pen-color="[255,0,0]" pen-height="5.0" pen-width="5.0" pen-opacity="1.0"/>
<Highlighter-style name="Highlighter 5" pen-color="[255,255,0]" pen-height="48.0" pen-width="48.0" pen-opacity="0.8"/>
<Highlighter-style name="Highlighter 3" pen-color="[51,255,0]" pen-height="24.0" pen-width="24.0" pen-opacity="0.8"/>
<Highlighter-style name="Highlighter 4" pen-color="[0,255,255]" pen-height="32.0" pen-width="32.0" pen-opacity="0.8"/>
<Highlighter-style name="Highlighter 1" pen-color="[255,153,255]" pen-height="12.0" pen-width="8.0" pen-opacity="0.8"/>
<Highlighter-style name="Highlighter 2" pen-color="[255,204,0]" pen-height="14.0" pen-width="14.0" pen-opacity="0.8"/>
</Styles>
<Startup-Code startupcode=""/>
<Task-table>
    <Task-category name="&lt;default&gt;"/>
</Task-table>
<Task/>
<Group hide-input="false" hide-output="false" labelreference="L112" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">with(LinearAlgebra):
interface(rtablesize=50);</Text-field>
</Input>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUkjbW5HNiMvSSttb2R1bGVuYW1lRzYiSSxUeXBlc2V0dGluZ0dJKF9zeXNsaWJHRic2JFEjNTBGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRic=">IiNd</Equation></Text-field>
</Output>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L161" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">#Maple returns degree(0,x) as -inf, 
#we need it to return 0 for indexing
degree2 := proc(f,x)

local d;
d := degree(f,x);
if d = -infinity then return 0; fi;

return d;


end proc:</Text-field>
</Input>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L186" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">expandSpace := proc(F,Space,dCur,dNew,k)

local i,A;

if(dNew+1 &lt;= Space) then 
   return F,Space; 
fi;

#create new array
A := Array(1..2^k);

#move elements over
for i from 1 to dCur+1 do
   A[i] := F[i];
od;

return A,2^k;

end proc:</Text-field>
</Input>
</Group>
<Group hide-output="false" labelreference="L109" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">#Calculates M,S polynomials for Diophantine  Equations
#Verifies the initial n input polynomials are relatively prime
MultiEEA := proc(U::list,x::name,p::prime)
local n,M,sis,i,g,s,t,Mpolys,Spolys;

   #local variables
   n := nops(U);
   Mpolys := Array(2..n);
   Spolys := Array(1..n-1);
   M := 1;

   #Generate M
   for i from n by -1 to 2 do
      M := Expand(M*U[i]) mod p;
      Mpolys[i] := M;
   od;

   Mpolys := convert(Mpolys,list);
   sis := NULL;

   #Generate S, verify polynomials relatively prime
   for i from 1 to n-1 do
      g := Gcdex(Mpolys[i],U[i],x,'Spolys[i]') mod p;
      if g=1 then sis := sis,s; else return FAIL,FAIL,FAIL; fi;
   od;
   [sis],Mpolys,convert(Spolys,list);
end:</Text-field>
</Input>
</Group>
<Group hide-output="false" labelreference="L110" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">#Solves the polynomial Diophantine Equation
DiophantineN := proc(U,c,M,S,p,x)

local n,q,g,ck,i,s,t,Sigmas;

n := nops(U);
ck := c;
Sigmas := Array(1..n);
for i from 1 to n-1 do
   Sigmas[i] := Rem(ck*S[i],U[i],x) mod p;
   ck := Quo(ck-Sigmas[i]*M[i],U[i],x) mod p;
end do;
Sigmas[n] := ck;
return(convert(Sigmas,list));
end proc:</Text-field>
</Input>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L1" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">#calculates coeff(f_1*f_2*...*f_n,(y-alpha)^k) and stores the results in G
coeffExtract := proc(p,alpha,k,H,Space,Degrees,n,dy)

   local i,j,m,s,t,L,D,MIN,MAX,Delta;

   t := n; s := 1;
   while(t &gt; 1) do
      for i from 0 to floor(t/2)-1 do
         H[s+t+i],Space[s+t+i] := expandSpace(H[s+t+i],Space[s+t+i],Degrees[s+t+i],Degrees[s+2*i]+Degrees[s+2*i+1],ceil(log[2](Degrees[s+2*i]+Degrees[s+2*i+1]+1)));
         Degrees[s+t+i] := Degrees[s+2*i] + Degrees[s+2*i+1];
         if k &lt;= Degrees[s+2*i] + Degrees[s+2*i+1] then
            MIN := max(0,k-Degrees[s+2*i+1]);
            MAX := min(k,Degrees[s+2*i]);
            for L from MIN to MAX do
               H[s+t+i][k+1] := H[s+t+i][k+1] + H[s+2*i][L+1]*H[s+2*i+1][k-L+1] mod p;
            od;
         fi;
         #D[i] := D[2*i] + D[2*i+1];
      od;

      if t mod 2 = 1 then
         H[s+t+i],Space[s+t+i] := expandSpace(H[s+t+i],Space[s+t+i],Degrees[s+t+i],Degrees[s+2*i],ceil(log[2](Degrees[s+2*i]+1)));
         if Degrees[s+2*i] &gt;= k then
              Degrees[s+t+i] := Degrees[s+2*i];
              H[s+t+i][k+1] := H[s+2*i][k+1] mod p;
         fi;
      fi;
      
      s := s+t; t := ceil(t/2);
   od;
   
   if k+1 &gt; Space[s] then 
      Delta := 0;
   else
      Delta := H[s][k+1];
   fi;

   return Delta,H,Space,Degrees;   


end proc:</Text-field>
</Input>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L2" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">#Fills in missing values in G
coeffUpdate := proc(p,alpha,k,H,Space,D,n)

   local i,s,t,L,T;

   s := 1; t := n;
   while(t &gt; 1) do
      for i from 0 to floor(t/2)-1 do
         
         if s=1 then
            T[i] := 0;
            if D[2*i+1] = k then T[i] := H[s+2*i][k+1]*H[s+2*i+1][0+1] mod p; fi;
            if D[2*i+2] = k then T[i] := T[i] + H[s+2*i][0+1]*H[s+2*i+1][k+1] mod p; fi;
         else
            T[i] := H[s+2*i+1][0+1]*T[2*i] + H[s+2*i][0+1]*T[2*i+1] mod p;
         fi;
         H[s+t+i],Space[t+s+i] := expandSpace(H[s+t+i],Space[t+s+i],D[s+t+i],D[s+2*i] + D[s+2*i+1],ceil(log[2](D[s+2*i] + D[s+2*i+1]+1)));

         D[s+t+i] := D[s+2*i] + D[s+2*i+1];

         H[s+t+i][k+1] := H[s+t+i][k+1] + T[i] mod p;
      od;
      if(t mod 2 = 1) then
         T[i] := H[s+2*i][k+1];
         H[s+t+i],Space[t+s+i] := expandSpace(H[s+t+i],Space[t+s+i],D[s+t+i],D[s+2*i],ceil(log[2](D[s+2*i]+1)));
         D[s+t+i] := D[s+2*i];
         H[t+s+i][k+1] := T[i];
      fi;
      s := s+t; t := ceil(t/2);
   od;

   return H,Space,D;   

end proc:</Text-field>
</Input>
</Group>
<Group hide-output="false" labelreference="L111" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">CubicBivariateHensel := proc(A::polynom,F0::list,x::name,y::name,alpha::integer,p::prime)
#A(x,y) - polynomial to factor
#F0 - list of monic, relatively prime polynomials in x s.t. the product is equal to...
#x - variable 1 (usually x)
#y - variable 2 (usually y)
#alpha - integer to use for calculating the taylor coeff.
#p - prime

#local variables
local n,m,B,F,W,G,i,j,k,t,ck,sigmas,deltas,Delta,Coeffs,evalPoints,dx,dy,T,M,S,Space,Degrees,numPolys;

n := nops(F0);
F := F0;
dx := degree(A,x);
dy := degree(A,y);

#find the number of polynomials we will calculate
t := n;
numPolys := 1;
while t &gt; 1 do
   numPolys := numPolys + t;
   t := ceil(t/2);
od;

#initial arrays/lists
deltas := [seq(0,i=1..dx)];
evalPoints := [seq(i,i=0..dx-1)];

W := Array(1..dx);
G := Array(1..dx);
Degrees := Array(1..dx);
Space := Array(1..dx);
for i from 1 to dx do
   G[i] := Array(1..numPolys);
   for j from 1 to numPolys do
      G[i][j] := Array(1..1);
   od;
   Space[i] := Array([seq(1,i=1..numPolys)]);
   Degrees[i] := Array(1..numPolys);
od;


#get a taylor series around (y-alpha) (does NOT use Shaw and Traub's method)
B := taylor(A,y=alpha,dy+1);

#Solve for M polynomials to use for the Diophantine Equation (Optimization)
T,M,S := MultiEEA(F0,x,p); # Solve this once for re-use

#do initial evaluations
for i from 1 to dx do
   for j from 1 to n do
      G[i][j][1] := Eval(F0[j],x=evalPoints[i]) mod p;
   od;
   deltas[i],G[i],Space[i],Degrees[i] := coeffExtract(p,alpha,0,G[i],Space[i],Degrees[i],n);
od;

#print(G[1]);

#if the EEA failed
if (T,M) = (FAIL,FAIL) then
   return &quot;Initial Factors are not relatively prime&quot;;
fi;

#main loop
for k from 1 to dy do
<Font encoding="UTF-8">
   #printf(&quot;k=%d\134n&quot;,k);

</Font>   #CoefficientExtraction
   for i from 1 to dx do
      deltas[i],G[i],Space[i],Degrees[i] := coeffExtract(p,alpha,k,G[i],Space[i],Degrees[i],n);
   od;

   #Interpolation
   Delta := Interp(evalPoints,deltas,x) mod p;

   #print(&quot;got here&quot;);
   
   ck := Expand(coeff(B,(y-alpha),k) - Delta) mod p;

   if add(degree(F[i],y),i=1..n) = dy and ck &lt;&gt; 0 then
      return (FAIL);
   fi;

   if ck &lt;&gt; 0 then

      #Solve Diophantine Equation for coefficients
      sigmas := DiophantineN(F0,ck,M,S,p,x);

      #Update the values of F
      for i from 1 to n do
         F[i] := F[i] + sigmas[i]*(y-alpha)^k;
      od;
      
      #Update Evaluations
      for i from 1 to dx do
         for j from 1 to n do
            t := Eval(sigmas[j],x=evalPoints[i]) mod p;
            if t &lt;&gt; 0 then
               G[i][j],Space[i][j] := expandSpace(G[i][j],Space[i][j],Degrees[i][j],k,ceil(log[2](k+1)));
               Degrees[i][j] := k;
               G[i][j][k+1] := t;
            fi;
         od;
      od;

      #Perform CoefficientUpdate
      for i from 1 to dx do
         G[i],Space[i],Degrees[i] := coeffUpdate(p,alpha,k,G[i],Space[i],Degrees[i],n);
      od;


   fi;
od;

#return bivar polynomials or fail
if add(degree(F[i],y),i=1..n) = dy then
   return(F);
else
   return(FAIL);
fi;

end proc:</Text-field>
</Input>
</Group>
<Group hide-output="false" labelreference="L126" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal"></Text-field>
</Input>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L198" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">#`mod` := mods;</Text-field>
</Input>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L207" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">p := 1009;</Text-field>
</Input>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEicEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RKn4mIzg3ODg7fkYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZMLUkjbW5HRiQ2JFElMTAwOUYnRjkvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUpcmVhZG9ubHlHRj1GOQ==">IiU0NQ==</Equation></Text-field>
</Output>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L200" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">alpha := 3;</Text-field>
</Input>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEnJiM5NDU7RicvJSdpdGFsaWNHUSZmYWxzZUYnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy1JI21vR0YkNi1RKn4mIzg3ODg7fkYnRjIvJSZmZW5jZUdGMS8lKnNlcGFyYXRvckdGMS8lKXN0cmV0Y2h5R0YxLyUqc3ltbWV0cmljR0YxLyUobGFyZ2VvcEdGMS8lLm1vdmFibGVsaW1pdHNHRjEvJSdhY2NlbnRHRjEvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZJLUkjbW5HRiQ2JFEiM0YnRjIvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUpcmVhZG9ubHlHRjFGMg==">IiIk</Equation></Text-field>
</Output>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L199" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">f1 := x^4 + randpoly([x,y],dense,degree=3);
f2 := x^4 + randpoly([x,y],dense,degree=3);
f3 := x^4 + randpoly([x,y],dense,degree=3);
f4 := x^4 + randpoly([x,y],dense,degree=3);</Text-field>
</Input>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEjZjFGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSp+JiM4Nzg4O35GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTC1GIzY2LUYjNiQtSSVtc3VwR0YkNiUtRiw2JVEieEYnRi9GMi1JI21uR0YkNiRRIjRGJ0Y5LyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJ0Y5LUY2Ni1RIitGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMjIyMjIyMmVtRicvRk5GXm8tRiM2Ji1GWjYkUSM3MUYnRjktRjY2LVExJkludmlzaWJsZVRpbWVzO0YnRjlGO0Y+RkBGQkZERkZGSEZKRk0tRlQ2JUZWLUZaNiRRIjNGJ0Y5RmduRjktRjY2LVEoJm1pbnVzO0YnRjlGO0Y+RkBGQkZERkZGSEZdb0Zfby1GIzYoLUZaNiRRIzEyRidGOUZlby1GVDYlRlYtRlo2JFEiMkYnRjlGZ25GZW8tRiw2JVEieUYnRi9GMkY5RmpuLUYjNiYtRlo2JFEjMjJGJ0Y5RmVvLUZUNiVGanBGam9GZ25GOUZqbi1GIzYmLUZaNiRRIzcyRidGOUZlb0ZlcEY5RmpuLUYjNigtRlo2JFEjMzJGJ0Y5RmVvRlZGZW9GanBGOUZqbi1GIzYmLUZaNiRRIzg4RidGOUZlby1GVDYlRmpwRmdwRmduRjlGam4tRiM2Ji1GWjYkUSMxNEYnRjlGZW9GVkY5Rl1wLUYjNiYtRlo2JFEjNjhGJ0Y5RmVvRmpwRjlGam4tRlo2JFEjOTVGJ0Y5RjkvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUpcmVhZG9ubHlHRj1GOQ==">LDYqJEkieEc2IiIiJSIiIiokRiQiIiQiI3IqJkYkIiIjSSJ5R0YlRichIzcqJEYtRikiI0EqJEYkRiwiI3MqJkYkRidGLUYnIiNLKiRGLUYsIiMpKUYkIiM5Ri0hI28iIyYqRic=</Equation></Text-field>
</Output>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEjZjJGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSp+JiM4Nzg4O35GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTC1GIzY4LUYjNiQtSSVtc3VwR0YkNiUtRiw2JVEieEYnRi9GMi1JI21uR0YkNiRRIjRGJ0Y5LyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJ0Y5LUY2Ni1RKCZtaW51cztGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMjIyMjIyMmVtRicvRk5GXm8tRiM2Ji1GWjYkUSM1N0YnRjktRjY2LVExJkludmlzaWJsZVRpbWVzO0YnRjlGO0Y+RkBGQkZERkZGSEZKRk0tRlQ2JUZWLUZaNiRRIjNGJ0Y5RmduRjlGam4tRiM2KC1GWjYkUSM4MEYnRjlGZW8tRlQ2JUZWLUZaNiRRIjJGJ0Y5RmduRmVvLUYsNiVRInlGJ0YvRjJGOUZqbi1GIzYoLUZaNiRRIzY0RidGOUZlb0ZWRmVvLUZUNiVGZ3BGZHBGZ25GOS1GNjYtUSIrRidGOUY7Rj5GQEZCRkRGRkZIRl1vRl9vLUYjNiYtRlo2JFEjMTRGJ0Y5RmVvLUZUNiVGZ3BGam9GZ25GOUZhcS1GIzYmLUZaNiRRIzk4RidGOUZlb0ZicEY5RmpuLUYjNigtRlo2JFEjOTdGJ0Y5RmVvRlZGZW9GZ3BGOUZqbi1GIzYmLUZaNiRRIzYxRidGOUZlb0ZfcUY5RmpuLUYjNiYtRlo2JFEjODZGJ0Y5RmVvRlZGOUZhcS1GIzYmLUZaNiRRIzgzRidGOUZlb0ZncEY5RmpuLUZaNiRRIzQxRidGOUY5LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GJy8lKXJlYWRvbmx5R0Y9Rjk=">LDgqJEkieEc2IiIiJSIiIiokRiQiIiQhI2QqJkYkIiIjSSJ5R0YlRichIyEpKiZGJEYnRi1GLCEjayokRi1GKSIjOSokRiRGLCIjKSoqJkYkRidGLUYnISMoKiokRi1GLCEjaEYkISMnKUYtIiMkKSEjVEYn</Equation></Text-field>
</Output>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEjZjNGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSp+JiM4Nzg4O35GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTC1GIzY4LUYjNiQtSSVtc3VwR0YkNiUtRiw2JVEieEYnRi9GMi1JI21uR0YkNiRRIjRGJ0Y5LyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJ0Y5LUY2Ni1RIitGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMjIyMjIyMmVtRicvRk5GXm8tRiM2Ji1GWjYkUSM2NkYnRjktRjY2LVExJkludmlzaWJsZVRpbWVzO0YnRjlGO0Y+RkBGQkZERkZGSEZKRk0tRlQ2JUZWLUZaNiRRIjNGJ0Y5RmduRjlGam4tRiM2KC1GWjYkUSM2MkYnRjlGZW8tRlQ2JUZWLUZaNiRRIjJGJ0Y5RmduRmVvLUYsNiVRInlGJ0YvRjJGOUZqbi1GIzYoLUZaNiRRIzEyRidGOUZlb0ZWRmVvLUZUNiVGZ3BGZHBGZ25GOUZqbi1GIzYmRlxxRmVvLUZUNiVGZ3BGam9GZ25GOUZqbi1GIzYmLUZaNiRRIzc1RidGOUZlb0ZicEY5LUY2Ni1RKCZtaW51cztGJ0Y5RjtGPkZARkJGREZGRkhGXW9GX28tRiM2KC1GWjYkUSMyMkYnRjlGZW9GVkZlb0ZncEY5RmpuLUYjNiYtRlo2JFEjODJGJ0Y5RmVvRl9xRjlGanEtRiM2Ji1GWjYkUSMxOUYnRjlGZW9GVkY5RmpuRmdwRmpuLUZaNiRRIzMxRidGOUY5LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GJy8lKXJlYWRvbmx5R0Y9Rjk=">LDgqJEkieEc2IiIiJSIiIiokRiQiIiQiI20qJkYkIiIjSSJ5R0YlRiciI2kqJkYkRidGLUYsIiM3KiRGLUYpRjAqJEYkRiwiI3YqJkYkRidGLUYnISNBKiRGLUYsIiMjKUYkISM+Ri1GJyIjSkYn</Equation></Text-field>
</Output>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEjZjRGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSp+JiM4Nzg4O35GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTC1GIzY4LUYjNiQtSSVtc3VwR0YkNiUtRiw2JVEieEYnRi9GMi1JI21uR0YkNiRRIjRGJ0Y5LyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJ0Y5LUY2Ni1RKCZtaW51cztGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMjIyMjIyMmVtRicvRk5GXm8tRiM2Ji1GWjYkUSMxMEYnRjktRjY2LVExJkludmlzaWJsZVRpbWVzO0YnRjlGO0Y+RkBGQkZERkZGSEZKRk0tRlQ2JUZWLUZaNiRRIjNGJ0Y5RmduRjktRjY2LVEiK0YnRjlGO0Y+RkBGQkZERkZGSEZdb0Zfby1GIzYoLUZaNiRRIjVGJ0Y5RmVvLUZUNiVGVi1GWjYkUSIyRidGOUZnbkZlby1GLDYlUSJ5RidGL0YyRjlGXXAtRiM2KC1GWjYkUSM5NEYnRjlGZW9GVkZlby1GVDYlRmpwRmdwRmduRjlGXXAtRiM2JkZfcUZlby1GVDYlRmpwRmpvRmduRjlGXXAtRiM2Ji1GWjYkUSM0NUYnRjlGZW9GZXBGOUZqbi1GIzYoLUZaNiRRIzMwRidGOUZlb0ZWRmVvRmpwRjlGXXAtRiM2Ji1GWjYkUSMzMkYnRjlGZW9GYnFGOUZqbi1GIzYmLUZaNiRRIzc0RidGOUZlb0ZWRjlGXXAtRiM2Ji1GWjYkUSMzOEYnRjlGZW9GanBGOUZqbkZkckY5LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GJy8lKXJlYWRvbmx5R0Y9Rjk=">LDgqJEkieEc2IiIiJSIiIiokRiQiIiQhIzUqJkYkIiIjSSJ5R0YlRiciIiYqJkYkRidGLUYsIiMlKiokRi1GKUYwKiRGJEYsIiNYKiZGJEYnRi1GJyEjSSokRi1GLCIjS0YkISN1Ri0iI1EhI0tGJw==</Equation></Text-field>
</Output>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L202" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">A := Expand(f1*f2*f3*f4) mod p;</Text-field>
</Input>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEiQUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RKn4mIzg3ODg7fkYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZMLUYjNl55LUYjNiQtSSVtc3VwR0YkNiUtRiw2JVEieEYnRi9GMi1JI21uR0YkNiRRIzE2RidGOS8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRidGOS1GNjYtUSIrRidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjIyMjIyMjJlbUYnL0ZORl5vLUYjNiYtRlo2JFEjNzBGJ0Y5LUY2Ni1RMSZJbnZpc2libGVUaW1lcztGJ0Y5RjtGPkZARkJGREZGRkhGSkZNLUZUNiVGVi1GWjYkUSMxNUYnRjlGZ25GOUZqbi1GIzYoLUZaNiRRJDk4NEYnRjlGZW8tRlQ2JUZWLUZaNiRRIzE0RidGOUZnbkZlby1GLDYlUSJ5RidGL0YyRjlGam4tRiM2KC1GWjYkUSM0MkYnRjlGZW8tRlQ2JUZWLUZaNiRRIzEzRidGOUZnbkZlby1GVDYlRmdwLUZaNiRRIjJGJ0Y5RmduRjlGam4tRiM2KC1GWjYkUSQxNDJGJ0Y5RmVvLUZUNiVGVi1GWjYkUSMxMkYnRjlGZ25GZW8tRlQ2JUZncC1GWjYkUSIzRidGOUZnbkY5RmpuLUYjNiYtRlo2JFEkNDAzRidGOUZlb0ZicEY5RmpuLUYjNigtRlo2JFEkNDczRidGOUZlb0ZfcUZlb0ZncEY5RmpuLUYjNigtRlo2JFEkNzQxRidGOUZlb0ZeckZlb0ZkcUY5RmpuLUYjNigtRlo2JFEkOTMxRidGOUZlby1GVDYlRlYtRlo2JFEjMTFGJ0Y5RmduRmVvRmNyRjlGam4tRiM2KC1GWjYkUSM0NUYnRjlGZW8tRlQ2JUZWLUZaNiRRIzEwRidGOUZnbkZlby1GVDYlRmdwLUZaNiRRIjRGJ0Y5RmduRjlGam4tRiM2KC1GWjYkUSQ5MDdGJ0Y5RmVvLUZUNiVGVi1GWjYkUSI5RidGOUZnbkZlby1GVDYlRmdwLUZaNiRRIjVGJ0Y5RmduRjlGam4tRiM2KC1GWjYkUSQyMDdGJ0Y5RmVvLUZUNiVGVi1GWjYkUSI4RidGOUZnbkZlby1GVDYlRmdwLUZaNiRRIjZGJ0Y5RmduRjlGam4tRiM2Ji1GWjYkUSQxOTlGJ0Y5RmVvRl9xRjlGam4tRiM2KC1GWjYkUSQxMDFGJ0Y5RmVvRl5yRmVvRmdwRjlGam4tRiM2KC1GWjYkUSQ2MDJGJ0Y5RmVvRlx0RmVvRmRxRjlGam4tRiM2KC1GWjYkUSQ1MTVGJ0Y5RmVvRmZ0RmVvRmNyRjlGam4tRiM2KC1GWjYkUSQ0ODJGJ0Y5RmVvRmV1RmVvRlt1RjlGam4tRiM2KC1GWjYkUSQ4NTFGJ0Y5RmVvRmR2RmVvRmp1RjlGam4tRiM2KC1GWjYkUSQ1MDZGJ0Y5RmVvLUZUNiVGVi1GWjYkUSI3RidGOUZnbkZlb0ZpdkY5RmpuLUYjNigtRlo2JFEkMzcwRidGOUZlby1GVDYlRlZGW3dGZ25GZW8tRlQ2JUZncEZjeUZnbkY5RmpuLUYjNigtRlo2JFEkMzg3RidGOUZlby1GVDYlRlZGXHZGZ25GZW8tRlQ2JUZncEZmdkZnbkY5RmpuLUYjNigtRlo2JFEkNjA4RidGOUZlby1GVDYlRlZGXXVGZ25GZW8tRlQ2JUZncEZndUZnbkY5RmpuLUYjNiYtRlo2JFEkNzIzRidGOUZlb0ZeckY5RmpuLUYjNigtRlo2JFEkMzIyRidGOUZlb0ZcdEZlb0ZncEY5RmpuLUYjNigtRlo2JFEkMjI4RidGOUZlb0ZmdEZlb0ZkcUY5RmpuLUYjNigtRlo2JFEkNTk2RidGOUZlb0ZldUZlb0ZjckY5RmpuLUYjNigtRlo2JFEkNTM4RidGOUZlb0ZkdkZlb0ZbdUY5RmpuLUYjNigtRlo2JFEkMzA0RidGOUZlb0ZheUZlb0ZqdUY5RmpuLUYjNigtRlo2JFEjNjJGJ0Y5RmVvRlt6RmVvRml2RjlGam4tRiM2KC1GWjYkUSQ4NTdGJ0Y5RmVvRmR6RmVvRl16RjlGam4tRiM2KC1GWjYkUSQ2NTRGJ0Y5RmVvRl1bbEZlb0ZmekY5RmpuLUYjNigtRlo2JFEkMjE1RidGOUZlby1GVDYlRlZGZXJGZ25GZW9GX1tsRjlGam4tRiM2KC1GWjYkUSQxNTRGJ0Y5RmVvLUZUNiVGVkZmcUZnbkZlby1GVDYlRmdwRmh0RmduRjlGam4tRiM2KC1GWjYkUSQ1OThGJ0Y5RmVvRlZGZW8tRlQ2JUZncEZedEZnbkY5RmpuLUYjNiYtRlo2JFEkMzI4RidGOUZlby1GVDYlRmdwRmByRmduRjlGam4tRiM2Ji1GWjYkUSQ2NDNGJ0Y5RmVvRlx0RjlGam4tRiM2KC1GWjYkUSQ3ODhGJ0Y5RmVvRmZ0RmVvRmdwRjlGam4tRiM2KC1GWjYkUSQ4ODVGJ0Y5RmVvRmV1RmVvRmRxRjlGam4tRiM2KC1GWjYkUSQxMDdGJ0Y5RmVvRmR2RmVvRmNyRjlGam4tRiM2KC1GWjYkUSQxNjRGJ0Y5RmVvRmF5RmVvRlt1RjlGam4tRiM2KC1GWjYkUSQzOTlGJ0Y5RmVvRlt6RmVvRmp1RjlGam4tRiM2KC1GWjYkUSQ5NDVGJ0Y5RmVvRmR6RmVvRml2RjlGam4tRiM2KC1GWjYkUSQ5MDlGJ0Y5RmVvRl1bbEZlb0ZdekY5RmpuLUYjNigtRlo2JFEkODAwRidGOUZlb0ZjXmxGZW9GZnpGOUZqbi1GIzYoLUZaNiRRJDEzNUYnRjlGZW9Gal5sRmVvRl9bbEY5RmpuLUYjNigtRlo2JFEjMjJGJ0Y5RmVvRlZGZW9GXF9sRjlGam4tRiM2Ji1GWjYkUSQxMzNGJ0Y5RmVvRmNfbEY5RmpuLUYjNiYtRlo2JFEkNzA0RidGOUZlb0ZmdEY5RmpuLUYjNigtRlo2JFEkMTA1RidGOUZlb0ZldUZlb0ZncEY5RmpuLUYjNigtRlo2JFEkMTE5RidGOUZlb0ZkdkZlb0ZkcUY5RmpuLUYjNigtRlo2JFEkNDY2RidGOUZlb0ZheUZlb0ZjckY5RmpuLUYjNigtRlo2JFEkMTY1RidGOUZlb0ZbekZlb0ZbdUY5RmpuLUYjNigtRlo2JFEkNTA0RidGOUZlb0ZkekZlb0ZqdUY5RmpuLUYjNigtRlo2JFEjNTFGJ0Y5RmVvRl1bbEZlb0ZpdkY5RmpuLUYjNigtRlo2JFEkNzQ3RidGOUZlb0ZjXmxGZW9GXXpGOUZqbi1GIzYoLUZaNiRRJDQ0OEYnRjlGZW9Gal5sRmVvRmZ6RjlGam4tRiM2KC1GWjYkUSQ0MzRGJ0Y5RmVvRlZGZW9GX1tsRjlGam4tRiM2Ji1GWjYkUSQ2ODJGJ0Y5RmVvRlxfbEY5RmpuLUYjNiYtRlo2JFEkNTk3RidGOUZlb0ZldUY5RmpuLUYjNigtRlo2JFEkNDUzRidGOUZlb0ZkdkZlb0ZncEY5RmpuLUYjNigtRlo2JFEkNDQwRidGOUZlb0ZheUZlb0ZkcUY5RmpuLUYjNigtRlo2JFEkNzk2RidGOUZlb0ZbekZlb0ZjckY5RmpuLUYjNigtRlo2JFEkNzY3RidGOUZlb0ZkekZlb0ZbdUY5RmpuLUYjNigtRlo2JFEkNTgwRidGOUZlb0ZdW2xGZW9GanVGOUZqbi1GIzYoLUZaNiRRJDU4NUYnRjlGZW9GY15sRmVvRml2RjlGam4tRiM2KC1GWjYkUSQyMzFGJ0Y5RmVvRmpebEZlb0ZdekY5RmpuLUYjNigtRlo2JFEkOTM1RidGOUZlb0ZWRmVvRmZ6RjlGam4tRiM2Ji1GWjYkUSQyMzNGJ0Y5RmVvRl9bbEY5RmpuLUYjNiYtRlo2JFEjMjBGJ0Y5RmVvRmR2RjlGam4tRiM2KC1GWjYkUSQ0NTFGJ0Y5RmVvRmF5RmVvRmdwRjlGam4tRiM2KEZcXWxGZW9GW3pGZW9GZHFGOUZqbi1GIzYoLUZaNiRRJDE5OEYnRjlGZW9GZHpGZW9GY3JGOUZqbi1GIzYoLUZaNiRRJDg3NUYnRjlGZW9GXVtsRmVvRlt1RjlGam4tRiM2KC1GWjYkUSM3NEYnRjlGZW9GY15sRmVvRmp1RjlGam4tRiM2KC1GWjYkUSQ1ODFGJ0Y5RmVvRmpebEZlb0ZpdkY5RmpuLUYjNigtRlo2JFEjOTBGJ0Y5RmVvRlZGZW9GXXpGOUZqbi1GIzYmLUZaNiRRJDU1N0YnRjlGZW9GZnpGOUZqbi1GIzYmLUZaNiRRJDIyNkYnRjlGZW9GYXlGOUZqbi1GIzYoRmZ2RmVvRlt6RmVvRmdwRjlGam4tRiM2KC1GWjYkUSQ3OTdGJ0Y5RmVvRmR6RmVvRmRxRjlGam4tRiM2KC1GWjYkUSQ0NDFGJ0Y5RmVvRl1bbEZlb0ZjckY5RmpuLUYjNihGaXNGZW9GY15sRmVvRlt1RjlGam4tRiM2KC1GWjYkUSQ2NTZGJ0Y5RmVvRmpebEZlb0ZqdUY5RmpuLUYjNigtRlo2JFEkNjAwRidGOUZlb0ZWRmVvRml2RjlGam4tRiM2Ji1GWjYkUSQ1NThGJ0Y5RmVvRl16RjlGam4tRiM2Ji1GWjYkUSQ5OTBGJ0Y5RmVvRlt6RjlGam4tRiM2KC1GWjYkUSQ5NTFGJ0Y5RmVvRmR6RmVvRmdwRjlGam4tRiM2KC1GWjYkUSQzMThGJ0Y5RmVvRl1bbEZlb0ZkcUY5RmpuLUYjNihGZHBGZW9GY15sRmVvRmNyRjlGam4tRiM2KC1GWjYkUSQyNzBGJ0Y5RmVvRmpebEZlb0ZbdUY5RmpuLUYjNigtRlo2JFEkMTY2RidGOUZlb0ZWRmVvRmp1RjlGam4tRiM2Ji1GWjYkUSQ3NzBGJ0Y5RmVvRml2RjlGam4tRiM2Ji1GWjYkUSQ5MzZGJ0Y5RmVvRmR6RjlGam4tRiM2KC1GWjYkUSQ5NjhGJ0Y5RmVvRl1bbEZlb0ZncEY5RmpuLUYjNigtRlo2JFEkNTYxRidGOUZlb0ZjXmxGZW9GZHFGOUZqbi1GIzYoLUZaNiRRJDM2MkYnRjlGZW9Gal5sRmVvRmNyRjlGam4tRiM2KEZoZWxGZW9GVkZlb0ZbdUY5RmpuLUYjNiZGY1xtRmVvRmp1RjlGam4tRiM2Ji1GWjYkUSQ2MjhGJ0Y5RmVvRl1bbEY5RmpuLUYjNigtRlo2JFEkNDgzRidGOUZlb0ZjXmxGZW9GZ3BGOUZqbi1GIzYoLUZaNiRRJDMzMkYnRjlGZW9Gal5sRmVvRmRxRjlGam4tRiM2KEZcZ2xGZW9GVkZlb0ZjckY5RmpuLUYjNiZGZV5tRmVvRlt1RjlGam4tRiM2Ji1GWjYkUSQ4MTBGJ0Y5RmVvRmNebEY5RmpuLUYjNihGZmdsRmVvRmpebEZlb0ZncEY5RmpuLUYjNigtRlo2JFEkNjkwRidGOUZlb0ZWRmVvRmRxRjlGam4tRiM2Ji1GWjYkUSQ1NTZGJ0Y5RmVvRmNyRjlGam4tRiM2Ji1GWjYkUSQ3NjZGJ0Y5RmVvRmpebEY5RmpuLUYjNigtRlo2JFEkNTE5RidGOUZlb0ZWRmVvRmdwRjlGam4tRiM2Ji1GWjYkUSQ5MDBGJ0Y5RmVvRmRxRjlGam4tRiM2Ji1GWjYkUSM3M0YnRjlGZW9GVkY5RmpuLUYjNiYtRlo2JFEkOTc2RidGOUZlb0ZncEY5RmpuLUZaNiRRJDM3OUYnRjlGOS8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJSlyZWFkb25seUdGPUY5">LF55KiRJInhHNiIiIzsiIiIqJEYkIiM6IiNxKiZGJCIjOUkieUdGJUYnIiQlKSoqJkYkIiM4Ri0iIiMiI1UqJkYkIiM3Ri0iIiQiJFUiKiRGJEYsIiQuJSomRiRGMEYtRiciJHQlKiZGJEY0Ri1GMSIkVCgqJkYkIiM2Ri1GNSIkSioqJkYkIiM1Ri0iIiUiI1gqJkYkIiIqRi0iIiYiJDIqKiZGJCIiKUYtIiInIiQyIyokRiRGMCIkKj4qJkYkRjRGLUYnIiQsIiomRiRGPkYtRjEiJC0nKiZGJEZBRi1GNSIkOiYqJkYkRkVGLUZCIiQjWyomRiRGSUYtRkYiJF4pKiZGJCIiKEYtRkoiJDEmKiZGJEZKRi1GWSIkcSQqJkYkRkZGLUZJIiQoUSomRiRGQkYtRkUiJDMnKiRGJEY0IiRCKComRiRGPkYtRiciJEEkKiZGJEZBRi1GMSIkRyMqJkYkRkVGLUY1IiQnZiomRiRGSUYtRkIiJFEmKiZGJEZZRi1GRiIkLyQqJkYkRkpGLUZKIiNpKiZGJEZGRi1GWSIkZCkqJkYkRkJGLUZJIiRhJyomRiRGNUYtRkUiJDojKiZGJEYxRi1GQSIkYSIqJkYkRidGLUY+IiQpZiokRi1GNCIkRyQqJEYkRj4iJFYnKiZGJEZBRi1GJyIkKXkqJkYkRkVGLUYxIiQmKSkqJkYkRklGLUY1IiQyIiomRiRGWUYtRkIiJGsiKiZGJEZKRi1GRiIkKlIqJkYkRkZGLUZKIiRYKiomRiRGQkYtRlkiJDQqKiZGJEY1Ri1GSSIkKykqJkYkRjFGLUZFIiROIiomRiRGJ0YtRkEiI0EqJEYtRj4iJEwiKiRGJEZBIiQvKComRiRGRUYtRiciJDAiKiZGJEZJRi1GMSIkPiIqJkYkRllGLUY1IiRtJSomRiRGSkYtRkIiJGwiKiZGJEZGRi1GRiIkLyYqJkYkRkJGLUZKIiNeKiZGJEY1Ri1GWSIkWigqJkYkRjFGLUZJIiRbJSomRiRGJ0YtRkUiJE0lKiRGLUZBIiQjbyokRiRGRSIkKGYqJkYkRklGLUYnIiRgJSomRiRGWUYtRjEiJFMlKiZGJEZKRi1GNSIkJ3oqJkYkRkZGLUZCIiRuKComRiRGQkYtRkYiJCFlKiZGJEY1Ri1GSiIkJmUqJkYkRjFGLUZZIiRKIyomRiRGJ0YtRkkiJE4qKiRGLUZFIiRMIyokRiRGSSIjPyomRiRGWUYtRiciJF4lKiZGJEZKRi1GMUZmbyomRiRGRkYtRjUiJCk+KiZGJEZCRi1GQiIkdikqJkYkRjVGLUZGIiN1KiZGJEYxRi1GSiIkImUqJkYkRidGLUZZIiMhKiokRi1GSSIkZCYqJEYkRlkiJEUjKiZGJEZKRi1GJ0ZJKiZGJEZGRi1GMSIkKHoqJkYkRkJGLUY1IiRUJSomRiRGNUYtRkJGPyomRiRGMUYtRkYiJGMnKiZGJEYnRi1GSiIkKycqJEYtRlkiJGUmKiRGJEZKIiQhKioqJkYkRkZGLUYnIiReKiomRiRGQkYtRjEiJD0kKiZGJEY1Ri1GNUYsKiZGJEYxRi1GQiIkcSMqJkYkRidGLUZGIiRtIiokRi1GSiIkcSgqJEYkRkYiJE8qKiZGJEZCRi1GJyIkbyoqJkYkRjVGLUYxIiRoJiomRiRGMUYtRjUiJGkkKiZGJEYnRi1GQkZqciokRi1GRkZldSokRiRGQiIkRycqJkYkRjVGLUYnIiQkWyomRiRGMUYtRjEiJEskKiZGJEYnRi1GNUZicyokRi1GQkZjdiokRiRGNSIkNSkqJkYkRjFGLUYnRmZzKiZGJEYnRi1GMSIkIXAqJEYtRjUiJGMmKiRGJEYxIiRtKComRiRGJ0YtRiciJD4mKiRGLUYxIiQrKkYkIiN0Ri0iJHcqIiR6JEYn</Equation></Text-field>
</Output>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L203" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">f10 := Eval(f1,y=alpha) mod p;
f20 := Eval(f2,y=alpha) mod p;
f30 := Eval(f3,y=alpha) mod p;
f40 := Eval(f4,y=alpha) mod p;</Text-field>
</Input>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEkZjEwRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEqfiYjODc4ODt+RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkwtRiM2LC1GIzYkLUklbXN1cEdGJDYlLUYsNiVRInhGJ0YvRjItSSNtbkdGJDYkUSI0RidGOS8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRidGOS1GNjYtUSIrRidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjIyMjIyMjJlbUYnL0ZORl5vLUYjNiYtRlo2JFEjNzFGJ0Y5LUY2Ni1RMSZJbnZpc2libGVUaW1lcztGJ0Y5RjtGPkZARkJGREZGRkhGSkZNLUZUNiVGVi1GWjYkUSIzRidGOUZnbkY5RmpuLUYjNiYtRlo2JFEjMzZGJ0Y5RmVvLUZUNiVGVi1GWjYkUSIyRidGOUZnbkY5RmpuLUYjNiYtRlo2JFEkMTEwRidGOUZlb0ZWRjlGam4tRlo2JFEkMjY4RidGOUY5LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GJy8lKXJlYWRvbmx5R0Y9Rjk=">LCwqJEkieEc2IiIiJSIiIiokRiQiIiQiI3IqJEYkIiIjIiNPRiQiJDUiIiRvI0Yn</Equation></Text-field>
</Output>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEkZjIwRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEqfiYjODc4ODt+RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkwtRiM2LC1GIzYkLUklbXN1cEdGJDYlLUYsNiVRInhGJ0YvRjItSSNtbkdGJDYkUSI0RidGOS8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRidGOS1GNjYtUSIrRidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjIyMjIyMjJlbUYnL0ZORl5vLUYjNiYtRlo2JFEkOTUyRidGOS1GNjYtUTEmSW52aXNpYmxlVGltZXM7RidGOUY7Rj5GQEZCRkRGRkZIRkpGTS1GVDYlRlYtRlo2JFEiM0YnRjlGZ25GOUZqbi1GIzYmLUZaNiRRJDg2N0YnRjlGZW8tRlQ2JUZWLUZaNiRRIjJGJ0Y5RmduRjlGam4tRiM2Ji1GWjYkUSM1NkYnRjlGZW9GVkY5RmpuLUZaNiRRIzM3RidGOUY5LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GJy8lKXJlYWRvbmx5R0Y9Rjk=">LCwqJEkieEc2IiIiJSIiIiokRiQiIiQiJF8qKiRGJCIiIyIkbilGJCIjYyIjUEYn</Equation></Text-field>
</Output>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEkZjMwRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEqfiYjODc4ODt+RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkwtRiM2LC1GIzYkLUklbXN1cEdGJDYlLUYsNiVRInhGJ0YvRjItSSNtbkdGJDYkUSI0RidGOS8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRidGOS1GNjYtUSIrRidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjIyMjIyMjJlbUYnL0ZORl5vLUYjNiYtRlo2JFEjNjZGJ0Y5LUY2Ni1RMSZJbnZpc2libGVUaW1lcztGJ0Y5RjtGPkZARkJGREZGRkhGSkZNLUZUNiVGVi1GWjYkUSIzRidGOUZnbkY5RmpuLUYjNiYtRlo2JFEkMjYxRidGOUZlby1GVDYlRlYtRlo2JFEiMkYnRjlGZ25GOUZqbi1GIzYmLUZaNiRRIzIzRidGOUZlb0ZWRjlGam4tRlo2JFEjODdGJ0Y5RjkvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUpcmVhZG9ubHlHRj1GOQ==">LCwqJEkieEc2IiIiJSIiIiokRiQiIiQiI20qJEYkIiIjIiRoI0YkIiNCIiMoKUYn</Equation></Text-field>
</Output>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEkZjQwRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEqfiYjODc4ODt+RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkwtRiM2LC1GIzYkLUklbXN1cEdGJDYlLUYsNiVRInhGJ0YvRjItSSNtbkdGJDYkUSI0RidGOS8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRidGOS1GNjYtUSIrRidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjIyMjIyMjJlbUYnL0ZORl5vLUYjNiYtRlo2JFEkOTk5RidGOS1GNjYtUTEmSW52aXNpYmxlVGltZXM7RidGOUY7Rj5GQEZCRkRGRkZIRkpGTS1GVDYlRlYtRlo2JFEiM0YnRjlGZ25GOUZqbi1GIzYmLUZaNiRRIzYwRidGOUZlby1GVDYlRlYtRlo2JFEiMkYnRjlGZ25GOUZqbi1GIzYmLUZaNiRRJDY4MkYnRjlGZW9GVkY5RmpuLUZaNiRRJDg5MEYnRjlGOS8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJSlyZWFkb25seUdGPUY5">LCwqJEkieEc2IiIiJSIiIiokRiQiIiQiJCoqKiokRiQiIiMiI2dGJCIkI28iJCEqKUYn</Equation></Text-field>
</Output>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L205" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">F0 := [f10,f20,f30,f40];</Text-field>
</Input>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEjRjBGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSp+JiM4Nzg4O35GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTC1JKG1mZW5jZWRHRiQ2Ji1GIzYsLUYjNiwtRiM2JC1JJW1zdXBHRiQ2JS1GLDYlUSJ4RidGL0YyLUkjbW5HRiQ2JFEiNEYnRjkvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRjktRjY2LVEiK0YnRjlGO0Y+RkBGQkZERkZGSC9GS1EsMC4yMjIyMjIyZW1GJy9GTkZjby1GIzYmLUZpbjYkUSM3MUYnRjktRjY2LVExJkludmlzaWJsZVRpbWVzO0YnRjlGO0Y+RkBGQkZERkZGSEZKRk0tRlk2JUZlbi1GaW42JFEiM0YnRjlGXG9GOUZfby1GIzYmLUZpbjYkUSMzNkYnRjlGam8tRlk2JUZlbi1GaW42JFEiMkYnRjlGXG9GOUZfby1GIzYmLUZpbjYkUSQxMTBGJ0Y5RmpvRmVuRjlGX28tRmluNiRRJDI2OEYnRjlGOS1GNjYtUSIsRidGOUY7L0Y/RjFGQEZCRkRGRkZIRkovRk5RLDAuMzMzMzMzM2VtRictRiM2LEZWRl9vLUYjNiYtRmluNiRRJDk1MkYnRjlGam9GXXBGOUZfby1GIzYmLUZpbjYkUSQ4NjdGJ0Y5RmpvRmdwRjlGX28tRiM2Ji1GaW42JFEjNTZGJ0Y5RmpvRmVuRjlGX28tRmluNiRRIzM3RidGOUY5RmRxLUYjNixGVkZfby1GIzYmLUZpbjYkUSM2NkYnRjlGam9GXXBGOUZfby1GIzYmLUZpbjYkUSQyNjFGJ0Y5RmpvRmdwRjlGX28tRiM2Ji1GaW42JFEjMjNGJ0Y5RmpvRmVuRjlGX28tRmluNiRRIzg3RidGOUY5RmRxLUYjNixGVkZfby1GIzYmLUZpbjYkUSQ5OTlGJ0Y5RmpvRl1wRjlGX28tRiM2Ji1GaW42JFEjNjBGJ0Y5RmpvRmdwRjlGX28tRiM2Ji1GaW42JFEkNjgyRidGOUZqb0ZlbkY5Rl9vLUZpbjYkUSQ4OTBGJ0Y5RjkvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUpcmVhZG9ubHlHRj1GOUY5LyUlb3BlbkdRIltGJy8lJmNsb3NlR1EiXUYnRmZ1Rml1Rjk=">NyYsLCokSSJ4RzYiIiIlIiIiKiRGJSIiJCIjciokRiUiIiMiI09GJSIkNSIiJG8jRigsLEYkRihGKSIkXypGLCIkbilGJSIjYyIjUEYoLCxGJEYoRikiI21GLCIkaCNGJSIjQiIjKClGKCwsRiRGKEYpIiQqKipGLCIjZ0YlIiQjbyIkISopRig=</Equation></Text-field>
</Output>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L206" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">Rem(Expand(A - mul(F0)) mod p,(y-3),y) mod p;</Text-field>
</Input>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUkjbW5HNiMvSSttb2R1bGVuYW1lRzYiSSxUeXBlc2V0dGluZ0dJKF9zeXNsaWJHRic2JFEiMEYnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJw==">IiIh</Equation></Text-field>
</Output>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L197" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">C := CubicBivariateHensel(A,F0,x,y,alpha,p):
Expand(C) mod p;</Text-field>
</Input>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUkobWZlbmNlZEc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUklbXJvd0dGJDYsLUYsNjYtRiw2JC1JJW1zdXBHRiQ2JS1JI21pR0YkNiVRInhGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtbkdGJDYkUSI0RicvRj1RJ25vcm1hbEYnLyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJ0ZDLUkjbW9HRiQ2LVEiK0YnRkMvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRk4vJSlzdHJldGNoeUdGTi8lKnN5bW1ldHJpY0dGTi8lKGxhcmdlb3BHRk4vJS5tb3ZhYmxlbGltaXRzR0ZOLyUnYWNjZW50R0ZOLyUnbHNwYWNlR1EsMC4yMjIyMjIyZW1GJy8lJ3JzcGFjZUdGZ24tRiw2Ji1GQDYkUSM3MUYnRkMtRkk2LVExJkludmlzaWJsZVRpbWVzO0YnRkNGTEZPRlFGU0ZVRldGWS9GZm5RJjAuMGVtRicvRmluRmNvLUYzNiVGNS1GQDYkUSIzRidGQ0ZFRkNGSC1GLDYoLUZANiRRJDk5N0YnRkNGX28tRjM2JUY1LUZANiRRIjJGJ0ZDRkVGX28tRjY2JVEieUYnRjlGPEZDRkgtRiw2Ji1GQDYkUSMyMkYnRkNGX28tRjM2JUZkcEZnb0ZFRkNGSC1GLDYmLUZANiRRIzcyRidGQ0Zfb0ZfcEZDRkgtRiw2KC1GQDYkUSMzMkYnRkNGX29GNUZfb0ZkcEZDRkgtRiw2Ji1GQDYkUSM4OEYnRkNGX28tRjM2JUZkcEZhcEZFRkNGSC1GLDYmLUZANiRRIzE0RidGQ0Zfb0Y1RkNGSC1GLDYmLUZANiRRJDk0MUYnRkNGX29GZHBGQ0ZILUZANiRRIzk1RidGQ0ZDLUZJNi1RIixGJ0ZDRkwvRlBGO0ZRRlNGVUZXRllGYm8vRmluUSwwLjMzMzMzMzNlbUYnLUYsNjhGMEZILUYsNiYtRkA2JFEkOTUyRidGQ0Zfb0Zlb0ZDRkgtRiw2KC1GQDYkUSQ5MjlGJ0ZDRl9vRl9wRl9vRmRwRkNGSC1GLDYoLUZANiRRJDk0NUYnRkNGX29GNUZfb0ZdckZDRkgtRiw2JkZhckZfb0ZccUZDRkgtRiw2Ji1GQDYkUSM5OEYnRkNGX29GX3BGQ0ZILUYsNigtRkA2JFEkOTEyRidGQ0Zfb0Y1Rl9vRmRwRkNGSC1GLDYmLUZANiRRJDk0OEYnRkNGX29GXXJGQ0ZILUYsNiYtRkA2JFEkOTIzRidGQ0Zfb0Y1RkNGSC1GLDYmLUZANiRRIzgzRidGQ0Zfb0ZkcEZDRkgtRkA2JFEkOTY4RidGQ0ZDRlxzLUYsNjhGMEZILUYsNiYtRkA2JFEjNjZGJ0ZDRl9vRmVvRkNGSC1GLDYoLUZANiRRIzYyRidGQ0Zfb0ZfcEZfb0ZkcEZDRkgtRiw2KC1GQDYkUSMxMkYnRkNGX29GNUZfb0ZdckZDRkgtRiw2JkZfd0Zfb0ZccUZDRkgtRiw2Ji1GQDYkUSM3NUYnRkNGX29GX3BGQ0ZILUYsNigtRkA2JFEkOTg3RidGQ0Zfb0Y1Rl9vRmRwRkNGSC1GLDYmLUZANiRRIzgyRidGQ0Zfb0ZdckZDRkgtRiw2Ji1GQDYkUSQ5OTBGJ0ZDRl9vRjVGQ0ZIRmRwRkgtRkA2JFEjMzFGJ0ZDRkNGXHMtRiw2OEYwRkgtRiw2Ji1GQDYkUSQ5OTlGJ0ZDRl9vRmVvRkNGSC1GLDYoLUZANiRRIjVGJ0ZDRl9vRl9wRl9vRmRwRkNGSC1GLDYoLUZANiRRIzk0RidGQ0Zfb0Y1Rl9vRl1yRkNGSC1GLDYmRml5Rl9vRlxxRkNGSC1GLDYmLUZANiRRIzQ1RidGQ0Zfb0ZfcEZDRkgtRiw2KC1GQDYkUSQ5NzlGJ0ZDRl9vRjVGX29GZHBGQ0ZILUYsNiZGZXFGX29GXXJGQ0ZILUYsNiYtRkA2JFEkOTM1RidGQ0Zfb0Y1RkNGSC1GLDYmLUZANiRRIzM4RidGQ0Zfb0ZkcEZDRkgtRkA2JFEkOTc3RidGQ0ZDLyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GJy8lKXJlYWRvbmx5R0ZORkNGQy8lJW9wZW5HUSJbRicvJSZjbG9zZUdRIl1GJw==">NyYsNiokSSJ4RzYiIiIlIiIiKiRGJSIiJCIjciomRiUiIiNJInlHRiZGKCIkKCoqKiRGLkYqIiNBKiRGJUYtIiNzKiZGJUYoRi5GKCIjSyokRi5GLSIjKSlGJSIjOUYuIiRUKiIjJipGKCw4RiRGKEYpIiRfKkYsIiRIKiomRiVGKEYuRi0iJFgqRjBGOEYyIiMpKkY0IiQ3KkY2IiRbKkYlIiRCKkYuIiMkKSIkbypGKCw4RiRGKEYpIiNtRiwiI2lGPiIjN0YwRklGMiIjdkY0IiQoKSpGNiIjIylGJSIkISoqRi5GKCIjSkYoLDhGJEYoRikiJCoqKkYsIiImRj4iIyUqRjBGUkYyIiNYRjQiJHoqRjZGNUYlIiROKkYuIiNRIiR4KkYo</Equation></Text-field>
</Output>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L201" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal">Expand(A-mul(C)) mod p;</Text-field>
</Input>
<Output><Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output" display="LUkjbW5HNiMvSSttb2R1bGVuYW1lRzYiSSxUeXBlc2V0dGluZ0dJKF9zeXNsaWJHRic2JFEiMEYnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJw==">IiIh</Equation></Text-field>
</Output>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L204" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal"></Text-field>
</Input>
</Group>
<Group hide-input="false" hide-output="false" labelreference="L174" drawlabel="true" applyint="true" applyrational="true" applyexponent="false">
<Input><Text-field prompt="&gt; " style="Maple Input" layout="Normal"></Text-field>
</Input>
</Group>
</Worksheet>