/*
 * Generateur automatique de documents en LHEO
 * Copyright 2003-2006 DGEFP, ARMINES/CRI.
 *
 * Compilation: gcc -o gene gene.c
 */
# include <stdio.h>
# include <stdlib.h>
# include <sys/types.h>
# include <unistd.h>
# include <assert.h>
# include <string.h>

int lcmin = 'a';
int lcmax = 'z';
int ucmin = 'A';
int ucmax = 'Z';
int nbmin = '0';
int nbmax = '9';
char ponct[] = {'.',',',';',':','-','(',')','!','?','%','$','\n'};

int
gen_random(int m)
{
  if (m == 0)
    return 0;
  else
    return random() % m;
}

void
gen_srandom()
{
  srandom(getpid());
}

void
gen_number(int ld, int hd)
{
  int d = hd - ld;
  int l;
  int i;
  assert(hd > 0);
  
  if (d == 0)
    l = ld;
  else
    l = ld + gen_random(d+1);

  for (i = 0; i < l; i++)
    printf("%d", gen_random(10));
}


void
gen_alpha(int nbc)
{
  int r;

  while (nbc--) {
    r = gen_random(100);
    if (r < 5) {
      printf("%c", ucmin + gen_random(ucmax-ucmin));    
    } else if (r < 10) {
      printf("%c", nbmin + gen_random(nbmax-nbmin));
    } else if (r < 15) {
      printf("%c", ponct[gen_random(sizeof(ponct))]);
    } else if (r < 30) {
      printf(" ");
    } else {
      printf("%c", lcmin + gen_random(lcmax-lcmin));
    } 
  }
}

void
gen_dateval()
{
  printf("%2.2d%2.2d200%1d", gen_random(27)+1, gen_random(12)+1, gen_random(6));
}

static int n;
/*
    Generated by $Id: def2gene.xsl,v 1.1 2005/06/30 14:48:30 silber Exp $
    LHEO Version 1.2
    Revision b1
    */
      void gen_lheo();
      void gen_offres();
      void gen_offre_formation();
      void gen_action_formation();
      void gen_organisation_formation();
      void gen_organismes();
      void gen_organisation_pedagogique();
      void gen_organisation_administrative();
      void gen_organisation_materielle();
      void gen_conditions_pedagogiques();
      void gen_conditions_administratives();
      void gen_modalites_acces();
      void gen_lieu_date_inscription();
      void gen_organisme_formation_responsable();
      void gen_ref_organisme_formation_responsable();
      void gen_organisme_formateur();
      void gen_extras_offres();
      void gen_extras_offre_formation();
      void gen_extras_action_formation();
      void gen_extras_organisation_formation();
      void gen_extras_organisation_pedagogique();
      void gen_extras_organisation_administrative();
      void gen_extras_organisation_materielle();
      void gen_extras_conditions_pedagogiques();
      void gen_extras_conditions_administratives();
      void gen_extras_modalites_acces();
      void gen_extras_lieu_date_inscription();
      void gen_extras_organismes();
      void gen_extras_organisme_formation_responsable();
      void gen_extras_organisme_formateur();
      void gen_extras_domaine_formation();
      void gen_sessions();
      void gen_domaine_formation();
      void gen_intitule_action();
      void gen_nom_organisme();
      void gen_objectif_formation();
      void gen_resultats_attendus();
      void gen_contenu_formation();
      void gen_public_vise();
      void gen_sexe_public_vise();
      void gen_age_public_vise();
      void gen_rythme_formation();
      void gen_duree_indicative();
      void gen_code_niveau_entree();
      void gen_niveau_entree();
      void gen_modalite_alternance();
      void gen_FOAD();
      void gen_conditions_specifiques();
      void gen_age();
      void gen_prise_en_charge_frais_possible();
      void gen_remuneration_possible();
      void gen_diplomante();
      void gen_lieu_de_formation();
      void gen_modalite_entrees_sorties();
      void gen_dates_debut_fin_stage();
      void gen_session();
      void gen_adresse_inscription();
      void gen_date_inscription();
      void gen_contact_offre();
      void gen_numero_activite();
      void gen_SIREN_organisme_formation();
      void gen_raison_sociale();
      void gen_coordonnees_organisme();
      void gen_contact_organisme();
      void gen_renseignements_specifiques();
      void gen_organismes_financeurs();
      void gen_statut_public_vise();
      void gen_objectif_general_formation();
      void gen_modalites_recrutement();
      void gen_modalites_pedagogiques();
      void gen_SIREN_formateur();
      void gen_raison_sociale_formateur();
      void gen_code_perimetre_recrutement();
      void gen_infos_perimetre_recrutement();
      void gen_prix_horaire_TTC();
      void gen_nombre_heures_total();
      void gen_detail_conditions_prise_en_charge();
      void gen_conventionnement_possible();
      void gen_duree_conventionnee();
      void gen_code_financeur();
      void gen_date_limite_inscription();
      void gen_restauration_hebergement_transport();
      void gen_certification();
      void gen_parcours_de_formation();
      void gen_positionnement();
      void gen_module();
      void gen_identifiant_module();
      void gen_reference_module();
      void gen_sous_modules();
      void gen_modules_prerequis();
      void gen_sous_module();
      void gen_type_module();
      void gen_code_public_vise();
      void gen_codes_NSF();
      void gen_codes_FORMACODE();
      void gen_codes_ROME();
      void gen_code_NSF();
      void gen_code_FORMACODE();
      void gen_code_ROME();
      void gen_coordonnees_libres();
      void gen_coordonnees();
      void gen_SIREN();
      void gen_adresse();
      void gen_lignesco();
      void gen_ligneco();
      void gen_lignesad();
      void gen_lignead();
      void gen_codepostal();
      void gen_code_INSEE_commune();
      void gen_ville();
      void gen_departement();
      void gen_region();
      void gen_pays();
      void gen_courriel();
      void gen_web();
      void gen_urlweb();
      void gen_telfixe();
      void gen_portable();
      void gen_fax();
      void gen_numtel();
      void gen_periode();
      void gen_deb();
      void gen_fin();
      void gen_date();void gen_langage() { gen_offre_formation();}
void gen_lheo() {
      printf("<lheo>");
	  gen_offres();
	  
	    if (0)
	  gen_extras_offres();
	  
    printf("</lheo>\n");
    }
void gen_offres() {
      printf("<offres>");
	  { int i;
	int mini = 1;
	int maxi = n;
	
	for (i = 0; i < mini; i++) {
	gen_offre_formation();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	gen_offre_formation();      
	}
	}
	
    printf("</offres>\n");
    }
void gen_offre_formation() {
      printf("<offre-formation>");
	  gen_action_formation();
	  
	  gen_organisation_formation();
	  
	  gen_organismes();
	  
	    if (gen_random(2))
	  gen_module();
	  
	    if (0)
	  gen_extras_offre_formation();
	  
    printf("</offre-formation>\n");
    }
void gen_action_formation() {
      printf("<action-formation>");
	  gen_domaine_formation();
	  
	  gen_intitule_action();
	  
	  gen_objectif_formation();
	  
	  gen_resultats_attendus();
	  
	  gen_contenu_formation();
	  
	  gen_diplomante();
	  
	  gen_public_vise();
	  
	  gen_sexe_public_vise();
	  
	  gen_age_public_vise();
	  
	  gen_rythme_formation();
	  
	  gen_duree_indicative();
	  
	  gen_contact_offre();
	  
	  gen_parcours_de_formation();
	  
	    if (gen_random(2))
	  gen_statut_public_vise();
	  
	    if (gen_random(2))
	  gen_objectif_general_formation();
	  
	    if (gen_random(2))
	  gen_certification();
	  
	    if (0)
	  gen_extras_action_formation();
	  
    printf("</action-formation>\n");
    }
void gen_organisation_formation() {
      printf("<organisation-formation>");
	  gen_conditions_pedagogiques();
	  
	  gen_conditions_administratives();
	  
	  gen_modalites_acces();
	  
	    if (gen_random(2))
	  gen_organisation_pedagogique();
	  
	    if (gen_random(2))
	  gen_organisation_administrative();
	  
	    if (gen_random(2))
	  gen_organisation_materielle();
	  
	    if (0)
	  gen_extras_organisation_formation();
	  
    printf("</organisation-formation>\n");
    }
void gen_organismes() {
      printf("<organismes>");
	  gen_organisme_formation_responsable();
	  
	    if (gen_random(2))
	  gen_organisme_formateur();
	  
	    if (gen_random(2))
	  gen_organismes_financeurs();
	  
	    if (0)
	  gen_extras_organismes();
	  
    printf("</organismes>\n");
    }
void gen_organisation_pedagogique() {
      printf("<organisation-pedagogique>");
	    if (gen_random(2))
	  gen_modalites_recrutement();
	  
	    if (gen_random(2))
	  gen_modalites_pedagogiques();
	  
	    if (gen_random(2))
	  gen_positionnement();
	  
	    if (gen_random(2))
	  gen_sous_modules();
	  
	    if (gen_random(2))
	  gen_modules_prerequis();
	  
	    if (0)
	  gen_extras_organisation_pedagogique();
	  
    printf("</organisation-pedagogique>\n");
    }
void gen_organisation_administrative() {
      printf("<organisation-administrative>");
	    if (gen_random(2))
	  gen_code_perimetre_recrutement();
	  
	    if (gen_random(2))
	  gen_infos_perimetre_recrutement();
	  
	    if (gen_random(2))
	  gen_prix_horaire_TTC();
	  
	    if (gen_random(2))
	  gen_nombre_heures_total();
	  
	    if (gen_random(2))
	  gen_detail_conditions_prise_en_charge();
	  
	    if (gen_random(2))
	  gen_conventionnement_possible();
	  
	    if (gen_random(2))
	  gen_duree_conventionnee();
	  
	    if (gen_random(2))
	  gen_date_limite_inscription();
	  
	    if (0)
	  gen_extras_organisation_administrative();
	  
    printf("</organisation-administrative>\n");
    }
void gen_organisation_materielle() {
      printf("<organisation-materielle>");
	    if (gen_random(2))
	  gen_restauration_hebergement_transport();
	  
	    if (0)
	  gen_extras_organisation_materielle();
	  
    printf("</organisation-materielle>\n");
    }
void gen_conditions_pedagogiques() {
      printf("<conditions-pedagogiques>");
	  gen_code_niveau_entree();
	  
	  gen_niveau_entree();
	  
	  gen_modalite_alternance();
	  
	  gen_FOAD();
	  
	  gen_conditions_specifiques();
	  
	    if (0)
	  gen_extras_conditions_pedagogiques();
	  
    printf("</conditions-pedagogiques>\n");
    }
void gen_conditions_administratives() {
      printf("<conditions-administratives>");
	  gen_age();
	  
	  gen_prise_en_charge_frais_possible();
	  
	  gen_remuneration_possible();
	  
	    if (0)
	  gen_extras_conditions_administratives();
	  
    printf("</conditions-administratives>\n");
    }
void gen_modalites_acces() {
      printf("<modalites-acces>");
	  gen_lieu_de_formation();
	  
	  gen_modalite_entrees_sorties();
	  
	  gen_lieu_date_inscription();
	  
	    if (gen_random(2))
	  gen_sessions();
	  
	    if (gen_random(2))
	  gen_dates_debut_fin_stage();
	  
	    if (0)
	  gen_extras_modalites_acces();
	  
    printf("</modalites-acces>\n");
    }
void gen_lieu_date_inscription() {
      printf("<lieu-date-inscription>");
	  gen_adresse_inscription();
	  
	  gen_date_inscription();
	  
	    if (0)
	  gen_extras_lieu_date_inscription();
	  
    printf("</lieu-date-inscription>\n");
    }
void gen_organisme_formation_responsable() {
      printf("<organisme-formation-responsable>");
	  gen_numero_activite();
	  
	  gen_SIREN_organisme_formation();
	  
	  gen_nom_organisme();
	  
	  gen_raison_sociale();
	  
	  gen_coordonnees_organisme();
	  
	  gen_contact_organisme();
	  
	    if (gen_random(2))
	  gen_renseignements_specifiques();
	  
	    if (0)
	  gen_extras_organisme_formation_responsable();
	  
    printf("</organisme-formation-responsable>\n");
    }
void gen_ref_organisme_formation_responsable() {
      printf("<ref-organisme-formation-responsable>");
    printf("</ref-organisme-formation-responsable>\n");
    }
void gen_organisme_formateur() {
      printf("<organisme-formateur>");
	  gen_SIREN_formateur();
	  
	  gen_raison_sociale_formateur();
	  
	    if (0)
	  gen_extras_organisme_formateur();
	  
    printf("</organisme-formateur>\n");
    }
void gen_extras_offres() {
      printf("<extras-offres>");
    printf("</extras-offres>\n");
    }
void gen_extras_offre_formation() {
      printf("<extras-offre-formation>");
    printf("</extras-offre-formation>\n");
    }
void gen_extras_action_formation() {
      printf("<extras-action-formation>");
    printf("</extras-action-formation>\n");
    }
