let print_orals_html (hpr:string -> unit) (gl:student list) (padd:paddress) 
      (start:Unix.tm) (step:int) = 
    hpr "<center>\n<table width='90%%' frame='hsides' \nrules='groups' border='3' summary='Groupes' style='font-size:xx-small;'>\n<colgroup align='left' span='1'/>\n";
    (* Print headers *)
    hpr "<tr><th>Horaire</th>\n";
    List.iter (fun gnum -> hpr (Printf.sprintf "<th>Groupe n\176%d</th>\n" gnum)) !num_groups;
    hpr "</tr>\n";
    (* Initialize random generator *)
    let (sectime,_) = Unix.mktime start in
      Random.init (int_of_float sectime);
    (* Print rows *)
    let all_teams = List.map (fun gnum -> 
        let teams = get_group_project_teams gnum padd in 
        let specs = H.filter teams (fun (key,value) -> get_team_spec value) in 
        let norms = H.filter teams (fun (key,value) -> not(get_team_spec value)) in 
          List.map (fst) ((randomize_list norms)@specs)) !num_groups in 
      print_orals_table_line_html hpr start step all_teams;
    (* End table *)
    hpr "</table>\n</center>"