diff --git a/mcli b/mcli
index f6a2565aa4291b2ca7094bda6a563e7e735b3420..83b7ac097c34802cc04cff40da87d53642cfc966 100755
--- a/mcli
+++ b/mcli
@@ -1,9 +1,29 @@
 #!/usr/bin/env bash
 
-export MACAO_ROOT="${MACAO_ROOT:-$(dirname "$0")}"
-export SOURCES_DIR="$MACAO_ROOT/Basilisk/MACAO/macao_12"
-export SCRIPTS_DIR="$MACAO_ROOT/tetras_extraction/macao_12/script"
-export RESULTS_DIR="$MACAO_ROOT/tetras_extraction/macao_12/result"
+# 'status' command is an exception, must be run before setting all the env vars
+if [[ "$1" == "status" ]]; then
+    echo "VERSION=$VERSION"
+    echo "MACAO_ROOT=$MACAO_ROOT"
+    echo "SOURCES_DIR=$SOURCES_DIR"
+    echo "SCRIPTS_DIR=$SCRIPTS_DIR"
+    echo "RESULTS_DIR=$RESULTS_DIR"
+    echo "INDEXES_DIR=$INDEXES_DIR"
+    echo ""
+    echo "Python virtual env: ${VIRTUAL_ENV:-"not set"}"
+    echo -n "mcli: "
+    if which mcli >/dev/null; then echo "available"; else echo "not in PATH"; fi
+    echo ""
+    git status
+    exit
+fi
+
+export VERSION="${VERSION:-macao_12}" # macao_12 by default
+export MACAO_ROOT="${MACAO_ROOT:-$(dirname "$(realpath "$0")")}"
+export SOURCES_DIR="$MACAO_ROOT/Basilisk/MACAO/$VERSION"
+export SCRIPTS_DIR="$MACAO_ROOT/tetras_extraction/$VERSION/script"
+export RESULTS_DIR="$MACAO_ROOT/tetras_extraction/$VERSION/result"
+export INDEXES_DIR="$RESULTS_DIR/indexes"
+mkdir -p "$INDEXES_DIR"
 
 print_usage() {
     cat <<EOF
@@ -11,6 +31,11 @@ Usage: $(basename "$0") <command> [args]
 
 COMMANDS
 
+status
+    Print useful info about the current environment.
+shell [-p|--pyenv]
+    Open a shell with mcli's environment variables set, including PATH.
+    If -p or --pyenv is specified, also enter the Python virtual env.
 list-streams <file>
     List audio streams in <file>
 count-streams [<file>]
@@ -26,9 +51,6 @@ extract-rdf
     Run the extractor to generate RDF from text sources
 extract-mp3
     Extract audio streams from all Flash SWF files
-shell [-p|--pyenv]
-    Open a shell with mcli's environment variables set, including PATH.
-    If -p or --pyenv is specified, also enter the Python virtual env.
 help
     Print this help and exit
 EOF
@@ -60,7 +82,7 @@ count_streams() {
         echo "$(list_streams "$file" | wc -l) $(basename "$file")"
     else
         echo "Indexing streams from all SWFs (this may take some time) ..." >&2
-        out_file="$RESULTS_DIR/indexes/swf_streams_count.txt"
+        out_file="$INDEXES_DIR/swf_streams_count.txt"
         for file in "$SOURCES_DIR/contenu/media/"*.swf; do
             echo "$(list_streams "$file" | wc -l) $(basename "$file")"
         done | sort -rn >"$out_file"
@@ -69,7 +91,7 @@ count_streams() {
 }
 
 index_extensions() {
-    out_file="$RESULTS_DIR/indexes/index_per_extension.txt"
+    out_file="$INDEXES_DIR/index_per_extension.txt"
     echo -n "" >"$out_file" # Clear out file
     # Index all files, with a cd trick to get relative paths
     cd "$SOURCES_DIR" || exit
@@ -86,10 +108,10 @@ index_extensions() {
 }
 
 count_all() {
-    index="$RESULTS_DIR/indexes/index_per_extension.txt"
-    swf_index="$RESULTS_DIR/indexes/swf_streams_count.txt"
+    index="$INDEXES_DIR/index_per_extension.txt"
+    swf_index="$INDEXES_DIR/swf_streams_count.txt"
     content_dir="$SOURCES_DIR/contenu"
-    out_file="$RESULTS_DIR/indexes/count-all.txt"
+    out_file="$INDEXES_DIR/count-all.txt"
 
     if [[ ! -f "$index" ]]; then
         echo "$index not found, use --force or run index-extensions before"
@@ -115,6 +137,7 @@ count_all() {
     nb_gd="$(grep -rI 'new ExerciceGD(' "$content_dir" | wc -l)"
     nb_exo_total="$((nb_qm + nb_qcu + nb_qcm + nb_tat + nb_gd))"
     nb_exo_other="$((nb_exo - nb_exo_total))"
+    nb_act="$((nb_courses + nb_exo_total))"
 
     nb_flash="$(grep -Ec '/contenu/media/.*\.swf$' "$index")"
     nb_flash_0="$(grep -Ec '^0 ' "$swf_index")"
@@ -197,13 +220,13 @@ extract-mp3)
     done
     ;;
 shell)
-    export PATH="$PATH:$MACAO_ROOT"
     if [[ "$1" = "-p" || "$1" = "--pyenv" ]]; then
         if ! source "$SCRIPTS_DIR/venv/bin/activate"; then
             echo "Python venv not found, did you run setup first?" >&2
             exit 1
         fi
     fi
+    export PATH="$PATH:$MACAO_ROOT"
     cd "$MACAO_ROOT"
     $SHELL
     ;;
diff --git a/tetras_extraction/macao_12/result/indexes/count-all.txt b/tetras_extraction/macao_12/result/indexes/count-all.txt
index b3192d6897dbc4964e7c6e451dab0df9db3c1b5f..2f1ac4d93c9b6e10d33c8429749c5a1a55b4da7c 100644
--- a/tetras_extraction/macao_12/result/indexes/count-all.txt
+++ b/tetras_extraction/macao_12/result/indexes/count-all.txt
@@ -3,7 +3,7 @@ sous-parties:   18
 pages:          151
     normales:       132
     spéciales:      19
-activités:      
+activités:      132
     cours:          59
     exercices:      73
         QCU:            39
diff --git a/tetras_extraction/macao_12/script/extract.py b/tetras_extraction/macao_12/script/extract.py
index 69c3ff092cd7b812bc3107d6fffe33e04252d695..dacf474e2facb4871c2028b7fccaf0b9f0bf0fc8 100644
--- a/tetras_extraction/macao_12/script/extract.py
+++ b/tetras_extraction/macao_12/script/extract.py
@@ -40,21 +40,21 @@ def export_graph(g: Graph):
     print(f"Exported {len(g)} triples to {RESULT_FILE}.")
 
 
-def ns_find(elem: etree.ElementBase, query: str):
+def ns_find(elem: etree._Element, query: str):
     """Wrapper for lxml's `find()` function that automatically uses the default
     namespace for all unprefixed tag names.
     """
     return elem.find(query, namespaces={"": elem.nsmap[None]})
 
 
-def ns_findall(elem: etree.ElementBase, query: str):
+def ns_findall(elem: etree._Element, query: str):
     """Wrapper for lxml's `findall()` function that automatically uses the default
     namespace for all unprefixed tag names.
     """
     return elem.findall(query, namespaces={"": elem.nsmap[None]})
 
 
-def ns_localname(elem: etree.ElementBase) -> str:
+def ns_localname(elem: etree._Element) -> str:
     """Get an element's local name, stripping the namespace."""
     return etree.QName(elem).localname
 
@@ -119,10 +119,18 @@ def parse_manifest_rec(
         extract_mosetp.parse_mosetp(graph, f"{SOURCE_DIR}/sco/{id}.html", id)
 
 
+import extract_page
+
+
 def main():
     g = create_graph()
     parse_manifest(g)
     export_graph(g)
+    # extract_page.parse_page(
+    #     g,
+    #     f"{SOURCE_DIR}/contenu/pages/pg60.html",
+    #     "pg60",
+    # )
 
 
 if __name__ == "__main__":
diff --git a/tetras_extraction/macao_3/result/indexes/count-all.txt b/tetras_extraction/macao_3/result/indexes/count-all.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f8954d6d8476468f8b54f507ad36ad056447c993
--- /dev/null
+++ b/tetras_extraction/macao_3/result/indexes/count-all.txt
@@ -0,0 +1,24 @@
+modules:        0
+sous-parties:   0
+pages:          97
+    normales:       86
+    spéciales:      11
+activités:      86
+    cours:          26
+    exercices:      60
+        QCU:            25
+        QCM:            6
+        QM:             3
+        TAT:            25
+        GD:             1
+        other:          0
+media:          223
+    images:         12
+        png:            12
+        jpg:            0
+        gif:            0
+    flash:          211
+        no audio:       0
+        1 audio:        179
+        2+ audio:       32
+    other:          0
diff --git a/tetras_extraction/macao_3/result/indexes/index_per_extension.txt b/tetras_extraction/macao_3/result/indexes/index_per_extension.txt
new file mode 100644
index 0000000000000000000000000000000000000000..68aa074cf5dc7a166282a8dc476ab7ff5a874ea9
--- /dev/null
+++ b/tetras_extraction/macao_3/result/indexes/index_per_extension.txt
@@ -0,0 +1,545 @@
+[css]
+./MosMtr/ressources/style/css/COURS2.css
+./MosMtr/ressources/style/css/diplome.css
+./MosMtr/ressources/style/css/document.css
+./MosMtr/ressources/style/css/exercice.css
+./MosMtr/ressources/style/css/general.css
+./MosMtr/ressources/style/css/glossaireContenu.css
+./MosMtr/ressources/style/css/glossaireDetail.css
+./MosMtr/ressources/style/css/glossaireListe.css
+./MosMtr/ressources/style/css/glossaireMenu.css
+./MosMtr/ressources/style/css/glossaireRecherche.css
+./MosMtr/ressources/style/css/menuLMS.css
+./MosMtr/ressources/style/css/planLMS.css
+./MosMtr/ressources/style/css/rechercheLMS.css
+./MosMtr/ressources/style/css/resultats.css
+./MosMtr/ressources/style/css/styles.css
+
+[gif]
+./MosMtr/gen/blanc.gif
+./MosMtr/ressources/style/media/barrebouton1.gif
+./MosMtr/ressources/style/media/barredoc.gif
+./MosMtr/ressources/style/media/diplom.gif
+./MosMtr/ressources/style/media/flemenu0kkk_survl0.gif
+./MosMtr/ressources/style/media/flemenu0kkk_survl1.gif
+./MosMtr/ressources/style/media/gen/boutonInit.gif
+./MosMtr/ressources/style/media/gen/boutonInit_of.gif
+./MosMtr/ressources/style/media/gen/boutonInit_on.gif
+./MosMtr/ressources/style/media/gen/boutonPrecedent.gif
+./MosMtr/ressources/style/media/gen/boutonPrecedent_of.gif
+./MosMtr/ressources/style/media/gen/boutonPrecedent_on.gif
+./MosMtr/ressources/style/media/gen/boutonQCM_dis.gif
+./MosMtr/ressources/style/media/gen/boutonQCM.gif
+./MosMtr/ressources/style/media/gen/boutonQCM_hlt.gif
+./MosMtr/ressources/style/media/gen/boutonQCM_sel_dis.gif
+./MosMtr/ressources/style/media/gen/boutonQCM_sel.gif
+./MosMtr/ressources/style/media/gen/boutonQCM_sel_hlt.gif
+./MosMtr/ressources/style/media/gen/boutonQCU_dis.gif
+./MosMtr/ressources/style/media/gen/boutonQCU.gif
+./MosMtr/ressources/style/media/gen/boutonQCU_hlt.gif
+./MosMtr/ressources/style/media/gen/boutonQCU_sel_dis.gif
+./MosMtr/ressources/style/media/gen/boutonQCU_sel.gif
+./MosMtr/ressources/style/media/gen/boutonQCU_sel_hlt.gif
+./MosMtr/ressources/style/media/gen/boutonSuivant.gif
+./MosMtr/ressources/style/media/gen/boutonSuivant_of.gif
+./MosMtr/ressources/style/media/gen/boutonSuivant_on.gif
+./MosMtr/ressources/style/media/gen/boutonValider.gif
+./MosMtr/ressources/style/media/gen/boutonValider_of.gif
+./MosMtr/ressources/style/media/gen/boutonValider_on.gif
+./MosMtr/ressources/style/media/gen/cursA_0c.gif
+./MosMtr/ressources/style/media/gen/cursA_0e.gif
+./MosMtr/ressources/style/media/gen/cursA_1c.gif
+./MosMtr/ressources/style/media/gen/cursA_1e.gif
+./MosMtr/ressources/style/media/gen/dossGlossaireFerme.gif
+./MosMtr/ressources/style/media/gen/dossGlossaireOuvert.gif
+./MosMtr/ressources/style/media/gen/GTR_apercu.gif
+./MosMtr/ressources/style/media/gen/paraBascule0.gif
+./MosMtr/ressources/style/media/gen/paraBascule1.gif
+./MosMtr/ressources/style/media/gen/planAuteur.gif
+./MosMtr/ressources/style/media/gen/planEtape0.gif
+./MosMtr/ressources/style/media/gen/planEtape1.gif
+./MosMtr/ressources/style/media/gen/planFaq.gif
+./MosMtr/ressources/style/media/gen/planForum.gif
+./MosMtr/ressources/style/media/gen/planGroupe.gif
+./MosMtr/ressources/style/media/gen/planMessagerie.gif
+./MosMtr/ressources/style/media/gen/planModule0.gif
+./MosMtr/ressources/style/media/gen/planModule1.gif
+./MosMtr/ressources/style/media/gen/planRapports.gif
+./MosMtr/ressources/style/media/gen/planStats.gif
+./MosMtr/ressources/style/media/gen/planTelecharge.gif
+./MosMtr/ressources/style/media/gen/planTuteur.gif
+./MosMtr/ressources/style/media/gen/resQuestionFaux.gif
+./MosMtr/ressources/style/media/gen/resQuestionJuste.gif
+./MosMtr/ressources/style/media/items_survl0.gif
+./MosMtr/ressources/style/media/items_survl1.gif
+./MosMtr/ressources/style/media/pourdipl.gif
+
+[htm]
+./contenu/pages/aide_present_perf.htm
+./contenu/pages/aide_preterit.htm
+./contenu/pages/consonne1.htm
+./contenu/pages/phoneme.htm
+./contenu/pages/voyelle1.htm
+./MosMtr/gen/blanc.htm
+./MosMtr/gen/blocNotes.htm
+./MosMtr/gen/envoiReponses.htm
+./MosMtr/gen/tempsMax.htm
+./MosMtr/ressources/style/glossaire.htm
+
+[html]
+./contenu/glossaire/accueil.html
+./contenu/glossaire/contenu.html
+./contenu/glossaire/glossaire.html
+./contenu/glossaire/menu.html
+./contenu/local/diplome.html
+./contenu/local/resultats.html
+./contenu/pages/pg1023.html
+./contenu/pages/pg1027.html
+./contenu/pages/pg1044.html
+./contenu/pages/pg1181.html
+./contenu/pages/pg1188.html
+./contenu/pages/pg1235.html
+./contenu/pages/pg1418.html
+./contenu/pages/pg1773.html
+./contenu/pages/pg1809.html
+./contenu/pages/pg186.html
+./contenu/pages/pg1888.html
+./contenu/pages/pg1894.html
+./contenu/pages/pg1917.html
+./contenu/pages/pg1919.html
+./contenu/pages/pg191.html
+./contenu/pages/pg238.html
+./contenu/pages/pg2410.html
+./contenu/pages/pg2429.html
+./contenu/pages/pg2493.html
+./contenu/pages/pg2538.html
+./contenu/pages/pg2759.html
+./contenu/pages/pg2883.html
+./contenu/pages/pg3092.html
+./contenu/pages/pg3209.html
+./contenu/pages/pg3531.html
+./contenu/pages/pg3579.html
+./contenu/pages/pg3600.html
+./contenu/pages/pg3602.html
+./contenu/pages/pg3628.html
+./contenu/pages/pg3746.html
+./contenu/pages/pg3845.html
+./contenu/pages/pg3862.html
+./contenu/pages/pg3870.html
+./contenu/pages/pg3972.html
+./contenu/pages/pg3981.html
+./contenu/pages/pg4031.html
+./contenu/pages/pg4141.html
+./contenu/pages/pg4192.html
+./contenu/pages/pg422.html
+./contenu/pages/pg4236.html
+./contenu/pages/pg4396.html
+./contenu/pages/pg4477.html
+./contenu/pages/pg4487.html
+./contenu/pages/pg4797.html
+./contenu/pages/pg4815.html
+./contenu/pages/pg4851.html
+./contenu/pages/pg4973.html
+./contenu/pages/pg5132.html
+./contenu/pages/pg5136.html
+./contenu/pages/pg5252.html
+./contenu/pages/pg5261.html
+./contenu/pages/pg5670.html
+./contenu/pages/pg5786.html
+./contenu/pages/pg5836.html
+./contenu/pages/pg5986.html
+./contenu/pages/pg6180.html
+./contenu/pages/pg6329.html
+./contenu/pages/pg6795.html
+./contenu/pages/pg6866.html
+./contenu/pages/pg6917.html
+./contenu/pages/pg6968.html
+./contenu/pages/pg7035.html
+./contenu/pages/pg7390.html
+./contenu/pages/pg7429.html
+./contenu/pages/pg7434.html
+./contenu/pages/pg7576.html
+./contenu/pages/pg7628.html
+./contenu/pages/pg7651.html
+./contenu/pages/pg7664.html
+./contenu/pages/pg7682.html
+./contenu/pages/pg7973.html
+./contenu/pages/pg8027.html
+./contenu/pages/pg8400.html
+./contenu/pages/pg8601.html
+./contenu/pages/pg8783.html
+./contenu/pages/pg8876.html
+./contenu/pages/pg910.html
+./contenu/pages/pg9152.html
+./contenu/pages/pg9221.html
+./contenu/pages/pg9264.html
+./contenu/pages/pg9414.html
+./contenu/pages/pg9439.html
+./contenu/pages/pg9615.html
+./contenu/pages/pg9719.html
+./contenu/pages/pg9764.html
+./contenu/pages/pg9988.html
+./index.html
+./MosMtr/gen/menu.html
+./MosMtr/gen/plan.html
+./sco/act153876.html
+./sco/act482478.html
+./sco/act56626.html
+./sco/act56672.html
+./sco/act592613.html
+./sco/act687805.html
+./sco/act704962.html
+./sco/act759984.html
+./sco/act761960.html
+./sco/act765533.html
+./sco/act828642.html
+./sco/act838137.html
+./sco/act89909.html
+./sco/act957420.html
+
+[jpg]
+./MosMtr/ressources/style/media/bascf.jpg
+./MosMtr/ressources/style/media/fmenup.jpg
+./MosMtr/ressources/style/media/fondbl5.jpg
+./MosMtr/ressources/style/media/fond_macao321.jpg
+./MosMtr/ressources/style/media/fond_macao32.jpg
+./MosMtr/ressources/style/media/fongd.jpg
+./MosMtr/ressources/style/media/fonglo.jpg
+./MosMtr/ressources/style/media/jaugea.jpg
+./MosMtr/ressources/style/media/puce_menu.jpg
+
+[js]
+./MosMtr/ressources/langue/lexiqueGLO.js
+./MosMtr/ressources/langue/lexiqueSCO.js
+./MosMtr/ressources/style/scripts/fonctions.js
+./MosMtr/scripts/actionsGen.js
+./MosMtr/scripts/contenu/ClasseCommentaire.js
+./MosMtr/scripts/contenu/ClasseCurseur.js
+./MosMtr/scripts/contenu/ClasseExerciceCURS.js
+./MosMtr/scripts/contenu/ClasseExerciceEXP.js
+./MosMtr/scripts/contenu/ClasseExerciceGD.js
+./MosMtr/scripts/contenu/ClasseExerciceQC.js
+./MosMtr/scripts/contenu/ClasseExerciceQM.js
+./MosMtr/scripts/contenu/ClasseExerciceSEQ.js
+./MosMtr/scripts/contenu/ClasseExerciceTAT.js
+./MosMtr/scripts/contenu/ClasseZoneLien.js
+./MosMtr/scripts/contenu/EDIT_contenu.js
+./MosMtr/scripts/contenu/ICcontenu.js
+./MosMtr/scripts/contenu/ICcours.js
+./MosMtr/scripts/contenu/IC_exerciceCURS.js
+./MosMtr/scripts/contenu/IC_exerciceGD.js
+./MosMtr/scripts/contenu/ICexercices.js
+./MosMtr/scripts/glossaire/ClasseGlossaire.js
+./MosMtr/scripts/glossaire/contenuGlossaire.js
+./MosMtr/scripts/glossaire/ICglossaire.js
+./MosMtr/scripts/ICglobal.js
+./MosMtr/scripts/interface/ICdiplome.js
+./MosMtr/scripts/interface/ICresultats.js
+./MosMtr/scripts/lms/APIAdapter.js
+./MosMtr/scripts/lms/ClasseLMSLocal.js
+./MosMtr/scripts/lms/IClms.js
+./MosMtr/scripts/lms/menuLMS.js
+./MosMtr/scripts/lms/planLMS.js
+./MosMtr/scripts/lms/scorm12.js
+./MosMtr/scripts/lms/sequence.js
+./MosMtr/scripts/sco/ClasseMosSCO.js
+./MosMtr/scripts/sco/ClasseWBCEvaluation.js
+./MosMtr/scripts/sco/ICsco.js
+./MosMtr/scripts/swfir.js
+
+[png]
+./contenu/media/cc.png
+./contenu/media/ecouteur_macao.png
+./contenu/media/giving_cours1.png
+./contenu/media/giving_cours.png
+./contenu/media/giving_retroac.png
+./contenu/media/givin.png
+./contenu/media/logo_ea741_transp1.png
+./contenu/media/logo_metice_transp1.png
+./contenu/media/logo_metice_transp.png
+./contenu/media/logo_upv_transp.png
+./contenu/media/log_uoh1.png
+./contenu/media/log_uoh.png
+./MosMtr/ressources/style/media/gen/boutonInit_of.png
+./MosMtr/ressources/style/media/gen/boutonInit_on.png
+./MosMtr/ressources/style/media/gen/boutonInit.png
+./MosMtr/ressources/style/media/gen/boutonPrecedent_of.png
+./MosMtr/ressources/style/media/gen/boutonPrecedent_on.png
+./MosMtr/ressources/style/media/gen/boutonPrecedent.png
+./MosMtr/ressources/style/media/gen/boutonQCM_dis.png
+./MosMtr/ressources/style/media/gen/boutonQCM_hlt.png
+./MosMtr/ressources/style/media/gen/boutonQCM.png
+./MosMtr/ressources/style/media/gen/boutonQCM_sel_dis.png
+./MosMtr/ressources/style/media/gen/boutonQCM_sel_hlt.png
+./MosMtr/ressources/style/media/gen/boutonQCM_sel.png
+./MosMtr/ressources/style/media/gen/boutonQCU_dis.png
+./MosMtr/ressources/style/media/gen/boutonQCU_hlt.png
+./MosMtr/ressources/style/media/gen/boutonQCU.png
+./MosMtr/ressources/style/media/gen/boutonQCU_sel_dis.png
+./MosMtr/ressources/style/media/gen/boutonQCU_sel_hlt.png
+./MosMtr/ressources/style/media/gen/boutonQCU_sel.png
+./MosMtr/ressources/style/media/gen/boutonSuivant_of.png
+./MosMtr/ressources/style/media/gen/boutonSuivant_on.png
+./MosMtr/ressources/style/media/gen/boutonSuivant.png
+./MosMtr/ressources/style/media/gen/boutonValider_of.png
+./MosMtr/ressources/style/media/gen/boutonValider_on.png
+./MosMtr/ressources/style/media/gen/boutonValider.png
+./MosMtr/ressources/style/media/gen/btnEtpPrec_of.png
+./MosMtr/ressources/style/media/gen/btnEtpPrec_on.png
+./MosMtr/ressources/style/media/gen/btnEtpPrec.png
+./MosMtr/ressources/style/media/gen/btnEtpSuiv_of.png
+./MosMtr/ressources/style/media/gen/btnEtpSuiv_on.png
+./MosMtr/ressources/style/media/gen/btnEtpSuiv.png
+./MosMtr/ressources/style/media/gen/planModule0.png
+./MosMtr/ressources/style/media/gen/planModule1.png
+
+[swf]
+./contenu/media/ecran10.swf
+./contenu/media/ecran11.swf
+./contenu/media/ecran12.swf
+./contenu/media/ecran131.swf
+./contenu/media/ecran132.swf
+./contenu/media/ecran141.swf
+./contenu/media/ecran142.swf
+./contenu/media/ecran143.swf
+./contenu/media/ecran144.swf
+./contenu/media/ecran151.swf
+./contenu/media/ecran152.swf
+./contenu/media/ecran153.swf
+./contenu/media/ecran154.swf
+./contenu/media/ecran161.swf
+./contenu/media/ecran162.swf
+./contenu/media/ecran163.swf
+./contenu/media/ecran164.swf
+./contenu/media/ecran17.swf
+./contenu/media/ecran191.swf
+./contenu/media/ecran192.swf
+./contenu/media/ecran201.swf
+./contenu/media/ecran202.swf
+./contenu/media/ecran211.swf
+./contenu/media/ecran21b1.swf
+./contenu/media/ecran22.swf
+./contenu/media/ecran251.swf
+./contenu/media/ecran252.swf
+./contenu/media/ecran26.swf
+./contenu/media/ecran27.swf
+./contenu/media/ecran28.swf
+./contenu/media/ecran29.swf
+./contenu/media/ecran30.swf
+./contenu/media/ecran311.swf
+./contenu/media/ecran31.swf
+./contenu/media/ecran321.swf
+./contenu/media/ecran32.swf
+./contenu/media/ecran331.swf
+./contenu/media/ecran332.swf
+./contenu/media/ecran341.swf
+./contenu/media/ecran342.swf
+./contenu/media/ecran361.swf
+./contenu/media/ecran3622.swf
+./contenu/media/ecran3634.swf
+./contenu/media/ecran38.swf
+./contenu/media/ecran39.swf
+./contenu/media/ecran411.swf
+./contenu/media/ecran412.swf
+./contenu/media/ecran413.swf
+./contenu/media/ecran414.swf
+./contenu/media/ecran41.swf
+./contenu/media/ecran421.swf
+./contenu/media/ecran422.swf
+./contenu/media/ecran423.swf
+./contenu/media/ecran424.swf
+./contenu/media/ecran42.swf
+./contenu/media/ecran431.swf
+./contenu/media/ecran432.swf
+./contenu/media/ecran433.swf
+./contenu/media/ecran434.swf
+./contenu/media/ecran44.swf
+./contenu/media/ecran45.swf
+./contenu/media/ecran46.swf
+./contenu/media/ecran471.swf
+./contenu/media/ecran472.swf
+./contenu/media/ecran481.swf
+./contenu/media/ecran482.swf
+./contenu/media/ecran491.swf
+./contenu/media/ecran492.swf
+./contenu/media/ecran501.swf
+./contenu/media/ecran502.swf
+./contenu/media/ecran51.swf
+./contenu/media/ecran522.swf
+./contenu/media/ecran52.swf
+./contenu/media/ecran532.swf
+./contenu/media/ecran542.swf
+./contenu/media/ecran552.swf
+./contenu/media/ecran562.swf
+./contenu/media/ecran572.swf
+./contenu/media/ecran581.swf
+./contenu/media/ecran582.swf
+./contenu/media/ecran583.swf
+./contenu/media/ecran592.swf
+./contenu/media/ecran59c1.swf
+./contenu/media/ecran59c2.swf
+./contenu/media/ecran59.swf
+./contenu/media/ecran601.swf
+./contenu/media/ecran602.swf
+./contenu/media/ecran611.swf
+./contenu/media/ecran61.swf
+./contenu/media/ecran621.swf
+./contenu/media/ecran62.swf
+./contenu/media/ecran63.swf
+./contenu/media/ecran6410.swf
+./contenu/media/ecran6411.swf
+./contenu/media/ecran6412.swf
+./contenu/media/ecran6413.swf
+./contenu/media/ecran6414.swf
+./contenu/media/ecran641.swf
+./contenu/media/ecran642.swf
+./contenu/media/ecran643.swf
+./contenu/media/ecran644.swf
+./contenu/media/ecran645.swf
+./contenu/media/ecran646.swf
+./contenu/media/ecran647.swf
+./contenu/media/ecran648.swf
+./contenu/media/ecran649.swf
+./contenu/media/ecran651.swf
+./contenu/media/ecran652.swf
+./contenu/media/ecran653.swf
+./contenu/media/ecran654.swf
+./contenu/media/ecran655.swf
+./contenu/media/ecran656.swf
+./contenu/media/ecran657.swf
+./contenu/media/ecran661.swf
+./contenu/media/ecran6621.swf
+./contenu/media/ecran662.swf
+./contenu/media/ecran663.swf
+./contenu/media/ecran671.swf
+./contenu/media/ecran672.swf
+./contenu/media/ecran673.swf
+./contenu/media/ecran674.swf
+./contenu/media/ecran675.swf
+./contenu/media/ecran676.swf
+./contenu/media/ecran677.swf
+./contenu/media/ecran678.swf
+./contenu/media/ecran6791.swf
+./contenu/media/ecran6792.swf
+./contenu/media/ecran6793.swf
+./contenu/media/ecran6794.swf
+./contenu/media/ecran679.swf
+./contenu/media/ecran6810.swf
+./contenu/media/ecran6811.swf
+./contenu/media/ecran6812.swf
+./contenu/media/ecran681.swf
+./contenu/media/ecran682.swf
+./contenu/media/ecran683.swf
+./contenu/media/ecran684.swf
+./contenu/media/ecran685.swf
+./contenu/media/ecran686.swf
+./contenu/media/ecran687.swf
+./contenu/media/ecran688.swf
+./contenu/media/ecran689.swf
+./contenu/media/ecran71.swf
+./contenu/media/ecran72.swf
+./contenu/media/ecran73.swf
+./contenu/media/ecran74.swf
+./contenu/media/ecran75.swf
+./contenu/media/ecran81.swf
+./contenu/media/ecran82.swf
+./contenu/media/ecran91.swf
+./contenu/media/ecran92.swf
+./contenu/media/mot10_1.swf
+./contenu/media/mot11_12.swf
+./contenu/media/mot11_1a.swf
+./contenu/media/mot11_1b.swf
+./contenu/media/mot12_12.swf
+./contenu/media/mot12_1a.swf
+./contenu/media/mot12_1b.swf
+./contenu/media/mot12_1c.swf
+./contenu/media/mot12_1d1.swf
+./contenu/media/mot12_1e.swf
+./contenu/media/mot3_1.swf
+./contenu/media/mot3_2.swf
+./contenu/media/mot33_1.swf
+./contenu/media/mot33_2.swf
+./contenu/media/mot34_1.swf
+./contenu/media/mot34_2.swf
+./contenu/media/mot41_3.swf
+./contenu/media/mot4_1.swf
+./contenu/media/mot42_3.swf
+./contenu/media/mot42_4.swf
+./contenu/media/mot4_2.swf
+./contenu/media/mot43_3.swf
+./contenu/media/mot43_4.swf
+./contenu/media/mot44_11.swf
+./contenu/media/mot45_11.swf
+./contenu/media/mot46_11.swf
+./contenu/media/mot47_11.swf
+./contenu/media/mot47_12.swf
+./contenu/media/mot47_21.swf
+./contenu/media/mot47_22.swf
+./contenu/media/mot49_12.swf
+./contenu/media/mot50_11.swf
+./contenu/media/mot5_1.swf
+./contenu/media/mot52_12.swf
+./contenu/media/mot5_2.swf
+./contenu/media/mot53_13.swf
+./contenu/media/mot54_11.swf
+./contenu/media/mot55_11.swf
+./contenu/media/mot55_12.swf
+./contenu/media/mot56_11.swf
+./contenu/media/mot56_12.swf
+./contenu/media/mot57_11.swf
+./contenu/media/mot6_1.swf
+./contenu/media/mot6_2.swf
+./contenu/media/mot8_13.swf
+./contenu/media/mot8_22.swf
+./contenu/media/mot9_12.swf
+./contenu/media/mot9_22.swf
+./contenu/media/mots20id_tape1.swf
+./contenu/media/mots20itape1.swf
+./contenu/media/mots212.swf
+./contenu/media/mots228.swf
+./contenu/media/mots25there.swf
+./contenu/media/mots25they.swf
+./contenu/media/mots36scratched.swf
+./contenu/media/mots38been.swf
+./contenu/media/mots39giving.swf
+./contenu/media/pop_conson0322.swf
+./contenu/media/pop_consonne.swf
+./contenu/media/pop_voyelle.swf
+./contenu/pages/pop_conson0322.swf
+./contenu/pages/pop_consonne.swf
+./contenu/pages/pop_voyelle.swf
+./MosMtr/gen/dewplayer.swf
+./MosMtr/gen/dewslider.swf
+./MosMtr/gen/mediaplayer.swf
+./MosMtr/gen/swfir.swf
+./MosMtr/ressources/style/media/bonhomej2.swf
+./MosMtr/ressources/style/media/bonhomer2.swf
+./MosMtr/ressources/style/media/S_montrescore.swf
+
+[xml]
+./imsmanifest.xml
+./MosMtr/ressources/langue/lexiqueSCO.xml
+./sco/md_act153876.xml
+./sco/md_act592613.xml
+./sco/md_act761960.xml
+./sco/md_act957420.xml
+./sco/md_manifest.xml
+./sco/md_seq100407.xml
+./sco/md_seq502762.xml
+./sco/md_seq602682.xml
+./sco/md_seq68058.xml
+./sco/md_seq906956.xml
+
+[xsd]
+./adlcp_v1p3.xsd
+./adlnav_v1p3.xsd
+./adlseq_v1p3.xsd
+./imscp_v1p1.xsd
+./imsss_v1p0.xsd
+
+[xsl]
+./MosMtr/gen/redirect.xsl
+./MosMtr/ressources/style/xsl/local/menuLMS.xsl
+./MosMtr/ressources/style/xsl/local/planLMS.xsl
+./MosMtr/xsl/GEN_planLMS.xsl
+
diff --git a/tetras_extraction/macao_3/result/indexes/swf_streams_count.txt b/tetras_extraction/macao_3/result/indexes/swf_streams_count.txt
new file mode 100644
index 0000000000000000000000000000000000000000..49449ffe3de620e6dc1af2cf794aea128ab9c51d
--- /dev/null
+++ b/tetras_extraction/macao_3/result/indexes/swf_streams_count.txt
@@ -0,0 +1,211 @@
+6 mot9_22.swf
+6 mot12_1e.swf
+6 mot12_1d1.swf
+6 mot12_1c.swf
+6 mot12_1b.swf
+6 mot12_1a.swf
+6 mot12_12.swf
+5 mot10_1.swf
+4 mots228.swf
+4 mot8_22.swf
+4 mot46_11.swf
+4 mot44_11.swf
+3 mots212.swf
+3 mot6_2.swf
+3 mot6_1.swf
+3 mot5_2.swf
+3 mot5_1.swf
+3 mot47_22.swf
+3 mot47_21.swf
+3 mot47_12.swf
+3 mot47_11.swf
+3 mot34_1.swf
+3 mot33_2.swf
+3 mot33_1.swf
+3 mot3_1.swf
+3 mot11_1b.swf
+3 mot11_1a.swf
+3 mot11_12.swf
+2 mot8_13.swf
+2 mot4_2.swf
+2 mot4_1.swf
+2 mot3_2.swf
+1 pop_voyelle.swf
+1 pop_consonne.swf
+1 pop_conson0322.swf
+1 mots39giving.swf
+1 mots38been.swf
+1 mots36scratched.swf
+1 mots25they.swf
+1 mots25there.swf
+1 mots20itape1.swf
+1 mots20id_tape1.swf
+1 mot9_12.swf
+1 mot57_11.swf
+1 mot56_12.swf
+1 mot56_11.swf
+1 mot55_12.swf
+1 mot55_11.swf
+1 mot54_11.swf
+1 mot53_13.swf
+1 mot52_12.swf
+1 mot50_11.swf
+1 mot49_12.swf
+1 mot45_11.swf
+1 mot43_4.swf
+1 mot43_3.swf
+1 mot42_4.swf
+1 mot42_3.swf
+1 mot41_3.swf
+1 mot34_2.swf
+1 ecran92.swf
+1 ecran91.swf
+1 ecran82.swf
+1 ecran81.swf
+1 ecran75.swf
+1 ecran74.swf
+1 ecran73.swf
+1 ecran72.swf
+1 ecran71.swf
+1 ecran689.swf
+1 ecran688.swf
+1 ecran687.swf
+1 ecran686.swf
+1 ecran685.swf
+1 ecran684.swf
+1 ecran683.swf
+1 ecran682.swf
+1 ecran681.swf
+1 ecran6812.swf
+1 ecran6811.swf
+1 ecran6810.swf
+1 ecran679.swf
+1 ecran6794.swf
+1 ecran6793.swf
+1 ecran6792.swf
+1 ecran6791.swf
+1 ecran678.swf
+1 ecran677.swf
+1 ecran676.swf
+1 ecran675.swf
+1 ecran674.swf
+1 ecran673.swf
+1 ecran672.swf
+1 ecran671.swf
+1 ecran663.swf
+1 ecran662.swf
+1 ecran6621.swf
+1 ecran661.swf
+1 ecran657.swf
+1 ecran656.swf
+1 ecran655.swf
+1 ecran654.swf
+1 ecran653.swf
+1 ecran652.swf
+1 ecran651.swf
+1 ecran649.swf
+1 ecran648.swf
+1 ecran647.swf
+1 ecran646.swf
+1 ecran645.swf
+1 ecran644.swf
+1 ecran643.swf
+1 ecran642.swf
+1 ecran641.swf
+1 ecran6414.swf
+1 ecran6413.swf
+1 ecran6412.swf
+1 ecran6411.swf
+1 ecran6410.swf
+1 ecran63.swf
+1 ecran62.swf
+1 ecran621.swf
+1 ecran61.swf
+1 ecran611.swf
+1 ecran602.swf
+1 ecran601.swf
+1 ecran59.swf
+1 ecran59c2.swf
+1 ecran59c1.swf
+1 ecran592.swf
+1 ecran583.swf
+1 ecran582.swf
+1 ecran581.swf
+1 ecran572.swf
+1 ecran562.swf
+1 ecran552.swf
+1 ecran542.swf
+1 ecran532.swf
+1 ecran52.swf
+1 ecran522.swf
+1 ecran51.swf
+1 ecran502.swf
+1 ecran501.swf
+1 ecran492.swf
+1 ecran491.swf
+1 ecran482.swf
+1 ecran481.swf
+1 ecran472.swf
+1 ecran471.swf
+1 ecran46.swf
+1 ecran45.swf
+1 ecran44.swf
+1 ecran434.swf
+1 ecran433.swf
+1 ecran432.swf
+1 ecran431.swf
+1 ecran42.swf
+1 ecran424.swf
+1 ecran423.swf
+1 ecran422.swf
+1 ecran421.swf
+1 ecran41.swf
+1 ecran414.swf
+1 ecran413.swf
+1 ecran412.swf
+1 ecran411.swf
+1 ecran39.swf
+1 ecran38.swf
+1 ecran3634.swf
+1 ecran3622.swf
+1 ecran361.swf
+1 ecran342.swf
+1 ecran341.swf
+1 ecran332.swf
+1 ecran331.swf
+1 ecran32.swf
+1 ecran321.swf
+1 ecran31.swf
+1 ecran311.swf
+1 ecran30.swf
+1 ecran29.swf
+1 ecran28.swf
+1 ecran27.swf
+1 ecran26.swf
+1 ecran252.swf
+1 ecran251.swf
+1 ecran22.swf
+1 ecran21b1.swf
+1 ecran211.swf
+1 ecran202.swf
+1 ecran201.swf
+1 ecran192.swf
+1 ecran191.swf
+1 ecran17.swf
+1 ecran164.swf
+1 ecran163.swf
+1 ecran162.swf
+1 ecran161.swf
+1 ecran154.swf
+1 ecran153.swf
+1 ecran152.swf
+1 ecran151.swf
+1 ecran144.swf
+1 ecran143.swf
+1 ecran142.swf
+1 ecran141.swf
+1 ecran132.swf
+1 ecran131.swf
+1 ecran12.swf
+1 ecran11.swf
+1 ecran10.swf