void gen_extras_organisation_formation() {
      printf("<extras-organisation-formation>");
    printf("</extras-organisation-formation>\n");
    }
void gen_extras_organisation_pedagogique() {
      printf("<extras-organisation-pedagogique>");
    printf("</extras-organisation-pedagogique>\n");
    }
void gen_extras_organisation_administrative() {
      printf("<extras-organisation-administrative>");
    printf("</extras-organisation-administrative>\n");
    }
void gen_extras_organisation_materielle() {
      printf("<extras-organisation-materielle>");
    printf("</extras-organisation-materielle>\n");
    }
void gen_extras_conditions_pedagogiques() {
      printf("<extras-conditions-pedagogiques>");
    printf("</extras-conditions-pedagogiques>\n");
    }
void gen_extras_conditions_administratives() {
      printf("<extras-conditions-administratives>");
    printf("</extras-conditions-administratives>\n");
    }
void gen_extras_modalites_acces() {
      printf("<extras-modalites-acces>");
    printf("</extras-modalites-acces>\n");
    }
void gen_extras_lieu_date_inscription() {
      printf("<extras-lieu-date-inscription>");
    printf("</extras-lieu-date-inscription>\n");
    }
void gen_extras_organismes() {
      printf("<extras-organismes>");
    printf("</extras-organismes>\n");
    }
void gen_extras_organisme_formation_responsable() {
      printf("<extras-organisme-formation-responsable>");
    printf("</extras-organisme-formation-responsable>\n");
    }
void gen_extras_organisme_formateur() {
      printf("<extras-organisme-formateur>");
    printf("</extras-organisme-formateur>\n");
    }
void gen_extras_domaine_formation() {
      printf("<extras-domaine-formation>");
    printf("</extras-domaine-formation>\n");
    }
void gen_sessions() {
      printf("<sessions>");
	  { int i;
	int mini = 1;
	int maxi = 5;
	
	for (i = 0; i < mini; i++) {
	gen_session();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_session();      
	}
	}
	
    printf("</sessions>\n");
    }
void gen_domaine_formation() {
      printf("<domaine-formation>");
	    if (gen_random(2))
	  gen_codes_NSF();
	  
	    if (gen_random(2))
	  gen_codes_FORMACODE();
	  
	    if (gen_random(2))
	  gen_codes_ROME();
	  
	    if (0)
	  gen_extras_domaine_formation();
	  
    printf("</domaine-formation>\n");
    }
void gen_intitule_action() {
	  static int nbc = 15;
	  static char* chaines[] = {
	    "BTS Action Commerciale",
	    "Concepteur réalisateur audiovisuel numérique",
	    "Brevet de technicien supérieur métiers de l'audiovisuel, option : exploitation des équipements",
	    "Brevet de technicien supérieur en communication visuelle",
	    "Accompagnement modulaire vers l'emploi",
	    "Administrateur de réseaux d'entreprise",
	    "Agent polyvalent auprès des personnes et DEAVS",
	    "Agent polyvalent auprès des personnes âgées et/ou handicapées",
	    "Agent de propreté",
	    "Agent de propreté et d'hygiène",
	    "Certificat de formation professionnelle agent magasinier tenue de stock",
	    "Agent de maintenance en équipement électronique",
	    "Agent polyvalent auprès des personnes",
	    "Agent de sécurité incendie en établissement recevant du public option ERP1",
	    "Agent technique de systèmes de production",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 255) toto[255] = '\0';
      printf("<intitule-action>");
	  printf("%s\n", toto);
    printf("</intitule-action>\n");
    }
void gen_nom_organisme() {
	  static int nbc = 5;
	  static char* chaines[] = {
	    "Institut régional d'études de techniques appliquées",
	    "Greta Nantes services",
	    "Centre de formation permanente",
	    "Agent technique de vente",
	    "Centre de formation professionnelle",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 250) toto[250] = '\0';
      printf("<nom-organisme>");
	  printf("%s\n", toto);
    printf("</nom-organisme>\n");
    }
void gen_objectif_formation() {
      printf("<objectif-formation>");
	  gen_alpha(gen_random(3000));
    printf("</objectif-formation>\n");
    }
void gen_resultats_attendus() {
	  static int nbc = 2;
	  static char* chaines[] = {
	    "Niveau IV BAC, BTN, BT ou BP",
	    "Certificat de l'organisme",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 200) toto[200] = '\0';
      printf("<resultats-attendus>");
	  printf("%s\n", toto);
    printf("</resultats-attendus>\n");
    }
void gen_contenu_formation() {
	  static int nbc = 2;
	  static char* chaines[] = {
	    "Formation technique. Education physique et sportive. Informatique bureautique. Accueil téléphonique. Technique de recherche d'emploi. Maths. Communications écrite et orale. Lecture rapide.",
	    "Etude des systèmes techniques : énergie, ensembles mécaniques, étude des capteurs et détecteurs, modules d'interfaces, traitement de l'information, communication homme/machine, notions de climatisation. Maintenance : connaissances des matériels, observation des méthodes de maintenance, étude des moyens liés à la maintenabilité. Techniques de recherche d'emploi. Maths.",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 3000) toto[3000] = '\0';
      printf("<contenu-formation>");
	  printf("%s\n", toto);
    printf("</contenu-formation>\n");
    }
