!!!!!!!!!!!!!!!!!!----- analyse de l'etape 2 -----!!!!!!!!!!!!!!!!!!

  !!!!---- on verifie si tous les champs sont remplis ----!!!!
  errnb1=0
  errnb2=0
  !for i=1 to 2
    !if $(rimdelimg$(i))=3
      errnb$(i)=$[$(errnb$(i))+1]
    !endif
    !if $(rimdelimd$(i))=3
      errnb$(i)=$[$(errnb$(i))+1]
    !endif
    !if $(rimborng$(i))=$empty
      errnb$(i)=$[$(errnb$(i))+1]
    !endif
    !if $(rimbornd$(i))=$empty
      errnb$(i)=$[$(errnb$(i))+1]
    !endif
    !if $(errnb$(i))!=0
      1alertI$(i)=$alert2
    !endif
  !next i
  !if $errnb1!=0 or $errnb2!=0
    !exit
  !endif
  !!!!---- on verifie la validite de la reponse ----!!!!
   
  rimborng1=!nospace $rimborng1
  rimbornd1=!nospace $rimbornd1
  rimborng2=!nospace $rimborng2
  rimbornd2=!nospace $rimbornd2
  
  repsnb=4
  reps1=$rimborng1
  reps2=$rimbornd1
  reps3=$rimborng2
  reps4=$rimbornd2
  NonValide=alert3
  !read comsDir/repclean
  
  !if $alertreps1!=$empty or $alertreps2!=$empty
    2alertI1=$alert3
  !endif
  !if $alertreps3!=$empty or $alertreps4!=$empty
    2alertI2=$alert3
  !endif
  !if $2alertI1!=$empty or $2alertI2!=$empty
    rimborng1=!replace internal " by ?? in $rimborng1
    rimbornd1=!replace internal " by ?? in $rimbornd1
    rimborng2=!replace internal " by ?? in $rimborng2
    rimbornd2=!replace internal " by ?? in $rimbornd2
    !exit
  !endif

  !!!!!!!!!---- elimination des signes bizarres ----!!!!!!!!!
  errnb=0
  !for i=1 to 2
    !if infinity notin $(rimborng$(i))
      rimborng$(i)=!rawmath $(rimborng$(i))
    !endif 
    !if infinity notin $(rimbornd$(i))
      rimbornd$(i)=!rawmath $(rimbornd$(i))
    !endif 
    rimborngTF$(i)=!exec maxima constantp($(rimborng$(i)));
    rimborndTF$(i)=!exec maxima constantp($(rimbornd$(i)));
    !if ($(rimborngTF$(i))!=true) and ($(rimborng$(i))!=+infinity) and ($(rimborng$(i))!=-infinity)
      2alertI$(i)=$alert3
      errnb=$[$errnb+1]
    !endif
    !if ($(rimborndTF$(i))!=true) and ($(rimbornd$(i))!=+infinity) and ($(rimbornd$(i))!=-infinity)
      2alertI$(i)=$alert3
      errnb=$[$errnb+1]
    !endif
  !next i
 
  !if $errnb!=0
    !exit
  !endif
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  errnb=0
  varborn=  
  !for i=1 to 2
    varborn=!varlist nofn $(rimborng$(i))
    varborn=!listcomplement $bornVarList in $varborn
    !if $varborn!=$empty
      2alertI$(i)=$alert3
      errnb=$[$errnb+1]
      varborn=
    !endif
    varborn=!varlist nofn $(rimbornd$(i))
    varborn=!listcomplement $bornVarList in $varborn
    !if $varborn!=$empty
      2alertI$(i)=$alert3
      errnb=$[$errnb+1]
      varborn=
    !endif
  !next i
  
  !if $errnb!=0
    !exit
  !endif
  
  !!!!!!!!---- si l'infini n'est pas signe, on refuse ----!!!!!!!!
  errnb=0
  !for i=1 to 2
    !if (infinity isin $(rimborng$(i))) and (($(rimborng$(i))!=+infinity) and ($(rimborng$(i))!=-infinity))
      errnb=$[$errnb+1]
      2alertI$(i)=$alert3
    !endif
    !if (infinity isin $(rimbornd$(i))) and (($(rimbornd$(i))!=+infinity) and ($(rimbornd$(i))!=-infinity))
      errnb=$[$errnb+1]
      2alertI$(i)=$alert3
    !endif
  !next i
  
  !if $errnb!=0
    !exit
  !endif
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
  
  
  !!!!---- maintenant on analyse la reponse ----!!!!
  
    !if $rimbornd1 !=$imbornd1 or (infinity isin $rimborng1)
      imI1TF=0
      VFimI1=$Fxcom
     !else
      rimborng1TF=!exec maxima $rimborng1;
      !if $rimborng1TF=$empty
        2alertI1=$alert3
	!exit
      !endif
      rimborng1TF=!exec maxima ratsimp($rimborng1-($imborng1));
      !if $rimborng1TF=$empty
        2alertI1=$alert3
	!exit
      !endif
      rimborng1TF=!exec maxima abs($rimborng1TF);
      !if $rimborng1TF<$epsi
        rimborng1TF=0
      !endif
      !if $rimborng1TF=0
        imI1TF=1
	VFimI1=$Vrcom
       !else
        imI1TF=0
	VFimI1=$Fxcom
      !endif
    !endif
    !if $rimbornd2 !=$imbornd2 or (infinity isin $rimborng2)
      imI2TF=0
      VFimI2=$Fxcom
     !else
      rimborng2TF=!exec maxima $rimborng2;
      !if $rimborng2TF=$empty
        2alertI2=$alert3
	!exit
      !endif
      rimborng2TF=!exec maxima ratsimp($rimborng2-($imborng2));
      !if $rimborng2TF=$empty
        2alertI2=$alert3
	!exit
      !endif
      rimborng2TF=!exec maxima abs($rimborng2TF);
      !if $rimborng2TF<$epsi
        rimborng2TF=0
      !endif
      !if $rimborng2TF=0
        imI2TF=1
	VFimI2=$Vrcom
       !else
        imI2TF=0
	VFimI2=$Fxcom
      !endif
    !endif  
    
  !!!!---- pour affichage ----!!!!
  !for i= 1 to 2
    !if infinity isin $(rimborng$(i))
      primborng$(i)=!replace internal infinity by \infty in $(rimborng$(i))
     !else
      primborng$(i)=!texmath $(rimborng$(i))
    !endif
    !if infinity isin $(rimbornd$(i))
      primbornd$(i)=!replace internal infinity by \infty in $(rimbornd$(i))
     !else 
      primbornd$(i)=!texmath $(rimbornd$(i))
    !endif
  !next i
    
    
  !!!!---- si au moins une borne est fausse, on arrete ----!!!!
  !if $imI1TF=0 or $imI2TF=0
    module_score=$note
    !read answer.phtml
    status=done
    !exit
  !endif
  !!!!---- si on trouve les bornes, on analyse les crochets ----!!!!
  !if $rimdelimg1=$imdelimg1
      rimdelimg1=<font color=green><tt>$(delim$(rimdelimg1))</tt></font>
     !else
      rimdelimg1=<font color=red><tt>$(delim$(rimdelimg1))</tt></font>
  !endif 
  !if $rimdelimg2=$imdelimg2
      rimdelimg2=<font color=green><tt>$(delim$(rimdelimg2))</tt></font>
     !else
      rimdelimg2=<font color=red><tt>$(delim$(rimdelimg2))</tt></font>
  !endif
  !if $rimdelimd1=$imdelimd1
      rimdelimd1=<font color=green><tt>$(delim$(rimdelimd1))</tt></font>
     !else
      rimdelimd1=<font color=red><tt>$(delim$(rimdelimd1))</tt></font>
  !endif 
  !if $rimdelimd2=$imdelimd2
      rimdelimd2=<font color=green><tt>$(delim$(rimdelimd2))</tt></font>
     !else
      rimdelimd2=<font color=red><tt>$(delim$(rimdelimd2))</tt></font>
  !endif

  rep=2
  
  note=$[$note+2]

