/* Auteur: Lsinclar-1 */
/* Plateforme: Win32/Linux */
/* Compilateur/version: gcc/? */
/* Dernière Modif: 8 aout 6:00 */

/*
 Remplit buffer avec fread() puis parcourt buffer caractère par caractère:
   si c'est un '<' : tag=1
   si c'est un '>' : tag=0
   sinon si c'est " ou '
     si on est dans un tag
       si flag ou img : puts(URL) + reset variables
       sinon si flag et (précédents == '=FERH A') : flag=1
       sinon si flag et (précédents == '=ferh a') : flag=1
       sinon si flag et (précédents == '=CRS GMI'): img=1
       sinon si flag et (précédents == '=crs gmi'): img=1
       sinon si flag ou img : ajoute lettre à URL.

  Reconnait ça et rien d' autre:
 	<A HREF="url"> <A HREF='url'> <a href="url"> <a href='url'>
	<IMG SRC="url">	<IMG SRC='url'> <img src="url"> <img src='url'>
*/

#include <stdio.h>
#include <string.h>

int main()
{
  char buf[8192];   /* paquet lu sur stdin */
  int i=1, n=0;     /* i caractères lus, n pour boucler dessus */

  char URL[1024];     /* vers stdout */
  unsigned short b=0; /* sa longueur en octets */
  unsigned char tag=0, flag=0, img=0;  /* les flags */

  memset(URL, 0, 1024);  /* initialise tableau de char */

  while (i)
  {
    i = fread(buf, 1, 8192, stdin);
    for (n=0; n<i; n++)
    {
      if      (buf[n]==0X3C) tag=1;
      else if (buf[n]==0X3E) tag=0;
      else if (buf[n]==0X22 || buf[n]==0X27)
      {
        if (tag)
        {
          if (flag || img)
          {
            puts(URL); 
            flag = img = b = 0;
            memset(URL,0, b);
          }
          else if ( buf[n-1]==0X3D && buf[n-2]==0X66 && buf[n-3]==0X65 &&  
                    buf[n-4]==0X72 && buf[n-5]==0X68 && buf[n-6]==0X20 &&
                    buf[n-7]==0X61) flag=1;

          else if ( buf[n-1]==0X3D && buf[n-2]==0X46 && buf[n-3]==0X45 &&  
                    buf[n-4]==0X52 && buf[n-5]==0X48 && buf[n-6]==0X20 &&
                    buf[n-7]==0X41) flag=1;

          else if ( buf[n-1]==0X3D && buf[n-2]==0X43 && buf[n-3]==0X52 &&
                    buf[n-4]==0X53 && buf[n-5]==0X20 && buf[n-6]==0X47 &&
                    buf[n-7]==0X4D && buf[n-8]==0X49) img=1;

          else if ( buf[n-1]==0X3D && buf[n-2]==0X63 && buf[n-3]==0X72 &&
                    buf[n-4]==0X73 && buf[n-5]==0X20 && buf[n-6]==0X67 &&
                    buf[n-7]==0X6D && buf[n-8]==0X69) img=1;
        } /* if tag */
      } /* if " ou ' */
      else if (flag || img) URL[b++] = buf[n];
    } /* for */
  } /* while fread() */

  return 0;
}