void gen_public_vise() {
	static int nbc = 3;	  
	static char* chaines[] = {
	  "0",
	  "1",
	  "2",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<public-vise>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</public-vise>\n");
    }
void gen_sexe_public_vise() {
	static int nbc = 3;	  
	static char* chaines[] = {
	  "0",
	  "1",
	  "2",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<sexe-public-vise>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</sexe-public-vise>\n");
    }
void gen_age_public_vise() {
	static int nbc = 3;	  
	static char* chaines[] = {
	  "0",
	  "1",
	  "2",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<age-public-vise>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</age-public-vise>\n");
    }
void gen_rythme_formation() {
	  static int nbc = 3;
	  static char* chaines[] = {
	    "Temps plein.",
	    "Temps partiel.",
	    "Temps plein et temps partiel.",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 50) toto[50] = '\0';
      printf("<rythme-formation>");
	  printf("%s\n", toto);
    printf("</rythme-formation>\n");
    }
void gen_duree_indicative() {
	  static int nbc = 3;
	  static char* chaines[] = {
	    "350 heures",
	    "230 heures",
	    "389 heures",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 50) toto[50] = '\0';
      printf("<duree-indicative>");
	  printf("%s\n", toto);
    printf("</duree-indicative>\n");
    }
void gen_code_niveau_entree() {
	static int nbc = 2;	  
	static char* chaines[] = {
	  "0",
	  "1",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<code-niveau-entree>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</code-niveau-entree>\n");
    }
void gen_niveau_entree() {
	  static int nbc = 9;
	  static char* chaines[] = {
	    "Niveau 1 : Niveau supérieur à une maîtrise universitaire",
	    "Niveau 2 : Niveau correspondant à une licence ou maîtrise universitaire",
	    "Niveau 3 : Niveau correspondant à un diplôme bac +2 (BTS, DUT, DEUG, ...)",
	    "Niveau 4 : Niveau correspondant à un BP, un BT, un bac professionnel ou un bac technologique",
	    "Niveau 5 : Niveau correspondant au CAP, BEP, CFPA 1er degré, ...",
	    "Niveau 5 bis : préqualification",
	    "Niveau 6 : illetrisme, analphabétisme",
	    "Niveau V BEP, CAP",
	    "Niveau non précisé",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 100) toto[100] = '\0';
      printf("<niveau-entree>");
	  printf("%s\n", toto);
    printf("</niveau-entree>\n");
    }
void gen_modalite_alternance() {
	  static int nbc = 2;
	  static char* chaines[] = {
	    "Période du 30/12/2004 au 3/10/2005 en centre, période du 1/4/2005 au 30/5/2005 en entreprise.",
	    "Période du 30/12/2004 au 3/10/2005 en entreprise",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 150) toto[150] = '\0';
      printf("<modalite-alternance>");
	  printf("%s\n", toto);
    printf("</modalite-alternance>\n");
    }
void gen_FOAD() {
	static int nbc = 3;	  
	static char* chaines[] = {
	  "0",
	  "1",
	  "2",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<FOAD>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</FOAD>\n");
    }
void gen_conditions_specifiques() {
	  static int nbc = 2;
	  static char* chaines[] = {
	    "Savoir nager.",
	    "Avoir son permis de conduire.",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 300) toto[300] = '\0';
      printf("<conditions-specifiques>");
	  printf("%s\n", toto);
    printf("</conditions-specifiques>\n");
    }
void gen_age() {
	  static int nbc = 5;
	  static char* chaines[] = {
	    "Tout public",
	    "De 7 à 77 ans",
	    "De 25 à 30 ans",
	    "De 50 à 80 ans",
	    "De 10 à 23 ans",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 50) toto[50] = '\0';
      printf("<age>");
	  printf("%s\n", toto);
    printf("</age>\n");
    }
void gen_prise_en_charge_frais_possible() {
	static int nbc = 2;	  
	static char* chaines[] = {
	  "0",
	  "1",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<prise-en-charge-frais-possible>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</prise-en-charge-frais-possible>\n");
    }
void gen_remuneration_possible() {
	static int nbc = 2;	  
	static char* chaines[] = {
	  "0",
	  "1",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<remuneration-possible>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</remuneration-possible>\n");
    }
void gen_diplomante() {
	static int nbc = 2;	  
	static char* chaines[] = {
	  "0",
	  "1",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<diplomante>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</diplomante>\n");
    }
void gen_lieu_de_formation() {
      printf("<lieu-de-formation>");
	gen_coordonnees();
	
    printf("</lieu-de-formation>\n");
    }
void gen_modalite_entrees_sorties() {
	static int nbc = 2;	  
	static char* chaines[] = {
	  "0",
	  "1",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<modalite-entrees-sorties>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</modalite-entrees-sorties>\n");
    }
void gen_dates_debut_fin_stage() {
	  static int nbc = 2;
	  static char* chaines[] = {
	    "Du 23/10/2003 au 30/12/2003",
	    "Du 23/10/2004 au 30/12/2004",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 150) toto[150] = '\0';
      printf("<dates-debut-fin-stage>");
	  printf("%s\n", toto);
    printf("</dates-debut-fin-stage>\n");
    }
void gen_session() {
      printf("<session>");
	gen_periode();
	
    printf("</session>\n");
    }
void gen_adresse_inscription() {
      printf("<adresse-inscription>");
	gen_adresse();
	
    printf("</adresse-inscription>\n");
    }
void gen_date_inscription() {
      printf("<date-inscription>");
	gen_date();
	
    printf("</date-inscription>\n");
    }
void gen_contact_offre() {
      printf("<contact-offre>");
	gen_coordonnees_libres();
	
    printf("</contact-offre>\n");
    }
void gen_numero_activite() {
      printf("<numero-activite>");
	gen_number(11,11);
    printf("</numero-activite>\n");
    }
void gen_SIREN_organisme_formation() {
      printf("<SIREN-organisme-formation>");
	gen_SIREN();
	
    printf("</SIREN-organisme-formation>\n");
    }
void gen_raison_sociale() {
	  static int nbc = 2;
	  static char* chaines[] = {
	    "AERT",
	    "QUOVADIS",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 250) toto[250] = '\0';
      printf("<raison-sociale>");
	  printf("%s\n", toto);
    printf("</raison-sociale>\n");
    }
void gen_coordonnees_organisme() {
      printf("<coordonnees-organisme>");
	gen_coordonnees();
	
    printf("</coordonnees-organisme>\n");
    }
void gen_contact_organisme() {
      printf("<contact-organisme>");
	gen_coordonnees_libres();
	
    printf("</contact-organisme>\n");
    }
void gen_renseignements_specifiques() {
	  static int nbc = 1;
	  static char* chaines[] = {
	    "texte renseignement spécifiques",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 3000) toto[3000] = '\0';
      printf("<renseignements-specifiques>");
	  printf("%s\n", toto);
    printf("</renseignements-specifiques>\n");
    }
void gen_organismes_financeurs() {
      printf("<organismes-financeurs>");
	  { int i;
	int mini = 1;
	int maxi = 8;
	
	for (i = 0; i < mini; i++) {
	gen_code_financeur();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_code_financeur();      
	}
	}
	
    printf("</organismes-financeurs>\n");
    }
void gen_statut_public_vise() {
      printf("<statut-public-vise>");
	  { int i;
	int mini = 1;
	int maxi = 8;
	
	for (i = 0; i < mini; i++) {
	gen_code_public_vise();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_code_public_vise();      
	}
	}
	
    printf("</statut-public-vise>\n");
    }
void gen_objectif_general_formation() {
	static int nbc = 8;	  
	static char* chaines[] = {
	  "1",
	  "6",
	  "7",
	  "8",
	  "5",
	  "9",
	  "2",
	  "4",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<objectif-general-formation>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</objectif-general-formation>\n");
    }
void gen_modalites_recrutement() {
	  static int nbc = 3;
	  static char* chaines[] = {
	    "Tests et entretiens.",
	    "Tests.",
	    "Entretiens.",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 100) toto[100] = '\0';
      printf("<modalites-recrutement>");
	  printf("%s\n", toto);
    printf("</modalites-recrutement>\n");
    }
void gen_modalites_pedagogiques() {
	  static int nbc = 2;
	  static char* chaines[] = {
	    "texte1",
	    "texte2",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 200) toto[200] = '\0';
      printf("<modalites-pedagogiques>");
	  printf("%s\n", toto);
    printf("</modalites-pedagogiques>\n");
    }
void gen_SIREN_formateur() {
      printf("<SIREN-formateur>");
	gen_SIREN();
	
    printf("</SIREN-formateur>\n");
    }
void gen_raison_sociale_formateur() {
	  static int nbc = 4;
	  static char* chaines[] = {
	    "ORT FRANCE - SIEGE SOCIAL",
	    "IFOCOP PARIS 11",
	    "ECOLE DE BOULANGERIE ET DE PATISSERIE DE PARIS",
	    "UCPA PARIS - INSTITUT DE FORMATION AUX METIERS SPORTIFS",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 250) toto[250] = '\0';
      printf("<raison-sociale-formateur>");
	  printf("%s\n", toto);
    printf("</raison-sociale-formateur>\n");
    }
void gen_code_perimetre_recrutement() {
	static int nbc = 7;	  
	static char* chaines[] = {
	  "0",
	  "1",
	  "2",
	  "3",
	  "4",
	  "5",
	  "6",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<code-perimetre-recrutement>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</code-perimetre-recrutement>\n");
    }
void gen_infos_perimetre_recrutement() {
      printf("<infos-perimetre-recrutement>");
	  gen_alpha(gen_random(50));
    printf("</infos-perimetre-recrutement>\n");
    }
void gen_prix_horaire_TTC() {
      printf("<prix-horaire-TTC>");
	gen_number(1,4);
    printf("</prix-horaire-TTC>\n");
    }
void gen_nombre_heures_total() {
      printf("<nombre-heures-total>");
	gen_number(1,5);
    printf("</nombre-heures-total>\n");
    }
void gen_detail_conditions_prise_en_charge() {
      printf("<detail-conditions-prise-en-charge>");
	  gen_alpha(gen_random(600));
    printf("</detail-conditions-prise-en-charge>\n");
    }
void gen_conventionnement_possible() {
	static int nbc = 2;	  
	static char* chaines[] = {
	  "0",
	  "1",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<conventionnement-possible>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</conventionnement-possible>\n");
    }
void gen_duree_conventionnee() {
      printf("<duree-conventionnee>");
	gen_number(1,5);
    printf("</duree-conventionnee>\n");
    }
void gen_code_financeur() {
	static int nbc = 16;	  
	static char* chaines[] = {
	  "11",
	  "12",
	  "13",
	  "2",
	  "3",
	  "4",
	  "5",
	  "6",
	  "7",
	  "8",
	  "9",
	  "15",
	  "10",
	  "0",
	  "14",
	  "1",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<code-financeur>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</code-financeur>\n");
    }
void gen_date_limite_inscription() {
      printf("<date-limite-inscription>");
	gen_date();
	
    printf("</date-limite-inscription>\n");
    }
void gen_restauration_hebergement_transport() {
      printf("<restauration-hebergement-transport>");
	  gen_alpha(gen_random(250));
    printf("</restauration-hebergement-transport>\n");
    }
void gen_certification() {
      printf("<certification>");
	  gen_alpha(gen_random(6));
    printf("</certification>\n");
    }
void gen_parcours_de_formation() {
	static int nbc = 4;	  
	static char* chaines[] = {
	  "1",
	  "2",
	  "3",
	  "4",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<parcours-de-formation>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</parcours-de-formation>\n");
    }
void gen_positionnement() {
	static int nbc = 2;	  
	static char* chaines[] = {
	  "1",
	  "2",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<positionnement>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</positionnement>\n");
    }
void gen_module() {
      printf("<module>");
	  gen_identifiant_module();
	  
    printf("</module>\n");
    }
void gen_identifiant_module() {
	  static int nbc = 3;
	  static char* chaines[] = {
	    "AAHJ4532KDJU23",
	    "SQDLFKOIR342LK",
	    "SDFLK-KFG-5678",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 3000) toto[3000] = '\0';
      printf("<identifiant-module>");
	  printf("%s\n", toto);
    printf("</identifiant-module>\n");
    }
void gen_reference_module() {
      printf("<reference-module>");
	  gen_alpha(gen_random(3000));
    printf("</reference-module>\n");
    }
void gen_sous_modules() {
      printf("<sous-modules>");
	  { int i;
	int mini = 1;
	int maxi = 2;
	
	for (i = 0; i < mini; i++) {
	gen_sous_module();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_sous_module();      
	}
	}
	
    printf("</sous-modules>\n");
    }
void gen_modules_prerequis() {
      printf("<modules-prerequis>");
	  { int i;
	int mini = 1;
	int maxi = 2;
	
	for (i = 0; i < mini; i++) {
	gen_reference_module();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_reference_module();      
	}
	}
	
    printf("</modules-prerequis>\n");
    }
void gen_sous_module() {
      printf("<sous-module>");
	  gen_reference_module();
	  
	  gen_type_module();
	  
    printf("</sous-module>\n");
    }
void gen_type_module() {
	static int nbc = 2;	  
	static char* chaines[] = {
	  "1",
	  "2",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<type-module>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</type-module>\n");
    }
void gen_code_public_vise() {
	static int nbc = 56;	  
	static char* chaines[] = {
	  "00000",
	  "00005",
	  "00013",
	  "00014",
	  "00020",
	  "00021",
	  "00022",
	  "00038",
	  "00040",
	  "00041",
	  "00050",
	  "00056",
	  "00099",
	  "00224",
	  "02018",
	  "10011",
	  "10012",
	  "10030",
	  "10042",
	  "10059",
	  "10225",
	  "20001",
	  "20002",
	  "20003",
	  "20004",
	  "20006",
	  "20009",
	  "20010",
	  "20015",
	  "20016",
	  "20017",
	  "20019",
	  "20023",
	  "20031",
	  "20032",
	  "20033",
	  "20034",
	  "20035",
	  "20036",
	  "20037",
	  "20039",
	  "20043",
	  "20044",
	  "20045",
	  "20047",
	  "20048",
	  "20049",
	  "20051",
	  "20055",
	  "20057",
	  "20058",
	  "20226",
	  "20227",
	  "20228",
	  "20229",
	  "20252",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<code-public-vise>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</code-public-vise>\n");
    }
void gen_codes_NSF() {
      printf("<codes-NSF>");
	  { int i;
	int mini = 1;
	int maxi = 3;
	
	for (i = 0; i < mini; i++) {
	gen_code_NSF();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_code_NSF();      
	}
	}
	
    printf("</codes-NSF>\n");
    }
void gen_codes_FORMACODE() {
      printf("<codes-FORMACODE>");
	  { int i;
	int mini = 1;
	int maxi = 5;
	
	for (i = 0; i < mini; i++) {
	gen_code_FORMACODE();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_code_FORMACODE();      
	}
	}
	
    printf("</codes-FORMACODE>\n");
    }
void gen_codes_ROME() {
      printf("<codes-ROME>");
	  { int i;
	int mini = 1;
	int maxi = 5;
	
	for (i = 0; i < mini; i++) {
	gen_code_ROME();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_code_ROME();      
	}
	}
	
    printf("</codes-ROME>\n");
    }
void gen_code_NSF() {
	static int nbc = 10;	  
	static char* chaines[] = {
	  "100",
	  "114",
	  "133",
	  "227",
	  "242",
	  "253",
	  "321",
	  "334",
	  "324",
	  "323",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<code-NSF>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</code-NSF>\n");
    }
void gen_code_FORMACODE() {
	static int nbc = 10;	  
	static char* chaines[] = {
	  "46278",
	  "42079",
	  "21295",
	  "21223",
	  "21258",
	  "21056",
	  "42077",
	  "42050",
	  "43485",
	  "42837",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<code-FORMACODE>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</code-FORMACODE>\n");
    }
void gen_code_ROME() {
	static int nbc = 9;	  
	static char* chaines[] = {
	  "21131",
	  "12121",
	  "14225",
	  "32214",
	  "32311",
	  "32321",
	  "32331",
	  "32341",
	  "44213",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<code-ROME>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</code-ROME>\n");
    }
void gen_coordonnees_libres() {
      printf("<coordonnees-libres>");
	  gen_lignesco();
	  
	    if (gen_random(2))
	  gen_adresse();
	  
	    if (gen_random(2))
	  gen_telfixe();
	  
	    if (gen_random(2))
	  gen_portable();
	  
	    if (gen_random(2))
	  gen_fax();
	  
	    if (gen_random(2))
	  gen_courriel();
	  
	    if (gen_random(2))
	  gen_web();
	  
    printf("</coordonnees-libres>\n");
    }
void gen_coordonnees() {
      printf("<coordonnees>");
	  gen_lignesco();
	  
	  gen_adresse();
	  
	    if (gen_random(2))
	  gen_telfixe();
	  
	    if (gen_random(2))
	  gen_portable();
	  
	    if (gen_random(2))
	  gen_fax();
	  
	    if (gen_random(2))
	  gen_courriel();
	  
	    if (gen_random(2))
	  gen_web();
	  
    printf("</coordonnees>\n");
    }
void gen_SIREN() {
      printf("<SIREN>");
	gen_number(14,14);
    printf("</SIREN>\n");
    }
void gen_adresse() {
      printf("<adresse>");
	  gen_lignesad();
	  
	  gen_codepostal();
	  
	  gen_ville();
	  
	  gen_departement();
	  
	    if (gen_random(2))
	  gen_code_INSEE_commune();
	  
	    if (gen_random(2))
	  gen_region();
	  
	    if (gen_random(2))
	  gen_pays();
	  
    printf("</adresse>\n");
    }
void gen_lignesco() {
      printf("<lignesco>");
	  { int i;
	int mini = 1;
	int maxi = 4;
	
	for (i = 0; i < mini; i++) {
	gen_ligneco();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_ligneco();      
	}
	}
	
    printf("</lignesco>\n");
    }
void gen_ligneco() {
	  static int nbc = 3;
	  static char* chaines[] = {
	    "Association pour la formation et le perfectionnement du personnel des entreprises",
	    "18/20, rue Paul-Déroulède",
	    "357/359, rue d'Estienne d'Orves",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 50) toto[50] = '\0';
      printf("<ligneco>");
	  printf("%s\n", toto);
    printf("</ligneco>\n");
    }
void gen_lignesad() {
      printf("<lignesad>");
	  { int i;
	int mini = 1;
	int maxi = 4;
	
	for (i = 0; i < mini; i++) {
	gen_lignead();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_lignead();      
	}
	}
	
    printf("</lignesad>\n");
    }
void gen_lignead() {
	  static int nbc = 3;
	  static char* chaines[] = {
	    "Association pour la formation et le perfectionnement du personnel des entreprises",
	    "18/20, rue Paul-Déroulède",
	    "357/359, rue d'Estienne d'Orves",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 60) toto[60] = '\0';
      printf("<lignead>");
	  printf("%s\n", toto);
    printf("</lignead>\n");
    }
void gen_codepostal() {
      printf("<codepostal>");
	  gen_alpha(gen_random(5));
    printf("</codepostal>\n");
    }
void gen_code_INSEE_commune() {
      printf("<code-INSEE-commune>");
	gen_number(5,5);
    printf("</code-INSEE-commune>\n");
    }
void gen_ville() {
	  static int nbc = 1846;
	  static char* chaines[] = {
	    "SAINT DENIS LES BOURG",
	    "FRANCHELEINS",
	    "GENOUILLEUX",
	    "GUEREINS",
	    "LURCY",
	    "MONTCEAUX",
	    "MONTMERLE SUR SAONE",
	    "APREMONT",
	    "ARBENT",
	    "GEOVREISSET",
	    "OYONNAX",
	    "ARANC",
	    "CHAMPDOR",
	    "CORLIER",
	    "CORMARANCHE EN BUGEY",
	    "HAUTEVILLE LOMPNES",
	    "THEZILLIEU",
	    "DAGNEUX",
	    "LA BOISSE",
	    "MONTLUEL",
	    "NIEVROZ",
	    "PIZAY",
	    "SAINTE CROIX",
	    "THIL",
	    "CHARIX",
	    "LALLEYRIAT",
	    "LE POIZAT",
	    "LES NEYROLLES",
	    "NANTUA",
	    "DOMPIERRE SUR CHALARONNE",
	    "GARNERANS",
	    "ILLIAT",
	    "MOGNENEINS",
	    "PEYZIEUX SUR SAONE",
	    "SAINT DIDIER SUR CHALARONNE",
	    "SAINT ETIENNE SUR CHALARONNE",
	    "THOISSEY",
	    "BLYES",
	    "CHAZEY SUR AIN",
	    "LAGNIEU",
	    "LEYMENT",
	    "DRUILLAT",
	    "LA TRANCLIERE",
	    "NEUVILLE SUR AIN",
	    "PONT D'AIN",
	    "PRIAY",
	    "SAINT MARTIN DU MONT",
	    "VARAMBON",
	    "CESSY",
	    "CHEVRY",
	    "CROZET",
	    "ECHENEVEX",
	    "GEX",
	    "SEGNY",
	    "VESANCY",
	    "ARBIGNY",
	    "BOISSEY",
	    "BOZ",
	    "CHAVANNES SUR REYSSOUZE",
	    "CHEVROUX",
	    "GORREVOD",
	    "OZAN",
	    "PONT DE VAUX",
	    "REYSSOUZE",
	    "SAINT BENIGNE",
	    "SAINT ETIENNE SUR REYSSOUZE",
	    "SERMOYER",
	    "BILLIAT",
	    "CHATILLON EN MICHAILLE",
	    "CONFORT",
	    "ELOISE",
	    "INJOUX GENISSIAT",
	    "LANCRANS",
	    "LEAZ",
	    "MONTANGES",
	    "SAINT GERMAIN SUR RHONE",
	    "VILLES",
	    "FERNEY VOLTAIRE",
	    "ORNEX",
	    "VERSONNEX",
	    "DIVONNE LES BAINS",
	    "GRILLY",
	    "ARANDAS",
	    "CLEYZIEU",
	    "CONAND",
	    "EVOSGES",
	    "NIVOLLET MONTGRIFFON",
	    "ONCIEU",
	    "SAINT RAMBERT EN BUGEY",
	    "TORCIEU",
	    "CERTINES",
	    "DOMPIERRE SUR VEYLE",
	    "LA CHAPELLE DU CHATELARD",
	    "LENT",
	    "MARLIEUX",
	    "SAINT ANDRE LE BOUCHOUX",
	    "SAINT GERMAIN SUR RENON",
	    "SAINT PAUL DE VARAX",
	    "BOHAS",
	    "CEYZERIAT",
	    "CHAVANNES SUR SURAN",
	    "CIZE",
	    "CORVEISSIAT",
	    "DROM",
	    "GERMAGNAT",
	    "GRAND CORENT",
	    "AULNOIS SOUS LAON",
	    "BOURGUIGNON SOUS MONTBAVIN",
	    "BRAYE EN LAONNOIS",
	    "CHAILLEVOIS",
	    "CHAMBRY",
	    "CHAVIGNON",
	    "CHEVREGNY",
	    "CHIVY LES ETOUVELLES",
	    "CLACY ET THIERRET",
	    "FILAIN",
	    "MERLIEUX ET FOUQUEROLLES",
	    "MOLINCHART",
	    "MONAMPTEUIL",
	    "MONS EN LAONNOIS",
	    "ROYAUCOURT ET CHAILVET",
	    "URCEL",
	    "VAUCELLES ET BEFFECOURT",
	    "VERNEUIL SUR SERRE",
	    "ESSIGNY LE PETIT",
	    "GRICOURT",
	    "HARLY",
	    "LESDINS",
	    "MORCOURT",
	    "NEUVILLE SAINT AMAND",
	    "OMISSY",
	    "REMAUCOURT",
	    "ROUVROY",
	    "AISONVILLE ET BERNOVILLE",
	    "BEAUREVOIR",
	    "BECQUIGNY",
	    "BRANCOURT LE GRAND",
	    "CROIX FONSOMMES",
	    "ETAVES ET BOCQUIAUX",
	    "FONSOMMES",
	    "FONTAINE NOTRE DAME",
	    "GROUGIS",
	    "MOLAIN",
	    "MONTBREHAIN",
	    "MONTIGNY EN ARROUAISE",
	    "RAMICOURT",
	    "RIBEAUVILLE",
	    "SAINT MARTIN RIVIERE",
	    "SERAIN",
	    "VAUX ANDIGNY",
	    "AUDIGNY",
	    "BERNOT",
	    "CHIGNY",
	    "COLONFAY",
	    "CRUPILLY",
	    "FLAVIGNY LE GRAND ET",
	    "ENTRAGES",
	    "LA ROBINE SUR GALABRE",
	    "MARCOUX",
	    "SAINT AUBAN",
	    "AUBENAS LES ALPES",
	    "MONTFURON",
	    "MONTJUSTIN",
	    "OPPEDETTE",
	    "SAINTE CROIX A LAUZE",
	    "VACHERES",
	    "VILLEMUS",
	    "CASTELLANE",
	    "DEMANDOLX",
	    "LA GARDE",
	    "LA PALUD SUR VERDON",
	    "PEYROULES",
	    "ROUGON",
	    "SOLEILHAS",
	    "VOLX",
	    "AUZET",
	    "BARLES",
	    "LE VERNET",
	    "MONTCLAR",
	    "SEYNE",
	    "VERDACHES",
	    "BANON",
	    "L'HOSPITALET",
	    "LA ROCHEGIRON",
	    "MONTSALIER",
	    "REDORTIERS LE CONTADOUR",
	    "REVEST DES BROUSSES",
	    "REVEST DU BION",
	    "SAUMANE",
	    "SIMIANE LA ROTONDE",
	    "L'ESCALE",
	    "ALLONS",
	    "LA MURE ARGENS",
	    "LAMBRUISSE",
	    "MORIEZ",
	    "SAINT ANDRE LES ALPES",
	    "SAINT JULIEN DU VERDON",
	    "THORAME BASSE",
	    "THORAME HAUTE",
	    "VERGONS",
	    "VILLENEUVE",
	    "LES MEES",
	    "AUBIGNOSC",
	    "AUTHON",
	    "BEVONS",
	    "CHATEAUNEUF MIRAVAIL",
	    "CHATEAUNEUF VAL SAINT DONAT",
	    "CUREL",
	    "ENTREPIERRES",
	    "LES OMERGUES",
	    "MISON",
	    "NOYERS SUR JABRON",
	    "PEIPIN",
	    "SAINT GENIEZ",
	    "SAINT VINCENT SUR JABRON",
	    "THEZE",
	    "VALBELLE",
	    "VALERNES",
	    "VAUMEILH",
	    "BRUNET",
	    "VALENSOLE",
	    "CORBIERES",
	    "SAINTE TULLE",
	    "CRUIS",
	    "FONTIENNE",
	    "LARDIERS",
	    "MALLEFOUGASSE AUGES",
	    "MONTLAUX",
	    "ONGLES",
	    "SAINT ETIENNE LES ORGUES",
	    "ANNOT",
	    "BRAUX",
	    "LE FUGERET",
	    "MEAILLES",
	    "SAINT BENOIT",
	    "UBRAYE",
	    "BAYONS",
	    "BELLAFFAIRE",
	    "CLAMENSANE",
	    "LA MOTTE DU CAIRE",
	    "LE CAIRE",
	    "MELVE",
	    "TURRIERS",
	    "LA FOUX D'ALLOS",
	    "BEYNES",
	    "BRAS D'ASSE",
	    "CHATEAUREDON",
	    "ESTOUBLON",
	    "MEZEL",
	    "FOUGERES",
	    "LA FRESNAIS",
	    "LILLEMER",
	    "DOMAGNE",
	    "SAINT BENOIT DES ONDES",
	    "BAGUER MORVAN",
	    "BAGUER PICAN",
	    "BROUALAN",
	    "CHERRUEIX",
	    "DOL DE BRETAGNE",
	    "EPINIAC",
	    "HIREL",
	    "LA BOUSSAC",
	    "MONT DOL",
	    "ROZ LANDRIEUX",
	    "SAINT BROLADRE",
	    "SAINT MARCAN",
	    "ARBRISSEL",
	    "AVAILLES SUR SEICHE",
	    "DROUGES",
	    "LA GUERCHE DE BRETAGNE",
	    "MOUSSE",
	    "MOUTIERS",
	    "RANNEE",
	    "VISSEICHE",
	    "CHARTRES DE BRETAGNE",
	    "PONT PEAN",
	    "VEZIN LE COQUET",
	    "BEAUCE",
	    "BILLE",
	    "FLEURIGNE",
	    "JAVENE",
	    "LA CHAPELLE JANSON",
	    "LA SELLE EN LUITRE",
	    "LAIGNELET",
	    "LANDEAN",
	    "LE LOROUX",
	    "LECOUSSE",
	    "LUITRE",
	    "PARIGNE",
	    "ROMAGNE",
	    "SAINT GERMAIN EN COGLES",
	    "SAINT SAUVEUR DES LANDES",
	    "COESMES",
	    "SAINTE COLOMBE",
	    "THOURIE",
	    "CHANTEPIE",
	    "SAINT JACQUES DE LA",
	    "BEDEE",
	    "LA NOUAYE",
	    "PLEUMELEUC",
	    "GOSNE",
	    "LA CHAPELLE SAINT AUBERT",
	    "MEZIERES SUR COUESNON",
	    "SAINT AUBIN DU CORMIER",
	    "SAINT CHRISTOPHE DE VALAINS",
	    "SAINT GEORGES DE CHESNE",
	    "SAINT HILAIRE DES LANDES",
	    "SAINT JEAN SUR COUESNON",
	    "SAINT MARC SUR COUESNON",
	    "SAINT OUEN DES ALLEUX",
	    "VENDEL",
	    "AMANLIS",
	    "BOISTRUDAN",
	    "BRIE",
	    "CHANTELOUP",
	    "CORPS NUDS",
	    "ESSE",
	    "JANZE",
	    "PIRE SUR SEICHE",
	    "BRETEIL",
	    "LE VERGER",
	    "MONTERFIL",
	    "MONTFORT",
	    "TALENSAC",
	    "BRUZ",
	    "BECHEREL",
	    "CARDROC",
	    "LA BAUSSAINE",
	    "LA CHAPELLE AUX FILTZMEENS",
	    "LONGAULNAY",
	    "MINIAC SOUS BECHEREL",
	    "QUEBRIAC",
	    "SAINT DOMINEUC",
	    "SAINT PERN",
	    "SAINT THUAL",
	    "TINTENIAC",
	    "TREVERIEN",
	    "TRIMER",
	    "CHATILLON EN VENDELAIS",
	    "COMBOURTILLE",
	    "DOMPIERRE DU CHEMIN",
	    "MONTAUTOUR",
	    "MONTREUIL DES LANDES",
	    "PARCE",
	    "PRINCE",
	    "SAINT CHRISTOPHE DES BOIS",
	    "CHATEAUBOURG",
	    "MARPIRE",
	    "LA BROQUE",
	    "STRASBOURG",
	    "DAMBACH",
	    "EBERBACH WOERTH",
	    "GRIESBACH",
	    "GUMBRECHTSHOFFEN",
	    "GUNDERSHOFFEN",
	    "NIEDERBRONN LES BAINS",
	    "OBERBRONN",
	    "REICHSHOFFEN",
	    "UTTENHOFFEN",
	    "WINDSTEIN",
	    "ZINSWILLER",
	    "BREUSCHWICKERSHEIM",
	    "BLAESHEIM",
	    "ESCHAU",
	    "PLOBSHEIM",
	    "REICHSTETT",
	    "DOSSENHEIM KOCHERSBERG",
	    "FESSENHEIM LE BAS",
	    "FURDENHEIM",
	    "HANDSCHUHEIM",
	    "HURTIGHEIM",
	    "ITTENHEIM",
	    "QUATZENHEIM",
	    "ALTORF",
	    "AVOLSHEIM",
	    "DACHSTEIN",
	    "DORLISHEIM",
	    "DUPPIGHEIM",
	    "DUTTLENHEIM",
	    "ERGERSHEIM",
	    "ERNOLSHEIM BRUCHE",
	    "KOLBSHEIM",
	    "MOLSHEIM",
	    "SOULTZ LES BAINS",
	    "WOLXHEIM",
	    "BAREMBACH",
	    "BELLEFOSSE",
	    "BELMONT",
	    "FOUDAY",
	    "GRANDFONTAINE",
	    "LUTZELHOUSE",
	    "MUHLBACH SUR BRUCHE",
	    "NATZWILLER",
	    "NEUVILLER LA ROCHE",
	    "RUSS",
	    "SCHIRMECK",
	    "WALDERSBACH",
	    "WILDERSBACH",
	    "WISCHES",
	    "ANDLAU",
	    "BARR",
	    "BERNARDVILLE",
	    "BOURGHEIM",
	    "EICHHOFFEN",
	    "GERTWILLER",
	    "HEILIGENSTEIN",
	    "ITTERSWILLER",
	    "LE HOHWALD",
	    "MITTELBERGHEIM",
	    "REICHSFELD",
	    "SAINT PIERRE",
	    "STOTZHEIM",
	    "ZELLWILLER",
	    "BOLSENHEIM",
	    "DAUBENSAND",
	    "ERSTEIN",
	    "GERSTHEIM",
	    "HINDISHEIM",
	    "HIPSHEIM",
	    "LIMERSHEIM",
	    "MATZENHEIM",
	    "NORDHOUSE",
	    "OSTHOUSE",
	    "SCHAEFFERSHEIM",
	    "UTTENHEIM",
	    "CLEEBOURG",
	    "DRACHENBRONN BIRLENBACH",
	    "OBERHOFFEN LES WISSEMBOURG",
	    "OBERLAUTERBACH",
	    "RIEDSELTZ",
	    "ROTT",
	    "SALMBACH",
	    "SCHLEITHAL",
	    "SEEBACH",
	    "SIEGEN",
	    "STEINSELTZ",
	    "WISSEMBOURG",
	    "BERNOLSHEIM",
	    "BERSTHEIM",
	    "BILWISHEIM",
	    "BRUMATH",
	    "DONNENHEIM",
	    "GEUDERTHEIM",
	    "HOCHSTETT",
	    "HOHATZENHEIM",
	    "KRIEGSHEIM",
	    "MITTELHAUSEN",
	    "MITTELSCHAEFFOLSHEIM",
	    "OLWISHEIM",
	    "ROTTELSHEIM",
	    "WAHLENHEIM",
	    "WINGERSHEIM",
	    "DINSHEIM",
	    "GRENDELBRUCH",
	    "GRESSWILLER",
	    "HEILIGENBERG",
	    "MOLLKIRCH",
	    "MUTZIG",
	    "STILL",
	    "ACHENHEIM",
	    "ECKBOLSHEIM",
	    "MITTELHAUSBERGEN",
	    "NIEDERHAUSBERGEN",
	    "OBERHAUSBERGEN",
	    "OBERSCHAEFFOLSHEIM",
	    "WOLFISHEIM",
	    "BERNARDSWILLER",
	    "GOXWILLER",
	    "GRIESHEIM PRES MOLSHEIM",
	    "MEISTRATZHEIM",
	    "NIEDERNAI",
	    "OBERNAI",
	    "VALFF",
	    "ALBE",
	    "BASSEMBERG",
	    "BREITENAU",
	    "BREITENBACH",
	    "DIEFFENBACH AU VAL",
	    "FOUCHY",
	    "LALAYE",
	    "MAISONSGOUTTE",
	    "NEUBOIS",
	    "NEUVE EGLISE",
	    "SAINT MARTIN",
	    "SAINT MAURICE",
	    "SAINT PIERRE BOIS",
	    "STEIGE",
	    "THANVILLE",
	    "TRIEMBACH AU VAL",
	    "URBEIS",
	    "VILLE",
	    "BENFELD",
	    "DIEBOLSHEIM",
	    "HERBSHEIM",
	    "COLMAR",
	    "MULHOUSE",
	    "INGERSHEIM",
	    "ILLZACH",
	    "GUEWENHEIM",
	    "HIRTZBACH",
	    "PFASTATT",
	    "RICHWILLER",
	    "URBES",
	    "HOUSSEN",
	    "SAINTE CROIX EN PLAINE",
	    "ALTKIRCH",
	    "ASPACH",
	    "BERENTZWILLER",
	    "CARSPACH",
	    "EMLINGEN",
	    "FRANKEN",
	    "HAUSGAUEN",
	    "HUNDSBACH",
	    "JETTINGEN",
	    "OBERMORSCHWILLER",
	    "SCHWOBEN",
	    "TAGSDORF",
	    "WAHLBACH",
	    "WALHEIM",
	    "WITTERSDORF",
	    "ZAESSINGUE",
	    "ESCHBACH AU VAL",
	    "GRIESBACH AU VAL",
	    "GUNSBACH VILLAGE",
	    "HOHROD",
	    "LUTTENBACH PRES MUNSTER",
	    "MUNSTER",
	    "SOULTZEREN",
	    "STOSSWIHR",
	    "AUBURE",
	    "HUNAWIHR",
	    "ILLHAEUSERN",
	    "OSTHEIM",
	    "RIBEAUVILLE",
	    "SAINTE CROIX AUX MINES",
	    "SAINTE MARIE AUX MINES",
	    "RIXHEIM",
	    "HORBOURG WIHR",
	    "ENSISHEIM",
	    "RAEDERSHEIM",
	    "UNGERSHEIM",
	    "BRUNSTATT",
	    "DIDENHEIM",
	    "ALTENACH",
	    "AMMERTZWILLER",
	    "BALLERSDORF",
	    "BALSCHWILLER",
	    "BERNWILLER",
	    "BRECHAUMONT",
	    "BUETHWILLER",
	    "CHAVANNES SUR L'ETANG",
	    "ELBACH",
	    "ETEIMBES",
	    "FALKWILLER",
	    "FULLEREN",
	    "GILDWILLER",
	    "GOMMERSDORF",
	    "GUEVENATTEN",
	    "HAGENBACH",
	    "HECKEN",
	    "MAGNY",
	    "MANSPACH",
	    "MERTZEN",
	    "MONTREUX JEUNE",
	    "MONTREUX VIEUX",
	    "RETZWILLER",
	    "ROMAGNY",
	    "SAINT COSME",
	    "SAINT ULRICH",
	    "TRAUBACH LE BAS",
	    "TRAUBACH LE HAUT",
	    "VALDIEU LUTRAN",
	    "WOLFERSDORF",
	    "ATTENSCHWILLER",
	    "BUSCHWILLER",
	    "FOLGENSBOURG",
	    "HAGENTHAL LE BAS",
	    "HAGENTHAL LE HAUT",
	    "HEGENHEIM",
	    "HESINGUE",
	    "KNOERINGUE",
	    "LEYMEN",
	    "LIEBENSWILLER",
	    "MICHELBACH LE HAUT",
	    "NEUWILLER",
	    "RANSPACH LE HAUT",
	    "WENTZWILLER",
	    "KATZENTHAL",
	    "NIEDERMORSCHWIHR",
	    "SOULTZBACH LES BAINS",
	    "TURCKHEIM",
	    "WALBACH",
	    "WASSERBOURG",
	    "WIHR AU VAL",
	    "ZIMMERBACH",
	    "FRELAND",
	    "KAYSERSBERG",
	    "KIENTZHEIM",
	    "SIGOLSHEIM",
	    "BILTZHEIM",
	    "GUNDOLSHEIM",
	    "MUNWILLER",
	    "NIEDERENTZEN",
	    "NIEDERHERGHEIM",
	    "OBERENTZEN",
	    "OBERHERGHEIM",
	    "PFAFFENHEIM",
	    "ROUFFACH",
	    "WESTHALTEN",
	    "KINGERSHEIM",
	    "RUELISHEIM",
	    "WITTENHEIM",
	    "ANDOLSHEIM",
	    "APPENWIHR",
	    "LOGELHEIM",
	    "SUNDHOFFEN",
	    "BOURBACH LE BAS",
	    "BOURBACH LE HAUT",
	    "DOLLEREN",
	    "KIRCHBERG",
	    "LAUW",
	    "MASEVAUX",
	    "NIEDERBRUCK",
	    "OBERBRUCK",
	    "RIMBACH PRES MASEVAUX",
	    "SEWEN",
	    "SICKERT",
	    "WEGSCHEID",
	    "ROSENAU",
	    "SAINT LOUIS",
	    "VILLAGE NEUF",
	    "WITTELSHEIM",
	    "ARTZENHEIM",
	    "BALTZENHEIM",
	    "BISCHWIHR",
	    "DURRENENTZEN",
	    "FORTSCHWIHR",
	    "GRUSSENHEIM",
	    "HOLTZWIHR",
	    "JEBSHEIM",
	    "KUNHEIM",
	    "MUNTZENHEIM",
	    "RIEDWIHR",
	    "URSCHENHEIM",
	    "WICKERSCHWIHR",
	    "WIDENSOLEN",
	    "HUNINGUE",
	    "RIQUEWIHR",
	    "ZELLENBERG",
	    "SOULTZ",
	    "ORBEY",
	    "BREITENBACH",
	    "METZERAL",
	    "MITTLACH",
	    "MUHLBACH SUR MUNSTER",
	    "SONDERNACH",
	    "BALDERSHEIM",
	    "BATTENHEIM",
	    "SAUSHEIM",
	    "RIEDISHEIM",
	    "EGUISHEIM",
	    "GUEBERSCHWIHR",
	    "HATTSTATT",
	    "HERRLISHEIM PRES COLMAR",
	    "HUSSEREN LES CHATEAUX",
	    "OBERMORSCHWIHR",
	    "VOEGTLINSHOFFEN",
	    "BRUEBACH",
	    "ESCHENTZWILLER",
	    "HABSHEIM",
	    "LANDSER",
	    "SCHLIERBACH",
	    "STEINBRUNN LE BAS",
	    "STEINBRUNN LE HAUT",
	    "ZIMMERSHEIM",
	    "LUTTERBACH",
	    "FELLERING",
	    "HUSSEREN WESSERLING",
	    "MITZACH",
	    "MOLLAU",
	    "RANSPACH",
	    "STORCKENSOHN",
	    "BENDORF",
	    "BETTLACH",
	    "BIEDERTHAL",
	    "BOUXWILLER",
	    "COURTAVON",
	    "DURLINSDORF",
	    "DURMENACH",
	    "FERRETTE",
	    "FISLIS",
	    "KOESTLACH",
	    "LEVONCOURT",
	    "LIEBSDORF",
	    "LIGSDORF",
	    "LINSDORF",
	    "LUCELLE",
	    "LUTTER",
	    "MOERNACH",
	    "OBERLARG",
	    "OLTINGUE",
	    "PFETTERHOUSE",
	    "RAEDERSDORF",
	    "ROPPENTZWILLER",
	    "SONDERSDORF",
	    "VIEUX FERRETTE",
	    "WERENTZHOUSE",
	    "WINKEL",
	    "WOLSCHWILLER",
	    "BANTZENHEIM",
	    "CHALAMPE",
	    "HOMBOURG",
	    "OTTMARSHEIM",
	    "PETIT LANDAU",
	    "BERGHOLTZ",
	    "BERGHOLTZ-ZELL",
	    "BERRWILLER",
	    "GUEBWILLER",
	    "HARTMANNSWILLER",
	    "ISSENHEIM",
	    "JUNGHOLTZ",
	    "MERXHEIM",
	    "ORSCHWIHR",
	    "RIMBACH PRES GUEBWILLER",
	    "RIMBACH ZELL",
	    "WUENHEIM",
	    "GEISPITZEN",
	    "HELFRANTZKIRCH",
	    "KAPPELEN",
	    "KOETZINGUE",
	    "MAGSTATT LE BAS",
	    "MAGSTATT LE HAUT",
	    "RANTZWILLER",
	    "SIERENTZ",
	    "STETTEN",
	    "UFFHEIM",
	    "WALTENHEIM",
	    "BURNHAUPT LE BAS",
	    "BURNHAUPT LE HAUT",
	    "SCHWEIGHOUSE THANN",
	    "BUHL",
	    "MURBACH",
	    "BOLLWILLER",
	    "FELDKIRCH",
	    "MALMERSPACH",
	    "SAINT AMARIN",
	    "BETTENDORF",
	    "HEIMERSDORF",
	    "HIRSINGUE",
	    "RUEDERBACH",
	    "OSENBACH",
	    "SOULTZMATT",
	    "BISEL",
	    "FRIESEN",
	    "HINDLINGEN",
	    "LARGITZEN",
	    "MOOSLARGUE",
	    "SEPPOIS LE BAS",
	    "SEPPOIS LE HAUT",
	    "STRUETH",
	    "UEBERSTRASS",
	    "RODERN",
	    "RORSCHWIHR",
	    "SAINT HIPPOLYTE",
	    "THANNENKIRCH",
	    "ALGOLSHEIM",
	    "BIESHEIM",
	    "DESSENHEIM",
	    "GEISWASSER",
	    "HEITEREN",
	    "NEUF BRISACH",
	    "OBERSAASHEIM",
	    "VOGELGRUN",
	    "VOLGELSHEIM",
	    "WECKOLSHEIM",
	    "WOLFGANTZEN",
	    "LAUTENBACH",
	    "LAUTENBACH ZELL",
	    "LINTHAL",
	    "BITSCHWILLER LES THANN",
	    "BENNWIHR",
	    "MITTELWIHR",
	    "FELDBACH",
	    "MUESPACH",
	    "MUESPACH LE HAUT",
	    "RIESPACH",
	    "STEINSOULTZ",
	    "WALDIGHOFFEN",
	    "LAPOUTROIE",
	    "LE BONHOMME",
	    "LIEPVRE",
	    "ROMBACH LE FRANC",
	    "KEMBS",
	    "NIFFER",
	    "GEISHOUSE",
	    "MOOSCH",
	    "ASPACH LE BAS",
	    "ASPACH LE HAUT",
	    "CERNAY",
	    "MICHELBACH",
	    "STEINBACH",
	    "UFFHOLTZ",
	    "WATTWILLER",
	    "EGLINGEN",
	    "FLAXLANDEN",
	    "FROENINGEN",
	    "HEIDWILLER",
	    "HOCHSTATT",
	    "ILLFURTH",
	    "LUEMSCHWILLER",
	    "SAINT BERNARD",
	    "SPECHBACH LE BAS",
	    "SPECHBACH LE HAUT",
	    "TAGOLSHEIM",
	    "ZILLISHEIM",
	    "BLOTZHEIM",
	    "MICHELBACH LE BAS",
	    "RANSPACH LE BAS",
	    "BALGAU",
	    "BLODELSHEIM",
	    "FESSENHEIM",
	    "HIRTZFELDEN",
	    "MUNCHHOUSE",
	    "NAMBSHEIM",
	    "ROGGENHOUSE",
	    "RUMERSHEIM LE HAUT",
	    "RUSTENHART",
	    "BERGHEIM",
	    "WILLER SUR THUR",
	    "AMMERSCHWIHR",
	    "DIEFMATTEN",
	    "MORTZWILLER",
	    "SENTHEIM",
	    "SOPPE LE BAS",
	    "SOPPE LE HAUT",
	    "STERNENBERG",
	    "MORSCHWILLER LE BAS",
	    "LEIMBACH",
	    "RAMMERSMATT",
	    "RODEREN",
	    "THANN",
	    "VIEUX THANN",
	    "KRUTH",
	    "WILDENSTEIN",
	    "ODEREN",
	    "PULVERSHEIM",
	    "STAFFELFELDEN",
	    "BARTENHEIM",
	    "BRINCKHEIM",
	    "MEYENHEIM",
	    "REGUISHEIM",
	    "LABAROCHE",
	    "WETTOLSHEIM",
	    "WINTZENHEIM",
	    "REININGUE",
	    "GRENTZINGEN",
	    "HENFLINGEN",
	    "OBERDORF",
	    "WILLER",
	    "GUEMAR",
	    "BEBLENHEIM",
	    "GALFINGUE",
	    "HEIMSBRUNN",
	    "CHELLES",
	    "LA ROCHETTE",
	    "LIVRY SUR SEINE",
	    "MELUN",
	    "VAUX LE PENIL",
	    "COLLEGIEN",
	    "MAREUIL LES MEAUX",
	    "MEAUX",
	    "NANTEUIL LES MEAUX",
	    "SOIGNOLLES EN BRIE",
	    "SOLERS",
	    "GOUAIX",
	    "HERME",
	    "NOYEN SUR SEINE",
	    "VILLIERS SUR SEINE",
	    "BLANDY LES TOURS",
	    "SIVRY COURTRY",
	    "ACHERES LA FORET",
	    "RECLOSES",
	    "URY",
	    "BALLOY",
	    "BAZOCHES LES BRAY",
	    "GRAVON",
	    "AMILLIS",
	    "AULNOY",
	    "BEAUTHEIL",
	    "CHAILLY EN BRIE",
	    "COULOMMIERS",
	    "MAROLLES EN BRIE",
	    "MAUPERTHUIS",
	    "MOUROUX",
	    "SAINTS",
	    "MONTHYON",
	    "LE VAUDOUE",
	    "NOISY SUR ECOLE",
	    "TOUSSON",
	    "CHAUCONIN NEUFMONTIERS",
	    "CREGY LES MEAUX",
	    "PENCHARD",
	    "VILLENOY",
	    "CHATENAY SUR SEINE",
	    "COURCELLES EN BASSEE",
	    "EGLIGNY",
	    "LIEUSAINT",
	    "BARBEY",
	    "CANNES ECLUSE",
	    "DORMELLES",
	    "FORGES",
	    "LA GRANDE PAROISSE",
	    "LA TOMBE",
	    "MAROLLES SUR SEINE",
	    "MISY SUR YONNE",
	    "MONTEREAU FAULT YONNE",
	    "SAINT GERMAIN LAVAL",
	    "VARENNES SUR SEINE",
	    "VILLE SAINT JACQUES",
	    "PEZARCHES",
	    "TOUQUIN",
	    "BOULANCOURT",
	    "CHEVRAINVILLIERS",
	    "FROMONT",
	    "GUERCHEVILLE",
	    "LARCHANT",
	    "RUMONT",
	    "FERICY",
	    "MACHAULT",
	    "LES ORMES SUR VOULZIE",
	    "PONTCARRE",
	    "LUZANCY",
	    "DOUY LA RAMEE",
	    "ETREPILLY",
	    "MARCILLY",
	    "PUISIEUX",
	    "DARVAULT",
	    "MONCOURT FROMONVILLE",
	    "NEMOURS",
	    "NONVILLE",
	    "SAINT PIERRE LES NEMOURS",
	    "VAUDOY EN BRIE",
	    "CHALIFERT",
	    "CHESSY",
	    "MONTEVRAIN",
	    "MAY EN MULTIEN",
	    "LAVAL EN BRIE",
	    "SALINS",
	    "FEROLLES ATTILLY",
	    "LESIGNY",
	    "MONTCEAUX LES PROVINS",
	    "COUTENCON",
	    "VILLENEUVE LES BORDES",
	    "THOURY FEROTTES",
	    "EVERLY",
	    "CHALAUTRE LA PETITE",
	    "CHENOISE",
	    "CUCHARMOY",
	    "POIGNY",
	    "PROVINS",
	    "ROUILLY",
	    "SAINT BRICE",
	    "SAINT HILLIERS",
	    "VULAINES LES PROVINS",
	    "DAMMARTIN SUR TIGEAUX",
	    "MORTCERF",
	    "TIGEAUX",
	    "FERRIERES",
	    "FORFRY",
	    "GESVRES LE CHAPITRE",
	    "IVERNY",
	    "LE PLESSIS AUX BOIS",
	    "LE PLESSIS L'EVEQUE",
	    "SAINT SOUPPLETS",
	    "EVRY GREGY SUR YERRES",
	    "GRISY SUISNES",
	    "BAGNEAUX SUR LOING",
	    "CHATENOY",
	    "FAY LES NEMOURS",
	    "ORMESSON",
	    "POLIGNY",
	    "BOISSY LE CHATEL",
	    "CHAUFFRY",
	    "SAINT GERMAIN SOUS DOUE",
	    "SAINT SIMEON",
	    "BRIE COMTE ROBERT",
	    "COUBERT",
	    "SERVON",
	    "CHALAUTRE LA GRANDE",
	    "LECHELLE",
	    "MELZ SUR SEINE",
	    "SOURDUN",
	    "CHEVRY COSSIGNY",
	    "VILLENEUVE LE COMTE",
	    "VILLENEUVE SAINT DENIS",
	    "NANDY",
	    "SAVIGNY LE TEMPLE",
	    "BROU SUR CHANTEREINE",
	    "OISSERY",
	    "SAINT PATHUS",
	    "COURTRY",
	    "LE PIN",
	    "CROISSY BEAUBOURG",
	    "EMERAINVILLE",
	    "LOGNES",
	    "NOISIEL",
	    "DAMMARIE LES LYS",
	    "VILLIERS EN BIERE",
	    "TORCY",
	    "AVON",
	    "SAMOREAU",
	    "FAVIERES",
	    "GRETZ ARMAINVILLIERS",
	    "LIVERDY EN BRIE",
	    "PRESLES EN BRIE",
	    "TOURNAN EN BRIE",
	    "DAMMARTIN EN GOELE",
	    "JUILLY",
	    "LONGPERRIER",
	    "MARCHEMORET",
	    "MONTGE EN GOELE",
	    "MOUSSY LE NEUF",
	    "MOUSSY LE VIEUX",
	    "NANTOUILLET",
	    "ROUVRES",
	    "SAINT MARD",
	    "THIEUX",
	    "VILLENEUVE SOUS DAMMARTIN",
	    "VINANTES",
	    "CESSON",
	    "SEINE PORT",
	    "VERT SAINT DENIS",
	    "ECUELLES",
	    "EPISY",
	    "MONTARLOT",
	    "MORET SUR LOING",
	    "VENEUX LES SABLONS",
	    "VILLECERF",
	    "VILLEMER",
	    "CHAMIGNY",
	    "LA FERTE SOUS JOUARRE",
	    "REUIL EN BRIE",
	    "SAINTE AULDE",
	    "SAMMERON",
	    "SEPT SORTS",
	    "USSY SUR MARNE",
	    "VILLEPARISIS",
	    "OTHIS",
	    "COMPANS",
	    "MITRY MORY",
	    "FONTAINEBLEAU",
	    "BOISSISE LE ROI",
	    "ORGENOY",
	    "PRINGY",
	    "SAINT FARGEAU PONTHIERRY",
	    "BETON BAZOCHES",
	    "CERNEUX",
	    "CHARTRONGES",
	    "CHEVRU",
	    "CHOISY EN BRIE",
	    "JOUY SUR MORIN",
	    "LA CHAPELLE MOUTILS",
	    "LA FERTE GAUCHER",
	    "LESCHEROLLES",
	    "LEUDON EN BRIE",
	    "MEILLERAY",
	    "MONTDAUPHIN",
	    "MONTOLIVET",
	    "SAINT BARTHELEMY",
	    "SAINT MARS VIEUX MAISONS",
	    "SAINT MARTIN DES CHAMPS",
	    "SAINT MARTIN DU BOSCHET",
	    "SAINT REMY LA VANNE",
	    "SANCY LES PROVINS",
	    "OZOIR LA FERRIERE",
	    "PONTAULT COMBAULT",
	    "BOISSETTES",
	    "BOISSISE LA BERTRAND",
	    "LE MEE SUR SEINE",
	    "VAIRES SUR MARNE",
	    "CHATEAUBLEAU",
	    "CLOS FONTAINE",
	    "FONTAINS",
	    "FONTENAILLES",
	    "GASTINS",
	    "LA CHAPELLE RABLAIS",
	    "LA CROIX EN BRIE",
	    "MAISON ROUGE",
	    "NANGIS",
	    "RAMPILLON",
	    "SAINT JUST EN BRIE",
	    "VANVILLE",
	    "VIEUX CHAMPAGNE",
	    "ANDREZEL",
	    "ARGENTIERES",
	    "BEAUVOIR",
	    "CHAMPDEUIL",
	    "CHAUMES EN BRIE",
	    "COURQUETAINE",
	    "COURTOMER",
	    "CRISENOY",
	    "FOUJU",
	    "GUIGNES",
	    "OZOUER LE VOULGIS",
	    "VERNEUIL L'ETANG",
	    "YEBLES",
	    "BAILLY ROMAINVILLIERS",
	    "CARNETIN",
	    "DAMPMART",
	    "GOUVERNES",
	    "LAGNY SUR MARNE",
	    "POMPONNE",
	    "SAINT THIBAULT DES VIGNES",
	    "SERRIS",
	    "THORIGNY SUR MARNE",
	    "ANNET SUR MARNE",
	    "CHARMENTRAY",
	    "CHARNY",
	    "CLAYE SOUILLY",
	    "FRESNES SUR MARNE",
	    "GRESSY",
	    "MESSY",
	    "PRECY SUR MARNE",
	    "SAINT MESMES",
	    "VILLEROY",
	    "VILLEVAUDE",
	    "CHAMPS SUR MARNE",
	    "CHAMPAGNE SUR SEINE",
	    "ARMENTIERES EN BRIE",
	    "COCHEREL",
	    "CONGIS SUR THEROUANNE",
	    "DHUISY",
	    "ISLES LES MELDEUSES",
	    "LIZY SUR OURCQ",
	    "MARY SUR MARNE",
	    "OCQUERRE",
	    "TANCROU",
	    "VENDREST",
	    "CONDE SAINTE LIBIAIRE",
	    "COUPVRAY",
	    "ESBLY",
	    "ISLES LES VILLENOY",
	    "LESCHES",
	    "MAGNY LE HONGRE",
	    "MONTRY",
	    "TRILBARDOU",
	    "VIGNELY",
	    "CHAINTREAUX",
	    "SOUPPES SUR LOING",
	    "BOUTIGNY",
	    "FUBLAINES",
	    "MONTCEAUX LES MEAUX",
	    "POINCY",
	    "SAINT FIACRE",
	    "TRILPORT",
	    "VILLEMAREUIL",
	    "BRAY SUR SEINE",
	    "FONTAINE FOURCHES",
	    "GRISY SUR SEINE",
	    "JAULNES",
	    "MONTIGNY LE GUESDIER",
	    "MOUSSEAUX LES BRAY",
	    "MOUY SUR SEINE",
	    "SAINT SAUVEUR LES BRAY",
	    "VILLENAUXE LA PETITE",
	    "VILLUIS",
	    "BELLOT",
	    "DOUE",
	    "HONDEVILLIERS",
	    "LA TRETOIRE",
	    "REBAIS",
	    "SABLONNIERES",
	    "SAINT DENIS LES REBAIS",
	    "SAINT LEGER",
	    "VERDELOT",
	    "VILLENEUVE SUR BELLOT",
	    "FAREMOUTIERS",
	    "HAUTEFEUILLE",
	    "LA CELLE SUR MORIN",
	    "POMMEUSE",
	    "SAINT AUGUSTIN",
	    "CESSOY EN MONTOIS",
	    "DONNEMARIE DONTILLY",
	    "GURCY LE CHATEL",
	    "LUISETAINES",
	    "MEIGNEUX",
	    "MONS EN MONTOIS",
	    "MONTIGNY LENCOUP",
	    "PAROY",
	    "SIGY",
	    "SOGNOLLES EN MONTOIS",
	    "THENISY",
	    "VIMPELLES",
	    "BERNAY VILBERT",
	    "COURPALAY",
	    "LA CHAPELLE IGER",
	    "LE PLESSIS FEU AUSSOUX",
	    "LUMIGNY NESLES ORMEAUX",
	    "ROZAY EN BRIE",
	    "VOINSLES",
	    "LIMOGES FOURCHES",
	    "LISSY",
	    "MOISSY CRAMAYEL",
	    "REAU",
	    "AUGERS EN BRIE",
	    "BEAUCHERY SAINT MARTIN",
	    "CHAMPCENEST",
	    "COURCHAMP",
	    "COURTACON",
	    "LES MARETS",
	    "LOUAN VILLEGRUIS FONTAINE",
	    "VILLIERS SAINT GEORGES",
	    "VOULTON",
	    "AUFFERVILLE",
	    "BOUGLIGNY",
	    "CHATEAU LANDON",
	    "CHENOU",
	    "LA MADELEINE SUR LOING",
	    "MAISONCELLES EN GATINAIS",
	    "MONDREVILLE",
	    "BOULEURS",
	    "COULOMMES",
	    "COUTEVROULT",
	    "CRECY LA CHAPELLE",
	    "GUERARD",
	    "LA HAUTE MAISON",
	    "MAISONCELLES EN BRIE",
	    "PIERRE LEVEE",
	    "SANCY LES MEAUX",
	    "VAUCOURTOIS",
	    "VILLIERS SUR MORIN",
	    "VOULANGIS",
	    "BOIS LE ROI",
	    "CHARTRETTES",
	    "FONTAINE LE PORT",
	    "BUSSY SAINT GEORGES",
	    "BUSSY SAINT MARTIN",
	    "CHANTELOUP EN BRIE",
	    "CONCHES",
	    "GUERMANTES",
	    "JOSSIGNY",
	    "CHATRES",
	    "CREVECOEUR EN BRIE",
	    "FONTENAY TRESIGNY",
	    "LA HOUSSAYE EN BRIE",
	    "LES CHAPELLES BOURBON",
	    "MARLES EN BRIE",
	    "NEUFMOUTIERS EN BRIE",
	    "BRANSLES",
	    "EGREVILLE",
	    "ARBONNE LA FORET",
	    "BARBIZON",
	    "SAINT MARTIN EN BIERE",
	    "JOUARRE",
	    "SIGNY SIGNETS",
	    "CHALMAISON",
	    "JUTIGNY",
	    "LIZINES",
	    "LONGUEVILLE",
	    "SAINT LOUP DE NAUD",
	    "SAINTE COLOMBE",
	    "SAVINS",
	    "SOISY BOUY",
	    "CHANGIS SUR MARNE",
	    "SAINT JEAN LES DEUX",
	    "SAINT MAMMES",
	    "VERNOU LA CELLE SUR",
	    "ROISSY EN BRIE",
	    "LA GENEVRAYE",
	    "MONTIGNY SUR LOING",
	    "CHEVRY EN SEREINE",
	    "LORREZ LE BOCAGE PREAUX",
	    "NANTEAU SUR LUNAIN",
	    "PALEY",
	    "REMAUVILLE",
	    "SAINT ANGE LE VIEIL",
	    "TREUZY LEVELAY",
	    "VAUX SUR LUNAIN",
	    "VILLEBEON",
	    "VILLEMARECHAL",
	    "AUBEPIERRE OZOUER LE REPOS",
	    "BAILLY CARROIS",
	    "BOMBON",
	    "BREAU",
	    "CHAMPEAUX",
	    "GRANDPUITS BAILLY CARROIS",
	    "LA CHAPELLE GAUTHIER",
	    "MORMANT",
	    "OZOUER LE REPOS",
	    "SAINT MERY",
	    "SAINT OUEN EN BRIE",
	    "CITRY",
	    "MERY SUR MARNE",
	    "NANTEUIL SUR MARNE",
	    "SAACY SUR MARNE",
	    "COUILLY PONT AUX DAMES",
	    "SAINT GERMAIN SUR MORIN",
	    "BASSEVELLE",
	    "BOITRON",
	    "BUSSIERES",
	    "ORLY SUR MORIN",
	    "SAINT CYR SUR MORIN",
	    "SAINT OUEN SUR MORIN",
	    "AMPONVILLE",
	    "BOISSY AUX CAILLES",
	    "BUTHIERS",
	    "LA CHAPELLE LA REINE",
	    "NANTEAU SUR ESSONNE",
	    "VILLIERS SOUS GREZ",
	    "BOURRON MARLOTTE",
	    "THOMERY",
	    "CHATILLON LA BORDE",
	    "LE CHATELET EN BRIE",
	    "LES ECRENNES",
	    "ECHOUBOULAINS",
	    "PAMFOU",
	    "VALENCE EN BRIE",
	    "COULOMBS EN VALOIS",
	    "CROUY SUR OURCQ",
	    "GERMIGNY SOUS COULOMBS",
	    "HERICY",
	    "QUINCY VOISINS",
	    "VULAINES SUR SEINE",
	    "GREZ SUR LOING",
	    "ARVILLE",
	    "BEAUMONT DU GATINAIS",
	    "BURCY",
	    "GARENTREVILLE",
	    "GIRONVILLE",
	    "ICHY",
	    "OBSONVILLE",
	    "CHAMBRY",
	    "GERMIGNY L'EVEQUE",
	    "VARREDDES",
	    "SAMOIS SUR SEINE",
	    "CELY EN BIERE",
	    "FLEURY EN BIERE",
	    "PERTHES",
	    "SAINT GERMAIN SUR ECOLE",
	    "SAINT SAUVEUR SUR ECOLE",
	    "BLENNES",
	    "DIANT",
	    "ESMANS",
	    "FLAGY",
	    "LA BROSSE MONTCEAUX",
	    "MONTMACHOUX",
	    "NOISY RUDIGNON",
	    "VOULX",
	    "AUBIGNY",
	    "MOISENAY",
	    "MONTEREAU SUR LE JARD",
	    "RUBELLES",
	    "SAINT GERMAIN LAXIS",
	    "VOISENON",
	    "CHAILLY EN BIERE",
	    "BANNOST VILLEGAGNON",
	    "BEZALLES",
	    "JOUY LE CHATEL",
	    "PECY",
	    "LE MESNIL AMELOT",
	    "MAUREGARD",
	    "CHANTRAINE",
	    "DEYVILLERS",
	    "DINOZE",
	    "DOGNEVILLE",
	    "EPINAL",
	    "JEUXEY",
	    "LE VALTIN",
	    "LONGCHAMP",
	    "VAUDEVILLE",
	    "COINCHES",
	    "NAYEMONT LES FOSSES",
	    "NEUVILLERS SUR FAVE",
	    "PAIR ET GRANDRUPT",
	    "REMOMEIX",
	    "SAINT DIE DES VOSGES",
	    "SAINTE MARGUERITE",
	    "TAINTRUX",
	    "ALLARMONT",
	    "CELLES SUR PLAINE",
	    "LUVIGNY",
	    "RAON L'ETAPE",
	    "RAON SUR PLAINE",
	    "VEXAINCOURT",
	    "BASSE SUR LE RUPT",
	    "CLEURIE",
	    "GERBAMONT",
	    "LE SYNDICAT",
	    "ROCHESSON",
	    "SAINT AME",
	    "SAPOIS",
	    "VAGNEY",
	    "BOUXURULLES",
	    "CHAMAGNE",
	    "CHARMES",
	    "ESSEGNEY",
	    "FLOREMONT",
	    "HERGUGNEY",
	    "LANGLEY",
	    "RUGNEY",
	    "SOCOURT",
	    "AUZAINVILLIERS",
	    "BULGNEVILLE",
	    "CONTREXEVILLE",
	    "CRAINVILLIERS",
	    "DOMBROT LE SEC",
	    "LA VACHERESSE ET LA",
	    "MEDONVILLE",
	    "SAINT OUEN LES PAREY",
	    "SAULXURES LES BULGNEVILLE",
	    "VRECOURT",
	    "BAYECOURT",
	    "CHAVELOT",
	    "GIRMONT",
	    "IGNEY",
	    "MAZELEY",
	    "ONCOURT",
	    "THAON LES VOSGES",
	    "FRESSE SUR MOSELLE",
	    "LE MENIL",
	    "LE THILLOT",
	    "RAMONCHAMP",
	    "AROFFE",
	    "BIECOURT",
	    "CHATENOIS",
	    "DARNEY AUX CHENES",
	    "DOLAINCOURT",
	    "DOMBROT SUR VAIR",
	    "DOMMARTIN SUR VRAINE",
	    "GEMMELAINCOURT",
	    "GIRONCOURT SUR VRAINE",
	    "HOUECOURT",
	    "LA NEUVEVILLE SOUS CHATENOIS",
	    "MORELMAISON",
	    "PLEUVEZAIN",
	    "RAINVILLE",
	    "REMOVILLE",
	    "ROUVRES LA CHETIVE",
	    "SAINT PAUL",
	    "SANDAUCOURT",
	    "VICHEREY",
	    "VIOCOURT",
	    "VOUXEY",
	    "GOLBEY",
	    "DOMMARTIN LES REMIREMONT",
	    "REMIREMONT",
	    "SAINT ETIENNE LES REMIREMONT",
	    "SAINT NABORD",
	    "VECOUX",
	    "BAN DE SAPT",
	    "BELVAL",
	    "DENIPAIRE",
	    "GRANDRUPT",
	    "HURBACHE",
	    "LA PETITE RAON",
	    "LE SAULCY",
	    "MENIL DE SENONES",
	    "MOUSSEY",
	    "SAINT JEAN D'ORMONT",
	    "SAINT STAIL",
	    "SENONES",
	    "VIEUX MOULIN",
	    "DOUNOUX",
	    "HADOL",
	    "RAON AUX BOIS",
	    "URIMENIL",
	    "UZEMAIN",
	    "XERTIGNY",
	    "ANOULD",
	    "BAN SUR MEURTHE",
	    "CLEFCY",
	    "ENTRE DEUX EAUX",
	    "FRAIZE",
	    "MANDRAY",
	    "PLAINFAING",
	    "SAINT LEONARD",
	    "BAINS LES BAINS",
	    "CHAPELLE AUX BOIS",
	    "FONTENOY LE CHATEAU",
	    "GRANDRUPT DE BAINS",
	    "GRUEY LES SURANCE",
	    "HARSAULT",
	    "HAUTMOUGEY",
	    "LA HAYE",
	    "LE CLERJUS",
	    "LE MAGNY",
	    "LES VOIVRES",
	    "MONTMOTIER",
	    "TREMONZEY",
	    "LA BRESSE",
	    "ATTIGNY",
	    "BELMONT LES DARNEY",
	    "BONVILLET",
	    "DARNEY",
	    "DOMBASLE DEVANT DARNEY",
	    "ESCLES",
	    "ESLEY",
	    "HENNEZEL",
	    "JESONVILLE",
	    "LERRAIN",
	    "NONVILLE",
	    "PONT LES BONFAYS",
	    "PROVENCHERES LES DARNEY",
	    "RELANGES",
	    "SANS VALLOIS",
	    "SENONGES",
	    "THUILLIERES",
	    "VIOMENIL",
	    "VIVIERS LE GRAS",
	    "BAINVILLE AUX SAULES",
	    "BOCQUEGNEY",
	    "BOUXIERES AUX BOIS",
	    "CHARMOIS L'ORGUEILLEUX",
	    "CIRCOURT",
	    "DERBAMONT",
	    "DOMPAIRE",
	    "FRENOIS",
	    "HAROL",
	    "HENNECOURT",
	    "LEGEVILLE ET BONFAYS",
	    "MADONNE ET LAMEREY",
	    "RACECOURT",
	    "SAINT VALLIER",
	    "VALFROICOURT",
	    "VELOTTE ET TATIGNECOURT",
	    "VILLE SUR ILLON",
	    "SAULXURES SUR MOSELOTTE",
	    "THIEFOSSE",
	    "ATTIGNEVILLE",
	    "BARVILLE",
	    "BAZOILLES SUR MEUSE",
	    "CERTILLEUX",
	    "HARCHECHAMP",
	    "HARMONVILLE",
	    "JAINVILLOTTE",
	    "LANDAVILLE",
	    "MARTIGNY LES GERBONVAUX",
	    "MONT LES NEUFCHATEAU",
	    "NEUFCHATEAU",
	    "REBEUVILLE",
	    "ROLLAINVILLE",
	    "SARTES",
	    "CORNIMONT",
	    "VENTRON",
	    "AINVELLE",
	    "BLEVAINCOURT",
	    "FRAIN",
	    "GIGNEVILLE",
	    "ISCHES",
	    "LAMARCHE",
	    "MARTIGNY LES BAINS",
	    "MONT LES LAMARCHE",
	    "ROBECOURT",
	    "ROZIERES SUR MOUZON",
	    "SENAIDE",
	    "SERECOURT",
	    "SEROCOURT",
	    "VILLOTTE",
	    "BADMENIL AUX BOIS",
	    "CHATEL SUR MOSELLE",
	    "DAMAS AUX BOIS",
	    "DOMEVRE SUR DURBION",
	    "HADIGNY LES VERRIERES",
	    "HAILLAINVILLE",
	    "MORIVILLE",
	    "PORTIEUX",
	    "REHAINCOURT",
	    "VAXONCOURT",
	    "GIRMONT VAL D'AJOL",
	    "VAL D'AJOL",
	    "BRECHAINVILLE",
	    "GRAND",
	    "LIFFOL LE GRAND",
	    "PARGNY SOUS MUREAU",
	    "TRAMPOT",
	    "VILLOUXEL",
	    "FERDRUPT",
	    "RUPT SUR MOSELLE",
	    "BELLEFONTAINE",
	    "ARCHES",
	    "ARCHETTES",
	    "CHAUMOUSEY",
	    "DARNIEULLES",
	    "DOMEVRE SUR AVIERE",
	    "DOMMARTIN AUX BOIS",
	    "GIRANCOURT",
	    "LES FORGES",
	    "RENAUVOID",
	    "SANCHEY",
	    "UXEGNEY",
	    "GERARDMER",
	    "LIEZEY",
	    "XONRUPT LONGEMER",
	    "AMEUVELLE",
	    "BLEURVILLE",
	    "CLAUDON",
	    "GODONCOURT",
	    "GRIGNONCOURT",
	    "LES THONS",
	    "LIRONCOURT",
	    "MONTHUREUX SUR SAONE",
	    "REGNEVELLE",
	    "MOYENMOUTIER",
	    "ARRENTES DE CORCIEUX",
	    "BIFFONTAINE",
	    "CORCIEUX",
	    "GERBEPAL",
	    "LA HOUSSIERE",
	    "FRIZON",
	    "NOMEXY",
	    "GUGNEY AUX AULX",
	    "MADEGNEY",
	    "VINCEY",
	    "CHARMOIS DEVANT BRUYERES",
	    "FAUCOMPIERRE",
	    "LA BAFFE",
	    "TENDON",
	    "XAMONTARUPT",
	    "LA BOURGONCE",
	    "LA SALLE",
	    "LA VOIVRE",
	    "NOMPATELIZE",
	    "SAINT MICHEL SUR MEURTHE",
	    "ETIVAL CLAIREFONTAINE",
	    "SAINT REMY",
	    "COLROY LA GRANDE",
	    "COMBRIMONT",
	    "FRAPELLE",
	    "LA GRANDE FOSSE",
	    "LA PETITE FOSSE",
	    "LE BEULAY",
	    "LESSEUX",
	    "LUBINE",
	    "LUSSE",
	    "PROVENCHERES SUR FAVE",
	    "AMBACOURT",
	    "BAUDRICOURT",
	    "BAZOILLES ET MENIL",
	    "DOMBASLE EN XAINTOIS",
	    "ESTRENNES",
	    "FRENELLE LA GRANDE",
	    "GIRCOURT LES VIEVILLE",
	    "HYMONT",
	    "JUVAINCOURT",
	    "MATTAINCOURT",
	    "MIRECOURT",
	    "OFFROICOURT",
	    "PONT SUR MADON",
	    "POUSSAY",
	    "PUZIEUX",
	    "ROUVRES EN XAINTOIS",
	    "ROZEROTTE",
	    "THIRAUCOURT",
	    "TOTAINVILLE",
	    "VAUBEXY",
	    "VILLERS",
	    "VROVILLE",
	    "ELOYES",
	    "BAN DE LAVELINE",
	    "BERTRIMOUTIER",
	    "GEMAINGOUTTE",
	    "LA CROIX AUX MINES",
	    "RAVES",
	    "WISEMBACH",
	    "LA FORGE",
	    "LE THOLY",
	    "BUSSANG",
	    "JARMENIL",
	    "POUXEUX",
	    "SAINT MAURICE SUR MOSELLE",
	    "SAULCY SUR MEURTHE",
	    "AYDOILLES",
	    "BEAUMENIL",
	    "BELMONT SUR BUTTANT",
	    "BOIS DE CHAMP",
	    "BROUVELIEURES",
	    "BRUYERES",
	    "CHAMP LE DUC",
	    "DESTORD",
	    "DOMFAING",
	    "DOMPIERRE",
	    "FAYS",
	    "FIMENIL",
	    "FONTENAY",
	    "FREMIFONTAINE",
	    "GIRECOURT SUR DURBION",
	    "GRANDVILLERS",
	    "HERPELMONT",
	    "LA CHAPELLE DEVANT BRUYERES",
	    "LA NEUVEVILLE DEVANT LEPANGES",
	    "LAVAL SUR VOLOGNE",
	    "LAVELINE DEVANT BRUYERES",
	    "LEPANGES SUR VOLOGNE",
	    "LES POULIERES",
	    "LES ROUGES EAUX",
	    "MEMENIL",
	    "MORTAGNE",
	    "PIERREPONT SUR L'ARENTELE",
	    "SERCOEUR",
	    "VERVEZELLE",
	    "CHERMISEY",
	    "COUSSEY",
	    "FREBECOURT",
	    "GREUX",
	    "MAXEY SUR MEUSE",
	    "MIDREVAUX",
	    "MONCEL SUR VAIR",
	    "PUNEROT",
	    "SIONNE",
	    "SOULOSSE SOUS SAINT ELOPHE",
	    "AUMONTZEY",
	    "BARBEY SEROUX",
	    "GRANGES SUR VOLOGNE",
	    "JUSSARUPT",
	    "LAVELINE DU HOUX",
	    "REHAUPAL",
	    "BAZIEN",
	    "BRU",
	    "BULT",
	    "CLEZENTAINE",
	    "DOMPTAIL",
	    "DONCIERES",
	    "FAUCONCOURT",
	    "HOUSSERAS",
	    "JEANMENIL",
	    "MOYEMONT",
	    "PADOUX",
	    "RAMBERVILLERS",
	    "ROMONT",
	    "ROVILLE AUX CHENES",
	    "SAINT BENOIT LA CHIPOTTE",
	    "SAINT GORGON",
	    "SAINT MAURICE SUR MORTAGNE",
	    "Saint Pierremont",
	    "SAINT PIERREMONT",
	    "SAINTE BARBE",
	    "SAINTE HELENE",
	    "VOMECOURT",
	    "XAFFEVILLERS",
	    "DOMJULIEN",
	    "HAREVILLE",
	    "LA NEUVEVILLE SOUS MONTFORT",
	    "LIGNEVILLE",
	    "MONTHUREUX LE SEC",
	    "NORROY",
	    "PAREY SOUS MONTFORT",
	    "REMONCOURT",
	    "SAINT REMIMONT",
	    "THEY SOUS MONTFORT",
	    "VITTEL",
	    "Bourg-en-Bresse",
	    "Laon",
	    "Moulins",
	    "Digne",
	    "Gap",
	    "Nice",
	    "Privas",
	    "Charleville-Mézières",
	    "Foix",
	    "Troyes",
	    "Carcassonne",
	    "Rodez",
	    "Marseille",
	    "Caen",
	    "Aurillac",
	    "Angoulême",
	    "La Rochelle",
	    "Bourges",
	    "Tulle",
	    "Ajaccio",
	    "Bastia",
	    "Dijon",
	    "Saint-Brieuc",
	    "Guéret",
	    "Périgueux",
	    "Besançon",
	    "Valence",
	    "Évreux",
	    "Chartres",
	    "Quimper",
	    "Nîmes",
	    "Toulouse",
	    "Auch",
	    "Bordeaux",
	    "Montpellier",
	    "Rennes",
	    "Châteauroux",
	    "Tours",
	    "Grenoble",
	    "Lons-le-Saunier",
	    "Mont-de-Marsan",
	    "Blois",
	    "Saint-Étienne",
	    "Le Puy-en-Velay",
	    "Nantes",
	    "Orléans",
	    "Cahors",
	    "Agen",
	    "Mende",
	    "Angers",
	    "Saint-Lô",
	    "Châlons-en-Champagne",
	    "Chaumont",
	    "Laval",
	    "Nancy",
	    "Bar-le-Duc",
	    "Vannes",
	    "Metz",
	    "Nevers",
	    "Lille",
	    "Beauvais",
	    "Alençon",
	    "Arras",
	    "Clermont-Ferrand",
	    "Pau",
	    "Tarbes",
	    "Perpignan",
	    "Strasbourg",
	    "Colmar",
	    "Lyon",
	    "Vesoul",
	    "Mâcon",
	    "Le Mans",
	    "Chambéry",
	    "Annecy",
	    "Paris",
	    "Rouen",
	    "Melun",
	    "Versailles",
	    "Niort",
	    "Amiens",
	    "Albi",
	    "Montauban",
	    "Toulon",
	    "Avignon",
	    "La Roche-sur-Yon",
	    "Poitiers",
	    "Limoges",
	    "Épinal",
	    "Auxerre",
	    "Belfort",
	    "Évry",
	    "Nanterre",
	    "Bobigny",
	    "Créteil",
	    "Pontoise",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 50) toto[50] = '\0';
      printf("<ville>");
	  printf("%s\n", toto);
    printf("</ville>\n");
    }
void gen_departement() {
	static int nbc = 8;	  
	static char* chaines[] = {
	  "1",
	  "14",
	  "38",
	  "56",
	  "68",
	  "88",
	  "90",
	  "976",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<departement>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</departement>\n");
    }
void gen_region() {
	static int nbc = 4;	  
	static char* chaines[] = {
	  "01",
	  "23",
	  "43",
	  "42",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<region>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</region>\n");
    }
void gen_pays() {
	static int nbc = 4;	  
	static char* chaines[] = {
	  "FR",
	  "SH",
	  "LC",
	  "ZW",
	  NULL
	};
	char* toto = strdup(chaines[gen_random(nbc)]);
      printf("<pays>");
	  if (toto) {
	  printf("%s", toto);
	  free(toto);
	}
    printf("</pays>\n");
    }
void gen_courriel() {
	  static int nbc = 5;
	  static char* chaines[] = {
	    "toto@greta.fr",
	    "toto@mines.fr",
	    "titi@manes.fr",
	    "titi@blabla.fr",
	    "titi@houhou.fr",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 60) toto[60] = '\0';
      printf("<courriel>");
	  printf("%s\n", toto);
    printf("</courriel>\n");
    }
void gen_web() {
      printf("<web>");
	  { int i;
	int mini = 1;
	int maxi = 3;
	
	for (i = 0; i < mini; i++) {
	gen_urlweb();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_urlweb();      
	}
	}
	
    printf("</web>\n");
    }
void gen_urlweb() {
	  static int nbc = 3;
	  static char* chaines[] = {
	    "http://maformation.fr",
	    "http://wanadoo.fr",
	    "http://yahoo.fr",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 150) toto[150] = '\0';
      printf("<urlweb>");
	  printf("%s\n", toto);
    printf("</urlweb>\n");
    }
void gen_telfixe() {
      printf("<telfixe>");
	  { int i;
	int mini = 1;
	int maxi = 3;
	
	for (i = 0; i < mini; i++) {
	gen_numtel();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_numtel();      
	}
	}
	
    printf("</telfixe>\n");
    }
void gen_portable() {
      printf("<portable>");
	  { int i;
	int mini = 1;
	int maxi = 3;
	
	for (i = 0; i < mini; i++) {
	gen_numtel();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_numtel();      
	}
	}
	
    printf("</portable>\n");
    }
void gen_fax() {
      printf("<fax>");
	  { int i;
	int mini = 1;
	int maxi = 3;
	
	for (i = 0; i < mini; i++) {
	gen_numtel();      
	}

	for (i = 0; i < (maxi-mini-1); i++) {
	  if (gen_random(10000)<9000) break;
	gen_numtel();      
	}
	}
	
    printf("</fax>\n");
    }
void gen_numtel() {
	  static int nbc = 7;
	  static char* chaines[] = {
	    "(+33) (0)1 45 65 45 34",
	    "06 34 54 65 76",
	    "01 34 23 34 23",
	    "02 34 23 34 23",
	    "03 34 23 34 23",
	    "04 34 23 34 23",
	    "05 34 23 34 23",
	    NULL
	  };
	    char* toto = strdup(chaines[gen_random(nbc)]);
	  if (strlen(toto) > 25) toto[25] = '\0';
      printf("<numtel>");
	  printf("%s\n", toto);
    printf("</numtel>\n");
    }
void gen_periode() {
      printf("<periode>");
	  gen_deb();
	  
	  gen_fin();
	  
    printf("</periode>\n");
    }
void gen_deb() {
      printf("<deb>");
	gen_dateval();
    printf("</deb>\n");
    }
void gen_fin() {
      printf("<fin>");
	gen_dateval();
    printf("</fin>\n");
    }
void gen_date() {
      printf("<date>");
	gen_dateval();
    printf("</date>\n");
    }
main(int argc, char** argv)
{
  /* Reinitialisation du generateur aleatoire */
  gen_srandom();

  /* Genere n offres */
  gen_langage();
}
    

