From 4872919b066c0fa423bf280deacdeda1a0bb45fe Mon Sep 17 00:00:00 2001
From: piquerez <corentin.piquerez1@etu.univ-lorraine.fr>
Date: Tue, 28 Mar 2023 11:45:53 +0200
Subject: [PATCH] modifs pour ide

---
 bin/shukan.jar                                | Bin 0 -> 35188 bytes
 data/2122_S1/V001_210626/S1/ANG1.txt          |  20 +
 data/2122_S1/V001_210626/S1/ARC1.txt          |  16 +
 data/2122_S1/V001_210626/S1/BDD1.txt          |  25 +
 data/2122_S1/V001_210626/S1/DEV1.txt          |  94 +++
 data/2122_S1/V001_210626/S1/EC1.txt           |  20 +
 data/2122_S1/V001_210626/S1/EGO1.txt          |  25 +
 data/2122_S1/V001_210626/S1/EGO2.txt          |  19 +
 data/2122_S1/V001_210626/S1/M1.txt            |  27 +
 data/2122_S1/V001_210626/S1/M2.txt            |  19 +
 data/2122_S1/V001_210626/S1/PPP1.txt          |   8 +
 data/2122_S1/V001_210626/S1/SYS1.txt          |  20 +
 data/2122_S1/V001_210626/S1/WEB1.txt          |  29 +
 data/2122_S1/V001_210626/S1/modules.txt       |  12 +
 data/2122_S1/V001_210626/S3/ACD4.txt          |  30 +
 data/2122_S1/V001_210626/S3/ACD5.txt          |  19 +
 data/2122_S1/V001_210626/S3/ANG3.txt          |  28 +
 data/2122_S1/V001_210626/S3/APL3.txt          |  22 +
 data/2122_S1/V001_210626/S3/ASR4.txt          |  25 +
 data/2122_S1/V001_210626/S3/ASR5.txt          |   8 +
 data/2122_S1/V001_210626/S3/BD3.txt           |  21 +
 data/2122_S1/V001_210626/S3/EC3.txt           |  12 +
 data/2122_S1/V001_210626/S3/EGO5.txt          |  27 +
 data/2122_S1/V001_210626/S3/EGO6.txt          |  24 +
 data/2122_S1/V001_210626/S3/M5.txt            |  29 +
 data/2122_S1/V001_210626/S3/M6.txt            |  21 +
 data/2122_S1/V001_210626/S3/PPP3.txt          |   9 +
 data/2122_S1/V001_210626/S3/WIM2.txt          |  21 +
 data/2122_S1/V001_210626/S3/modules.txt       |  14 +
 data/2122_S1/V001_210626/cursus.txt           |   2 +
 data/2122_S1/V001_210626/weeks.txt            |  12 +
 data/2122_S1/V007_210716/S1/ADO.txt           |  16 +
 data/2122_S1/V007_210716/S1/AT.txt            |  20 +
 data/2122_S1/V007_210716/S1/BD1.txt           |  25 +
 data/2122_S1/V007_210716/S1/C1.txt            |  20 +
 data/2122_S1/V007_210716/S1/DEV.txt           |  97 +++
 data/2122_S1/V007_210716/S1/ECO.txt           |  19 +
 data/2122_S1/V007_210716/S1/GP1.txt           |  25 +
 data/2122_S1/V007_210716/S1/MD.txt            |  27 +
 data/2122_S1/V007_210716/S1/MF.txt            |  19 +
 data/2122_S1/V007_210716/S1/PIX.txt           |  17 +
 data/2122_S1/V007_210716/S1/PPP1.txt          |   8 +
 data/2122_S1/V007_210716/S1/SE.txt            |  20 +
 data/2122_S1/V007_210716/S1/WEB.txt           |  16 +
 data/2122_S1/V007_210716/S1/modules.txt       |  13 +
 data/2122_S1/V007_210716/S3/ACD4.txt          |  30 +
 data/2122_S1/V007_210716/S3/ACD5.txt          |  19 +
 data/2122_S1/V007_210716/S3/ANG3.txt          |  28 +
 data/2122_S1/V007_210716/S3/APL3.txt          |  22 +
 data/2122_S1/V007_210716/S3/ASR4.txt          |  25 +
 data/2122_S1/V007_210716/S3/ASR5.txt          |  17 +
 data/2122_S1/V007_210716/S3/BD3.txt           |  21 +
 data/2122_S1/V007_210716/S3/EC3.txt           |  12 +
 data/2122_S1/V007_210716/S3/EGO5.txt          |  27 +
 data/2122_S1/V007_210716/S3/EGO6.txt          |  24 +
 data/2122_S1/V007_210716/S3/M5.txt            |  29 +
 data/2122_S1/V007_210716/S3/M6.txt            |  21 +
 data/2122_S1/V007_210716/S3/PPP3.txt          |   9 +
 data/2122_S1/V007_210716/S3/WIM2.txt          |  21 +
 data/2122_S1/V007_210716/S3/modules.txt       |  14 +
 data/2122_S1/V007_210716/cursus.txt           |   2 +
 data/2122_S1/V007_210716/weeks.txt            |  12 +
 data/2122_S1/version.txt                      |   2 +
 data/2122_S2/V001_211016/IN/ANG4.txt          |  21 +
 data/2122_S2/V001_211016/IN/CE.txt            |   5 +
 data/2122_S2/V001_211016/IN/CI.txt            |  21 +
 data/2122_S2/V001_211016/IN/EC4.txt           |  11 +
 data/2122_S2/V001_211016/IN/IA.txt            |   5 +
 data/2122_S2/V001_211016/IN/IG.txt            |  19 +
 data/2122_S2/V001_211016/IN/MD.txt            |   5 +
 data/2122_S2/V001_211016/IN/MG.txt            |  18 +
 data/2122_S2/V001_211016/IN/MI.txt            |  20 +
 data/2122_S2/V001_211016/IN/PG.txt            |  18 +
 data/2122_S2/V001_211016/IN/PM.txt            |   5 +
 data/2122_S2/V001_211016/IN/PR.txt            |   5 +
 data/2122_S2/V001_211016/IN/SI.txt            |  19 +
 data/2122_S2/V001_211016/IN/SR.txt            |   5 +
 data/2122_S2/V001_211016/IN/TI.txt            |  21 +
 data/2122_S2/V001_211016/IN/modules.txt       |  15 +
 data/2122_S2/V001_211016/S2/AE.txt            |  23 +
 data/2122_S2/V001_211016/S2/BD2.txt           |  19 +
 data/2122_S2/V001_211016/S2/C2.txt            |  13 +
 data/2122_S2/V001_211016/S2/COO.txt           |  13 +
 data/2122_S2/V001_211016/S2/DCN.txt           |  16 +
 data/2122_S2/V001_211016/S2/ERG.txt           |  17 +
 data/2122_S2/V001_211016/S2/GP2a.txt          |  21 +
 data/2122_S2/V001_211016/S2/GP2b.txt          |  19 +
 data/2122_S2/V001_211016/S2/IHM.txt           |  33 +
 data/2122_S2/V001_211016/S2/MG.txt            |  26 +
 data/2122_S2/V001_211016/S2/MN.txt            |  13 +
 data/2122_S2/V001_211016/S2/MS.txt            |  15 +
 data/2122_S2/V001_211016/S2/POO.txt           |  47 ++
 data/2122_S2/V001_211016/S2/PPP2.txt          |  11 +
 data/2122_S2/V001_211016/S2/QD.txt            |   9 +
 data/2122_S2/V001_211016/S2/RES.txt           |  47 ++
 data/2122_S2/V001_211016/S2/modules.txt       |  16 +
 data/2122_S2/V001_211016/WM/ANG4.txt          |  21 +
 data/2122_S2/V001_211016/WM/CE.txt            |  21 +
 data/2122_S2/V001_211016/WM/CI.txt            |   5 +
 data/2122_S2/V001_211016/WM/EC4.txt           |  11 +
 data/2122_S2/V001_211016/WM/IA.txt            |  39 +
 data/2122_S2/V001_211016/WM/IG.txt            |   5 +
 data/2122_S2/V001_211016/WM/MD.txt            |  23 +
 data/2122_S2/V001_211016/WM/MG.txt            |   5 +
 data/2122_S2/V001_211016/WM/MI.txt            |   5 +
 data/2122_S2/V001_211016/WM/PG.txt            |   5 +
 data/2122_S2/V001_211016/WM/PM.txt            |  17 +
 data/2122_S2/V001_211016/WM/PR.txt            |  31 +
 data/2122_S2/V001_211016/WM/SI.txt            |   5 +
 data/2122_S2/V001_211016/WM/SR.txt            |  13 +
 data/2122_S2/V001_211016/WM/TI.txt            |   5 +
 data/2122_S2/V001_211016/WM/modules.txt       |  15 +
 data/2122_S2/V001_211016/cursus.txt           |   3 +
 data/2122_S2/V001_211016/weeks.txt            |  13 +
 data/2122_S2/V004_211022/IN/ANG4.txt          |  21 +
 data/2122_S2/V004_211022/IN/CE.txt            |   5 +
 data/2122_S2/V004_211022/IN/CI.txt            |  21 +
 data/2122_S2/V004_211022/IN/EC4.txt           |  11 +
 data/2122_S2/V004_211022/IN/IA.txt            |   5 +
 data/2122_S2/V004_211022/IN/IG.txt            |  19 +
 data/2122_S2/V004_211022/IN/MD.txt            |   5 +
 data/2122_S2/V004_211022/IN/MG.txt            |  18 +
 data/2122_S2/V004_211022/IN/MI.txt            |  20 +
 data/2122_S2/V004_211022/IN/PG.txt            |  18 +
 data/2122_S2/V004_211022/IN/PM.txt            |   5 +
 data/2122_S2/V004_211022/IN/PR.txt            |   5 +
 data/2122_S2/V004_211022/IN/SI.txt            |  19 +
 data/2122_S2/V004_211022/IN/SR.txt            |   5 +
 data/2122_S2/V004_211022/IN/TI.txt            |  21 +
 data/2122_S2/V004_211022/IN/modules.txt       |  15 +
 data/2122_S2/V004_211022/S2/AE.txt            |  23 +
 data/2122_S2/V004_211022/S2/BD2.txt           |  19 +
 data/2122_S2/V004_211022/S2/C2.txt            |  13 +
 data/2122_S2/V004_211022/S2/COO.txt           |  13 +
 data/2122_S2/V004_211022/S2/DCN.txt           |  16 +
 data/2122_S2/V004_211022/S2/ERG.txt           |  17 +
 data/2122_S2/V004_211022/S2/GP2a.txt          |  21 +
 data/2122_S2/V004_211022/S2/GP2b.txt          |  19 +
 data/2122_S2/V004_211022/S2/IHM.txt           |  33 +
 data/2122_S2/V004_211022/S2/MG.txt            |  26 +
 data/2122_S2/V004_211022/S2/MN.txt            |  14 +
 data/2122_S2/V004_211022/S2/MS.txt            |  15 +
 data/2122_S2/V004_211022/S2/POO.txt           |  51 ++
 data/2122_S2/V004_211022/S2/PPP2.txt          |  11 +
 data/2122_S2/V004_211022/S2/QD.txt            |   9 +
 data/2122_S2/V004_211022/S2/RES.txt           |  47 ++
 data/2122_S2/V004_211022/S2/modules.txt       |  16 +
 data/2122_S2/V004_211022/WM/ANG4.txt          |  21 +
 data/2122_S2/V004_211022/WM/CE.txt            |  21 +
 data/2122_S2/V004_211022/WM/CI.txt            |   5 +
 data/2122_S2/V004_211022/WM/EC4.txt           |  11 +
 data/2122_S2/V004_211022/WM/IA.txt            |  39 +
 data/2122_S2/V004_211022/WM/IG.txt            |   5 +
 data/2122_S2/V004_211022/WM/MD.txt            |  23 +
 data/2122_S2/V004_211022/WM/MG.txt            |   5 +
 data/2122_S2/V004_211022/WM/MI.txt            |   5 +
 data/2122_S2/V004_211022/WM/PG.txt            |   5 +
 data/2122_S2/V004_211022/WM/PM.txt            |  17 +
 data/2122_S2/V004_211022/WM/PR.txt            |  31 +
 data/2122_S2/V004_211022/WM/SI.txt            |   5 +
 data/2122_S2/V004_211022/WM/SR.txt            |  13 +
 data/2122_S2/V004_211022/WM/TI.txt            |   5 +
 data/2122_S2/V004_211022/WM/modules.txt       |  15 +
 data/2122_S2/V004_211022/cursus.txt           |   3 +
 data/2122_S2/V004_211022/weeks.txt            |  13 +
 data/2122_S2/version.txt                      |   2 +
 data/2223_S1/V001_220708/S1/A1.txt            |  19 +
 data/2223_S1/V001_220708/S1/ASR1.txt          |  16 +
 data/2223_S1/V001_220708/S1/ASR2.txt          |  33 +
 data/2223_S1/V001_220708/S1/BD1.txt           |  30 +
 data/2223_S1/V001_220708/S1/C1.txt            |  23 +
 data/2223_S1/V001_220708/S1/DEV1.txt          |  95 +++
 data/2223_S1/V001_220708/S1/ECO1.txt          |  17 +
 data/2223_S1/V001_220708/S1/GP1.txt           |  25 +
 data/2223_S1/V001_220708/S1/M1.txt            |  27 +
 data/2223_S1/V001_220708/S1/M2.txt            |  19 +
 data/2223_S1/V001_220708/S1/PPP1.txt          |  14 +
 data/2223_S1/V001_220708/S1/WEB1.txt          |  28 +
 data/2223_S1/V001_220708/S1/modules.txt       |  12 +
 data/2223_S1/V001_220708/S3/A3.txt            |  25 +
 data/2223_S1/V001_220708/S3/ASR5.txt          |  28 +
 data/2223_S1/V001_220708/S3/ASR6.txt          |  18 +
 data/2223_S1/V001_220708/S3/BD3.txt           |  18 +
 data/2223_S1/V001_220708/S3/C3.txt            |  25 +
 data/2223_S1/V001_220708/S3/DEV4.txt          |  21 +
 data/2223_S1/V001_220708/S3/DEV5.txt          |  21 +
 data/2223_S1/V001_220708/S3/DI.txt            |  27 +
 data/2223_S1/V001_220708/S3/DR2.txt           |  57 ++
 data/2223_S1/V001_220708/S3/GP3.txt           |  29 +
 data/2223_S1/V001_220708/S3/M6.txt            |  27 +
 data/2223_S1/V001_220708/S3/M7.txt            |  27 +
 data/2223_S1/V001_220708/S3/PPP3.txt          |  23 +
 data/2223_S1/V001_220708/S3/QD2.txt           |  27 +
 data/2223_S1/V001_220708/S3/TI.txt            |  19 +
 data/2223_S1/V001_220708/S3/WEB2.txt          |  25 +
 data/2223_S1/V001_220708/S3/modules.txt       |  16 +
 data/2223_S1/V001_220708/cursus.txt           |   2 +
 data/2223_S1/V001_220708/weeks.txt            |  12 +
 data/2223_S1/version.txt                      |   2 +
 data/2223_S2/V001_220708/S2/A2.txt            |  20 +
 data/2223_S2/V001_220708/S2/BD2.txt           |  25 +
 data/2223_S2/V001_220708/S2/C2a.txt           |  14 +
 data/2223_S2/V001_220708/S2/C2b.txt           |  14 +
 data/2223_S2/V001_220708/S2/COO.txt           |  14 +
 data/2223_S2/V001_220708/S2/DR1.txt           |  16 +
 data/2223_S2/V001_220708/S2/ERG.txt           |  12 +
 data/2223_S2/V001_220708/S2/GP2.txt           |  29 +
 data/2223_S2/V001_220708/S2/IHM.txt           |  33 +
 data/2223_S2/V001_220708/S2/M3.txt            |  27 +
 data/2223_S2/V001_220708/S2/M4.txt            |  16 +
 data/2223_S2/V001_220708/S2/M5.txt            |  15 +
 data/2223_S2/V001_220708/S2/POO.txt           |  42 +
 data/2223_S2/V001_220708/S2/PPP2.txt          |  16 +
 data/2223_S2/V001_220708/S2/QD1.txt           |  10 +
 data/2223_S2/V001_220708/S2/RES.txt           |  48 ++
 data/2223_S2/V001_220708/S2/modules.txt       |  16 +
 data/2223_S2/V001_220708/S4/A4.txt            |  23 +
 data/2223_S2/V001_220708/S4/ASR8.txt          |  26 +
 data/2223_S2/V001_220708/S4/BD4.txt           |  22 +
 data/2223_S2/V001_220708/S4/C4.txt            |  22 +
 data/2223_S2/V001_220708/S4/DEV6.txt          |  31 +
 data/2223_S2/V001_220708/S4/DEV7.txt          |  30 +
 data/2223_S2/V001_220708/S4/GP4.txt           |  33 +
 data/2223_S2/V001_220708/S4/IG.txt            |  30 +
 data/2223_S2/V001_220708/S4/M10.txt           |  21 +
 data/2223_S2/V001_220708/S4/M11.txt           |  21 +
 data/2223_S2/V001_220708/S4/PPP4.txt          |  20 +
 data/2223_S2/V001_220708/S4/WEB3.txt          |  35 +
 data/2223_S2/V001_220708/S4/modules.txt       |  12 +
 data/2223_S2/V001_220708/cursus.txt           |   2 +
 data/2223_S2/V001_220708/weeks.txt            |  13 +
 data/2223_S2/version.txt                      |   2 +
 data/semestre.txt                             |   2 +
 doc/archiShukan.pdf                           | Bin 0 -> 60019 bytes
 doc/shukan.html                               | 188 +++++
 .../.gitignore                                |   3 +
 .../README.md                                 |   7 +
 .../bin/shukan.jar                            | Bin 0 -> 35188 bytes
 .../data/2122_S1/V001_210626/S1/ANG1.txt      |  20 +
 .../data/2122_S1/V001_210626/S1/ARC1.txt      |  16 +
 .../data/2122_S1/V001_210626/S1/BDD1.txt      |  25 +
 .../data/2122_S1/V001_210626/S1/DEV1.txt      |  94 +++
 .../data/2122_S1/V001_210626/S1/EC1.txt       |  20 +
 .../data/2122_S1/V001_210626/S1/EGO1.txt      |  25 +
 .../data/2122_S1/V001_210626/S1/EGO2.txt      |  19 +
 .../data/2122_S1/V001_210626/S1/M1.txt        |  27 +
 .../data/2122_S1/V001_210626/S1/M2.txt        |  19 +
 .../data/2122_S1/V001_210626/S1/PPP1.txt      |   8 +
 .../data/2122_S1/V001_210626/S1/SYS1.txt      |  20 +
 .../data/2122_S1/V001_210626/S1/WEB1.txt      |  29 +
 .../data/2122_S1/V001_210626/S1/modules.txt   |  12 +
 .../data/2122_S1/V001_210626/S3/ACD4.txt      |  30 +
 .../data/2122_S1/V001_210626/S3/ACD5.txt      |  19 +
 .../data/2122_S1/V001_210626/S3/ANG3.txt      |  28 +
 .../data/2122_S1/V001_210626/S3/APL3.txt      |  22 +
 .../data/2122_S1/V001_210626/S3/ASR4.txt      |  25 +
 .../data/2122_S1/V001_210626/S3/ASR5.txt      |   8 +
 .../data/2122_S1/V001_210626/S3/BD3.txt       |  21 +
 .../data/2122_S1/V001_210626/S3/EC3.txt       |  12 +
 .../data/2122_S1/V001_210626/S3/EGO5.txt      |  27 +
 .../data/2122_S1/V001_210626/S3/EGO6.txt      |  24 +
 .../data/2122_S1/V001_210626/S3/M5.txt        |  29 +
 .../data/2122_S1/V001_210626/S3/M6.txt        |  21 +
 .../data/2122_S1/V001_210626/S3/PPP3.txt      |   9 +
 .../data/2122_S1/V001_210626/S3/WIM2.txt      |  21 +
 .../data/2122_S1/V001_210626/S3/modules.txt   |  14 +
 .../data/2122_S1/V001_210626/cursus.txt       |   2 +
 .../data/2122_S1/V001_210626/weeks.txt        |  12 +
 .../data/2122_S1/V007_210716/S1/ADO.txt       |  16 +
 .../data/2122_S1/V007_210716/S1/AT.txt        |  20 +
 .../data/2122_S1/V007_210716/S1/BD1.txt       |  25 +
 .../data/2122_S1/V007_210716/S1/C1.txt        |  20 +
 .../data/2122_S1/V007_210716/S1/DEV.txt       |  97 +++
 .../data/2122_S1/V007_210716/S1/ECO.txt       |  19 +
 .../data/2122_S1/V007_210716/S1/GP1.txt       |  25 +
 .../data/2122_S1/V007_210716/S1/MD.txt        |  27 +
 .../data/2122_S1/V007_210716/S1/MF.txt        |  19 +
 .../data/2122_S1/V007_210716/S1/PIX.txt       |  17 +
 .../data/2122_S1/V007_210716/S1/PPP1.txt      |   8 +
 .../data/2122_S1/V007_210716/S1/SE.txt        |  20 +
 .../data/2122_S1/V007_210716/S1/WEB.txt       |  16 +
 .../data/2122_S1/V007_210716/S1/modules.txt   |  13 +
 .../data/2122_S1/V007_210716/S3/ACD4.txt      |  30 +
 .../data/2122_S1/V007_210716/S3/ACD5.txt      |  19 +
 .../data/2122_S1/V007_210716/S3/ANG3.txt      |  28 +
 .../data/2122_S1/V007_210716/S3/APL3.txt      |  22 +
 .../data/2122_S1/V007_210716/S3/ASR4.txt      |  25 +
 .../data/2122_S1/V007_210716/S3/ASR5.txt      |  17 +
 .../data/2122_S1/V007_210716/S3/BD3.txt       |  21 +
 .../data/2122_S1/V007_210716/S3/EC3.txt       |  12 +
 .../data/2122_S1/V007_210716/S3/EGO5.txt      |  27 +
 .../data/2122_S1/V007_210716/S3/EGO6.txt      |  24 +
 .../data/2122_S1/V007_210716/S3/M5.txt        |  29 +
 .../data/2122_S1/V007_210716/S3/M6.txt        |  21 +
 .../data/2122_S1/V007_210716/S3/PPP3.txt      |   9 +
 .../data/2122_S1/V007_210716/S3/WIM2.txt      |  21 +
 .../data/2122_S1/V007_210716/S3/modules.txt   |  14 +
 .../data/2122_S1/V007_210716/cursus.txt       |   2 +
 .../data/2122_S1/V007_210716/weeks.txt        |  12 +
 .../data/2122_S1/version.txt                  |   2 +
 .../data/2122_S2/V001_211016/IN/ANG4.txt      |  21 +
 .../data/2122_S2/V001_211016/IN/CE.txt        |   5 +
 .../data/2122_S2/V001_211016/IN/CI.txt        |  21 +
 .../data/2122_S2/V001_211016/IN/EC4.txt       |  11 +
 .../data/2122_S2/V001_211016/IN/IA.txt        |   5 +
 .../data/2122_S2/V001_211016/IN/IG.txt        |  19 +
 .../data/2122_S2/V001_211016/IN/MD.txt        |   5 +
 .../data/2122_S2/V001_211016/IN/MG.txt        |  18 +
 .../data/2122_S2/V001_211016/IN/MI.txt        |  20 +
 .../data/2122_S2/V001_211016/IN/PG.txt        |  18 +
 .../data/2122_S2/V001_211016/IN/PM.txt        |   5 +
 .../data/2122_S2/V001_211016/IN/PR.txt        |   5 +
 .../data/2122_S2/V001_211016/IN/SI.txt        |  19 +
 .../data/2122_S2/V001_211016/IN/SR.txt        |   5 +
 .../data/2122_S2/V001_211016/IN/TI.txt        |  21 +
 .../data/2122_S2/V001_211016/IN/modules.txt   |  15 +
 .../data/2122_S2/V001_211016/S2/AE.txt        |  23 +
 .../data/2122_S2/V001_211016/S2/BD2.txt       |  19 +
 .../data/2122_S2/V001_211016/S2/C2.txt        |  13 +
 .../data/2122_S2/V001_211016/S2/COO.txt       |  13 +
 .../data/2122_S2/V001_211016/S2/DCN.txt       |  16 +
 .../data/2122_S2/V001_211016/S2/ERG.txt       |  17 +
 .../data/2122_S2/V001_211016/S2/GP2a.txt      |  21 +
 .../data/2122_S2/V001_211016/S2/GP2b.txt      |  19 +
 .../data/2122_S2/V001_211016/S2/IHM.txt       |  33 +
 .../data/2122_S2/V001_211016/S2/MG.txt        |  26 +
 .../data/2122_S2/V001_211016/S2/MN.txt        |  13 +
 .../data/2122_S2/V001_211016/S2/MS.txt        |  15 +
 .../data/2122_S2/V001_211016/S2/POO.txt       |  47 ++
 .../data/2122_S2/V001_211016/S2/PPP2.txt      |  11 +
 .../data/2122_S2/V001_211016/S2/QD.txt        |   9 +
 .../data/2122_S2/V001_211016/S2/RES.txt       |  47 ++
 .../data/2122_S2/V001_211016/S2/modules.txt   |  16 +
 .../data/2122_S2/V001_211016/WM/ANG4.txt      |  21 +
 .../data/2122_S2/V001_211016/WM/CE.txt        |  21 +
 .../data/2122_S2/V001_211016/WM/CI.txt        |   5 +
 .../data/2122_S2/V001_211016/WM/EC4.txt       |  11 +
 .../data/2122_S2/V001_211016/WM/IA.txt        |  39 +
 .../data/2122_S2/V001_211016/WM/IG.txt        |   5 +
 .../data/2122_S2/V001_211016/WM/MD.txt        |  23 +
 .../data/2122_S2/V001_211016/WM/MG.txt        |   5 +
 .../data/2122_S2/V001_211016/WM/MI.txt        |   5 +
 .../data/2122_S2/V001_211016/WM/PG.txt        |   5 +
 .../data/2122_S2/V001_211016/WM/PM.txt        |  17 +
 .../data/2122_S2/V001_211016/WM/PR.txt        |  31 +
 .../data/2122_S2/V001_211016/WM/SI.txt        |   5 +
 .../data/2122_S2/V001_211016/WM/SR.txt        |  13 +
 .../data/2122_S2/V001_211016/WM/TI.txt        |   5 +
 .../data/2122_S2/V001_211016/WM/modules.txt   |  15 +
 .../data/2122_S2/V001_211016/cursus.txt       |   3 +
 .../data/2122_S2/V001_211016/weeks.txt        |  13 +
 .../data/2122_S2/V004_211022/IN/ANG4.txt      |  21 +
 .../data/2122_S2/V004_211022/IN/CE.txt        |   5 +
 .../data/2122_S2/V004_211022/IN/CI.txt        |  21 +
 .../data/2122_S2/V004_211022/IN/EC4.txt       |  11 +
 .../data/2122_S2/V004_211022/IN/IA.txt        |   5 +
 .../data/2122_S2/V004_211022/IN/IG.txt        |  19 +
 .../data/2122_S2/V004_211022/IN/MD.txt        |   5 +
 .../data/2122_S2/V004_211022/IN/MG.txt        |  18 +
 .../data/2122_S2/V004_211022/IN/MI.txt        |  20 +
 .../data/2122_S2/V004_211022/IN/PG.txt        |  18 +
 .../data/2122_S2/V004_211022/IN/PM.txt        |   5 +
 .../data/2122_S2/V004_211022/IN/PR.txt        |   5 +
 .../data/2122_S2/V004_211022/IN/SI.txt        |  19 +
 .../data/2122_S2/V004_211022/IN/SR.txt        |   5 +
 .../data/2122_S2/V004_211022/IN/TI.txt        |  21 +
 .../data/2122_S2/V004_211022/IN/modules.txt   |  15 +
 .../data/2122_S2/V004_211022/S2/AE.txt        |  23 +
 .../data/2122_S2/V004_211022/S2/BD2.txt       |  19 +
 .../data/2122_S2/V004_211022/S2/C2.txt        |  13 +
 .../data/2122_S2/V004_211022/S2/COO.txt       |  13 +
 .../data/2122_S2/V004_211022/S2/DCN.txt       |  16 +
 .../data/2122_S2/V004_211022/S2/ERG.txt       |  17 +
 .../data/2122_S2/V004_211022/S2/GP2a.txt      |  21 +
 .../data/2122_S2/V004_211022/S2/GP2b.txt      |  19 +
 .../data/2122_S2/V004_211022/S2/IHM.txt       |  33 +
 .../data/2122_S2/V004_211022/S2/MG.txt        |  26 +
 .../data/2122_S2/V004_211022/S2/MN.txt        |  14 +
 .../data/2122_S2/V004_211022/S2/MS.txt        |  15 +
 .../data/2122_S2/V004_211022/S2/POO.txt       |  51 ++
 .../data/2122_S2/V004_211022/S2/PPP2.txt      |  11 +
 .../data/2122_S2/V004_211022/S2/QD.txt        |   9 +
 .../data/2122_S2/V004_211022/S2/RES.txt       |  47 ++
 .../data/2122_S2/V004_211022/S2/modules.txt   |  16 +
 .../data/2122_S2/V004_211022/WM/ANG4.txt      |  21 +
 .../data/2122_S2/V004_211022/WM/CE.txt        |  21 +
 .../data/2122_S2/V004_211022/WM/CI.txt        |   5 +
 .../data/2122_S2/V004_211022/WM/EC4.txt       |  11 +
 .../data/2122_S2/V004_211022/WM/IA.txt        |  39 +
 .../data/2122_S2/V004_211022/WM/IG.txt        |   5 +
 .../data/2122_S2/V004_211022/WM/MD.txt        |  23 +
 .../data/2122_S2/V004_211022/WM/MG.txt        |   5 +
 .../data/2122_S2/V004_211022/WM/MI.txt        |   5 +
 .../data/2122_S2/V004_211022/WM/PG.txt        |   5 +
 .../data/2122_S2/V004_211022/WM/PM.txt        |  17 +
 .../data/2122_S2/V004_211022/WM/PR.txt        |  31 +
 .../data/2122_S2/V004_211022/WM/SI.txt        |   5 +
 .../data/2122_S2/V004_211022/WM/SR.txt        |  13 +
 .../data/2122_S2/V004_211022/WM/TI.txt        |   5 +
 .../data/2122_S2/V004_211022/WM/modules.txt   |  15 +
 .../data/2122_S2/V004_211022/cursus.txt       |   3 +
 .../data/2122_S2/V004_211022/weeks.txt        |  13 +
 .../data/2122_S2/version.txt                  |   2 +
 .../data/2223_S1/V001_220708/S1/A1.txt        |  19 +
 .../data/2223_S1/V001_220708/S1/ASR1.txt      |  16 +
 .../data/2223_S1/V001_220708/S1/ASR2.txt      |  33 +
 .../data/2223_S1/V001_220708/S1/BD1.txt       |  30 +
 .../data/2223_S1/V001_220708/S1/C1.txt        |  23 +
 .../data/2223_S1/V001_220708/S1/DEV1.txt      |  95 +++
 .../data/2223_S1/V001_220708/S1/ECO1.txt      |  17 +
 .../data/2223_S1/V001_220708/S1/GP1.txt       |  25 +
 .../data/2223_S1/V001_220708/S1/M1.txt        |  27 +
 .../data/2223_S1/V001_220708/S1/M2.txt        |  19 +
 .../data/2223_S1/V001_220708/S1/PPP1.txt      |  14 +
 .../data/2223_S1/V001_220708/S1/WEB1.txt      |  28 +
 .../data/2223_S1/V001_220708/S1/modules.txt   |  12 +
 .../data/2223_S1/V001_220708/S3/A3.txt        |  25 +
 .../data/2223_S1/V001_220708/S3/ASR5.txt      |  28 +
 .../data/2223_S1/V001_220708/S3/ASR6.txt      |  18 +
 .../data/2223_S1/V001_220708/S3/BD3.txt       |  18 +
 .../data/2223_S1/V001_220708/S3/C3.txt        |  25 +
 .../data/2223_S1/V001_220708/S3/DEV4.txt      |  21 +
 .../data/2223_S1/V001_220708/S3/DEV5.txt      |  21 +
 .../data/2223_S1/V001_220708/S3/DI.txt        |  27 +
 .../data/2223_S1/V001_220708/S3/DR2.txt       |  57 ++
 .../data/2223_S1/V001_220708/S3/GP3.txt       |  29 +
 .../data/2223_S1/V001_220708/S3/M6.txt        |  27 +
 .../data/2223_S1/V001_220708/S3/M7.txt        |  27 +
 .../data/2223_S1/V001_220708/S3/PPP3.txt      |  23 +
 .../data/2223_S1/V001_220708/S3/QD2.txt       |  27 +
 .../data/2223_S1/V001_220708/S3/TI.txt        |  19 +
 .../data/2223_S1/V001_220708/S3/WEB2.txt      |  25 +
 .../data/2223_S1/V001_220708/S3/modules.txt   |  16 +
 .../data/2223_S1/V001_220708/cursus.txt       |   2 +
 .../data/2223_S1/V001_220708/weeks.txt        |  12 +
 .../data/2223_S1/version.txt                  |   2 +
 .../data/2223_S2/V001_220708/S2/A2.txt        |  20 +
 .../data/2223_S2/V001_220708/S2/BD2.txt       |  25 +
 .../data/2223_S2/V001_220708/S2/C2a.txt       |  14 +
 .../data/2223_S2/V001_220708/S2/C2b.txt       |  14 +
 .../data/2223_S2/V001_220708/S2/COO.txt       |  14 +
 .../data/2223_S2/V001_220708/S2/DR1.txt       |  16 +
 .../data/2223_S2/V001_220708/S2/ERG.txt       |  12 +
 .../data/2223_S2/V001_220708/S2/GP2.txt       |  29 +
 .../data/2223_S2/V001_220708/S2/IHM.txt       |  33 +
 .../data/2223_S2/V001_220708/S2/M3.txt        |  27 +
 .../data/2223_S2/V001_220708/S2/M4.txt        |  16 +
 .../data/2223_S2/V001_220708/S2/M5.txt        |  15 +
 .../data/2223_S2/V001_220708/S2/POO.txt       |  42 +
 .../data/2223_S2/V001_220708/S2/PPP2.txt      |  16 +
 .../data/2223_S2/V001_220708/S2/QD1.txt       |  10 +
 .../data/2223_S2/V001_220708/S2/RES.txt       |  48 ++
 .../data/2223_S2/V001_220708/S2/modules.txt   |  16 +
 .../data/2223_S2/V001_220708/S4/A4.txt        |  23 +
 .../data/2223_S2/V001_220708/S4/ASR8.txt      |  26 +
 .../data/2223_S2/V001_220708/S4/BD4.txt       |  22 +
 .../data/2223_S2/V001_220708/S4/C4.txt        |  22 +
 .../data/2223_S2/V001_220708/S4/DEV6.txt      |  31 +
 .../data/2223_S2/V001_220708/S4/DEV7.txt      |  30 +
 .../data/2223_S2/V001_220708/S4/GP4.txt       |  33 +
 .../data/2223_S2/V001_220708/S4/IG.txt        |  30 +
 .../data/2223_S2/V001_220708/S4/M10.txt       |  21 +
 .../data/2223_S2/V001_220708/S4/M11.txt       |  21 +
 .../data/2223_S2/V001_220708/S4/PPP4.txt      |  20 +
 .../data/2223_S2/V001_220708/S4/WEB3.txt      |  35 +
 .../data/2223_S2/V001_220708/S4/modules.txt   |  12 +
 .../data/2223_S2/V001_220708/cursus.txt       |   2 +
 .../data/2223_S2/V001_220708/weeks.txt        |  13 +
 .../data/2223_S2/version.txt                  |   2 +
 .../data/semestre.txt                         |   2 +
 .../doc/archiShukan.pdf                       | Bin 0 -> 60019 bytes
 .../doc/shukan.html                           | 188 +++++
 .../shukan/info.txt                           |   5 +
 shukan/Shukan.java                            |  81 ++
 shukan/ShukanController.java                  | 204 +++++
 shukan/ShukanData.java                        | 679 ++++++++++++++++
 shukan/ShukanIO.java                          | 746 ++++++++++++++++++
 shukan/ShukanList.java                        |  91 +++
 shukan/ShukanModule.java                      | 454 +++++++++++
 shukan/ShukanQueue.java                       | 107 +++
 shukan/ShukanSchedule.java                    | 178 +++++
 shukan/ShukanSemester.java                    | 163 ++++
 shukan/ShukanTex.java                         | 373 +++++++++
 shukan/ShukanView.java                        | 379 +++++++++
 shukan/info.txt                               |   5 +
 485 files changed, 12825 insertions(+)
 create mode 100644 bin/shukan.jar
 create mode 100644 data/2122_S1/V001_210626/S1/ANG1.txt
 create mode 100644 data/2122_S1/V001_210626/S1/ARC1.txt
 create mode 100644 data/2122_S1/V001_210626/S1/BDD1.txt
 create mode 100644 data/2122_S1/V001_210626/S1/DEV1.txt
 create mode 100644 data/2122_S1/V001_210626/S1/EC1.txt
 create mode 100644 data/2122_S1/V001_210626/S1/EGO1.txt
 create mode 100644 data/2122_S1/V001_210626/S1/EGO2.txt
 create mode 100644 data/2122_S1/V001_210626/S1/M1.txt
 create mode 100644 data/2122_S1/V001_210626/S1/M2.txt
 create mode 100644 data/2122_S1/V001_210626/S1/PPP1.txt
 create mode 100644 data/2122_S1/V001_210626/S1/SYS1.txt
 create mode 100644 data/2122_S1/V001_210626/S1/WEB1.txt
 create mode 100644 data/2122_S1/V001_210626/S1/modules.txt
 create mode 100644 data/2122_S1/V001_210626/S3/ACD4.txt
 create mode 100644 data/2122_S1/V001_210626/S3/ACD5.txt
 create mode 100644 data/2122_S1/V001_210626/S3/ANG3.txt
 create mode 100644 data/2122_S1/V001_210626/S3/APL3.txt
 create mode 100644 data/2122_S1/V001_210626/S3/ASR4.txt
 create mode 100644 data/2122_S1/V001_210626/S3/ASR5.txt
 create mode 100644 data/2122_S1/V001_210626/S3/BD3.txt
 create mode 100644 data/2122_S1/V001_210626/S3/EC3.txt
 create mode 100644 data/2122_S1/V001_210626/S3/EGO5.txt
 create mode 100644 data/2122_S1/V001_210626/S3/EGO6.txt
 create mode 100644 data/2122_S1/V001_210626/S3/M5.txt
 create mode 100644 data/2122_S1/V001_210626/S3/M6.txt
 create mode 100644 data/2122_S1/V001_210626/S3/PPP3.txt
 create mode 100644 data/2122_S1/V001_210626/S3/WIM2.txt
 create mode 100644 data/2122_S1/V001_210626/S3/modules.txt
 create mode 100644 data/2122_S1/V001_210626/cursus.txt
 create mode 100644 data/2122_S1/V001_210626/weeks.txt
 create mode 100644 data/2122_S1/V007_210716/S1/ADO.txt
 create mode 100644 data/2122_S1/V007_210716/S1/AT.txt
 create mode 100644 data/2122_S1/V007_210716/S1/BD1.txt
 create mode 100644 data/2122_S1/V007_210716/S1/C1.txt
 create mode 100644 data/2122_S1/V007_210716/S1/DEV.txt
 create mode 100644 data/2122_S1/V007_210716/S1/ECO.txt
 create mode 100644 data/2122_S1/V007_210716/S1/GP1.txt
 create mode 100644 data/2122_S1/V007_210716/S1/MD.txt
 create mode 100644 data/2122_S1/V007_210716/S1/MF.txt
 create mode 100644 data/2122_S1/V007_210716/S1/PIX.txt
 create mode 100644 data/2122_S1/V007_210716/S1/PPP1.txt
 create mode 100644 data/2122_S1/V007_210716/S1/SE.txt
 create mode 100644 data/2122_S1/V007_210716/S1/WEB.txt
 create mode 100644 data/2122_S1/V007_210716/S1/modules.txt
 create mode 100644 data/2122_S1/V007_210716/S3/ACD4.txt
 create mode 100644 data/2122_S1/V007_210716/S3/ACD5.txt
 create mode 100644 data/2122_S1/V007_210716/S3/ANG3.txt
 create mode 100644 data/2122_S1/V007_210716/S3/APL3.txt
 create mode 100644 data/2122_S1/V007_210716/S3/ASR4.txt
 create mode 100644 data/2122_S1/V007_210716/S3/ASR5.txt
 create mode 100644 data/2122_S1/V007_210716/S3/BD3.txt
 create mode 100644 data/2122_S1/V007_210716/S3/EC3.txt
 create mode 100644 data/2122_S1/V007_210716/S3/EGO5.txt
 create mode 100644 data/2122_S1/V007_210716/S3/EGO6.txt
 create mode 100644 data/2122_S1/V007_210716/S3/M5.txt
 create mode 100644 data/2122_S1/V007_210716/S3/M6.txt
 create mode 100644 data/2122_S1/V007_210716/S3/PPP3.txt
 create mode 100644 data/2122_S1/V007_210716/S3/WIM2.txt
 create mode 100644 data/2122_S1/V007_210716/S3/modules.txt
 create mode 100644 data/2122_S1/V007_210716/cursus.txt
 create mode 100644 data/2122_S1/V007_210716/weeks.txt
 create mode 100644 data/2122_S1/version.txt
 create mode 100644 data/2122_S2/V001_211016/IN/ANG4.txt
 create mode 100644 data/2122_S2/V001_211016/IN/CE.txt
 create mode 100644 data/2122_S2/V001_211016/IN/CI.txt
 create mode 100644 data/2122_S2/V001_211016/IN/EC4.txt
 create mode 100644 data/2122_S2/V001_211016/IN/IA.txt
 create mode 100644 data/2122_S2/V001_211016/IN/IG.txt
 create mode 100644 data/2122_S2/V001_211016/IN/MD.txt
 create mode 100644 data/2122_S2/V001_211016/IN/MG.txt
 create mode 100644 data/2122_S2/V001_211016/IN/MI.txt
 create mode 100644 data/2122_S2/V001_211016/IN/PG.txt
 create mode 100644 data/2122_S2/V001_211016/IN/PM.txt
 create mode 100644 data/2122_S2/V001_211016/IN/PR.txt
 create mode 100644 data/2122_S2/V001_211016/IN/SI.txt
 create mode 100644 data/2122_S2/V001_211016/IN/SR.txt
 create mode 100644 data/2122_S2/V001_211016/IN/TI.txt
 create mode 100644 data/2122_S2/V001_211016/IN/modules.txt
 create mode 100644 data/2122_S2/V001_211016/S2/AE.txt
 create mode 100644 data/2122_S2/V001_211016/S2/BD2.txt
 create mode 100644 data/2122_S2/V001_211016/S2/C2.txt
 create mode 100644 data/2122_S2/V001_211016/S2/COO.txt
 create mode 100644 data/2122_S2/V001_211016/S2/DCN.txt
 create mode 100644 data/2122_S2/V001_211016/S2/ERG.txt
 create mode 100644 data/2122_S2/V001_211016/S2/GP2a.txt
 create mode 100644 data/2122_S2/V001_211016/S2/GP2b.txt
 create mode 100644 data/2122_S2/V001_211016/S2/IHM.txt
 create mode 100644 data/2122_S2/V001_211016/S2/MG.txt
 create mode 100644 data/2122_S2/V001_211016/S2/MN.txt
 create mode 100644 data/2122_S2/V001_211016/S2/MS.txt
 create mode 100644 data/2122_S2/V001_211016/S2/POO.txt
 create mode 100644 data/2122_S2/V001_211016/S2/PPP2.txt
 create mode 100644 data/2122_S2/V001_211016/S2/QD.txt
 create mode 100644 data/2122_S2/V001_211016/S2/RES.txt
 create mode 100644 data/2122_S2/V001_211016/S2/modules.txt
 create mode 100644 data/2122_S2/V001_211016/WM/ANG4.txt
 create mode 100644 data/2122_S2/V001_211016/WM/CE.txt
 create mode 100644 data/2122_S2/V001_211016/WM/CI.txt
 create mode 100644 data/2122_S2/V001_211016/WM/EC4.txt
 create mode 100644 data/2122_S2/V001_211016/WM/IA.txt
 create mode 100644 data/2122_S2/V001_211016/WM/IG.txt
 create mode 100644 data/2122_S2/V001_211016/WM/MD.txt
 create mode 100644 data/2122_S2/V001_211016/WM/MG.txt
 create mode 100644 data/2122_S2/V001_211016/WM/MI.txt
 create mode 100644 data/2122_S2/V001_211016/WM/PG.txt
 create mode 100644 data/2122_S2/V001_211016/WM/PM.txt
 create mode 100644 data/2122_S2/V001_211016/WM/PR.txt
 create mode 100644 data/2122_S2/V001_211016/WM/SI.txt
 create mode 100644 data/2122_S2/V001_211016/WM/SR.txt
 create mode 100644 data/2122_S2/V001_211016/WM/TI.txt
 create mode 100644 data/2122_S2/V001_211016/WM/modules.txt
 create mode 100644 data/2122_S2/V001_211016/cursus.txt
 create mode 100644 data/2122_S2/V001_211016/weeks.txt
 create mode 100644 data/2122_S2/V004_211022/IN/ANG4.txt
 create mode 100644 data/2122_S2/V004_211022/IN/CE.txt
 create mode 100644 data/2122_S2/V004_211022/IN/CI.txt
 create mode 100644 data/2122_S2/V004_211022/IN/EC4.txt
 create mode 100644 data/2122_S2/V004_211022/IN/IA.txt
 create mode 100644 data/2122_S2/V004_211022/IN/IG.txt
 create mode 100644 data/2122_S2/V004_211022/IN/MD.txt
 create mode 100644 data/2122_S2/V004_211022/IN/MG.txt
 create mode 100644 data/2122_S2/V004_211022/IN/MI.txt
 create mode 100644 data/2122_S2/V004_211022/IN/PG.txt
 create mode 100644 data/2122_S2/V004_211022/IN/PM.txt
 create mode 100644 data/2122_S2/V004_211022/IN/PR.txt
 create mode 100644 data/2122_S2/V004_211022/IN/SI.txt
 create mode 100644 data/2122_S2/V004_211022/IN/SR.txt
 create mode 100644 data/2122_S2/V004_211022/IN/TI.txt
 create mode 100644 data/2122_S2/V004_211022/IN/modules.txt
 create mode 100644 data/2122_S2/V004_211022/S2/AE.txt
 create mode 100644 data/2122_S2/V004_211022/S2/BD2.txt
 create mode 100644 data/2122_S2/V004_211022/S2/C2.txt
 create mode 100644 data/2122_S2/V004_211022/S2/COO.txt
 create mode 100644 data/2122_S2/V004_211022/S2/DCN.txt
 create mode 100644 data/2122_S2/V004_211022/S2/ERG.txt
 create mode 100644 data/2122_S2/V004_211022/S2/GP2a.txt
 create mode 100644 data/2122_S2/V004_211022/S2/GP2b.txt
 create mode 100644 data/2122_S2/V004_211022/S2/IHM.txt
 create mode 100644 data/2122_S2/V004_211022/S2/MG.txt
 create mode 100644 data/2122_S2/V004_211022/S2/MN.txt
 create mode 100644 data/2122_S2/V004_211022/S2/MS.txt
 create mode 100644 data/2122_S2/V004_211022/S2/POO.txt
 create mode 100644 data/2122_S2/V004_211022/S2/PPP2.txt
 create mode 100644 data/2122_S2/V004_211022/S2/QD.txt
 create mode 100644 data/2122_S2/V004_211022/S2/RES.txt
 create mode 100644 data/2122_S2/V004_211022/S2/modules.txt
 create mode 100644 data/2122_S2/V004_211022/WM/ANG4.txt
 create mode 100644 data/2122_S2/V004_211022/WM/CE.txt
 create mode 100644 data/2122_S2/V004_211022/WM/CI.txt
 create mode 100644 data/2122_S2/V004_211022/WM/EC4.txt
 create mode 100644 data/2122_S2/V004_211022/WM/IA.txt
 create mode 100644 data/2122_S2/V004_211022/WM/IG.txt
 create mode 100644 data/2122_S2/V004_211022/WM/MD.txt
 create mode 100644 data/2122_S2/V004_211022/WM/MG.txt
 create mode 100644 data/2122_S2/V004_211022/WM/MI.txt
 create mode 100644 data/2122_S2/V004_211022/WM/PG.txt
 create mode 100644 data/2122_S2/V004_211022/WM/PM.txt
 create mode 100644 data/2122_S2/V004_211022/WM/PR.txt
 create mode 100644 data/2122_S2/V004_211022/WM/SI.txt
 create mode 100644 data/2122_S2/V004_211022/WM/SR.txt
 create mode 100644 data/2122_S2/V004_211022/WM/TI.txt
 create mode 100644 data/2122_S2/V004_211022/WM/modules.txt
 create mode 100644 data/2122_S2/V004_211022/cursus.txt
 create mode 100644 data/2122_S2/V004_211022/weeks.txt
 create mode 100644 data/2122_S2/version.txt
 create mode 100644 data/2223_S1/V001_220708/S1/A1.txt
 create mode 100644 data/2223_S1/V001_220708/S1/ASR1.txt
 create mode 100644 data/2223_S1/V001_220708/S1/ASR2.txt
 create mode 100644 data/2223_S1/V001_220708/S1/BD1.txt
 create mode 100644 data/2223_S1/V001_220708/S1/C1.txt
 create mode 100644 data/2223_S1/V001_220708/S1/DEV1.txt
 create mode 100644 data/2223_S1/V001_220708/S1/ECO1.txt
 create mode 100644 data/2223_S1/V001_220708/S1/GP1.txt
 create mode 100644 data/2223_S1/V001_220708/S1/M1.txt
 create mode 100644 data/2223_S1/V001_220708/S1/M2.txt
 create mode 100644 data/2223_S1/V001_220708/S1/PPP1.txt
 create mode 100644 data/2223_S1/V001_220708/S1/WEB1.txt
 create mode 100644 data/2223_S1/V001_220708/S1/modules.txt
 create mode 100644 data/2223_S1/V001_220708/S3/A3.txt
 create mode 100644 data/2223_S1/V001_220708/S3/ASR5.txt
 create mode 100644 data/2223_S1/V001_220708/S3/ASR6.txt
 create mode 100644 data/2223_S1/V001_220708/S3/BD3.txt
 create mode 100644 data/2223_S1/V001_220708/S3/C3.txt
 create mode 100644 data/2223_S1/V001_220708/S3/DEV4.txt
 create mode 100644 data/2223_S1/V001_220708/S3/DEV5.txt
 create mode 100644 data/2223_S1/V001_220708/S3/DI.txt
 create mode 100644 data/2223_S1/V001_220708/S3/DR2.txt
 create mode 100644 data/2223_S1/V001_220708/S3/GP3.txt
 create mode 100644 data/2223_S1/V001_220708/S3/M6.txt
 create mode 100644 data/2223_S1/V001_220708/S3/M7.txt
 create mode 100644 data/2223_S1/V001_220708/S3/PPP3.txt
 create mode 100644 data/2223_S1/V001_220708/S3/QD2.txt
 create mode 100644 data/2223_S1/V001_220708/S3/TI.txt
 create mode 100644 data/2223_S1/V001_220708/S3/WEB2.txt
 create mode 100644 data/2223_S1/V001_220708/S3/modules.txt
 create mode 100644 data/2223_S1/V001_220708/cursus.txt
 create mode 100644 data/2223_S1/V001_220708/weeks.txt
 create mode 100644 data/2223_S1/version.txt
 create mode 100644 data/2223_S2/V001_220708/S2/A2.txt
 create mode 100644 data/2223_S2/V001_220708/S2/BD2.txt
 create mode 100644 data/2223_S2/V001_220708/S2/C2a.txt
 create mode 100644 data/2223_S2/V001_220708/S2/C2b.txt
 create mode 100644 data/2223_S2/V001_220708/S2/COO.txt
 create mode 100644 data/2223_S2/V001_220708/S2/DR1.txt
 create mode 100644 data/2223_S2/V001_220708/S2/ERG.txt
 create mode 100644 data/2223_S2/V001_220708/S2/GP2.txt
 create mode 100644 data/2223_S2/V001_220708/S2/IHM.txt
 create mode 100644 data/2223_S2/V001_220708/S2/M3.txt
 create mode 100644 data/2223_S2/V001_220708/S2/M4.txt
 create mode 100644 data/2223_S2/V001_220708/S2/M5.txt
 create mode 100644 data/2223_S2/V001_220708/S2/POO.txt
 create mode 100644 data/2223_S2/V001_220708/S2/PPP2.txt
 create mode 100644 data/2223_S2/V001_220708/S2/QD1.txt
 create mode 100644 data/2223_S2/V001_220708/S2/RES.txt
 create mode 100644 data/2223_S2/V001_220708/S2/modules.txt
 create mode 100644 data/2223_S2/V001_220708/S4/A4.txt
 create mode 100644 data/2223_S2/V001_220708/S4/ASR8.txt
 create mode 100644 data/2223_S2/V001_220708/S4/BD4.txt
 create mode 100644 data/2223_S2/V001_220708/S4/C4.txt
 create mode 100644 data/2223_S2/V001_220708/S4/DEV6.txt
 create mode 100644 data/2223_S2/V001_220708/S4/DEV7.txt
 create mode 100644 data/2223_S2/V001_220708/S4/GP4.txt
 create mode 100644 data/2223_S2/V001_220708/S4/IG.txt
 create mode 100644 data/2223_S2/V001_220708/S4/M10.txt
 create mode 100644 data/2223_S2/V001_220708/S4/M11.txt
 create mode 100644 data/2223_S2/V001_220708/S4/PPP4.txt
 create mode 100644 data/2223_S2/V001_220708/S4/WEB3.txt
 create mode 100644 data/2223_S2/V001_220708/S4/modules.txt
 create mode 100644 data/2223_S2/V001_220708/cursus.txt
 create mode 100644 data/2223_S2/V001_220708/weeks.txt
 create mode 100644 data/2223_S2/version.txt
 create mode 100644 data/semestre.txt
 create mode 100644 doc/archiShukan.pdf
 create mode 100644 doc/shukan.html
 create mode 100644 out/production/sae2.01-developpement-application/.gitignore
 create mode 100644 out/production/sae2.01-developpement-application/README.md
 create mode 100644 out/production/sae2.01-developpement-application/bin/shukan.jar
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/ANG1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/ARC1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/BDD1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/DEV1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EC1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EGO1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EGO2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/M1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/M2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/PPP1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/SYS1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/WEB1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ACD4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ACD5.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ANG3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/APL3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ASR4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ASR5.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/BD3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EC3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EGO5.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EGO6.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/M5.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/M6.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/PPP3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/WIM2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/cursus.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/weeks.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/ADO.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/AT.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/BD1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/C1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/DEV.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/ECO.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/GP1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/MD.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/MF.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/PIX.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/PPP1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/SE.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/WEB.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ACD4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ACD5.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ANG3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/APL3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ASR4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ASR5.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/BD3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EC3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EGO5.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EGO6.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/M5.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/M6.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/PPP3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/WIM2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/cursus.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/weeks.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S1/version.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/ANG4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/CE.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/CI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/EC4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/IA.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/IG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MD.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PM.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PR.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/SI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/SR.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/TI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/AE.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/BD2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/C2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/COO.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/DCN.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/ERG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/GP2a.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/GP2b.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/IHM.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MN.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MS.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/POO.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/PPP2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/QD.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/RES.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/ANG4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/CE.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/CI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/EC4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/IA.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/IG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MD.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PM.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PR.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/SI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/SR.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/TI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/cursus.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/weeks.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/ANG4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/CE.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/CI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/EC4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/IA.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/IG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MD.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PM.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PR.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/SI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/SR.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/TI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/AE.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/BD2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/C2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/COO.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/DCN.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/ERG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/GP2a.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/GP2b.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/IHM.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MN.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MS.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/POO.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/PPP2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/QD.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/RES.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/ANG4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/CE.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/CI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/EC4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/IA.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/IG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MD.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PM.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PR.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/SI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/SR.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/TI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/cursus.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/weeks.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2122_S2/version.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/A1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ASR1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ASR2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/BD1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/C1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/DEV1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ECO1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/GP1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/M1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/M2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/PPP1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/WEB1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/A3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/ASR5.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/ASR6.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/BD3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/C3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DEV4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DEV5.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DR2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/GP3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/M6.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/M7.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/PPP3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/QD2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/TI.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/WEB2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/cursus.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/weeks.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S1/version.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/A2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/BD2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/C2a.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/C2b.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/COO.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/DR1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/ERG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/GP2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/IHM.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M5.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/POO.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/PPP2.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/QD1.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/RES.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/A4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/ASR8.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/BD4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/C4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/DEV6.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/DEV7.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/GP4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/IG.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/M10.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/M11.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/PPP4.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/WEB3.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/modules.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/cursus.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/weeks.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/2223_S2/version.txt
 create mode 100644 out/production/sae2.01-developpement-application/data/semestre.txt
 create mode 100644 out/production/sae2.01-developpement-application/doc/archiShukan.pdf
 create mode 100644 out/production/sae2.01-developpement-application/doc/shukan.html
 create mode 100644 out/production/sae2.01-developpement-application/shukan/info.txt
 create mode 100644 shukan/Shukan.java
 create mode 100644 shukan/ShukanController.java
 create mode 100644 shukan/ShukanData.java
 create mode 100644 shukan/ShukanIO.java
 create mode 100644 shukan/ShukanList.java
 create mode 100644 shukan/ShukanModule.java
 create mode 100644 shukan/ShukanQueue.java
 create mode 100644 shukan/ShukanSchedule.java
 create mode 100644 shukan/ShukanSemester.java
 create mode 100644 shukan/ShukanTex.java
 create mode 100644 shukan/ShukanView.java
 create mode 100644 shukan/info.txt

diff --git a/bin/shukan.jar b/bin/shukan.jar
new file mode 100644
index 0000000000000000000000000000000000000000..41fba1facd35275e225f8c7c57be6fbdca5c8cf9
GIT binary patch
literal 35188
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%0DKp
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
Y-wN<%Wdm8p%fQP}!_2_&s1?Km0OmDJz5oCK

literal 0
HcmV?d00001

diff --git a/data/2122_S1/V001_210626/S1/ANG1.txt b/data/2122_S1/V001_210626/S1/ANG1.txt
new file mode 100644
index 0000000..0094fd8
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/ANG1.txt
@@ -0,0 +1,20 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+SP
+TD
+Params
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 37 38 39 40 41 42 45 46 47 48 49 50 1 2 3
diff --git a/data/2122_S1/V001_210626/S1/ARC1.txt b/data/2122_S1/V001_210626/S1/ARC1.txt
new file mode 100644
index 0000000..7a84f72
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/ARC1.txt
@@ -0,0 +1,16 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+TP4
+SD
+SD
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 35 36 36 36 36 36 37 38 38 45
diff --git a/data/2122_S1/V001_210626/S1/BDD1.txt b/data/2122_S1/V001_210626/S1/BDD1.txt
new file mode 100644
index 0000000..bcdfe51
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/BDD1.txt
@@ -0,0 +1,25 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+TP4
+TP4
+TP4
+SD
+SP
+EV2
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 DFin SDie
+AffectTP 4 DFin SDie SDie DFin
+Sched 39 39 40 40 41 41 42 42 44 44 45 46 47 48 49 50 1 2 3
diff --git a/data/2122_S1/V001_210626/S1/DEV1.txt b/data/2122_S1/V001_210626/S1/DEV1.txt
new file mode 100644
index 0000000..7be53b8
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/DEV1.txt
@@ -0,0 +1,94 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+TP4
+TD
+TD
+TP4
+TP4
+TD
+TD
+TP4
+EV1
+TP4
+TP4
+TP4
+TP4
+EV1
+TP2
+CM
+CM
+TD
+TD
+TP2
+TP2
+CM
+TD
+TD
+TP2
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+TP2
+EV2
+Params
+Subtitle K-B-MD
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 ABou ABou ABou ABou
+AffectSpec 5 2 EKer EKer
+AffectSpec 6 2 EKer EKer
+AffectSpec 7 4 EMic EMic EMic EMic
+AffectSpec 8 4 DJam DJam DJam DJam
+AffectSpec 11 4 DJam DJam DJam DJam
+AffectSpec 12 4 SDie SDie SDie SDie
+AffectSpec 13 2 EKer EKer
+AffectSpec 14 2 EKer EKer
+AffectSpec 15 4 SDie SDie SDie SDie
+AffectSpec 17 4 DJam DJam DJam DJam
+AffectSpec 22 4 EKer EKer EKer EKer
+AffectSpec 23 1 EKer
+AffectSpec 24 1 EKer
+AffectSpec 25 2 EKer EKer
+AffectSpec 26 2 EKer EKer
+AffectSpec 27 4 EKer EKer EKer EKer
+AffectSpec 28 4 EKer EKer EKer EKer
+AffectSpec 29 1 EKer
+AffectSpec 30 2 EKer EKer
+AffectSpec 31 2 EKer EKer
+AffectSpec 35 4 EKer EKer EKer EKer
+AffectSpec 36 4 EKer EKer EKer EKer
+AffectSpec 41 1 EKer
+OnLeft 5
+OnLeft 6
+OnLeft 8
+OnLeft 11
+OnLeft 13
+OnLeft 14
+OnLeft 17
+OnLeft 22
+OnLeft 23
+OnLeft 24
+OnLeft 25
+OnLeft 26
+OnLeft 27
+OnLeft 28
+OnLeft 29
+OnLeft 30
+OnLeft 31
+OnLeft 35
+OnLeft 36
+OnLeft 41
+OnRight 7
+OnRight 12
+OnRight 15
+Sched 37 37 38 38 38 39 39 39 40 41 41 41 42 44 44 44 44 44 45 46 47 47 48 49 49 49 49 49 49 50 50 50 50 1 1 1 1 1 1 2 2 3
diff --git a/data/2122_S1/V001_210626/S1/EC1.txt b/data/2122_S1/V001_210626/S1/EC1.txt
new file mode 100644
index 0000000..711bb9a
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/EC1.txt
@@ -0,0 +1,20 @@
+TD
+TQ2
+TD
+TQ2
+TD
+TQ2
+TD
+TD
+SP
+SP
+Params
+Subtitle AR
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+AffectSpec 8 4 CMag CMag CMag CMag
+AffectSpec 9 4 CMag CMag CMag CMag
+OnRight 8
+OnRight 9
+Sched 37 38 39 40 41 45 46 47 50 1
diff --git a/data/2122_S1/V001_210626/S1/EGO1.txt b/data/2122_S1/V001_210626/S1/EGO1.txt
new file mode 100644
index 0000000..e78cf71
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/EGO1.txt
@@ -0,0 +1,25 @@
+CM
+TD
+TD
+TD
+TQ2
+TD
+TQ2
+TD
+TD
+TQ2
+SD
+TD
+TD
+TQ2
+TQ2
+TD
+SD
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 37 37 39 40 41 42 45 46 46 47 47 48 48 49 50 1 2 3
diff --git a/data/2122_S1/V001_210626/S1/EGO2.txt b/data/2122_S1/V001_210626/S1/EGO2.txt
new file mode 100644
index 0000000..5f5db53
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/EGO2.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+TD
+TD
+TD
+SD
+TD
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 35 36 36 37 38 39 40 41 45 46 47 48
diff --git a/data/2122_S1/V001_210626/S1/M1.txt b/data/2122_S1/V001_210626/S1/M1.txt
new file mode 100644
index 0000000..915e53f
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/M1.txt
@@ -0,0 +1,27 @@
+CM
+CM
+TD
+CM
+TD
+TD
+TP2
+TD
+TD
+TP2
+TD
+TD
+TD
+TP2
+TD
+TD
+TD
+TQ2
+TP2
+EV2
+Params
+EndsOn 49
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 35 36 36 36 36 37 37 37 38 38 39 39 40 40 41 42 42 45 46 47
diff --git a/data/2122_S1/V001_210626/S1/M2.txt b/data/2122_S1/V001_210626/S1/M2.txt
new file mode 100644
index 0000000..8ec938c
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/M2.txt
@@ -0,0 +1,19 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TP2
+TQ2
+TQ2
+TQ2
+TP2
+EV2
+Params
+StartsOn 45
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 45 45 46 47 48 48 49 50 1 1 2 3
diff --git a/data/2122_S1/V001_210626/S1/PPP1.txt b/data/2122_S1/V001_210626/S1/PPP1.txt
new file mode 100644
index 0000000..1744113
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/PPP1.txt
@@ -0,0 +1,8 @@
+TD
+TP2
+SP
+SP
+Params
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+Sched 40 44 3 3
diff --git a/data/2122_S1/V001_210626/S1/SYS1.txt b/data/2122_S1/V001_210626/S1/SYS1.txt
new file mode 100644
index 0000000..bda658c
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/SYS1.txt
@@ -0,0 +1,20 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+Params
+Hollyweek 48
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 SDie ABou ABou DJam
+Sched 38 38 39 39 40 40 41 41 42 42 44 44 45
diff --git a/data/2122_S1/V001_210626/S1/WEB1.txt b/data/2122_S1/V001_210626/S1/WEB1.txt
new file mode 100644
index 0000000..b18b5bf
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/WEB1.txt
@@ -0,0 +1,29 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+SP
+EV1
+TP2
+TP2
+TP2
+SP
+EV1
+Params
+Subtitle PV
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 PVil PVil PVil PVil
+AffectSpec 8 4 BDev BDev BDev BDev
+AffectSpec 9 4 BDev BDev BDev BDev
+AffectSpec 10 4 BDev BDev BDev BDev
+AffectSpec 11 4 BDev BDev BDev BDev
+AffectSpec 12 1 BDev
+OnRight 8
+OnRight 9
+OnRight 10
+OnRight 11
+OnRight 12
+Sched 36 36 37 38 39 40 41 42 46 47 48 49 50
diff --git a/data/2122_S1/V001_210626/S1/modules.txt b/data/2122_S1/V001_210626/S1/modules.txt
new file mode 100644
index 0000000..a02ef39
--- /dev/null
+++ b/data/2122_S1/V001_210626/S1/modules.txt
@@ -0,0 +1,12 @@
+DEV1
+WEB1
+ARC1
+SYS1
+BDD1
+M1
+M2
+EGO1
+EGO2
+EC1
+ANG1
+PPP1
diff --git a/data/2122_S1/V001_210626/S3/ACD4.txt b/data/2122_S1/V001_210626/S3/ACD4.txt
new file mode 100644
index 0000000..31b1045
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/ACD4.txt
@@ -0,0 +1,30 @@
+CM
+TD
+CM
+TP4
+CM
+TD
+CM
+TD
+TP4
+CM
+TD
+TP4
+CM
+TM
+TM
+TP4
+TM
+EV2
+Params
+Subtitle x-DB-PG
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 3 DBol DBol DBol
+AffectSpec 13 2 PGue PGue
+AffectSpec 14 2 PGue PGue
+AffectSpec 16 2 PGue PGue
+OnRight 13
+OnRight 14
+OnRight 16
+Sched 35 36 37 37 38 38 39 39 40 41 41 42 42 44 45 45 46 47
diff --git a/data/2122_S1/V001_210626/S3/ACD5.txt b/data/2122_S1/V001_210626/S3/ACD5.txt
new file mode 100644
index 0000000..2ae5232
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/ACD5.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TQ2
+TD
+TP2
+CM
+TP2
+TD
+TP2
+EV2
+Params
+StartsOn 37
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 3 BDav BDav BDav
+Sched 37 37 38 38 39 40 40 41 42 42 45
diff --git a/data/2122_S1/V001_210626/S3/ANG3.txt b/data/2122_S1/V001_210626/S3/ANG3.txt
new file mode 100644
index 0000000..423ed3e
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/ANG3.txt
@@ -0,0 +1,28 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+Params
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 3 ACas ACas ACas
+Sched 35 36 36 37 37 38 38 39 39 40 40 41 41 44 45 46 47 48 49 50 1 2 3
diff --git a/data/2122_S1/V001_210626/S3/APL3.txt b/data/2122_S1/V001_210626/S3/APL3.txt
new file mode 100644
index 0000000..ec2e545
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/APL3.txt
@@ -0,0 +1,22 @@
+CM
+TD
+TP2
+TD
+TP2
+CM
+TD
+TM
+TP2
+TP2
+CM
+TM
+TP2
+TP2
+EV2
+Params
+EndsOn 49
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 3 DBol DBol DBol
+Sched 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42
diff --git a/data/2122_S1/V001_210626/S3/ASR4.txt b/data/2122_S1/V001_210626/S3/ASR4.txt
new file mode 100644
index 0000000..4a46129
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/ASR4.txt
@@ -0,0 +1,25 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TP4
+EV1
+TM
+TM
+TP4
+TM
+TM
+TP4
+TM
+TP4
+EV1
+Params
+Hollyweek 48
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou SDie
+AffectTP 3 ABou DFin SDie
+Sched 44 44 45 45 45 46 46 47 49 50 50 1 1 1 2 2 3 3
diff --git a/data/2122_S1/V001_210626/S3/ASR5.txt b/data/2122_S1/V001_210626/S3/ASR5.txt
new file mode 100644
index 0000000..3190bea
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/ASR5.txt
@@ -0,0 +1,8 @@
+TP4
+TP4
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 3 SDie SDie SDie
+Sched 48 49
diff --git a/data/2122_S1/V001_210626/S3/BD3.txt b/data/2122_S1/V001_210626/S3/BD3.txt
new file mode 100644
index 0000000..0ee1715
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/BD3.txt
@@ -0,0 +1,21 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+EV2
+Params
+StartsOn 44
+Subtitle PG
+AffectCM PGue
+AffectTD 2 DFin DFin
+AffectTP 3 DFin DFin DFin
+Sched 44 45 46 47 47 48 48 49 49 50 50 1 1 2
diff --git a/data/2122_S1/V001_210626/S3/EC3.txt b/data/2122_S1/V001_210626/S3/EC3.txt
new file mode 100644
index 0000000..c4772ee
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/EC3.txt
@@ -0,0 +1,12 @@
+TD
+TQ2
+TD
+TP2
+TD
+TP2
+Params
+Subtitle AR
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 3 ARic ARic ARic
+Sched 36 37 38 39 40 41
diff --git a/data/2122_S1/V001_210626/S3/EGO5.txt b/data/2122_S1/V001_210626/S3/EGO5.txt
new file mode 100644
index 0000000..0e5bd85
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/EGO5.txt
@@ -0,0 +1,27 @@
+CM
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+TD
+TQ2
+EV2
+Params
+Hollyweek 37
+Hollyweek 38
+Hollyweek 39
+Subtitle PV-MP-x
+AffectCM MPri
+AffectTD 2 MPri MPri
+AffectTP 3 MPri MPri MPri
+AffectSpec 0 1 PVil
+OnLeft 0
+Sched 36 36 36 40 41 41 42 44 44 45 46 46 47 48 49 50
diff --git a/data/2122_S1/V001_210626/S3/EGO6.txt b/data/2122_S1/V001_210626/S3/EGO6.txt
new file mode 100644
index 0000000..4c2b944
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/EGO6.txt
@@ -0,0 +1,24 @@
+CM
+TD
+TQ2
+CM
+TD
+TD
+TP2
+TP2
+CM
+TD
+TP2
+CM
+TD
+TQ2
+CM
+TD
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 3 BDav BDav BDav
+Sched 35 36 36 37 37 38 39 40 41 42 42 46 46 47 48 48 49
diff --git a/data/2122_S1/V001_210626/S3/M5.txt b/data/2122_S1/V001_210626/S3/M5.txt
new file mode 100644
index 0000000..d4a3881
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/M5.txt
@@ -0,0 +1,29 @@
+CM
+CM
+TD
+CM
+CM
+TD
+TP2
+CM
+TD
+TD
+TD
+TP2
+CM
+TD
+TD
+TD
+TP2
+TQ2
+TQ2
+TQ2
+TP2
+EV2
+Params
+EndsOn 50
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 3 PAde PAde PAde
+Sched 35 36 36 36 37 37 38 38 38 39 39 39 40 40 41 41 42 42 44 44 45 46
diff --git a/data/2122_S1/V001_210626/S3/M6.txt b/data/2122_S1/V001_210626/S3/M6.txt
new file mode 100644
index 0000000..e7b1c02
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/M6.txt
@@ -0,0 +1,21 @@
+TD
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TP2
+TD
+TD
+TD
+TD
+Params
+StartsOn 45
+Subtitle PA
+AffectTD 2 PAde PAde
+AffectTP 3 PAde PAde PAde
+Sched 46 46 47 47 48 48 49 49 50 50 1 2 2 3 3
diff --git a/data/2122_S1/V001_210626/S3/PPP3.txt b/data/2122_S1/V001_210626/S3/PPP3.txt
new file mode 100644
index 0000000..3d416d1
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/PPP3.txt
@@ -0,0 +1,9 @@
+TD
+TD
+TQ2
+TQ2
+Params
+Subtitle N
+AffectTD 2 DJam DJam
+AffectTP 3 DJam DJam DJam
+Sched 47 48 49 50
diff --git a/data/2122_S1/V001_210626/S3/WIM2.txt b/data/2122_S1/V001_210626/S3/WIM2.txt
new file mode 100644
index 0000000..ae3cba5
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/WIM2.txt
@@ -0,0 +1,21 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+Params
+Subtitle EM
+AffectCM EMic
+AffectTD 2 DJam DJam
+AffectTP 3 DJam DJam DJam
+Sched 39 39 40 42 42 45 45 46 46 47 48 49 50 1 2
diff --git a/data/2122_S1/V001_210626/S3/modules.txt b/data/2122_S1/V001_210626/S3/modules.txt
new file mode 100644
index 0000000..3586c52
--- /dev/null
+++ b/data/2122_S1/V001_210626/S3/modules.txt
@@ -0,0 +1,14 @@
+ASR4
+ASR5
+APL3
+WIM2
+ACD4
+BD3
+M5
+M6
+EGO5
+EGO6
+EC3
+ANG3
+ACD5
+PPP3
diff --git a/data/2122_S1/V001_210626/cursus.txt b/data/2122_S1/V001_210626/cursus.txt
new file mode 100644
index 0000000..d0291d6
--- /dev/null
+++ b/data/2122_S1/V001_210626/cursus.txt
@@ -0,0 +1,2 @@
+S1
+S3
diff --git a/data/2122_S1/V001_210626/weeks.txt b/data/2122_S1/V001_210626/weeks.txt
new file mode 100644
index 0000000..7bd93b8
--- /dev/null
+++ b/data/2122_S1/V001_210626/weeks.txt
@@ -0,0 +1,12 @@
+ScolarYear 2021
+YearOfFirstWeek 2021
+FirstWeek 35
+SemesterLength 21
+DefaultWeekLength 40
+WeekLength S35 24
+WeekLength S36 36
+WeekLength S43 0
+WeekLength S44 32
+WeekLength S45 36
+WeekLength S51 0
+WeekLength S52 0
diff --git a/data/2122_S1/V007_210716/S1/ADO.txt b/data/2122_S1/V007_210716/S1/ADO.txt
new file mode 100644
index 0000000..c2017c6
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/ADO.txt
@@ -0,0 +1,16 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+TP4
+SD
+SD
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 35 36 36 36 36 36 37 38 38 46
diff --git a/data/2122_S1/V007_210716/S1/AT.txt b/data/2122_S1/V007_210716/S1/AT.txt
new file mode 100644
index 0000000..df4d1e3
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/AT.txt
@@ -0,0 +1,20 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+SP
+TD
+Params
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 37 38 39 40 41 42 44 45 46 47 49 50 1 2 2
diff --git a/data/2122_S1/V007_210716/S1/BD1.txt b/data/2122_S1/V007_210716/S1/BD1.txt
new file mode 100644
index 0000000..18b2c5e
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/BD1.txt
@@ -0,0 +1,25 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+TM
+TM
+TP4
+TP4
+TP4
+TP4
+TP4
+TP4
+SD
+SP
+EV2
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 KAbi SDie
+AffectTP 4 KAbi SDie SDie KAbi
+Sched 39 39 40 40 41 41 42 42 42 44 45 46 47 48 49 50 50 1 2
diff --git a/data/2122_S1/V007_210716/S1/C1.txt b/data/2122_S1/V007_210716/S1/C1.txt
new file mode 100644
index 0000000..d08e7db
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/C1.txt
@@ -0,0 +1,20 @@
+TD
+TQ2
+TD
+TQ2
+TD
+SP
+SP
+SP
+Params
+Subtitle x-AR-CM
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+AffectSpec 5 4 CMag CMag CMag CMag
+AffectSpec 6 4 CMag CMag CMag CMag
+AffectSpec 7 4 CMag CMag CMag CMag
+OnRight 5
+OnRight 6
+OnRight 7
+Sched 36 37 41 42 45 47 48 49
diff --git a/data/2122_S1/V007_210716/S1/DEV.txt b/data/2122_S1/V007_210716/S1/DEV.txt
new file mode 100644
index 0000000..0ca370d
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/DEV.txt
@@ -0,0 +1,97 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+CM
+TD
+TP4
+TD
+TD
+TP4
+TP4
+TD
+TD
+TP4
+EV1
+TP4
+SD
+TP4
+SP
+TP4
+CM
+TD
+TD
+TP4
+EV1
+CM
+TP2
+TP2
+TD
+TD
+TP4
+SD
+TD
+TD
+TP4
+SP
+TD
+TP4
+EV2
+Params
+Subtitle K-B-MD
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 ABou ABou ABou ABou
+AffectSpec 3 2 EKer EKer
+AffectSpec 4 2 EKer EKer
+AffectSpec 7 4 EMic EMic EMic EMic
+AffectSpec 8 1 EKer
+AffectSpec 9 2 EKer EKer
+AffectSpec 10 4 SAbi SAbi SAbi SAbi
+AffectSpec 13 4 SAbi SAbi SAbi SAbi
+AffectSpec 14 4 SAbi SAbi SAbi SAbi
+AffectSpec 15 2 EKer EKer
+AffectSpec 16 2 EKer EKer
+AffectSpec 17 4 SDie SDie SDie SDie
+AffectSpec 19 4 SDie SDie SDie SDie
+AffectSpec 23 4 EKer EKer EKer EKer
+AffectSpec 24 1 EKer
+AffectSpec 25 2 EKer EKer
+AffectSpec 26 2 EKer EKer
+AffectSpec 29 1 EKer
+AffectSpec 30 4 EKer EKer SDie SDie
+AffectSpec 31 4 EKer EKer SDie SDie
+AffectSpec 35 2 EKer EKer
+AffectSpec 39 4 EKer EKer EKer EKer
+AffectSpec 40 2 EKer EKer
+AffectSpec 41 4 EKer EKer EKer EKer
+AffectSpec 42 1 EKer
+OnLeft 3
+OnLeft 4
+OnLeft 8
+OnLeft 9
+OnLeft 15
+OnLeft 16
+OnLeft 23
+OnLeft 24
+OnLeft 25
+OnLeft 26
+OnLeft 29
+OnLeft 30
+OnLeft 35
+OnLeft 39
+OnLeft 40
+OnLeft 41
+OnLeft 42
+OnRight 7
+OnRight 10
+OnRight 13
+OnRight 14
+OnRight 17
+OnRight 19
+OnRight 31
+Sched 37 37 38 38 38 39 39 39 40 40 40 41 41 41 42 44 44 44 44 45 45 46 46 47 47 48 48 48 48 49 49 49 50 50 50 50 1 1 1 1 2 2 3
diff --git a/data/2122_S1/V007_210716/S1/ECO.txt b/data/2122_S1/V007_210716/S1/ECO.txt
new file mode 100644
index 0000000..11b7535
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/ECO.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+TD
+TD
+TD
+SD
+TD
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 35 36 36 37 38 39 40 41 45 46 47 49
diff --git a/data/2122_S1/V007_210716/S1/GP1.txt b/data/2122_S1/V007_210716/S1/GP1.txt
new file mode 100644
index 0000000..66f2418
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/GP1.txt
@@ -0,0 +1,25 @@
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+SD
+TD
+SM
+TD
+TD
+TQ2
+TD
+TQ2
+TD
+TD
+TQ2
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 37 37 39 40 41 42 45 46 46 47 47 48 48 49 49 50 1 2
diff --git a/data/2122_S1/V007_210716/S1/MD.txt b/data/2122_S1/V007_210716/S1/MD.txt
new file mode 100644
index 0000000..edb353e
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/MD.txt
@@ -0,0 +1,27 @@
+CM
+CM
+TD
+CM
+TD
+TD
+TP2
+TD
+TD
+TP2
+TD
+TD
+TD
+TP2
+TD
+TD
+TD
+TQ2
+TP2
+EV2
+Params
+EndsOn 49
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 35 36 36 36 36 37 37 37 37 38 38 39 40 41 41 42 42 45 46 47
diff --git a/data/2122_S1/V007_210716/S1/MF.txt b/data/2122_S1/V007_210716/S1/MF.txt
new file mode 100644
index 0000000..1317d91
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/MF.txt
@@ -0,0 +1,19 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TP2
+TQ2
+TQ2
+TQ2
+TP2
+EV2
+Params
+StartsOn 45
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 45 45 46 47 48 48 49 50 50 1 1 2
diff --git a/data/2122_S1/V007_210716/S1/PIX.txt b/data/2122_S1/V007_210716/S1/PIX.txt
new file mode 100644
index 0000000..6effba3
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/PIX.txt
@@ -0,0 +1,17 @@
+EV1
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+SP
+EV1
+Params
+StartsOn 38
+Subtitle BD
+AffectCM BDev
+AffectTD 2 BDev BDev
+AffectTP 4 BDev BDev BDev BDev
+Sched 38 39 40 41 44 45 46 47 48 49
diff --git a/data/2122_S1/V007_210716/S1/PPP1.txt b/data/2122_S1/V007_210716/S1/PPP1.txt
new file mode 100644
index 0000000..27d321e
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/PPP1.txt
@@ -0,0 +1,8 @@
+TD
+TP2
+SP
+SP
+Params
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+Sched 40 44 1 2
diff --git a/data/2122_S1/V007_210716/S1/SE.txt b/data/2122_S1/V007_210716/S1/SE.txt
new file mode 100644
index 0000000..cb5cae9
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/SE.txt
@@ -0,0 +1,20 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+Params
+Hollyweek 49
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 SDie ABou ABou SAbi
+Sched 38 38 39 39 40 40 41 41 42 42 44 44 46
diff --git a/data/2122_S1/V007_210716/S1/WEB.txt b/data/2122_S1/V007_210716/S1/WEB.txt
new file mode 100644
index 0000000..f59067b
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/WEB.txt
@@ -0,0 +1,16 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+SP
+Params
+Hollyweek 44
+Hollyweek 45
+Hollyweek 46
+Subtitle PV
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 PVil PVil PVil PVil
+Sched 36 36 37 38 39 40 48
diff --git a/data/2122_S1/V007_210716/S1/modules.txt b/data/2122_S1/V007_210716/S1/modules.txt
new file mode 100644
index 0000000..6fff8be
--- /dev/null
+++ b/data/2122_S1/V007_210716/S1/modules.txt
@@ -0,0 +1,13 @@
+DEV
+WEB
+PIX
+ADO
+SE
+BD1
+MD
+MF
+GP1
+ECO
+AT
+C1
+PPP1
diff --git a/data/2122_S1/V007_210716/S3/ACD4.txt b/data/2122_S1/V007_210716/S3/ACD4.txt
new file mode 100644
index 0000000..31b1045
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/ACD4.txt
@@ -0,0 +1,30 @@
+CM
+TD
+CM
+TP4
+CM
+TD
+CM
+TD
+TP4
+CM
+TD
+TP4
+CM
+TM
+TM
+TP4
+TM
+EV2
+Params
+Subtitle x-DB-PG
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 3 DBol DBol DBol
+AffectSpec 13 2 PGue PGue
+AffectSpec 14 2 PGue PGue
+AffectSpec 16 2 PGue PGue
+OnRight 13
+OnRight 14
+OnRight 16
+Sched 35 36 37 37 38 38 39 39 40 41 41 42 42 44 45 45 46 47
diff --git a/data/2122_S1/V007_210716/S3/ACD5.txt b/data/2122_S1/V007_210716/S3/ACD5.txt
new file mode 100644
index 0000000..2ae5232
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/ACD5.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TQ2
+TD
+TP2
+CM
+TP2
+TD
+TP2
+EV2
+Params
+StartsOn 37
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 3 BDav BDav BDav
+Sched 37 37 38 38 39 40 40 41 42 42 45
diff --git a/data/2122_S1/V007_210716/S3/ANG3.txt b/data/2122_S1/V007_210716/S3/ANG3.txt
new file mode 100644
index 0000000..d7220aa
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/ANG3.txt
@@ -0,0 +1,28 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+Params
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 3 ACas ACas ACas
+Sched 35 36 36 37 37 38 38 39 39 40 40 41 41 42 44 46 46 47 48 49 49 50 1
diff --git a/data/2122_S1/V007_210716/S3/APL3.txt b/data/2122_S1/V007_210716/S3/APL3.txt
new file mode 100644
index 0000000..ec2e545
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/APL3.txt
@@ -0,0 +1,22 @@
+CM
+TD
+TP2
+TD
+TP2
+CM
+TD
+TM
+TP2
+TP2
+CM
+TM
+TP2
+TP2
+EV2
+Params
+EndsOn 49
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 3 DBol DBol DBol
+Sched 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42
diff --git a/data/2122_S1/V007_210716/S3/ASR4.txt b/data/2122_S1/V007_210716/S3/ASR4.txt
new file mode 100644
index 0000000..2307e33
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/ASR4.txt
@@ -0,0 +1,25 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TP4
+EV1
+TM
+TM
+TP4
+TM
+TM
+TP4
+TM
+TP4
+EV1
+Params
+Hollyweek 49
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou SDie
+AffectTP 3 ABou KAbi SDie
+Sched 44 44 45 45 46 47 47 48 48 50 50 1 1 1 2 2 3 3
diff --git a/data/2122_S1/V007_210716/S3/ASR5.txt b/data/2122_S1/V007_210716/S3/ASR5.txt
new file mode 100644
index 0000000..973954a
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/ASR5.txt
@@ -0,0 +1,17 @@
+TD
+TD
+TD
+TP4
+TP4
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 3 SDie SDie SDie
+AffectSpec 0 2 KAbi KAbi
+AffectSpec 1 2 KAbi KAbi
+AffectSpec 2 2 KAbi KAbi
+OnLeft 0
+OnLeft 1
+OnLeft 2
+Sched 44 45 46 47 48
diff --git a/data/2122_S1/V007_210716/S3/BD3.txt b/data/2122_S1/V007_210716/S3/BD3.txt
new file mode 100644
index 0000000..cb06d01
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/BD3.txt
@@ -0,0 +1,21 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+EV2
+Params
+StartsOn 44
+Subtitle PG
+AffectCM PGue
+AffectTD 2 KAbi KAbi
+AffectTP 3 KAbi KAbi KAbi
+Sched 44 45 46 47 47 48 48 49 49 50 50 1 1 2
diff --git a/data/2122_S1/V007_210716/S3/EC3.txt b/data/2122_S1/V007_210716/S3/EC3.txt
new file mode 100644
index 0000000..c4772ee
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/EC3.txt
@@ -0,0 +1,12 @@
+TD
+TQ2
+TD
+TP2
+TD
+TP2
+Params
+Subtitle AR
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 3 ARic ARic ARic
+Sched 36 37 38 39 40 41
diff --git a/data/2122_S1/V007_210716/S3/EGO5.txt b/data/2122_S1/V007_210716/S3/EGO5.txt
new file mode 100644
index 0000000..0e5bd85
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/EGO5.txt
@@ -0,0 +1,27 @@
+CM
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+TD
+TQ2
+EV2
+Params
+Hollyweek 37
+Hollyweek 38
+Hollyweek 39
+Subtitle PV-MP-x
+AffectCM MPri
+AffectTD 2 MPri MPri
+AffectTP 3 MPri MPri MPri
+AffectSpec 0 1 PVil
+OnLeft 0
+Sched 36 36 36 40 41 41 42 44 44 45 46 46 47 48 49 50
diff --git a/data/2122_S1/V007_210716/S3/EGO6.txt b/data/2122_S1/V007_210716/S3/EGO6.txt
new file mode 100644
index 0000000..beaa6ef
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/EGO6.txt
@@ -0,0 +1,24 @@
+CM
+TD
+TQ2
+CM
+TD
+TD
+TP2
+TP2
+CM
+TD
+TP2
+CM
+TD
+TQ2
+CM
+TD
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 3 BDav BDav BDav
+Sched 35 36 36 37 37 38 39 40 41 42 45 45 46 47 48 49 50
diff --git a/data/2122_S1/V007_210716/S3/M5.txt b/data/2122_S1/V007_210716/S3/M5.txt
new file mode 100644
index 0000000..d4a3881
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/M5.txt
@@ -0,0 +1,29 @@
+CM
+CM
+TD
+CM
+CM
+TD
+TP2
+CM
+TD
+TD
+TD
+TP2
+CM
+TD
+TD
+TD
+TP2
+TQ2
+TQ2
+TQ2
+TP2
+EV2
+Params
+EndsOn 50
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 3 PAde PAde PAde
+Sched 35 36 36 36 37 37 38 38 38 39 39 39 40 40 41 41 42 42 44 44 45 46
diff --git a/data/2122_S1/V007_210716/S3/M6.txt b/data/2122_S1/V007_210716/S3/M6.txt
new file mode 100644
index 0000000..968be4e
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/M6.txt
@@ -0,0 +1,21 @@
+TD
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TP2
+TD
+TD
+TD
+TD
+Params
+StartsOn 45
+Subtitle PA
+AffectTD 2 PAde PAde
+AffectTP 3 PAde PAde PAde
+Sched 45 46 47 47 47 48 48 48 49 49 50 1 1 2 2
diff --git a/data/2122_S1/V007_210716/S3/PPP3.txt b/data/2122_S1/V007_210716/S3/PPP3.txt
new file mode 100644
index 0000000..d77d18d
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/PPP3.txt
@@ -0,0 +1,9 @@
+TD
+TD
+TQ2
+TQ2
+Params
+Subtitle N
+AffectTD 2 SAbi SAbi
+AffectTP 3 SAbi SAbi SAbi
+Sched 44 46 49 50
diff --git a/data/2122_S1/V007_210716/S3/WIM2.txt b/data/2122_S1/V007_210716/S3/WIM2.txt
new file mode 100644
index 0000000..4110ab9
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/WIM2.txt
@@ -0,0 +1,21 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+Params
+Subtitle EM
+AffectCM EMic
+AffectTD 2 SAbi SAbi
+AffectTP 3 SAbi SAbi SAbi
+Sched 39 39 40 41 42 45 45 46 46 47 48 49 50 1 2
diff --git a/data/2122_S1/V007_210716/S3/modules.txt b/data/2122_S1/V007_210716/S3/modules.txt
new file mode 100644
index 0000000..3586c52
--- /dev/null
+++ b/data/2122_S1/V007_210716/S3/modules.txt
@@ -0,0 +1,14 @@
+ASR4
+ASR5
+APL3
+WIM2
+ACD4
+BD3
+M5
+M6
+EGO5
+EGO6
+EC3
+ANG3
+ACD5
+PPP3
diff --git a/data/2122_S1/V007_210716/cursus.txt b/data/2122_S1/V007_210716/cursus.txt
new file mode 100644
index 0000000..d0291d6
--- /dev/null
+++ b/data/2122_S1/V007_210716/cursus.txt
@@ -0,0 +1,2 @@
+S1
+S3
diff --git a/data/2122_S1/V007_210716/weeks.txt b/data/2122_S1/V007_210716/weeks.txt
new file mode 100644
index 0000000..7bd93b8
--- /dev/null
+++ b/data/2122_S1/V007_210716/weeks.txt
@@ -0,0 +1,12 @@
+ScolarYear 2021
+YearOfFirstWeek 2021
+FirstWeek 35
+SemesterLength 21
+DefaultWeekLength 40
+WeekLength S35 24
+WeekLength S36 36
+WeekLength S43 0
+WeekLength S44 32
+WeekLength S45 36
+WeekLength S51 0
+WeekLength S52 0
diff --git a/data/2122_S1/version.txt b/data/2122_S1/version.txt
new file mode 100644
index 0000000..f1875cf
--- /dev/null
+++ b/data/2122_S1/version.txt
@@ -0,0 +1,2 @@
+7
+210716
diff --git a/data/2122_S2/V001_211016/IN/ANG4.txt b/data/2122_S2/V001_211016/IN/ANG4.txt
new file mode 100644
index 0000000..f78c2fb
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/ANG4.txt
@@ -0,0 +1,21 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+Params
+EndsOn 13
+AffectCM ACas
+AffectTD 1 ACas
+AffectTP 2 ACas ACas
+Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13
diff --git a/data/2122_S2/V001_211016/IN/CE.txt b/data/2122_S2/V001_211016/IN/CE.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/CE.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/IN/CI.txt b/data/2122_S2/V001_211016/IN/CI.txt
new file mode 100644
index 0000000..6357984
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/CI.txt
@@ -0,0 +1,21 @@
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+Params
+EndsOn 13
+AffectCM ATer
+AffectTD 1 ATer
+AffectTP 1 ATer
+Sched 4 4 4 4 6 6 6 6 8 8 8 8 10 10 10
diff --git a/data/2122_S2/V001_211016/IN/EC4.txt b/data/2122_S2/V001_211016/IN/EC4.txt
new file mode 100644
index 0000000..ed29118
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/EC4.txt
@@ -0,0 +1,11 @@
+TD
+TP2
+TD
+TP2
+Params
+EndsOn 13
+Subtitle AR
+AffectCM ARic
+AffectTD 1 ARic
+AffectTP 2 ARic ARic
+Sched 9 10 12 13
diff --git a/data/2122_S2/V001_211016/IN/IA.txt b/data/2122_S2/V001_211016/IN/IA.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/IA.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/IN/IG.txt b/data/2122_S2/V001_211016/IN/IG.txt
new file mode 100644
index 0000000..6a128a2
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/IG.txt
@@ -0,0 +1,19 @@
+CM
+TM
+TM
+CM
+TM
+TP4
+CM
+TM
+TP4
+CM
+TM
+TP4
+Params
+EndsOn 13
+Hollyweek 6
+AffectCM PVil
+AffectTD 1 PVil
+AffectTP 1 PVil
+Sched 4 4 4 5 5 5 8 8 8 10 10 10
diff --git a/data/2122_S2/V001_211016/IN/MD.txt b/data/2122_S2/V001_211016/IN/MD.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/MD.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/IN/MG.txt b/data/2122_S2/V001_211016/IN/MG.txt
new file mode 100644
index 0000000..068d8cf
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/MG.txt
@@ -0,0 +1,18 @@
+CM
+TD
+TQ2
+TP4
+TD
+CM
+TD
+TP4
+CM
+TP4
+TD
+TP2
+Params
+EndsOn 13
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 5 6 6 9 9 10 10 11 11 13 13
diff --git a/data/2122_S2/V001_211016/IN/MI.txt b/data/2122_S2/V001_211016/IN/MI.txt
new file mode 100644
index 0000000..1fc661b
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/MI.txt
@@ -0,0 +1,20 @@
+TD
+TQ2
+CM
+TD
+TD
+TP2
+CM
+TP4
+CM
+TD
+TP2
+TQ2
+TP2
+EV2
+Params
+EndsOn 10
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 4 4 4 5 5 5 6 6 8 8 9 9 10
diff --git a/data/2122_S2/V001_211016/IN/PG.txt b/data/2122_S2/V001_211016/IN/PG.txt
new file mode 100644
index 0000000..34c10fc
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/PG.txt
@@ -0,0 +1,18 @@
+CM
+TP2
+TD
+TM
+CM
+TD
+TP4
+TD
+TP4
+CM
+TP2
+TP4
+Params
+EndsOn 12
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 4 5 5 5 8 8 9 9 11 11 11
diff --git a/data/2122_S2/V001_211016/IN/PM.txt b/data/2122_S2/V001_211016/IN/PM.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/PM.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/IN/PR.txt b/data/2122_S2/V001_211016/IN/PR.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/PR.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/IN/SI.txt b/data/2122_S2/V001_211016/IN/SI.txt
new file mode 100644
index 0000000..18ed46b
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/SI.txt
@@ -0,0 +1,19 @@
+TD
+TP4
+TD
+TP2
+TD
+TP2
+CM
+TP4
+CM
+TP4
+CM
+TD
+Params
+StartsOn 5
+EndsOn 13
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 5 5 8 8 8 8 9 9 10 10 12 12
diff --git a/data/2122_S2/V001_211016/IN/SR.txt b/data/2122_S2/V001_211016/IN/SR.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/SR.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/IN/TI.txt b/data/2122_S2/V001_211016/IN/TI.txt
new file mode 100644
index 0000000..7d956cb
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/TI.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TP2
+TP2
+CM
+TP2
+TD
+TP2
+TD
+EV2
+Params
+EndsOn 13
+AffectCM DBol
+AffectTD 1 DBol
+AffectTP 1 DBol
+Sched 6 6 6 6 9 9 9 9 11 11 11 11 12 12 12
diff --git a/data/2122_S2/V001_211016/IN/modules.txt b/data/2122_S2/V001_211016/IN/modules.txt
new file mode 100644
index 0000000..24381f2
--- /dev/null
+++ b/data/2122_S2/V001_211016/IN/modules.txt
@@ -0,0 +1,15 @@
+SR
+PR
+PM
+IA
+MD
+CE
+EC4
+ANG4
+TI
+PG
+IG
+MG
+SI
+CI
+MI
diff --git a/data/2122_S2/V001_211016/S2/AE.txt b/data/2122_S2/V001_211016/S2/AE.txt
new file mode 100644
index 0000000..af7ec25
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/AE.txt
@@ -0,0 +1,23 @@
+TD
+TP2
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+SQ
+SQ
+Params
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 6 8 9 10 11 12 13 14 14 18 18 19 19 20 20 21 21 23 24
diff --git a/data/2122_S2/V001_211016/S2/BD2.txt b/data/2122_S2/V001_211016/S2/BD2.txt
new file mode 100644
index 0000000..70ee9f7
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/BD2.txt
@@ -0,0 +1,19 @@
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+SP
+Params
+StartsOn 9
+Subtitle KA-PAG
+AffectCM KAbi
+AffectTD 2 KAbi KAbi
+AffectTP 4 KAbi KAbi KAbi KAbi
+OnRight 0
+Sched 9 10 11 13 14 17 18 19 20 22 24
diff --git a/data/2122_S2/V001_211016/S2/C2.txt b/data/2122_S2/V001_211016/S2/C2.txt
new file mode 100644
index 0000000..74216c2
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/C2.txt
@@ -0,0 +1,13 @@
+TD
+TQ2
+TD
+TP2
+TD
+SD
+SQ
+Params
+StartsOn 13
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+Sched 13 14 18 19 20 21 22
diff --git a/data/2122_S2/V001_211016/S2/COO.txt b/data/2122_S2/V001_211016/S2/COO.txt
new file mode 100644
index 0000000..a15755c
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/COO.txt
@@ -0,0 +1,13 @@
+CM
+TD
+TP4
+TM
+TP4
+EV2
+Params
+EndsOn 20
+Subtitle OC
+AffectCM OCas
+AffectTD 2 OCas OCas
+AffectTP 4 SAbi OCas OCas SAbi
+Sched 5 5 6 8 9 11
diff --git a/data/2122_S2/V001_211016/S2/DCN.txt b/data/2122_S2/V001_211016/S2/DCN.txt
new file mode 100644
index 0000000..da72d31
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/DCN.txt
@@ -0,0 +1,16 @@
+TD
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+EV2
+Params
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 17 18 19 19 20 21 22 23 24
diff --git a/data/2122_S2/V001_211016/S2/ERG.txt b/data/2122_S2/V001_211016/S2/ERG.txt
new file mode 100644
index 0000000..bb8dea8
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/ERG.txt
@@ -0,0 +1,17 @@
+CM
+CM
+TP2
+TP2
+TP2
+TP2
+Params
+StartsOn 13
+Subtitle PE-JM
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 JMou JMou JMou JMou
+OnRight 2
+OnRight 3
+OnRight 4
+OnRight 5
+Sched 13 14 17 18 19 20
diff --git a/data/2122_S2/V001_211016/S2/GP2a.txt b/data/2122_S2/V001_211016/S2/GP2a.txt
new file mode 100644
index 0000000..20ba1cc
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/GP2a.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TD
+SP
+TD
+SM
+TD
+TD
+SP
+TD
+SP
+SP
+SP
+EV2
+Params
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 4 4 4 5 5 8 8 9 9 10 10 11 12 14
diff --git a/data/2122_S2/V001_211016/S2/GP2b.txt b/data/2122_S2/V001_211016/S2/GP2b.txt
new file mode 100644
index 0000000..d05c819
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/GP2b.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TM
+TP2
+CM
+TD
+TP2
+TP2
+Params
+StartsOn 9
+Hollyweek 12
+Hollyweek 17
+Hollyweek 21
+Subtitle AC
+AffectCM ACar
+AffectTD 2 ACar ACar
+AffectTP 4 ACar ACar ACar ACar
+Sched 13 13 14 14 18 19 19 20 22
diff --git a/data/2122_S2/V001_211016/S2/IHM.txt b/data/2122_S2/V001_211016/S2/IHM.txt
new file mode 100644
index 0000000..99d2d5b
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/IHM.txt
@@ -0,0 +1,33 @@
+CM
+TD
+CM
+TP2
+CM
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP4
+SP
+SP
+SD
+Params
+StartsOn 10
+Subtitle SF-PV-EM
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 EMic EMic EMic EMic
+AffectSpec 3 4 PVil EMic EMic PVil
+AffectSpec 5 4 PVil EMic EMic PVil
+AffectSpec 7 4 PVil EMic EMic PVil
+AffectSpec 10 4 PVil EMic EMic PVil
+AffectSpec 11 4 SAbi SAbi SAbi SAbi
+AffectSpec 12 4 SAbi SAbi SAbi SAbi
+AffectSpec 13 4 SAbi SAbi SAbi SAbi
+OnLeft 11
+OnLeft 12
+OnLeft 13
+OnRight 8
+Sched 10 10 11 11 12 12 13 13 14 17 17 17 18 20 22
diff --git a/data/2122_S2/V001_211016/S2/MG.txt b/data/2122_S2/V001_211016/S2/MG.txt
new file mode 100644
index 0000000..85165c3
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/MG.txt
@@ -0,0 +1,26 @@
+CM
+CM
+TD
+CM
+TD
+CM
+TD
+TP2
+TD
+TP2
+SD
+TD
+TP2
+SP
+TQ2
+TQ2
+TP2
+EV1
+Params
+EndsOn 14
+Hollyweek 9
+Hollyweek 10
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 4 4 4 4 4 5 5 5 5 6 6 6 8 11 12 12 13 14
diff --git a/data/2122_S2/V001_211016/S2/MN.txt b/data/2122_S2/V001_211016/S2/MN.txt
new file mode 100644
index 0000000..90bf6b5
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/MN.txt
@@ -0,0 +1,13 @@
+TD
+TD
+TP2
+TQ2
+TP2
+TP2
+EV1
+Params
+EndsOn 22
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 4 5 8 11 12 13 14
diff --git a/data/2122_S2/V001_211016/S2/MS.txt b/data/2122_S2/V001_211016/S2/MS.txt
new file mode 100644
index 0000000..adef7da
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/MS.txt
@@ -0,0 +1,15 @@
+TD
+TQ2
+TQ2
+TP2
+EV1
+SD
+SP
+SP
+Params
+StartsOn 17
+Hollyweek 23
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 17 17 18 19 20 21 22 24
diff --git a/data/2122_S2/V001_211016/S2/POO.txt b/data/2122_S2/V001_211016/S2/POO.txt
new file mode 100644
index 0000000..c954302
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/POO.txt
@@ -0,0 +1,47 @@
+CM
+CM
+TD
+TP2
+CM
+TD
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+CM
+TD
+TP2
+TP2
+TD
+TP2
+SD
+TP2
+TP2
+TP2
+EV2
+TP2
+SP
+TP2
+SP
+SP
+SD
+Params
+Subtitle DOO
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 PEve SAbi SAbi SAbi
+AffectSpec 24 4 SAbi SAbi SAbi SAbi
+AffectSpec 25 4 PEve PEve PEve PEve
+AffectSpec 26 4 PEve SAbi SAbi PEve
+AffectSpec 27 4 PEve PEve PEve PEve
+AffectSpec 28 4 PEve PEve PEve PEve
+OnLeft 0
+OnLeft 3
+OnLeft 10
+OnLeft 22
+OnLeft 24
+OnLeft 26
+Sched 4 4 4 4 5 5 5 6 6 6 6 8 8 8 8 9 9 9 10 10 10 11 11 12 12 12 13 14 17 22
diff --git a/data/2122_S2/V001_211016/S2/PPP2.txt b/data/2122_S2/V001_211016/S2/PPP2.txt
new file mode 100644
index 0000000..66d8a4f
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/PPP2.txt
@@ -0,0 +1,11 @@
+TD
+TD
+TD
+TD
+TQ2
+Params
+StartsOn 5
+Subtitle NEmo
+AffectTD 2 NEmo NEmo
+AffectTP 4 NEmo NEmo NEmo NEmo
+Sched 17 18 19 21 23
diff --git a/data/2122_S2/V001_211016/S2/QD.txt b/data/2122_S2/V001_211016/S2/QD.txt
new file mode 100644
index 0000000..a359aa9
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/QD.txt
@@ -0,0 +1,9 @@
+TP2
+TP2
+TP2
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 17 18 19
diff --git a/data/2122_S2/V001_211016/S2/RES.txt b/data/2122_S2/V001_211016/S2/RES.txt
new file mode 100644
index 0000000..1e879de
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/RES.txt
@@ -0,0 +1,47 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+SD
+TD
+TD
+TD
+TD
+TD
+TP4
+TP2
+SD
+SP
+Params
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnLeft 3
+OnLeft 4
+OnLeft 5
+OnLeft 6
+OnLeft 7
+OnLeft 8
+OnLeft 9
+OnLeft 10
+OnLeft 11
+OnRight 12
+OnRight 13
+OnRight 14
+OnRight 15
+OnRight 16
+OnRight 17
+OnRight 18
+OnRight 19
+OnRight 20
+Sched 6 6 8 8 9 9 10 10 11 12 13 14 17 17 18 18 19 20 21 21 22
diff --git a/data/2122_S2/V001_211016/S2/modules.txt b/data/2122_S2/V001_211016/S2/modules.txt
new file mode 100644
index 0000000..fef5ced
--- /dev/null
+++ b/data/2122_S2/V001_211016/S2/modules.txt
@@ -0,0 +1,16 @@
+POO
+COO
+IHM
+ERG
+QD
+RES
+BD2
+MG
+MS
+MN
+GP2a
+GP2b
+DCN
+AE
+C2
+PPP2
diff --git a/data/2122_S2/V001_211016/WM/ANG4.txt b/data/2122_S2/V001_211016/WM/ANG4.txt
new file mode 100644
index 0000000..f78c2fb
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/ANG4.txt
@@ -0,0 +1,21 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+Params
+EndsOn 13
+AffectCM ACas
+AffectTD 1 ACas
+AffectTP 2 ACas ACas
+Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13
diff --git a/data/2122_S2/V001_211016/WM/CE.txt b/data/2122_S2/V001_211016/WM/CE.txt
new file mode 100644
index 0000000..b88d61b
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/CE.txt
@@ -0,0 +1,21 @@
+CM
+CM
+TM
+TP2
+TM
+TP2
+TM
+CM
+TP2
+TM
+TP2
+TP2
+EV2
+Params
+EndsOn 13
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 1 BDav
+AffectTP 2 BDav BDav
+Sched 4 4 4 4 5 8 8 9 9 10 10 11 12
diff --git a/data/2122_S2/V001_211016/WM/CI.txt b/data/2122_S2/V001_211016/WM/CI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/CI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/WM/EC4.txt b/data/2122_S2/V001_211016/WM/EC4.txt
new file mode 100644
index 0000000..36ed71b
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/EC4.txt
@@ -0,0 +1,11 @@
+TD
+TP2
+TD
+TP2
+Params
+EndsOn 13
+Subtitle AR
+AffectCM ARic
+AffectTD 1 ARic
+AffectTP 2 ARic ARic
+Sched 5 8 10 12
diff --git a/data/2122_S2/V001_211016/WM/IA.txt b/data/2122_S2/V001_211016/WM/IA.txt
new file mode 100644
index 0000000..6eb2136
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/IA.txt
@@ -0,0 +1,39 @@
+CM
+TD
+CM
+TD
+TD
+TP4
+CM
+TD
+CM
+TD
+TD
+TD
+TP4
+Params
+EndsOn 13
+Subtitle PV-FP
+AffectCM PVil
+AffectTD 1 PVil
+AffectTP 2 PVil PVil
+AffectSpec 0 1 FPie
+AffectSpec 1 1 FPie
+AffectSpec 2 1 FPie
+AffectSpec 3 1 FPie
+AffectSpec 4 2 FPie FPie
+AffectSpec 5 1 FPie
+OnLeft 6
+OnLeft 7
+OnLeft 8
+OnLeft 9
+OnLeft 10
+OnLeft 11
+OnLeft 12
+OnRight 0
+OnRight 1
+OnRight 2
+OnRight 3
+OnRight 4
+OnRight 5
+Sched 4 4 5 5 6 6 9 9 9 9 11 11 13
diff --git a/data/2122_S2/V001_211016/WM/IG.txt b/data/2122_S2/V001_211016/WM/IG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/IG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/WM/MD.txt b/data/2122_S2/V001_211016/WM/MD.txt
new file mode 100644
index 0000000..0389da9
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/MD.txt
@@ -0,0 +1,23 @@
+CM
+CM
+TD
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+TP2
+TP2
+TP2
+TP2
+TP2
+EV2
+Params
+EndsOn 13
+Hollyweek 9
+Hollyweek 10
+AffectCM PAde
+AffectTD 1 PAde
+AffectTP 2 PAde PAde
+Sched 4 4 4 5 5 5 6 6 6 8 8 11 11 12 13
diff --git a/data/2122_S2/V001_211016/WM/MG.txt b/data/2122_S2/V001_211016/WM/MG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/MG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/WM/MI.txt b/data/2122_S2/V001_211016/WM/MI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/MI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/WM/PG.txt b/data/2122_S2/V001_211016/WM/PG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/PG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/WM/PM.txt b/data/2122_S2/V001_211016/WM/PM.txt
new file mode 100644
index 0000000..cee6a3f
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/PM.txt
@@ -0,0 +1,17 @@
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+TP4
+TD
+TD
+TD
+Params
+EndsOn 13
+AffectCM EMic
+AffectTD 1 EMic
+AffectTP 2 EMic EMic
+Sched 5 5 5 5 6 8 9 10 11 11 12
diff --git a/data/2122_S2/V001_211016/WM/PR.txt b/data/2122_S2/V001_211016/WM/PR.txt
new file mode 100644
index 0000000..ab79e6c
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/PR.txt
@@ -0,0 +1,31 @@
+TD
+TP4
+TP4
+TP4
+EV2
+CM
+TD
+TD
+TP4
+EV2
+Params
+EndsOn 13
+Subtitle AB-PV
+AffectCM PVil
+AffectTD 1 ABou
+AffectTP 2 ABou ABou
+AffectSpec 4 1 ABou
+AffectSpec 6 1 PVil
+AffectSpec 7 1 PVil
+AffectSpec 8 2 PVil PVil
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnLeft 3
+OnLeft 4
+OnRight 5
+OnRight 6
+OnRight 7
+OnRight 8
+OnRight 9
+Sched 4 4 5 6 8 10 11 11 12 12
diff --git a/data/2122_S2/V001_211016/WM/SI.txt b/data/2122_S2/V001_211016/WM/SI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/SI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/WM/SR.txt b/data/2122_S2/V001_211016/WM/SR.txt
new file mode 100644
index 0000000..65a6f5d
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/SR.txt
@@ -0,0 +1,13 @@
+TM
+TM
+TP4
+TP4
+TP4
+TP4
+EV2
+Params
+EndsOn 13
+AffectCM ABou
+AffectTD 1 ABou
+AffectTP 2 ABou ABou
+Sched 8 8 9 10 11 12 13
diff --git a/data/2122_S2/V001_211016/WM/TI.txt b/data/2122_S2/V001_211016/WM/TI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/TI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V001_211016/WM/modules.txt b/data/2122_S2/V001_211016/WM/modules.txt
new file mode 100644
index 0000000..24381f2
--- /dev/null
+++ b/data/2122_S2/V001_211016/WM/modules.txt
@@ -0,0 +1,15 @@
+SR
+PR
+PM
+IA
+MD
+CE
+EC4
+ANG4
+TI
+PG
+IG
+MG
+SI
+CI
+MI
diff --git a/data/2122_S2/V001_211016/cursus.txt b/data/2122_S2/V001_211016/cursus.txt
new file mode 100644
index 0000000..851178c
--- /dev/null
+++ b/data/2122_S2/V001_211016/cursus.txt
@@ -0,0 +1,3 @@
+S2
+WM
+IN
diff --git a/data/2122_S2/V001_211016/weeks.txt b/data/2122_S2/V001_211016/weeks.txt
new file mode 100644
index 0000000..256d265
--- /dev/null
+++ b/data/2122_S2/V001_211016/weeks.txt
@@ -0,0 +1,13 @@
+ScolarYear 2021
+YearOfFirstWeek 2022
+FirstWeek 4
+SemesterLength 21
+DefaultWeekLength 40
+WeekLength S6 36
+WeekLength S7 0
+WeekLength S14 36
+WeekLength S15 0
+WeekLength S16 0
+WeekLength S21 24
+WeekLength S23 32
+WeekLength S24 16
diff --git a/data/2122_S2/V004_211022/IN/ANG4.txt b/data/2122_S2/V004_211022/IN/ANG4.txt
new file mode 100644
index 0000000..f78c2fb
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/ANG4.txt
@@ -0,0 +1,21 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+Params
+EndsOn 13
+AffectCM ACas
+AffectTD 1 ACas
+AffectTP 2 ACas ACas
+Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13
diff --git a/data/2122_S2/V004_211022/IN/CE.txt b/data/2122_S2/V004_211022/IN/CE.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/CE.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/IN/CI.txt b/data/2122_S2/V004_211022/IN/CI.txt
new file mode 100644
index 0000000..6357984
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/CI.txt
@@ -0,0 +1,21 @@
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+Params
+EndsOn 13
+AffectCM ATer
+AffectTD 1 ATer
+AffectTP 1 ATer
+Sched 4 4 4 4 6 6 6 6 8 8 8 8 10 10 10
diff --git a/data/2122_S2/V004_211022/IN/EC4.txt b/data/2122_S2/V004_211022/IN/EC4.txt
new file mode 100644
index 0000000..ed29118
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/EC4.txt
@@ -0,0 +1,11 @@
+TD
+TP2
+TD
+TP2
+Params
+EndsOn 13
+Subtitle AR
+AffectCM ARic
+AffectTD 1 ARic
+AffectTP 2 ARic ARic
+Sched 9 10 12 13
diff --git a/data/2122_S2/V004_211022/IN/IA.txt b/data/2122_S2/V004_211022/IN/IA.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/IA.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/IN/IG.txt b/data/2122_S2/V004_211022/IN/IG.txt
new file mode 100644
index 0000000..6a128a2
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/IG.txt
@@ -0,0 +1,19 @@
+CM
+TM
+TM
+CM
+TM
+TP4
+CM
+TM
+TP4
+CM
+TM
+TP4
+Params
+EndsOn 13
+Hollyweek 6
+AffectCM PVil
+AffectTD 1 PVil
+AffectTP 1 PVil
+Sched 4 4 4 5 5 5 8 8 8 10 10 10
diff --git a/data/2122_S2/V004_211022/IN/MD.txt b/data/2122_S2/V004_211022/IN/MD.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/MD.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/IN/MG.txt b/data/2122_S2/V004_211022/IN/MG.txt
new file mode 100644
index 0000000..068d8cf
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/MG.txt
@@ -0,0 +1,18 @@
+CM
+TD
+TQ2
+TP4
+TD
+CM
+TD
+TP4
+CM
+TP4
+TD
+TP2
+Params
+EndsOn 13
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 5 6 6 9 9 10 10 11 11 13 13
diff --git a/data/2122_S2/V004_211022/IN/MI.txt b/data/2122_S2/V004_211022/IN/MI.txt
new file mode 100644
index 0000000..1fc661b
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/MI.txt
@@ -0,0 +1,20 @@
+TD
+TQ2
+CM
+TD
+TD
+TP2
+CM
+TP4
+CM
+TD
+TP2
+TQ2
+TP2
+EV2
+Params
+EndsOn 10
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 4 4 4 5 5 5 6 6 8 8 9 9 10
diff --git a/data/2122_S2/V004_211022/IN/PG.txt b/data/2122_S2/V004_211022/IN/PG.txt
new file mode 100644
index 0000000..34c10fc
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/PG.txt
@@ -0,0 +1,18 @@
+CM
+TP2
+TD
+TM
+CM
+TD
+TP4
+TD
+TP4
+CM
+TP2
+TP4
+Params
+EndsOn 12
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 4 5 5 5 8 8 9 9 11 11 11
diff --git a/data/2122_S2/V004_211022/IN/PM.txt b/data/2122_S2/V004_211022/IN/PM.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/PM.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/IN/PR.txt b/data/2122_S2/V004_211022/IN/PR.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/PR.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/IN/SI.txt b/data/2122_S2/V004_211022/IN/SI.txt
new file mode 100644
index 0000000..18ed46b
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/SI.txt
@@ -0,0 +1,19 @@
+TD
+TP4
+TD
+TP2
+TD
+TP2
+CM
+TP4
+CM
+TP4
+CM
+TD
+Params
+StartsOn 5
+EndsOn 13
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 5 5 8 8 8 8 9 9 10 10 12 12
diff --git a/data/2122_S2/V004_211022/IN/SR.txt b/data/2122_S2/V004_211022/IN/SR.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/SR.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/IN/TI.txt b/data/2122_S2/V004_211022/IN/TI.txt
new file mode 100644
index 0000000..7d956cb
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/TI.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TP2
+TP2
+CM
+TP2
+TD
+TP2
+TD
+EV2
+Params
+EndsOn 13
+AffectCM DBol
+AffectTD 1 DBol
+AffectTP 1 DBol
+Sched 6 6 6 6 9 9 9 9 11 11 11 11 12 12 12
diff --git a/data/2122_S2/V004_211022/IN/modules.txt b/data/2122_S2/V004_211022/IN/modules.txt
new file mode 100644
index 0000000..24381f2
--- /dev/null
+++ b/data/2122_S2/V004_211022/IN/modules.txt
@@ -0,0 +1,15 @@
+SR
+PR
+PM
+IA
+MD
+CE
+EC4
+ANG4
+TI
+PG
+IG
+MG
+SI
+CI
+MI
diff --git a/data/2122_S2/V004_211022/S2/AE.txt b/data/2122_S2/V004_211022/S2/AE.txt
new file mode 100644
index 0000000..af7ec25
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/AE.txt
@@ -0,0 +1,23 @@
+TD
+TP2
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+SQ
+SQ
+Params
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 6 8 9 10 11 12 13 14 14 18 18 19 19 20 20 21 21 23 24
diff --git a/data/2122_S2/V004_211022/S2/BD2.txt b/data/2122_S2/V004_211022/S2/BD2.txt
new file mode 100644
index 0000000..70ee9f7
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/BD2.txt
@@ -0,0 +1,19 @@
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+SP
+Params
+StartsOn 9
+Subtitle KA-PAG
+AffectCM KAbi
+AffectTD 2 KAbi KAbi
+AffectTP 4 KAbi KAbi KAbi KAbi
+OnRight 0
+Sched 9 10 11 13 14 17 18 19 20 22 24
diff --git a/data/2122_S2/V004_211022/S2/C2.txt b/data/2122_S2/V004_211022/S2/C2.txt
new file mode 100644
index 0000000..74216c2
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/C2.txt
@@ -0,0 +1,13 @@
+TD
+TQ2
+TD
+TP2
+TD
+SD
+SQ
+Params
+StartsOn 13
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+Sched 13 14 18 19 20 21 22
diff --git a/data/2122_S2/V004_211022/S2/COO.txt b/data/2122_S2/V004_211022/S2/COO.txt
new file mode 100644
index 0000000..c228a10
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/COO.txt
@@ -0,0 +1,13 @@
+CM
+TD
+TP4
+TM
+TP4
+EV2
+Params
+EndsOn 20
+Subtitle OC
+AffectCM OCas
+AffectTD 2 OCas OCas
+AffectTP 4 SAbi OCas OCas SAbi
+Sched 5 5 6 8 9 10
diff --git a/data/2122_S2/V004_211022/S2/DCN.txt b/data/2122_S2/V004_211022/S2/DCN.txt
new file mode 100644
index 0000000..da72d31
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/DCN.txt
@@ -0,0 +1,16 @@
+TD
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+EV2
+Params
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 17 18 19 19 20 21 22 23 24
diff --git a/data/2122_S2/V004_211022/S2/ERG.txt b/data/2122_S2/V004_211022/S2/ERG.txt
new file mode 100644
index 0000000..5efe9cf
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/ERG.txt
@@ -0,0 +1,17 @@
+CM
+CM
+TP2
+TP2
+TP2
+TP2
+Params
+StartsOn 13
+Subtitle PE-JM
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 JMou JMou JMou JMou
+OnRight 2
+OnRight 3
+OnRight 4
+OnRight 5
+Sched 13 14 17 18 18 19
diff --git a/data/2122_S2/V004_211022/S2/GP2a.txt b/data/2122_S2/V004_211022/S2/GP2a.txt
new file mode 100644
index 0000000..20ba1cc
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/GP2a.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TD
+SP
+TD
+SM
+TD
+TD
+SP
+TD
+SP
+SP
+SP
+EV2
+Params
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 4 4 4 5 5 8 8 9 9 10 10 11 12 14
diff --git a/data/2122_S2/V004_211022/S2/GP2b.txt b/data/2122_S2/V004_211022/S2/GP2b.txt
new file mode 100644
index 0000000..d05c819
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/GP2b.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TM
+TP2
+CM
+TD
+TP2
+TP2
+Params
+StartsOn 9
+Hollyweek 12
+Hollyweek 17
+Hollyweek 21
+Subtitle AC
+AffectCM ACar
+AffectTD 2 ACar ACar
+AffectTP 4 ACar ACar ACar ACar
+Sched 13 13 14 14 18 19 19 20 22
diff --git a/data/2122_S2/V004_211022/S2/IHM.txt b/data/2122_S2/V004_211022/S2/IHM.txt
new file mode 100644
index 0000000..99d2d5b
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/IHM.txt
@@ -0,0 +1,33 @@
+CM
+TD
+CM
+TP2
+CM
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP4
+SP
+SP
+SD
+Params
+StartsOn 10
+Subtitle SF-PV-EM
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 EMic EMic EMic EMic
+AffectSpec 3 4 PVil EMic EMic PVil
+AffectSpec 5 4 PVil EMic EMic PVil
+AffectSpec 7 4 PVil EMic EMic PVil
+AffectSpec 10 4 PVil EMic EMic PVil
+AffectSpec 11 4 SAbi SAbi SAbi SAbi
+AffectSpec 12 4 SAbi SAbi SAbi SAbi
+AffectSpec 13 4 SAbi SAbi SAbi SAbi
+OnLeft 11
+OnLeft 12
+OnLeft 13
+OnRight 8
+Sched 10 10 11 11 12 12 13 13 14 17 17 17 18 20 22
diff --git a/data/2122_S2/V004_211022/S2/MG.txt b/data/2122_S2/V004_211022/S2/MG.txt
new file mode 100644
index 0000000..135c706
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/MG.txt
@@ -0,0 +1,26 @@
+CM
+CM
+TD
+CM
+TD
+CM
+TD
+TP2
+TD
+TP2
+TD
+TP2
+SP
+TQ2
+TQ2
+TP2
+SP
+EV1
+Params
+EndsOn 14
+Hollyweek 9
+Hollyweek 10
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 4 4 4 4 4 5 5 5 5 6 6 6 8 8 11 12 12 13
diff --git a/data/2122_S2/V004_211022/S2/MN.txt b/data/2122_S2/V004_211022/S2/MN.txt
new file mode 100644
index 0000000..48d107b
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/MN.txt
@@ -0,0 +1,14 @@
+TD
+TD
+TP2
+TQ2
+TP2
+TP2
+SP
+EV1
+Params
+EndsOn 22
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 4 5 8 11 12 13 14 17
diff --git a/data/2122_S2/V004_211022/S2/MS.txt b/data/2122_S2/V004_211022/S2/MS.txt
new file mode 100644
index 0000000..48eaec9
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/MS.txt
@@ -0,0 +1,15 @@
+TD
+SD
+TQ2
+TQ2
+TP2
+SP
+EV1
+SP
+Params
+StartsOn 17
+Hollyweek 23
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 17 17 18 19 20 21 22 24
diff --git a/data/2122_S2/V004_211022/S2/POO.txt b/data/2122_S2/V004_211022/S2/POO.txt
new file mode 100644
index 0000000..9e36063
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/POO.txt
@@ -0,0 +1,51 @@
+CM
+CM
+TD
+TP2
+CM
+TD
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+CM
+TD
+TP2
+TP2
+TD
+TP2
+SD
+TP2
+TP2
+TP2
+TP2
+EV2
+SP
+TP2
+SP
+SP
+SD
+Params
+Hollyweek 18
+Hollyweek 19
+Hollyweek 20
+Hollyweek 21
+Subtitle DOO
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 PEve SAbi SAbi SAbi
+AffectSpec 23 4 SAbi SAbi SAbi SAbi
+AffectSpec 25 4 PEve PEve PEve PEve
+AffectSpec 26 4 PEve SAbi SAbi PEve
+AffectSpec 27 4 PEve PEve PEve PEve
+AffectSpec 28 4 PEve PEve PEve PEve
+OnLeft 0
+OnLeft 3
+OnLeft 10
+OnLeft 22
+OnLeft 23
+OnLeft 26
+Sched 4 4 4 4 5 5 5 6 6 6 6 8 8 8 8 9 9 9 10 10 10 11 11 11 12 12 13 14 17 22
diff --git a/data/2122_S2/V004_211022/S2/PPP2.txt b/data/2122_S2/V004_211022/S2/PPP2.txt
new file mode 100644
index 0000000..dd48f85
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/PPP2.txt
@@ -0,0 +1,11 @@
+TD
+TD
+TD
+TD
+TQ2
+Params
+StartsOn 5
+Subtitle NEmo
+AffectTD 2 NEmo NEmo
+AffectTP 4 NEmo NEmo NEmo NEmo
+Sched 18 19 20 21 23
diff --git a/data/2122_S2/V004_211022/S2/QD.txt b/data/2122_S2/V004_211022/S2/QD.txt
new file mode 100644
index 0000000..a359aa9
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/QD.txt
@@ -0,0 +1,9 @@
+TP2
+TP2
+TP2
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 17 18 19
diff --git a/data/2122_S2/V004_211022/S2/RES.txt b/data/2122_S2/V004_211022/S2/RES.txt
new file mode 100644
index 0000000..1e879de
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/RES.txt
@@ -0,0 +1,47 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+SD
+TD
+TD
+TD
+TD
+TD
+TP4
+TP2
+SD
+SP
+Params
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnLeft 3
+OnLeft 4
+OnLeft 5
+OnLeft 6
+OnLeft 7
+OnLeft 8
+OnLeft 9
+OnLeft 10
+OnLeft 11
+OnRight 12
+OnRight 13
+OnRight 14
+OnRight 15
+OnRight 16
+OnRight 17
+OnRight 18
+OnRight 19
+OnRight 20
+Sched 6 6 8 8 9 9 10 10 11 12 13 14 17 17 18 18 19 20 21 21 22
diff --git a/data/2122_S2/V004_211022/S2/modules.txt b/data/2122_S2/V004_211022/S2/modules.txt
new file mode 100644
index 0000000..fef5ced
--- /dev/null
+++ b/data/2122_S2/V004_211022/S2/modules.txt
@@ -0,0 +1,16 @@
+POO
+COO
+IHM
+ERG
+QD
+RES
+BD2
+MG
+MS
+MN
+GP2a
+GP2b
+DCN
+AE
+C2
+PPP2
diff --git a/data/2122_S2/V004_211022/WM/ANG4.txt b/data/2122_S2/V004_211022/WM/ANG4.txt
new file mode 100644
index 0000000..f78c2fb
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/ANG4.txt
@@ -0,0 +1,21 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+Params
+EndsOn 13
+AffectCM ACas
+AffectTD 1 ACas
+AffectTP 2 ACas ACas
+Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13
diff --git a/data/2122_S2/V004_211022/WM/CE.txt b/data/2122_S2/V004_211022/WM/CE.txt
new file mode 100644
index 0000000..b88d61b
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/CE.txt
@@ -0,0 +1,21 @@
+CM
+CM
+TM
+TP2
+TM
+TP2
+TM
+CM
+TP2
+TM
+TP2
+TP2
+EV2
+Params
+EndsOn 13
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 1 BDav
+AffectTP 2 BDav BDav
+Sched 4 4 4 4 5 8 8 9 9 10 10 11 12
diff --git a/data/2122_S2/V004_211022/WM/CI.txt b/data/2122_S2/V004_211022/WM/CI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/CI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/WM/EC4.txt b/data/2122_S2/V004_211022/WM/EC4.txt
new file mode 100644
index 0000000..36ed71b
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/EC4.txt
@@ -0,0 +1,11 @@
+TD
+TP2
+TD
+TP2
+Params
+EndsOn 13
+Subtitle AR
+AffectCM ARic
+AffectTD 1 ARic
+AffectTP 2 ARic ARic
+Sched 5 8 10 12
diff --git a/data/2122_S2/V004_211022/WM/IA.txt b/data/2122_S2/V004_211022/WM/IA.txt
new file mode 100644
index 0000000..6eb2136
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/IA.txt
@@ -0,0 +1,39 @@
+CM
+TD
+CM
+TD
+TD
+TP4
+CM
+TD
+CM
+TD
+TD
+TD
+TP4
+Params
+EndsOn 13
+Subtitle PV-FP
+AffectCM PVil
+AffectTD 1 PVil
+AffectTP 2 PVil PVil
+AffectSpec 0 1 FPie
+AffectSpec 1 1 FPie
+AffectSpec 2 1 FPie
+AffectSpec 3 1 FPie
+AffectSpec 4 2 FPie FPie
+AffectSpec 5 1 FPie
+OnLeft 6
+OnLeft 7
+OnLeft 8
+OnLeft 9
+OnLeft 10
+OnLeft 11
+OnLeft 12
+OnRight 0
+OnRight 1
+OnRight 2
+OnRight 3
+OnRight 4
+OnRight 5
+Sched 4 4 5 5 6 6 9 9 9 9 11 11 13
diff --git a/data/2122_S2/V004_211022/WM/IG.txt b/data/2122_S2/V004_211022/WM/IG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/IG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/WM/MD.txt b/data/2122_S2/V004_211022/WM/MD.txt
new file mode 100644
index 0000000..0389da9
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/MD.txt
@@ -0,0 +1,23 @@
+CM
+CM
+TD
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+TP2
+TP2
+TP2
+TP2
+TP2
+EV2
+Params
+EndsOn 13
+Hollyweek 9
+Hollyweek 10
+AffectCM PAde
+AffectTD 1 PAde
+AffectTP 2 PAde PAde
+Sched 4 4 4 5 5 5 6 6 6 8 8 11 11 12 13
diff --git a/data/2122_S2/V004_211022/WM/MG.txt b/data/2122_S2/V004_211022/WM/MG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/MG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/WM/MI.txt b/data/2122_S2/V004_211022/WM/MI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/MI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/WM/PG.txt b/data/2122_S2/V004_211022/WM/PG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/PG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/WM/PM.txt b/data/2122_S2/V004_211022/WM/PM.txt
new file mode 100644
index 0000000..cee6a3f
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/PM.txt
@@ -0,0 +1,17 @@
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+TP4
+TD
+TD
+TD
+Params
+EndsOn 13
+AffectCM EMic
+AffectTD 1 EMic
+AffectTP 2 EMic EMic
+Sched 5 5 5 5 6 8 9 10 11 11 12
diff --git a/data/2122_S2/V004_211022/WM/PR.txt b/data/2122_S2/V004_211022/WM/PR.txt
new file mode 100644
index 0000000..ab79e6c
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/PR.txt
@@ -0,0 +1,31 @@
+TD
+TP4
+TP4
+TP4
+EV2
+CM
+TD
+TD
+TP4
+EV2
+Params
+EndsOn 13
+Subtitle AB-PV
+AffectCM PVil
+AffectTD 1 ABou
+AffectTP 2 ABou ABou
+AffectSpec 4 1 ABou
+AffectSpec 6 1 PVil
+AffectSpec 7 1 PVil
+AffectSpec 8 2 PVil PVil
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnLeft 3
+OnLeft 4
+OnRight 5
+OnRight 6
+OnRight 7
+OnRight 8
+OnRight 9
+Sched 4 4 5 6 8 10 11 11 12 12
diff --git a/data/2122_S2/V004_211022/WM/SI.txt b/data/2122_S2/V004_211022/WM/SI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/SI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/WM/SR.txt b/data/2122_S2/V004_211022/WM/SR.txt
new file mode 100644
index 0000000..65a6f5d
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/SR.txt
@@ -0,0 +1,13 @@
+TM
+TM
+TP4
+TP4
+TP4
+TP4
+EV2
+Params
+EndsOn 13
+AffectCM ABou
+AffectTD 1 ABou
+AffectTP 2 ABou ABou
+Sched 8 8 9 10 11 12 13
diff --git a/data/2122_S2/V004_211022/WM/TI.txt b/data/2122_S2/V004_211022/WM/TI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/TI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/data/2122_S2/V004_211022/WM/modules.txt b/data/2122_S2/V004_211022/WM/modules.txt
new file mode 100644
index 0000000..24381f2
--- /dev/null
+++ b/data/2122_S2/V004_211022/WM/modules.txt
@@ -0,0 +1,15 @@
+SR
+PR
+PM
+IA
+MD
+CE
+EC4
+ANG4
+TI
+PG
+IG
+MG
+SI
+CI
+MI
diff --git a/data/2122_S2/V004_211022/cursus.txt b/data/2122_S2/V004_211022/cursus.txt
new file mode 100644
index 0000000..851178c
--- /dev/null
+++ b/data/2122_S2/V004_211022/cursus.txt
@@ -0,0 +1,3 @@
+S2
+WM
+IN
diff --git a/data/2122_S2/V004_211022/weeks.txt b/data/2122_S2/V004_211022/weeks.txt
new file mode 100644
index 0000000..256d265
--- /dev/null
+++ b/data/2122_S2/V004_211022/weeks.txt
@@ -0,0 +1,13 @@
+ScolarYear 2021
+YearOfFirstWeek 2022
+FirstWeek 4
+SemesterLength 21
+DefaultWeekLength 40
+WeekLength S6 36
+WeekLength S7 0
+WeekLength S14 36
+WeekLength S15 0
+WeekLength S16 0
+WeekLength S21 24
+WeekLength S23 32
+WeekLength S24 16
diff --git a/data/2122_S2/version.txt b/data/2122_S2/version.txt
new file mode 100644
index 0000000..cfed6f8
--- /dev/null
+++ b/data/2122_S2/version.txt
@@ -0,0 +1,2 @@
+4
+211022
diff --git a/data/2223_S1/V001_220708/S1/A1.txt b/data/2223_S1/V001_220708/S1/A1.txt
new file mode 100644
index 0000000..82e9b00
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/A1.txt
@@ -0,0 +1,19 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+SP
+Params
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 36 36 37 37 38 39 40 41 42 43 46 47 47 48
diff --git a/data/2223_S1/V001_220708/S1/ASR1.txt b/data/2223_S1/V001_220708/S1/ASR1.txt
new file mode 100644
index 0000000..394008d
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/ASR1.txt
@@ -0,0 +1,16 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+TP4
+SD
+SD
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 35 36 36 36 36 37 37 38 46 48
diff --git a/data/2223_S1/V001_220708/S1/ASR2.txt b/data/2223_S1/V001_220708/S1/ASR2.txt
new file mode 100644
index 0000000..e80cc79
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/ASR2.txt
@@ -0,0 +1,33 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+Params
+StartsOn 38
+Hollyweek 49
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 ABou ABou ABou ABou
+AffectSpec 6 4 SDie SDie SDie SDie
+AffectSpec 7 4 SDie SDie SDie SDie
+AffectSpec 8 4 HSli HSli HSli HSli
+AffectSpec 9 4 HSli HSli HSli HSli
+AffectSpec 10 4 HSli HSli HSli HSli
+AffectSpec 11 4 HSli HSli HSli HSli
+OnLeft 6
+OnLeft 7
+OnRight 8
+OnRight 9
+OnRight 10
+OnRight 11
+Sched 38 38 39 39 40 40 41 41 42 43 45 46 47
diff --git a/data/2223_S1/V001_220708/S1/BD1.txt b/data/2223_S1/V001_220708/S1/BD1.txt
new file mode 100644
index 0000000..69e14ed
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/BD1.txt
@@ -0,0 +1,30 @@
+CM
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+TP4
+TP4
+SD
+TP4
+SP
+Params
+Subtitle FA-SD
+AffectCM FAbd
+AffectTD 2 FAbd SDie
+AffectTP 4 FAbd SDie SDie FAbd
+AffectSpec 3 1 SDie
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnRight 3
+Sched 41 41 42 42 42 43 43 45 45 46 46 46 48 49 50 1 2 2 3
diff --git a/data/2223_S1/V001_220708/S1/C1.txt b/data/2223_S1/V001_220708/S1/C1.txt
new file mode 100644
index 0000000..513beac
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/C1.txt
@@ -0,0 +1,23 @@
+TD
+TD
+TQ2
+TD
+TD
+TQ2
+TD
+TQ2
+TD
+TQ2
+TD
+TQ2
+TD
+SD
+SP
+SP
+SP
+Params
+Subtitle SN
+AffectCM SNdo
+AffectTD 2 SNdo SNdo
+AffectTP 4 SNdo SNdo SNdo SNdo
+Sched 37 37 38 39 39 40 41 42 43 43 45 45 46 47 49 50 1
diff --git a/data/2223_S1/V001_220708/S1/DEV1.txt b/data/2223_S1/V001_220708/S1/DEV1.txt
new file mode 100644
index 0000000..58fb8ed
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/DEV1.txt
@@ -0,0 +1,95 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+CM
+TD
+TP4
+TD
+TD
+TP4
+TP4
+EV1
+TD
+TD
+TP4
+TP4
+SD
+TP4
+SP
+CM
+TP4
+EV1
+TD
+TD
+TP4
+CM
+TP4
+TD
+TD
+TP4
+SD
+TD
+TD
+TP4
+SP
+TD
+TP4
+EV2
+Params
+StartsOn 37
+Subtitle K-B-XD
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 ABou ABou ABou ABou
+AffectSpec 3 2 EKer EKer
+AffectSpec 4 2 EKer EKer
+AffectSpec 7 4 AHez AHez AHez AHez
+AffectSpec 8 1 EKer
+AffectSpec 9 2 EKer EKer
+AffectSpec 10 4 AHez AHez AHez AHez
+AffectSpec 13 4 AHez AHez AHez AHez
+AffectSpec 16 2 EKer EKer
+AffectSpec 17 2 EKer EKer
+AffectSpec 18 4 SDie SDie SDie SDie
+AffectSpec 21 4 EKer EKer EKer EKer
+AffectSpec 23 1 EKer
+AffectSpec 24 4 SDie SDie SDie SDie
+AffectSpec 26 2 EKer EKer
+AffectSpec 27 2 EKer EKer
+AffectSpec 28 4 EKer EKer EKer EKer
+AffectSpec 29 1 EKer
+AffectSpec 30 4 EKer AHez AHez EKer
+AffectSpec 34 2 EKer EKer
+AffectSpec 38 4 EKer EKer EKer EKer
+AffectSpec 39 2 EKer EKer
+AffectSpec 40 4 EKer EKer EKer EKer
+AffectSpec 41 1 EKer
+OnLeft 3
+OnLeft 4
+OnLeft 8
+OnLeft 9
+OnLeft 16
+OnLeft 17
+OnLeft 21
+OnLeft 23
+OnLeft 26
+OnLeft 27
+OnLeft 28
+OnLeft 29
+OnLeft 30
+OnLeft 34
+OnLeft 38
+OnLeft 39
+OnLeft 40
+OnLeft 41
+OnRight 7
+OnRight 10
+OnRight 13
+OnRight 18
+OnRight 24
+Sched 37 37 38 38 38 39 39 39 40 40 40 41 41 41 42 43 43 43 43 45 45 46 46 47 47 48 48 48 48 49 49 50 50 50 50 1 1 1 1 2 2 3
diff --git a/data/2223_S1/V001_220708/S1/ECO1.txt b/data/2223_S1/V001_220708/S1/ECO1.txt
new file mode 100644
index 0000000..834bcc1
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/ECO1.txt
@@ -0,0 +1,17 @@
+CM
+TD
+TQ2
+TD
+TD
+TD
+TQ2
+TD
+TD
+TD
+EV2
+Params
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 45 45 46 47 47 48 49 49 50 2 3
diff --git a/data/2223_S1/V001_220708/S1/GP1.txt b/data/2223_S1/V001_220708/S1/GP1.txt
new file mode 100644
index 0000000..c800dda
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/GP1.txt
@@ -0,0 +1,25 @@
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+TD
+SD
+TD
+SM
+TD
+TQ2
+TD
+TQ2
+TD
+TD
+TQ2
+EV2
+Params
+Hollyweek 43
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 35 36 36 36 37 38 39 40 40 41 42 42 45 46 47 48 49 49
diff --git a/data/2223_S1/V001_220708/S1/M1.txt b/data/2223_S1/V001_220708/S1/M1.txt
new file mode 100644
index 0000000..1b8f795
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/M1.txt
@@ -0,0 +1,27 @@
+TD
+TD
+TD
+TD
+TD
+TD
+TP2
+TD
+TD
+TP2
+TD
+TD
+TD
+TP2
+TD
+TD
+TD
+TQ2
+TP2
+EV2
+Params
+EndsOn 50
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 36 36 36 36 37 37 37 38 38 38 39 39 40 40 41 42 42 43 43 45
diff --git a/data/2223_S1/V001_220708/S1/M2.txt b/data/2223_S1/V001_220708/S1/M2.txt
new file mode 100644
index 0000000..f5e9667
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/M2.txt
@@ -0,0 +1,19 @@
+TD
+TD
+TD
+TD
+TD
+TD
+TP2
+TQ2
+TQ2
+TQ2
+TP2
+EV2
+Params
+StartsOn 45
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 45 46 47 47 48 48 49 49 50 1 2 3
diff --git a/data/2223_S1/V001_220708/S1/PPP1.txt b/data/2223_S1/V001_220708/S1/PPP1.txt
new file mode 100644
index 0000000..101e53c
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/PPP1.txt
@@ -0,0 +1,14 @@
+TD
+TD
+TD
+TD
+TP2
+TD
+TD
+TD
+TD
+Params
+Subtitle SN
+AffectTD 2 SNdo SNdo
+AffectTP 4 SNdo SNdo SNdo SNdo
+Sched 39 40 41 48 49 50 2 2 3
diff --git a/data/2223_S1/V001_220708/S1/WEB1.txt b/data/2223_S1/V001_220708/S1/WEB1.txt
new file mode 100644
index 0000000..9662bb2
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/WEB1.txt
@@ -0,0 +1,28 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+CM
+TP2
+TP2
+TP2
+SP
+SP
+Params
+Subtitle PV-AB
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 PVil PVil PVil PVil
+AffectSpec 6 1 ABic
+AffectSpec 7 4 ABic ABic ABic ABic
+AffectSpec 8 4 ABic ABic ABic ABic
+AffectSpec 9 4 ABic ABic ABic ABic
+AffectSpec 11 4 ABic ABic ABic ABic
+OnRight 6
+OnRight 7
+OnRight 8
+OnRight 9
+OnRight 11
+Sched 36 37 38 39 40 41 47 47 48 49 50 50
diff --git a/data/2223_S1/V001_220708/S1/modules.txt b/data/2223_S1/V001_220708/S1/modules.txt
new file mode 100644
index 0000000..dd15941
--- /dev/null
+++ b/data/2223_S1/V001_220708/S1/modules.txt
@@ -0,0 +1,12 @@
+DEV1
+WEB1
+ASR1
+ASR2
+BD1
+M1
+M2
+GP1
+ECO1
+A1
+C1
+PPP1
diff --git a/data/2223_S1/V001_220708/S3/A3.txt b/data/2223_S1/V001_220708/S3/A3.txt
new file mode 100644
index 0000000..307b5a7
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/A3.txt
@@ -0,0 +1,25 @@
+TD
+TD
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+SD
+SD
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 2 ACas ACas
+Sched 36 37 38 41 42 42 46 48 1 1 2 2 3 3
diff --git a/data/2223_S1/V001_220708/S3/ASR5.txt b/data/2223_S1/V001_220708/S3/ASR5.txt
new file mode 100644
index 0000000..9f0fbc7
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/ASR5.txt
@@ -0,0 +1,28 @@
+TD
+TD
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+SD
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou SDie
+AffectTP 2 ABou SDie
+AffectSpec 10 2 ABou ABou
+AffectSpec 11 2 ABou ABou
+AffectSpec 12 2 ABou ABou
+Sched 36 36 37 37 38 38 41 42 46 47 47 48 2
diff --git a/data/2223_S1/V001_220708/S3/ASR6.txt b/data/2223_S1/V001_220708/S3/ASR6.txt
new file mode 100644
index 0000000..10dfe62
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/ASR6.txt
@@ -0,0 +1,18 @@
+TD
+TM
+TP4
+TP4
+SP
+SD
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 2 SDie SDie
+Sched 46 47 47 48 1 3
diff --git a/data/2223_S1/V001_220708/S3/BD3.txt b/data/2223_S1/V001_220708/S3/BD3.txt
new file mode 100644
index 0000000..2250959
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/BD3.txt
@@ -0,0 +1,18 @@
+TD
+TD
+TD
+TM
+TM
+TM
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle HS
+AffectCM HSli
+AffectTD 2 HSli HSli
+AffectTP 2 HSli HSli
+Sched 46 46 48 1 2 3
diff --git a/data/2223_S1/V001_220708/S3/C3.txt b/data/2223_S1/V001_220708/S3/C3.txt
new file mode 100644
index 0000000..55fe521
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/C3.txt
@@ -0,0 +1,25 @@
+TD
+TD
+TQ2
+TD
+TD
+TP2
+TD
+TD
+TP2
+TD
+SD
+SD
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle AS
+AffectCM ASau
+AffectTD 2 ASau ASau
+AffectTP 2 ASau ASau
+Sched 37 38 41 42 46 46 47 47 48 48 1 2 3
diff --git a/data/2223_S1/V001_220708/S3/DEV4.txt b/data/2223_S1/V001_220708/S3/DEV4.txt
new file mode 100644
index 0000000..31d15d4
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/DEV4.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TP2
+TP2
+CM
+SD
+TP2
+SP
+EV2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 2 DBol DBol
+Sched 36 36 36 36 37 37 37 38 41
diff --git a/data/2223_S1/V001_220708/S3/DEV5.txt b/data/2223_S1/V001_220708/S3/DEV5.txt
new file mode 100644
index 0000000..c4f2fc7
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/DEV5.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TP2
+CM
+SD
+TP2
+CM
+TP2
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 2 DBol DBol
+Sched 36 37 38 38 38 41 42 42 2
diff --git a/data/2223_S1/V001_220708/S3/DI.txt b/data/2223_S1/V001_220708/S3/DI.txt
new file mode 100644
index 0000000..848991d
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/DI.txt
@@ -0,0 +1,27 @@
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle HS
+AffectCM HSli
+AffectTD 2 HSli HSli
+AffectTP 2 HSli HSli
+Sched 36 36 37 37 38 41 42 42 46 47 48 1 2 3 3
diff --git a/data/2223_S1/V001_220708/S3/DR2.txt b/data/2223_S1/V001_220708/S3/DR2.txt
new file mode 100644
index 0000000..b7639bb
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/DR2.txt
@@ -0,0 +1,57 @@
+CM
+TD
+TD
+TD
+CM
+TD
+CM
+TD
+CM
+TD
+TD
+SD
+SD
+SD
+SD
+EV2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 46
+Hollyweek 47
+Hollyweek 48
+Hollyweek 49
+Hollyweek 50
+Subtitle V-D-P
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 2 BDav BDav
+AffectSpec 0 1 PVil
+AffectSpec 4 1 MPri
+AffectSpec 5 2 MPri MPri
+AffectSpec 6 1 MPri
+AffectSpec 7 2 MPri MPri
+AffectSpec 8 1 MPri
+AffectSpec 9 2 MPri MPri
+AffectSpec 10 2 MPri MPri
+AffectSpec 11 2 MPri MPri
+AffectSpec 12 2 MPri MPri
+AffectSpec 13 2 MPri MPri
+AffectSpec 14 2 MPri MPri
+AffectSpec 15 1 MPri
+OnLeft 0
+OnRight 4
+OnRight 5
+OnRight 6
+OnRight 7
+OnRight 8
+OnRight 9
+OnRight 10
+OnRight 11
+OnRight 12
+OnRight 13
+OnRight 14
+OnRight 15
+Sched 36 36 37 37 38 38 41 41 42 42 1 1 2 2 3 3
diff --git a/data/2223_S1/V001_220708/S3/GP3.txt b/data/2223_S1/V001_220708/S3/GP3.txt
new file mode 100644
index 0000000..0a2b914
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/GP3.txt
@@ -0,0 +1,29 @@
+CM
+TQ2
+TD
+SD
+SD
+TD
+TD
+SD
+TD
+TD
+SP
+TD
+TD
+TQ2
+TQ2
+TD
+EV2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 2 BDav BDav
+Sched 35 35 37 38 38 41 42 42 46 46 47 48 48 1 2 2 3
diff --git a/data/2223_S1/V001_220708/S3/M6.txt b/data/2223_S1/V001_220708/S3/M6.txt
new file mode 100644
index 0000000..349c781
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/M6.txt
@@ -0,0 +1,27 @@
+TD
+TD
+TD
+TP2
+TD
+TD
+TD
+SD
+TD
+TP2
+TD
+SD
+TP2
+EV2
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 2 PAde PAde
+Sched 35 36 36 37 37 38 41 41 42 42 46 46 47 47 48
diff --git a/data/2223_S1/V001_220708/S3/M7.txt b/data/2223_S1/V001_220708/S3/M7.txt
new file mode 100644
index 0000000..6b8f8d8
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/M7.txt
@@ -0,0 +1,27 @@
+TD
+TD
+TD
+TP2
+SD
+TP2
+SP
+TP2
+TD
+SP
+TP4
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle PA-PV
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 2 PAde PAde
+AffectSpec 0 2 PVil PVil
+AffectSpec 10 2 PVil PVil
+OnRight 0
+OnRight 10
+Sched 46 46 47 47 48 48 1 1 2 2 3
diff --git a/data/2223_S1/V001_220708/S3/PPP3.txt b/data/2223_S1/V001_220708/S3/PPP3.txt
new file mode 100644
index 0000000..6960c6b
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/PPP3.txt
@@ -0,0 +1,23 @@
+SM
+TD
+TD
+TD
+TP2
+TD
+TP2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 2 BDav BDav
+AffectSpec 1 2 Dron DRon
+AffectSpec 2 2 Dron DRon
+OnRight 1
+OnRight 2
+Sched 38 41 41 48 1 2 3
diff --git a/data/2223_S1/V001_220708/S3/QD2.txt b/data/2223_S1/V001_220708/S3/QD2.txt
new file mode 100644
index 0000000..9137372
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/QD2.txt
@@ -0,0 +1,27 @@
+CM
+TP4
+CM
+TD
+TM
+CM
+TD
+TP4
+CM
+SD
+TP4
+CM
+TP4
+SP
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 2 DBol DBol
+Sched 41 41 42 42 42 46 46 46 47 47 47 48 1 2 3
diff --git a/data/2223_S1/V001_220708/S3/TI.txt b/data/2223_S1/V001_220708/S3/TI.txt
new file mode 100644
index 0000000..707acc6
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/TI.txt
@@ -0,0 +1,19 @@
+CM
+TM
+TP4
+CM
+TP4
+TP4
+EV2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 2 DBol DBol
+Sched 47 48 48 1 2 3 3
diff --git a/data/2223_S1/V001_220708/S3/WEB2.txt b/data/2223_S1/V001_220708/S3/WEB2.txt
new file mode 100644
index 0000000..7dac117
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/WEB2.txt
@@ -0,0 +1,25 @@
+CM
+CM
+TP4
+CM
+TP2
+TP4
+TP4
+TP4
+TP2
+SD
+SP
+SP
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle EM
+AffectCM EMic
+AffectTD 2 EMic HSli
+AffectTP 2 EMic HSli
+Sched 36 36 36 37 37 37 38 38 41 41 41 42 42
diff --git a/data/2223_S1/V001_220708/S3/modules.txt b/data/2223_S1/V001_220708/S3/modules.txt
new file mode 100644
index 0000000..c2d00eb
--- /dev/null
+++ b/data/2223_S1/V001_220708/S3/modules.txt
@@ -0,0 +1,16 @@
+WEB2
+DEV4
+DEV5
+QD2
+ASR5
+ASR6
+BD3
+M6
+M7
+GP3
+DR2
+A3
+C3
+PPP3
+TI
+DI
diff --git a/data/2223_S1/V001_220708/cursus.txt b/data/2223_S1/V001_220708/cursus.txt
new file mode 100644
index 0000000..d0291d6
--- /dev/null
+++ b/data/2223_S1/V001_220708/cursus.txt
@@ -0,0 +1,2 @@
+S1
+S3
diff --git a/data/2223_S1/V001_220708/weeks.txt b/data/2223_S1/V001_220708/weeks.txt
new file mode 100644
index 0000000..c3abc3b
--- /dev/null
+++ b/data/2223_S1/V001_220708/weeks.txt
@@ -0,0 +1,12 @@
+ScolarYear 2022
+YearOfFirstWeek 2022
+FirstWeek 35
+SemesterLength 21
+DefaultWeekLength 40
+WeekLength S35 8
+WeekLength S44 0
+WeekLength S45 32
+WeekLength S50 36
+WeekLength S51 0
+WeekLength S52 0
+WeekLength S1 32
diff --git a/data/2223_S1/version.txt b/data/2223_S1/version.txt
new file mode 100644
index 0000000..a53f5f1
--- /dev/null
+++ b/data/2223_S1/version.txt
@@ -0,0 +1,2 @@
+1
+220708
diff --git a/data/2223_S2/V001_220708/S2/A2.txt b/data/2223_S2/V001_220708/S2/A2.txt
new file mode 100644
index 0000000..378861b
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/A2.txt
@@ -0,0 +1,20 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+SQ
+SQ
+Params
+Subtitle ACas
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 4 5 6 7 10 11 12 14 15 18 19 21 22 23 24
diff --git a/data/2223_S2/V001_220708/S2/BD2.txt b/data/2223_S2/V001_220708/S2/BD2.txt
new file mode 100644
index 0000000..c46c4f8
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/BD2.txt
@@ -0,0 +1,25 @@
+TD
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+Params
+StartsOn 9
+Subtitle FA
+AffectCM FAbd
+AffectTD 2 FAbd FAbd
+AffectTP 4 FAbd FAbd FAbd FAbd
+Sched 9 9 10 10 11 11 12 13 14 15 18 19 20 21 22 23 24 25
diff --git a/data/2223_S2/V001_220708/S2/C2a.txt b/data/2223_S2/V001_220708/S2/C2a.txt
new file mode 100644
index 0000000..a23b8c4
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/C2a.txt
@@ -0,0 +1,14 @@
+TD
+TD
+TQ2
+TD
+TQ2
+TD
+SD
+SQ
+Params
+Subtitle SNdo
+AffectCM SNdo
+AffectTD 2 SNdo SNdo
+AffectTP 4 SNdo SNdo SNdo SNdo
+Sched 4 5 6 7 9 10 12 13
diff --git a/data/2223_S2/V001_220708/S2/C2b.txt b/data/2223_S2/V001_220708/S2/C2b.txt
new file mode 100644
index 0000000..81d43e9
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/C2b.txt
@@ -0,0 +1,14 @@
+TD
+TD
+TP2
+TD
+TD
+TP2
+TP2
+Params
+StartsOn 13
+Subtitle MAT
+AffectCM MAug
+AffectTD 2 MAug MAug
+AffectTP 4 MAug MAug MAug MAug
+Sched 18 18 19 20 20 21 22
diff --git a/data/2223_S2/V001_220708/S2/COO.txt b/data/2223_S2/V001_220708/S2/COO.txt
new file mode 100644
index 0000000..c21d850
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/COO.txt
@@ -0,0 +1,14 @@
+CM
+TD
+TD
+TP4
+TM
+TP4
+EV2
+Params
+EndsOn 20
+Subtitle OC
+AffectCM OCas
+AffectTD 2 OCas OCas
+AffectTP 4 AHez OCas OCas AHez
+Sched 5 6 7 9 10 11 12
diff --git a/data/2223_S2/V001_220708/S2/DR1.txt b/data/2223_S2/V001_220708/S2/DR1.txt
new file mode 100644
index 0000000..916e073
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/DR1.txt
@@ -0,0 +1,16 @@
+TD
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+EV2
+Params
+Hollyweek 7
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 18 19 19 20 21 22 23 24 25
diff --git a/data/2223_S2/V001_220708/S2/ERG.txt b/data/2223_S2/V001_220708/S2/ERG.txt
new file mode 100644
index 0000000..12a79df
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/ERG.txt
@@ -0,0 +1,12 @@
+CM
+CM
+TP2
+TP2
+TP2
+Params
+StartsOn 13
+Subtitle PE
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 PEve PEve PEve PEve
+Sched 13 13 13 14 15
diff --git a/data/2223_S2/V001_220708/S2/GP2.txt b/data/2223_S2/V001_220708/S2/GP2.txt
new file mode 100644
index 0000000..d690d78
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/GP2.txt
@@ -0,0 +1,29 @@
+CM
+TD
+TD
+SM
+TD
+SP
+TD
+TD
+SP
+SP
+SP
+SP
+CM
+TD
+TD
+TM
+TP2
+CM
+TD
+TP2
+TP2
+EV2
+Params
+Hollyweek 7
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 4 4 4 5 5 6 6 6 9 10 11 12 13 14 15 15 18 19 19 20 21 22
diff --git a/data/2223_S2/V001_220708/S2/IHM.txt b/data/2223_S2/V001_220708/S2/IHM.txt
new file mode 100644
index 0000000..2d8cd07
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/IHM.txt
@@ -0,0 +1,33 @@
+CM
+TD
+CM
+TP2
+CM
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP4
+SP
+SP
+SD
+Params
+StartsOn 9
+Subtitle S-V-M
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 EMic EMic EMic EMic
+AffectSpec 3 4 PVil EMic EMic PVil
+AffectSpec 5 4 PVil EMic EMic PVil
+AffectSpec 7 4 PVil EMic EMic PVil
+AffectSpec 10 4 PVil EMic EMic PVil
+AffectSpec 11 4 HSli HSli HSli HSli
+AffectSpec 12 4 HSli HSli HSli HSli
+AffectSpec 13 4 HSli HSli HSli HSli
+OnLeft 11
+OnLeft 12
+OnLeft 13
+OnRight 8
+Sched 9 9 10 10 11 11 12 12 13 14 14 15 18 20 23
diff --git a/data/2223_S2/V001_220708/S2/M3.txt b/data/2223_S2/V001_220708/S2/M3.txt
new file mode 100644
index 0000000..04c147f
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/M3.txt
@@ -0,0 +1,27 @@
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TP2
+TD
+TP2
+TD
+TP2
+SP
+TQ2
+TQ2
+TP2
+SP
+EV1
+Params
+EndsOn 14
+Hollyweek 9
+Hollyweek 10
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 4 4 4 5 5 5 6 6 6 7 7 7 11 12 12 13 13 14
diff --git a/data/2223_S2/V001_220708/S2/M4.txt b/data/2223_S2/V001_220708/S2/M4.txt
new file mode 100644
index 0000000..b83c26d
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/M4.txt
@@ -0,0 +1,16 @@
+TD
+SD
+TQ2
+TQ2
+TP2
+SP
+EV1
+SP
+Params
+StartsOn 18
+Hollyweek 23
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 18 19 20 21 22 24 24 25
diff --git a/data/2223_S2/V001_220708/S2/M5.txt b/data/2223_S2/V001_220708/S2/M5.txt
new file mode 100644
index 0000000..b6f7fc1
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/M5.txt
@@ -0,0 +1,15 @@
+TD
+TD
+TP2
+TQ2
+TP2
+TP2
+SP
+EV1
+Params
+EndsOn 22
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 9 9 10 11 12 13 14 15
diff --git a/data/2223_S2/V001_220708/S2/POO.txt b/data/2223_S2/V001_220708/S2/POO.txt
new file mode 100644
index 0000000..f9d7edf
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/POO.txt
@@ -0,0 +1,42 @@
+CM
+CM
+TD
+TP2
+CM
+TD
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+CM
+TD
+TP2
+TP2
+TD
+TP2
+SD
+TP2
+TP2
+TP2
+TP2
+EV2
+SP
+TP2
+SP
+SP
+SD
+Params
+Subtitle PE
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 PEve PEve PEve PEve
+AffectSpec 20 4 HSli HSli HSli HSli
+AffectSpec 21 4 HSli HSli HSli HSli
+AffectSpec 26 4 PEve HSli HSli PEve
+OnLeft 20
+OnLeft 21
+OnLeft 26
+Sched 4 4 4 4 5 5 5 6 6 6 7 7 7 9 9 9 10 10 10 11 11 11 12 12 13 13 14 14 18 23
diff --git a/data/2223_S2/V001_220708/S2/PPP2.txt b/data/2223_S2/V001_220708/S2/PPP2.txt
new file mode 100644
index 0000000..d923fc9
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/PPP2.txt
@@ -0,0 +1,16 @@
+TD
+TD
+TD
+TD
+Params
+StartsOn 5
+EndsOn 13
+Hollyweek 6
+Hollyweek 7
+Hollyweek 10
+Hollyweek 12
+Subtitle DR
+AffectCM DRon
+AffectTD 2 DRon DRon
+AffectTP 4 DRon DRon DRon DRon
+Sched 5 9 11 13
diff --git a/data/2223_S2/V001_220708/S2/QD1.txt b/data/2223_S2/V001_220708/S2/QD1.txt
new file mode 100644
index 0000000..f7e0e27
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/QD1.txt
@@ -0,0 +1,10 @@
+TP2
+TP2
+TP2
+Params
+StartsOn 18
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 19 20 21
diff --git a/data/2223_S2/V001_220708/S2/RES.txt b/data/2223_S2/V001_220708/S2/RES.txt
new file mode 100644
index 0000000..30b7b9b
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/RES.txt
@@ -0,0 +1,48 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+SD
+TD
+TD
+TD
+TD
+TD
+TP4
+TP2
+SD
+SP
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnLeft 3
+OnLeft 4
+OnLeft 5
+OnLeft 6
+OnLeft 7
+OnLeft 8
+OnLeft 9
+OnLeft 10
+OnLeft 11
+OnRight 12
+OnRight 13
+OnRight 14
+OnRight 15
+OnRight 16
+OnRight 17
+OnRight 18
+OnRight 19
+OnRight 20
+Sched 4 4 5 5 6 6 7 7 10 12 14 15 18 18 19 20 21 22 23 24 25
diff --git a/data/2223_S2/V001_220708/S2/modules.txt b/data/2223_S2/V001_220708/S2/modules.txt
new file mode 100644
index 0000000..72d37f1
--- /dev/null
+++ b/data/2223_S2/V001_220708/S2/modules.txt
@@ -0,0 +1,16 @@
+POO
+COO
+IHM
+ERG
+QD1
+RES
+BD2
+M3
+M4
+M5
+GP2
+DR1
+A2
+C2a
+C2b
+PPP2
diff --git a/data/2223_S2/V001_220708/S4/A4.txt b/data/2223_S2/V001_220708/S4/A4.txt
new file mode 100644
index 0000000..ba4e9b2
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/A4.txt
@@ -0,0 +1,23 @@
+TD
+TD
+TP2
+TD
+TP2
+TD
+TD
+SD
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 2 ACas ACas
+Sched 5 6 7 18 19 20 23 24 25
diff --git a/data/2223_S2/V001_220708/S4/ASR8.txt b/data/2223_S2/V001_220708/S4/ASR8.txt
new file mode 100644
index 0000000..5214d08
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/ASR8.txt
@@ -0,0 +1,26 @@
+TD
+TD
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+SD
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 2 ABou ABou
+Sched 4 4 5 5 6 6 7 7 18 19 20
diff --git a/data/2223_S2/V001_220708/S4/BD4.txt b/data/2223_S2/V001_220708/S4/BD4.txt
new file mode 100644
index 0000000..cabca30
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/BD4.txt
@@ -0,0 +1,22 @@
+TD
+TD
+TD
+TP2
+TP2
+TP2
+SD
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 2 SDie SDie
+Sched 18 18 19 19 20 23 24
diff --git a/data/2223_S2/V001_220708/S4/C4.txt b/data/2223_S2/V001_220708/S4/C4.txt
new file mode 100644
index 0000000..ecfeb5b
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/C4.txt
@@ -0,0 +1,22 @@
+TD
+TD
+TD
+TD
+TD
+TP2
+SD
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 18
+Hollyweek 21
+Hollyweek 22
+Subtitle AR
+AffectTD 2 ARic ARic
+AffectTP 2 ARic ARic
+Sched 19 19 20 20 23 23 24
diff --git a/data/2223_S2/V001_220708/S4/DEV6.txt b/data/2223_S2/V001_220708/S4/DEV6.txt
new file mode 100644
index 0000000..6824f0f
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/DEV6.txt
@@ -0,0 +1,31 @@
+CM
+CM
+TP4
+CM
+CM
+TP4
+CM
+TD
+TD
+TM
+TP4
+TP4
+SD
+SD
+SP
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle EM
+AffectCM EMic
+AffectTD 2 EMic HSli
+AffectTP 2 EMic HSli
+Sched 4 4 4 5 5 5 6 6 6 6 7 7 23 23 24 25
diff --git a/data/2223_S2/V001_220708/S4/DEV7.txt b/data/2223_S2/V001_220708/S4/DEV7.txt
new file mode 100644
index 0000000..117b80a
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/DEV7.txt
@@ -0,0 +1,30 @@
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+SP
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle EM
+AffectCM EMed
+AffectTD 2 EMed EMed
+AffectTP 2 EMed EMed
+Sched 18 18 18 19 19 19 20 20 23 23 23 24 24 24 25
diff --git a/data/2223_S2/V001_220708/S4/GP4.txt b/data/2223_S2/V001_220708/S4/GP4.txt
new file mode 100644
index 0000000..849d54a
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/GP4.txt
@@ -0,0 +1,33 @@
+CM
+TD
+TP2
+TP2
+TP2
+TD
+TD
+SD
+TD
+TD
+TP2
+Params
+Hollyweek 7
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 2 BDav BDav
+AffectSpec 8 2 MMin MMin
+AffectSpec 9 2 MMin MMin
+AffectSpec 10 2 MMin MMin
+OnRight 8
+OnRight 9
+OnRight 10
+Sched 4 4 4 5 5 5 6 6 18 18 18
diff --git a/data/2223_S2/V001_220708/S4/IG.txt b/data/2223_S2/V001_220708/S4/IG.txt
new file mode 100644
index 0000000..9cb7862
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/IG.txt
@@ -0,0 +1,30 @@
+CM
+TD
+TP2
+CM
+TD
+TP2
+CM
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+EV2
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle PV
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 PVil PVil PVil PVil
+Sched 4 4 4 5 5 5 6 6 6 7 7 23 23 24 25
diff --git a/data/2223_S2/V001_220708/S4/M10.txt b/data/2223_S2/V001_220708/S4/M10.txt
new file mode 100644
index 0000000..b3effeb
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/M10.txt
@@ -0,0 +1,21 @@
+TP2
+TP2
+TP2
+TQ2
+TQ2
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 2 PAde PAde
+Sched 4 4 5 6 7 7
diff --git a/data/2223_S2/V001_220708/S4/M11.txt b/data/2223_S2/V001_220708/S4/M11.txt
new file mode 100644
index 0000000..dd028cc
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/M11.txt
@@ -0,0 +1,21 @@
+TP2
+TP2
+TP2
+TQ2
+TQ2
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 2 PAde PAde
+Sched 18 19 20 23 24 25
diff --git a/data/2223_S2/V001_220708/S4/PPP4.txt b/data/2223_S2/V001_220708/S4/PPP4.txt
new file mode 100644
index 0000000..5363643
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/PPP4.txt
@@ -0,0 +1,20 @@
+TD
+TD
+TD
+TD
+Params
+Hollyweek 7
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 2 BDav BDav
+Sched 18 18 19 19
diff --git a/data/2223_S2/V001_220708/S4/WEB3.txt b/data/2223_S2/V001_220708/S4/WEB3.txt
new file mode 100644
index 0000000..f163528
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/WEB3.txt
@@ -0,0 +1,35 @@
+TD
+TP2
+TP2
+TP2
+TP2
+CM
+TP2
+TP2
+TP2
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle AB
+AffectCM ABic
+AffectTD 2 ABic ABic
+AffectTP 2 ABic ABic
+AffectSpec 5 1 EMic
+AffectSpec 6 2 EMic HSli
+AffectSpec 7 2 EMic HSli
+AffectSpec 8 2 EMic HSli
+AffectSpec 9 2 EMic HSli
+OnRight 5
+OnRight 6
+OnRight 7
+OnRight 8
+OnRight 9
+Sched 4 5 6 6 7 23 23 24 24 25
diff --git a/data/2223_S2/V001_220708/S4/modules.txt b/data/2223_S2/V001_220708/S4/modules.txt
new file mode 100644
index 0000000..251ccb1
--- /dev/null
+++ b/data/2223_S2/V001_220708/S4/modules.txt
@@ -0,0 +1,12 @@
+DEV6
+WEB3
+DEV7
+ASR8
+BD4
+M10
+M11
+GP4
+A4
+C4
+PPP4
+IG
diff --git a/data/2223_S2/V001_220708/cursus.txt b/data/2223_S2/V001_220708/cursus.txt
new file mode 100644
index 0000000..68c617a
--- /dev/null
+++ b/data/2223_S2/V001_220708/cursus.txt
@@ -0,0 +1,2 @@
+S2
+S4
diff --git a/data/2223_S2/V001_220708/weeks.txt b/data/2223_S2/V001_220708/weeks.txt
new file mode 100644
index 0000000..99c6ed6
--- /dev/null
+++ b/data/2223_S2/V001_220708/weeks.txt
@@ -0,0 +1,13 @@
+ScolarYear 2022
+YearOfFirstWeek 2023
+FirstWeek 4
+SemesterLength 22
+DefaultWeekLength 40
+WeekLength S8 0
+WeekLength S15 28
+WeekLength S16 0
+WeekLength S17 0
+WeekLength S18 32
+WeekLength S19 32
+WeekLength S20 24
+WeekLength S22 32
diff --git a/data/2223_S2/version.txt b/data/2223_S2/version.txt
new file mode 100644
index 0000000..a53f5f1
--- /dev/null
+++ b/data/2223_S2/version.txt
@@ -0,0 +1,2 @@
+1
+220708
diff --git a/data/semestre.txt b/data/semestre.txt
new file mode 100644
index 0000000..efa73bf
--- /dev/null
+++ b/data/semestre.txt
@@ -0,0 +1,2 @@
+2223
+S2
diff --git a/doc/archiShukan.pdf b/doc/archiShukan.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..8da18ba82ff9a5f4ad17fcd91e512ab686c0fd37
GIT binary patch
literal 60019
zcmY!laB<T$)HC5yJ^rSD5tpi}XI@!;a$-qlex8*=L1IaUetNNjZh)?WZc4DDn`@AQ
zZi;h$Zb4#6W>RKOW=W+_YFTQIt)ZTYf^H#Hou7YzV`#9ef^LeFV~Dedf^M;kYnZ3A
zt8GC_T6s}sNveWwadAmXerbuVy@GDBe`!fUX^C5APAZ5?j7|1jrV0iM`AJz^Ha7Y`
zsd?!o846|!1`0v?ZkahHsYMF<ZaIl1sV=F>`6;P(c3j0JMX8CoTorT9MtkO~9G_};
zCbMGx&K|x!r9uLiC9~bmoK2Q&>ow!q$-&KbyZy~7mB=#PyITV;?KiD4`l|ix=szXn
zti-Jx9#$nEuXev(d%s%n>(5;)PnIVC`~Kf=diefd#npdz?9Eyyzuqoh@b}ZL|I>Hv
z`M2LXLE#e5g6rk{;dwW7cP?|e78SSM=c-TKecko%R>$WrGxy1kEe^9iTmH9X`~5HG
z^}Bx`p1Q2`ur!zQ`?T<@YxeK_{aaMkG&RcdR;_8}uANVPFEb>6onI!9ncXSz?f;I<
z*=<*P!tb6k`t$AGtLPgS9*ZvJ5?gRRcd@JQ)2~8-9IK@Z_wGoVV`8eR%9VM0miK}q
zffGL!sAk<Xn-g2lFZAoK^tvx4rk1OiS8-cS*!1ky8Wt~sLz#>$C)dbK6`a}7&sw>4
zmzvbEgDeJhnPnW+PbVh%)$v_tDQr~bm|1A)Wp_PMZ-#ea<~fc@%$0%4vHlYmwCws=
zJon(!6wj$Fe6_k;m9_?T827OHYHZlNjaBYo)<K=4=a+3+Bf5RcG-+McdF{<rNlO-}
zvwE35Uiy*uwXUe4-2@XRvoPb<^G`H4g|2yatc&B}qO>(G2QU4cnf6I2r}HY`qz4Ig
z6Z&$NUR0Ts5Mk)KA$3dM&7(ppy=#^R99LQ4c*5&JakZC~s`!G)ScQb2e|0`vylj+@
z(s#ckeTHw+MW^db-1<7=t;eN0wth*vS$OeUQ<w6l<d#En8_u$Hg~&X6Tz0m2hnn)O
zPhK8ZudLNMSK5<pv`A5p?eSLb3(IG!ISbvYN?g=zGg*=Iqd>soq@NG@j4OXD%(=SO
z;hW(ULyh?+YJo~`)o;2oD=tW?-C2I{$1c;y2XF5DnU|vIG}E`CpIf!ZRbP-bCuZhc
zA&)N8<*Hm3ZI*|Xdb_5yo6q?@X%3g%8kW`?2Bp-VV{^Q=hLw8z_&t5LIAlUt{pPrx
z`b*Z7&HkEnG5?c~cGQV84T(zx1P=7Hd3vvK<ZDb)EnvIOQW%(;WcsXVO3k{%F?QPy
z*E7gZxZ^x+noyB(wyxhtn@PeJdzT*QV{x?M|F)!1)IWZj<@pCz>x>(c9=~DW^vD!`
z*m8DrSbDI7?G+})DBJrH8JezFbBkGz9%1)dyH&JyfdT8H^4)f4O(Z7;+|%_bnQ(ly
z+LDmwO|H|9By)6XUj4jai#J0|*NT}3rA`ao&y?G4cyvaj_FHeyj+jXcYc+E>=sEuO
zvbniW$<k}<feN<EDvL66PBscXay{^X)vHImP^8N*-~794M|?wAR8XIvK#NmJmT$?f
zz-uo`zfQ0GU%QjZLs0!eq0IDi4`(T?6DSl4@A7_L@N>-y&DATNgwmysy%IaxaYFd9
z&}BE3#T!J#I~kXQta;rmWIW-*kL6D$Jl-07^;28K*AV-E|NK3bH?n!Ylgpa$<lRCL
zqq3-+|H%tO)?>yq7~W+3SmCj(!-2C+k3;gmq_52<<@T!XNc}?9a|)&}HmR>{R8LHe
zT+PKMDa*X=M9-oPzvmn_b&NS^C=^~azj%k*M!wD{-j*p%ew%#QL_!#P(=AUt`aDBF
zZ&ED#zKrV&cX+1BMiy;87alR~hu>!(A+MYR^P_q%EW0pEDrWA6r!$y-w-smim?=Mf
z$oqWXkpmB3TxqD%m>apckNM{A+1Ju1{A*|C*v8mf-1l+G@{|>yImDed@QO(Fp4%a#
zI{&r7b%uj(mB)3QrJk)ial%<*<<3JK*FJ49Z2Fo!o!M`m@(tw}&WRjnb343NIBq#p
z{)fp;B6!k0<t&G=Z)L^xf=Ze*ZwgGTx%_q)vxAD1pU<%qd(J(y+V?dnn$O5VyQlb&
z$hz97ztc6VMIE}AeVqF|YuEjp+QYLPzJ0s$-&7@2bK!d1o4L<cAOF37W`5pGhS>~x
zq1|nnNs`AV-w)rtZ}u#!qh{OY|LR@s@8dtk!L|5aRMWLv1@oh_ci%q$D>Nqe`SnWz
zd~DCP)))oN%uqGe)YMcC*l?<^uyH=e51rPH!ExT%ryG?R%sKDO_L<Voecab=OUOyi
zWsLD#BWITNoOV}8^zwgPneZ><aqW+}jq^EwusEmQzILl^$pNLavK<>lE<`2mSYxim
zz@_alvHf?oXVgTY)W^nFVxL?Ot2qa`NJJc3UipbHa?<;P;FZqPo`_d2YH)6U6C~L#
zx9UNI&CJP#pSKErTK|vdHnWE6$|so|JrfcPes=tRWuKSly4FNd>HJ1U)d?5ac|_Jl
zbJg_+9Gbyoq`dVBhq=nB!_wz!1Iu~0oLrD6ykLP?*W$$sQZDKLe)}%Kn>RuK<U_{=
z2?B*ZufIw<J6Yzg5lrYPQ@z`0aXYuHe(%I*dLi3G@9$J@&|KXt_;=r|#V2xp=Chuu
zHd;}?_2#>M#@RDBZF>Lz;j~9T4t;%db%*5QhK-E!mRlZtU)a`qbl=VVU3Y8t7R_|o
zme=+<taVFJh>nCqw0BpCm`23L<2!<0YDryJ_IFhaf9BWLx~k|y`lfdl%%7HSpYe6k
zrK>T$lQ#+TdSAC+m!Ef7eDmK$`r?~T`Z`5+&V4Df?z**bzSIn+B%X_=!e0dbM3s7f
zk2`RsUE#9ugcD3k_paRfAoqRls@d<JoiEGtP)(1}^$e>%?dNQ5zW1%;_BF5ee`aiy
zI$p@fd_dZ50@D{Q{aa>RCtP!#I&GCL&zEHf-RD;={xXxBiz%eQrRn=s_YI=^pWUk4
zVjZtv^}p%CwJD$dHXKiKx%$`N{%+;cm0~*2zc996RJb7%zNJ(^@kY#ogwr<1Og&Fb
zb~L@BbtRBT<PNLNF;S~2O%iVuB~rJYH%Q~*^*Xqu#8oZ$gXasSe$Q><F}EG3sGm8*
zk#=QDL%a@8X2l^vO_l=Ai#tMOf|Dk6Ee<fK*}YR=%h^%v5X<BsADL+jC$C)idKTM%
zjq6J^@3>xeaQrB<PJe}`qQ<9h0Rbl4qv!8>StEY?<ibgd*Pr?I*jf0*qsX1lIBrhl
z|Fp#1hDk^Gkku=l&(}I^vhC#)PsM+jVG?DoVkBgLW#7_IcZ)AJD0)g-KUVV(eyDZ!
zf~~*J^t}%rc3pk2_T1IJNA+299Z!{+{)Mm7wTpkOv_+S>aqGjj`@4M`FENQF{_u@l
zWV7e)mFZi%&WNs=$-3<MqaFQqyWf9j|1-&3m8Zk&o4CdekN(2gchhCw2tN9zxZ%^y
zcehmRo*I4Kc%<Fo!`hWXy|0_Dd#mxMmT`pNJ>$n;dZpl3@Q-<pm!_$Itljz|ynna4
zbG!2A;1^E{6bz>}e15A@?|*VjNz3c6QB7L0Hy<^8xW#_{``*t%mljxCrTt1>_;~A^
z2L{vFeK{MI>(^!JF<qYFnw}{z`4RWktX(g*Memm~s(<yp<=#%Cdi~e;cUE0pUcPQ6
z%Ql{$#}0T-4q7%_JUy@XwV6`rU7@u1GtL++_`CgX!3&Ld;qL;t-tv}kwZ6{E+RvEm
z$Yv%juRZyAcE9NF12->LboYPzD)Dgol7AbEjh25|aVYKe)mKZm*Tyu&8|h7sF4`aY
zHQqXZ;hMc_M{-|?tJ~Mh&-6T>VJ#ecXVqQJCHDRmZ?-Q>i7)-!dv}@ugWY4rMIRoW
ziuX<C{cQ5y{I-HZ*0MjUQP+Rmb<RuU`u=h48lNCP!4E;5ipACU*f|SQvgX%RvM$?p
zZ}&Wb)E%p0_q?{NjXJY@+w!FHGH>6*lcIu6TCeE)-FU_s^Wd2O1EY!CA3dM+t=6>q
z`zM)%_xr>DZi=6|KPUFBzKM$GF>Xi8y1zExtCLyOpVvKK?DcD_<5t$cXSQ$MeR85(
z!@*0jcAb~xbHmz-Mare*mbA_diuwP2Syovav!Rw|&g-wU>+}M1f1Uq5zwDj#J(qjB
z5mO%?-9M+H<=y#qBbUV6FQW4=%H-=sY|-oJd&I3Gzl7Pl=RD8(u&9IW8QDrUw{v6M
zjw$bKzBfzHnm6#pJ}#kYYpTiu=f29aEw>PQz;iJDPF0}b8=2F2Pxn6zu;RI^R{rU!
z&9Zq@0#?=cDPFyQa8{N+OUau2J(`S*`d;hQM|}%pdbX`<$ze9`{SVZ0mK-)-6f}>)
z{I$Efo?pT1XD+XD-B#IZ|5m&2oOCmH*VVF@`*uFP)8sU#bMiAOnHJ--TUi}lL>|`9
zNHKFxzM}b7g)eu)j%|1Cs!IRg$W8N$S#&UP+wI>IU#wxR?OpRa;nLc<oZdNy-XGTZ
z+9moSu&sNCsY5Xn>nv3j6>aHbkDcyG&8o`adNAS2ADuJor^9bLO^M|B%02nerVTH3
zHtV)bl9|{4X~l&I+ocoYH+(pJ%I?vd4d2o}PkvpO#gpM&Fzv^MdwFYbUed99yPsp5
zWPJI{Zs&jPo8+AQzbyDZcfRz^U*eBnysYB<aqL-?->R=^*W11IL$ZIKVo8}`^y>EE
znTgGbHM?gl6iw|q-f`0I{qwlo7c!ftuMfMYEj35&&d-Dmm8Z@0<Sn+f2l>n|3#dD9
z#<rp-_`(IHZQoeVNmZDgZO@ANVx)b6!|#yn(vLcf$7Jhw-V{|~@=EbkI#<o6YI?G6
z%}agN+^E2eqI%nz;(AiuzYq5w-+P6l`-z*;g!|WogW1@Pdk#KYdAs5Kjv2=`e%d9O
z^6u@Q#q%8ma<b;{Vpup~#_pe52aKL@AA3}OPtxM(s#oE18x(E{CrrEN=*6*d#YUmM
zf~;F(&EqY88-$8+iT}Phu~FRbQPXpW$4cF)_mfR)m=9|FQ#*8I>c+T~wn@)d-~6+g
zefeRRg3~Ks9(7AS`)#4_#kBn&{|2nR=G}j~;_Jo#77}0djq}|C&z!FN{qWdtW_!UO
z+y+k*_eS1Q-c{idmD_xNVpG<P_FtlJly6-<?#kk^*rCN>RpjUU((+oS$0`n52cD6#
zc)oDiiv4G{nu~wDr?h^Hk#SMdWVb9{tz542H+v==(`ptv=BeCXapKVg-I_V~&pn&4
zcDtJQSMJZbx1Z?C-I=|E<p_`O<HhNQy_s+9FMs`4`Ph-oluu;M+sjG&=YIb;QO;l6
zZSU?$hhlEBerLIV>z>q#w@eIfPa~C*C!E-(Z`Z-_CgZ5V!=Rjrhv%mFx~21OU7r^q
zQ~iJ4?YCy1`+qw{uy!9md-%)mU+*UW<PdYxF6RG|thi=dL~8us3%@tCofAlu`L^I^
z(LU~J4cwF8wf|f@-LA&5`OEaXN>|EnNZ-48`u)#$M^7@{o;+Vh)Mna(MUVEZS;NUP
zb?Jtlu#XoH{xnrx_U5?d_w9-;W|1;;nq0rke*WUTA(vuu^q%I5>;DZ_2zr@5uKl{H
zBC;)fs>!}pPoAv|(3!tYf7vU8zK1MHa%cGhnFG}Xrv(OXd0JRoY;?VOhS>hX8^-Td
z9v>??vwPOHgosZb?>8@*SIpqPzv08twNp||wM({{wmnX?KedOQ#d6w_Nmf|_&z%1z
zJ@Q)<D`@gJz&7t%^_AM!&Ze!mqc)f8@BW)}?`NIRkA2}w6(a7v4p^2UV(im4!+xFB
zmF}h++3c66xTn2-xR$fRw|EiD%ww9m3pjaoo@^2@m>aTbliaD^=M|IW9vtyzdGbc|
zTC(VOJGR-ST-L0jyN=D0STSMi6NNkH4~lB_oV$Ia-24!iJ6q35z62k!=6aKo`+Qb8
zFBDsDp6xtiasJkw^>f!mMfsK=?UwoCqCac*{u7#9*&E|*-_^d>_Sb)&v{0h`kI0Iq
zH{pvl-|5D2KNJ5r%R=nsX6re{Yqb>u%fDLa*(>-hkNEZQ7<&zK0Dsr2f*)s3A3nY8
zduqzO=HsP*Y@aa5->m)nem1{|`#TMjmY_fDSyhg`Nask}b>C;1f9(|4lY2$h-AG=_
z@+U-g<7544u9gOG|FzcdcyMSYOG=bi)n5OqS6l6_9Pcr_TY1xD&#b$W``MR%San<M
zj%<^jHb>X3zT=F|n(2QW&(_B4Uf1k(;mFfk`{eYCJKt{j&Ux2;?$7a3m-^H<`jTz$
zK3>^SUG|3Q<(|pmw~yXhI&+QjXSejZGmd(hmrEvXEIeRm^W)pA|BRWzt*cY>QlLX7
zsd*`&VHVKf3Wzo_wlwB~iW!<%U<|?-nphGu46`=!bl#m4qIbWurx?3ku-@31$+tS9
zMs;=P@!1Y+IjbMDOxUEcG1JsIXWNnX2S0B|&We1_T=e>6^w~?vYK`JeH`iR>`Fx($
z_fLtkttqmd^}q5fWBz{7jK2SMbw=&>stCcKkE8x;_P^f$=0WR>4#twbzc&RP-j*^q
zB~ecNr&af71HbFLA8YMcW460~EeE%!RA5E+_V`%#rz`JHSajmBj>NA2CRcCd{@eNc
zbysSl)8dG|q8~Q>**1M~ve2_<4}XN73vV&>Ss?!{^n1kgQ2qP9&ePmo{%_hZ5&dz>
zr42Lg&;RyS;hM<$<B5spVk@3{$QTuJ?Y(LKw9PG0B(1Pu#p-p_qgx9ttDaAKZ?@7Z
z;4A;%rg@*$1d9KC=oAyvH=Q=~V0b&PX!2zfiTZm6mcDWy%C?_e+|g1PP&+l)YKFSb
zk~4XK(v-y*e_ZNVl6LR+*=b#z9Nd0ViBj#7UCv)a_bT(3ziRV3uE@1m@~~T@Q0vP-
zYi9r2DEVW7;QWOj93=`qW}G&vFpL-GST@7sPr>~U+v<WpEwnpnpgL17aBI~x%TvV)
zL82U`3zU5B9QYKy^`XUK>3^X%r<}PuX2st9oVP-iGo$b3mT(s($wfH<+vEN22Ig%E
zw?4XO<?p(X#Tn075AV6*p~1jp@>Tb}_SuW9{BN6sZ~KMHdnqJ0T0{q{)&GiK?dGnr
zsqx0k?S2m@{L^>wVHLbTzd_ZN(Q-QLZ@~w#8w`_~qKb|k<5(E`b&`$>=h?b%!8aY{
zPT2-=WHmA^W^VBNqFz}Nbi`ow;f3}qGJ8cdly)ZHz8uKhlac#C!Kt98f<@Op?3HXu
z&<TaK{-1l#@tEXRTHQ0hY|t4m5gWj@Fl77JfX{BH!`jq81`2H2`gZlNbx(t=yEiO2
zxZsEeW55K7nS1)@?wLRJtJQ;govSj2oP2-Q8AZ<jCsy(6W7&%KG|oU7M%(AP%+lLb
z#8z*7aK311F3(G5udQP5^_?uVoOTQScUv9M^?k?w2Tud+uN_u-m}EKa-*kQjc70}<
zhu$XwBJaq(_+`a(jO{?MeI~=?2?>%HEqnCl2|ZevqI9&y{?qPV@>aFmRYkI&`+oSg
zS54}{EJe#Z@jm^tSy&7ooLw>1Ge@~Mr|WC-_9u6H^rN0Jd{11;niIzoR{wpb2G5)o
zOdF>xGiI7G+v1&eDbuMt4tsw4oE3DqXnS3^>*YK3pJzCi?&Y0SnR9;ju@h;Z{!Eeh
z$}&Iq`(!IA8~3U;ea|eWRkCM9{pVY!IO~SNmM&?-098lFy9*aAdtUAS{NurgmdY95
z`@=-9bRBs7=Rg0$X$O0~9dB%4xz7^L=BfTk>}2HJXT1ua9`+_YPo3x!tD@=GuidP2
zRyOxT<4?zQ=A?t~Z~1?FQde{O-SIr5ovk<g`MpaTB;;3|H8)w$@Ad5n%bTsjdtA86
z>hw;O?{MCHNX6!yPPwpr;4%Fldpp=aZa8nV<JZTzF^b>b-P!(@W9d<0#o0GMI|`d0
z6Iyw&DCogWRq@^Ze?C2KDEay^O;{`LMf&t__uN;$cH}&=f6^^~C$EDGZYuM=su9uu
z@_wOlQ@(82;nOFd6c@caW&13;!pP#CdG1>7oTB^$WA}Tj79W<4Sdjbe#k@JEew{s>
zvEECiUCeY#LS!lP`rAt_KmAtdSXAPq>GUpYm*eI=O>II`nyx#BD{eM%3|;&o`Qe+m
zrn}E?9(;1`pu>gaSLOz{F6}h;;AN<djdMEoa;ce_Z3CxEXkVK`SX}nuq@>udYB#P;
z*q2iIMWp_|%BB-31)&<rY@7ey(a*INd2(^HA794dI}Md)|L#l__;dA#MSLQ+SNaT@
zj!QrI_T>5%pZskQYBuZSBemr_YF<~Yea*Jx&a|i}dv3=#sJyOQJ(-<LJgw$UjZ_rN
z@@@OpN^e-!^`2+8*OjRrd-qIB?_XhOt-WDRM6T1*ph#Wcr5;;bOE-K?Z@K$?Q&>z$
zcDk)J$MZQ6Q#0?KiP?DW^2gW5DxdkiXW6Q`Y@MCwL4nn8wnnHc&b};~Qxxjm@Pr|v
z+Iz+i|0H8$=Eurkb+nE0D;G|_d~VnK9huDy7gzjPaqVp2ytwW^YvtYQ)~O3bgk*f%
zI%Bs$jbW}t{>lF~Pc-6IIT}e`?G@K6UFNu2JAQdiRjbmMr;e)_cBrpfRo$uX+x$03
zK<4T9>177fHmbLLJhW;-^vCmG_1f-C=HGVDHR03yRYBnm2Sk^w-SvF3#nRbRXE2*j
z7mN^L*{P{H_rV^w$o-Q~9JGrJ;PZZQAaTMI%NHEB-ool{pK9hV=21DgCwG^s*y)$t
z^6a?`6ARA%aVj^LuRa=S@Xlhxp7+mPbY7o)(8BX{{VjoIiZX|^5;BvYKIlGnxAcMN
zmiX<7l5aM|zk9oDS6^Z63)VjV;#IG&vwL3JEpu<*cOx0mkN5S{eV!)Hn<02=>(ic@
zX9M4tuzdcUvx|S;ONI~Wm0Oldiaz@8Gd*Wz<BoKeDLbzE+TF08?OJO;b&ufNMXl_2
zil1JIk$$^7_f&9kR<!%CxXT->l=21F&)MU<Vb`7}@#Wtx9g3^{n6mzI^~Fc8&%G$A
zI?^-$O=#eK*_z;EiEYxpyLQg*;+M#_*w;Jv<%eC<58W{>kJ{z=OybV+s9oVt)x;#H
ziyU0|>3d1BM*WS~PnowbJNNYPBu&xsO^eTI@*O_?>dl=w7Jt&sm%eS7>*nh7XoiKe
zPjZ}V@%~GTTI^YW*vYT#ewnd7tH@RC_zLlDYgq2jIJMxwrqX*yOQNpt-=F!vaE+UP
z$Yq{ydouDD`TY&P`6Fn;gsiOn`kZH#cwXGjlIRIPdp?)%7vGaVtJZ`s6_(EI<V$|C
zCE};8elO3Hy2*{p927rF1{MF)_2x`D?0r4v71M(64$~gixOI7jPC8o1u<nWkSK*R)
z8=*rRY_d5E_g{%Ea{u|<?$_n%TE)MT&E6Nr#?O1Ut8V?}-)}BouTfU8s;>U+dpA2s
zV9u-5yHk@7XHR{r^Dj4ET~6h1`SY{2+l|-WoS*cq*!#VEbXv&LjY<`_`(~fDUF&|Q
zZ_bhDZmBbc97VR*|5DQCyA`v{^MLKXIcMrF$Y{;Wbq(N+dVk6Flf`u7n6u@J{~4X@
zxV^TD^TV>N_icxTJ|5|uz39d6yRVf0{MJ9%bmlZhOAFG10=2b_j1A3TZ7mZ-ODm+Z
zAXPsgF+Ek^H#H?Q(J8+|A=*H}K*7w=NWt9FD3(h<D8D4JBvrvcKOnIvHLpa$7}O-=
z(ho{4&Mz%WPA#^v(GMufPYzBkiPjHraZ}I_Nv$Y}<<fVpC~*%4Yc(_h&94P<>AU6U
zl_(gRfSP|nTy}O``p)@zC8>EO#R?Dwc6Klq8k(5X*^TCg5Pw13Xl?}Np|}y!LIpb<
z+GYg>1t@H7Y!viC0jU5E$zlb4@6429g=j8NI0tb-{1U_!tDx_kUz%5<U<C3z)CiER
z5F?-_I471Q=H#cti~?B^#HH_>T9TNOSdyq<Xn`J7=m7-}cP@SZ0AB?|J3E+F;Anta
z7G%x^(inss<e+$gNt+mRnSkxq4>C67G6p#_NI%HPlFJCvBo8t)<1z$k2+|KSG%)5e
zG=Qo$H{~)1I}yobaM;33#<Un5*f41vwjr!QGS>iP5mX~&sup>s7B-b@WMFA$2kn4V
z%rQ0#HwZ8Yx?mb&U>0a#8t7s8#OQ*t0SgzCV$Z}mr$bjH<fJf&g&3H!8ujq-Hq7EV
zSmZY^=GVM^T&k{1SH}E$=+GMTOU@xQ=9eGiIj**tUwRiEoRfEcx%*}A+`A2T7^J0Z
z^B3gl)jt0-=hB@$NejfRt@ZrHS+}+pm$`(7?v2}3a!_pJGH-rvvwxYNo=*_AIdcBw
zx72S-_r99`>3>%J{(rw`{XPD<_wW2o-|p9|$5p@0yLWGC?)1EBbu(9$&W{}i78?q7
zR%x*mF){?KaXAXgFi^k2qS*ixSp-AH(9#4sRE$Cm0t~`Ip<)znU>b@UDk%xzP+>MY
z!%NLj;gx<iJ?{5e-T(jpcfQpvvi%nq|E>O}{ObSqkFMTpxf&mTe1G3<`H+ggUvFLd
zukT%d^nX{}E<>e@jjab8PhSmIoWRZSncE>9GZ-w9x|6umhM^fs+As|=2rytv66R(N
zE^ZZZ)?>D1c2<z*NbGqMv(AZCIGA~ZLV)Om#GH%;3$j<HXJ%$5a!o4#^yJd_FQFQm
zTE0&&@w00^yY!u5)ssu*Tm@kUPcD^rvPsFDUiyC7`!{dcp0M4x@uFJ$1ykyr&&6KF
zpSv2P-n`ji6DwjO`Rl4!_J=pm{`GV5F&5VR`G5WY|F{3YzINZUy?@3h{x&u~y>S0l
z2R#O>9rlwkJ!=li%S1%E5mJ<IHV6TGw%D6B8Rppu5(0-LPVS6p<$9LJmf*NROX2X1
z3l5IggU(;Nbm@?Y%KIlLm%e|wIv^-y)~TiPd?9C+zGn<Mx%9orgEa{!mcAF_HL;lH
zec$)~&6~U@csFdk_&w|b>nV%p&!;?lCd$0^#?8XYT^cKNXPtj|T=~wO#S>1{bhtls
z-fwW+J$jkYIrZ>3x7PPvUE-EmbzA@C|M<W9>wm+8?!lhhL^}Wcua}UC*b!qZ%CwW=
zqN1lOW*C@(sx2bIz#J(IjLpIf0t~`H$$nFa!L|S_$vzE~?6<KP^-wd}yBe#zSj0T9
zD5!D#?7jPByxqV1zxN+2DB}1Zvz+7hx3{_S?<|Yv7;M>SSY7}7{{0ody(>+>OZb>R
z$;!!kkdX19=xYea6D9`pBHK*NfG{O4F<6+P1O%v51P6p!Al87$$$$n#gUtdp=M8fv
zt54sze7%!rV5ZjeI*WiV@B7Rvy1ege9*AT-QP{~QC54*knM;dbTB9d~ifK<y)SNi>
zz*+eA^pn&7*uK`U{X125+w!`j|Nq<jKK>{Erfz%n+pjTqb#Lp*`pr<gc<b2F1qY5i
zeYH~H1S><Rq_qkb--GHQ!pXqG5ZU*}!QiZ5tjrp0jG6C)y=j&2uaq76Z-3OJb7jly
zx7Q!?-~PXU-T&=>|NsC0H~Rbk|5J|sa&dWOul3`y-mm}c&dlu7S1)%`5NGJV>xQKa
zFeWbjn_3`y+z?dYu_q-5vjzuadR&<s>hU~k7kF31%#5?v3#Y%GUwL`TZ+o+XpHrSA
zm2%xWHrAL?YYA#^5R6(QQ<Q{l4)S5>1yhq?1LJUmt?(?~1+VYZ!1cX3qmd6Uufr~$
zgOkwe`>CM%J{7sX4@R%=%k(hndsf5T94)m+>@)dSez>7wA!BzW@k8o2*5iA#;=iw|
zo%#2E@&D_!pBMlCe>VQ#|Kq>^D|~p8_3i)tjqCr{@BXsi<6mjtp{4ru+ePkloeS6@
zTD!C4_u3a(7kjTSiN38OBWx{Gy5z4+*^>Xpw<kta*w@wnxpx2JMZr!!9Ui`zb@R9y
zV;CMiPUyf4LnBbbmS7kfTA);m=AcrNF{zlDHCPxkl^7dCQ%Mr_Q%R9rT58OM3qL08
zbzQgryJGOX_2I#G_rK_WpZ>3Fe@w9a|Ly<&|Nrs-#sT-Mi@ExK|2Ho%Fo89X4sZ9#
z#tZ;MQ2Ui|02m{;j!b*@avgFIXwhBsO!FCQ$@_rsHXM#ch7}zG+T0t1tQY^7ynTBC
z=Ls?E&u7oAx@2g?qBrHVq`q9<t38gh_gj=#6v^FTSh;O+IgeEPic=HzJbr#PUXguw
zbIytht9-vq_?4mWKfx_1>&!M+#b`er&;IE9ckf@*@P0Du{>7}G(r0q^*WKlJVetu3
ztzSb6lnM_Vm4ToN&pZHY>o*Nt;hC};`B1g>8*@gAn@Ro1oB#jQuT6P&tEv5eVZ)FA
z@&Du3@1LhF`(CyD@af%eXSaMmCebY0>3Zo*aD)Vl#7;<kzbMStAB*>iOUdS@$mN|G
zsGw&|N>*m&#*&iZ<sA)D@~6$)Pn@0o|I`2f_1Et|Q``3K|NsB>hd%wQ-}mnO|76Dg
zm>d5LH4F-&P5ZLB?lPEOCNAk(7$E!DG|V7?AyL>HYt|KpWnHSbXs?JB$<5NAbm7M#
zx7v@l#aB&cj*rs+`&Ij&|BtoPUvKVT|Ns9ld!rxA7ftxnez36>+LT{f?Q|Q{+ZIGs
z=|%=9HJfn&tea;VZeSMd0qN$2FmN801UGP(En`b?WKAwsIDFy)!-|svI?vJCwkJSs
z+oQ;BTNBi_E!(SSm&(tb*F1Yxn=NbO=Et8(0u4%|fBX-==Gb`FX4mOiJL~W6{rdmg
zw7>uN@4Z^S_uv29TfO(c`adnU`tPUv?{B<*J^g=O^t+$G{=eP+Yu^9=>g9X?)aQr)
z{a*TcwUmW~6tuNl7U`FVB}|B`?JW(F(}E!=^|K@iC$k27L(6diMDIo!T8w8<zZlos
zp>QN|am|Xot_t&=-+CvXeDeR^|GoR)8r}&0|NsAg`?H&x>eIf~c+~xn=l+rXDf3gx
z|Np!)JiO4VY{@NuC(Ix)CaO7LXljfc1V*5CE?bgvFl#V3GzgG-c*?Laph12(JLf}v
z(TCsvZya<F-e%9krvvp|?mpWRES@7O%^O-G_vnl_g3>%&lCUtMM~CD&VP|Lr6YDvK
zqL@XEY{!dU?tW=)y_<0-qnX*SdtAF5Br(P|e0kkja#(VfR>*Ji2>H3sB);hX_1gbi
z|No!z|NsB<<~jfWuiF0f_5RphZ|APQtyU6|aCo6`CsPj(6EqBb_^sbyhJhtf6`YX)
za#d|?7zoMtCgBE#A&896f@tsMWP*A!rfi_`9jdkWE}ygCY-TNUAy)01+4uT4@0b41
zJ6d0F{<l2s@7nJl^QZqie=mA}?yvc;eysh!{omT#(dK_MFI~*8Hg5J?_vp&qO}^I1
zLmCgixh=pF9z+f77#X0H|KL0i9_}&>LTdgZhP#r$13Oz;K*2%1;VxCtV{hhfs=M;P
zy}^H)y-fWM*~#$+i}Q+n3)cR8dTZD3|F7%+x1NZL|8Jl7{_E23{9Q%U_N*}!EYA_H
zx+!?^%qfKfC!pQDQ**p}FvG%vxZxd3l-hqYXvBjl$=Dcc{xBAX=8qJr7l6}3Sfpj<
zEGz&Gcf4<L$!yg>B$?&EF78z5?+-?s)pCBNPW=7f`Tzg_Qvc<J|ID6RxkUGB(W%3K
z|4WF>fK~&_LH?$g!C+2QF=1qYS`C1@L}3?9gABF>U>)nr$pYsPb|bO}Jy>HG^c2_m
zW#+{h26WGroxZ%g=~mNoc6k%KDaJpPCcHoKE%n=0{muWY-~He9|NqiI|NsAw{LkKO
zzxmp=|NnQtd;S0Z_4@Q{`LoNk%jRxL?mKAGc`YrBjnNG{3RXSWvmG-qOo=QnQ2U4A
z_K|Th))7B=k|4IoBznXzL{`jXqo|0@&PPucsM|kms-FGlTl??N|DWIgSO5F}@8AEw
z|NsC0pFPW(|NsAg{rdm)<LlM`zwi5!+W*SAwzXE8Rm{paO5gxuFyzN}pXHb#0-kCi
z*x5mAISo`UnKI?skN^LtO#QTA?ZXETbL02d$AAC!>(^WF{q@m%#XV-n|N8#E>dooc
z`1Q}v#{I89edklT^}c&vxBh?n{VRX-KmGmN|A&41#Kzag22CZ$nEmUqgb7ilsG%83
zx5*4NJRSn-Hkkz(7-1P6hYXJyF&ps^9w&6@^ESC~AwsX#yf!`ET*3UnF}M5DD`tD&
zx3phwV!mEt#nE$pr!TuYZv1`nsu<_qtD*1TzwN92TYmcA?R)>%h5tQ&_5ZTJ_P=l2
zv9YQ_y=rb~)QRa;W8w-)bCgDe8K@Bft}u*(4UEDu8qRKNpoX(DH&q+X0nsOly$-nT
z+<B^S{VDI*zw2*u*Z=wdTzcR9-S5Io1U|0Vrm42gh{K==+CRFNsXr6bzeYs*7o|lA
z=^zC=W33Z}VIyEvF95EHoqc}dfpNi)3pF1DM4$Twuii2J+oG*s<NwG1@8@c17UjGC
zKOy4*Y^c|h*Ny{=hlwij49!tmNCW5LoD^?Ep{W1$MITz6pMCuw==kUUuiaPwS)P&&
zUy{FOa>v9Ai3JG{p@ZAkm)iDW`q<E%sE&`30ZJjiEx;gPLkM^f5Y#AyC2HhGA$Snb
zl+8$os)K;m{8AR{0_|?^N+=6SnDYOZ>VBu|@$p~HH~+hO@5BG&+m8L;74`qut-7tD
zzn9(pmAb(?@au*QmqYVzt@?lc`v0}N*6IA5@7ORA+C9Em=sFQgkeCrS;BSc%B&MLg
zAZwDbLh8B+NheYlq$hAZVTMhCW@Rymv8-YOjfjer=zi7F)z$TJ{N#r^4|)_dE;<!?
zT(lW&Toh|7V495SKik~7!mGTN*x$Lm|L?E;Z|h%QkFWY`|LXPXy}Q2N^Zurh^VRM|
zl}rC^-NKjp3$Bz(Y&2UrCD*>0K^Zy%es_`U4r~Ddns6sr-5H{Fii1D{B+1@bhyIg`
zY1Sqb^YiS8-(G)rUHxvmy>Y*Oy*|Bae`w+F$II65=X>_2tN*sS>=~Uu8CSnup7QqR
z#s3Z;R!^Gy8EF<E$lpU6TNn^ky%`yxRBzyE0LG-`Vyx2u$;r?_puw=%Jj)dqeoUw>
zG`4Sd*!O(j&FP=^?*CgAqF8AC|NrteFKw!}{aXKc+rDq#;#PCBR3%+r<~v(JbhY`*
zOHsA&r>kyTI{lZtfuRO$$hWn?eh-!~F(s;AFfv3L^ac+gg@Rhirhx`qLon(=wP~Pw
z(AZhw@D+jsNDND27B#jVBixf_<$iWzvxjVo{Sv*TT?ZasQ{>yMyE%SE<j?AT`$C@n
zKm9+v=IZ+J|NnDy{{R0!KmSMD-}?V`{r&6W%m2ULc6a8_i#KmCll^usFn96?KMRqG
zD#sQpFFbhRz(HtVDo@E%7F+lbRgIu^EMaA8h=CdMyb7XYnUV<VMQmjO6{*zgShoIo
zWBlfS$-lMrwSVu&87S7wbFC}v(`|o$UH|*zW&ir?|Ng4Kvi^Vgs%!D_UsM0zTID_2
zd2jjMtGi3wOO?%~#haOgp@m3!vJ19C#FVIUWg{b$MuaiA5DE6i){9uMgfT+kkb#j&
zz=f?>HgDOo#enssb!E}Z>R(z@M5Zn)dfCo=wcurSgXeOFbXI4*+UXe!4sMM3mG|r1
zxjcuwhTh(N+ne+Pj=>s-Hz19}Tvu-P@BjU!IMrw7{pi?x@$T2x-)^mq-?n$(yw$s3
zzka(l`rEX<dN*Znf8AB~|LyJiw@KdD+W-DC`u%F(-mLi7*Q(#Gon5PGUw3o*&Fk^+
zdi(7{?j2eD!NbY(z#sl*W^QO0y?-0zi6z095E(`&y>CO%&|5G#LxmwS6w<<*q&!f9
zF*ackcJOUWuvGWgtM!j>owVpuh~D3V1x|Xk{0o@$YC)l-@KlJ`1Z_AL>r#U`lhn>A
zi9Y;s`0tHU_ieBH+5-Q1*B$lktB?F|we8>kTfhFFtiNBkVxskrg|qBGK9u|XOx@<q
zS^oY1|Hf~A{Qv)j`2YXe{_g*BKm306={)_d{OyY>Lu%)U$wW=q(9r1!TY>Uoo&OUo
zp=3<dcs*L@9F&p_SQCp`jhQjWCxc<*lUY<Bq7Yl>9k8~4ZU66I+rP}L_*3=%zeB~}
zuS@?=|5iWqf4IEXhx@+|{oldTr}e-7^7Z)m`r4QOm#*KxukPpJ>x&{EzN|-d&R;ut
zwqgqn;)ZK2QAY92L8E!hN!-fVG8StwZ2BUN`oXb9_r$MXMn_dNobUh6|8aEM+_nFU
zzdnAfzxMW~|MhEL)pL9ee{FhlQS9rm|NG7UUf*i_D%)n#6p`28{voy6*DsC7GE;A8
zOysByYO@{GU}H)OPR1G(!LY$yVh68?9o%*OKUv#PuI&5-`<U<V@Bjb*{{R2=zn@3^
z`~ScGCusi8{>#Vz>CONDy#N3H|NUS8|G!TD{r`Xe|Np7>9?!0y<`lO=si4zq0z$E+
z4I&%$C~3nm$bi8q*4da<7`gAZL1PYR86U?Ka|Uj$8B)xWZ3(yv6D??Aa$Hp^BSUBU
zzS;XWZ<d}QoshivJ@1usOW)6#A3SSzIM0=&^y5!oE?Tf{!P^fqlC8~ex>w)LyW&>(
zt~X-8*8fY_uU@a;du#juU-oPNUaw#KU+RBWea_u2f3NS|zpg9x*VnKsmzo##R2fIf
zo5ik-um5}f{;#c`=hhVQaQQ$-za!hcs<8x$5pm6WbChO1cpV>0lCn3pDIWOzCJm-|
zWNPjlIsb8EZRd{Vp?^;QQWYxv_TTZr;;UayHh!*n^<TO9^m3N}#)uxgk+Q=<Y@Q~n
z32$VG;%Q^Z`UGQPtXadDnRd-rn~wr%_BBfBYW^RZe&@!2&fov%`_{Vq|8D)-`}Otz
zYwP#R{r`3S^sm<rHM#j$f33gwU+wR%sMXtlT?+lX!!!Pf*sE&&j9r(G*}KLoC^SrT
zY=Cz38r;1<VFnKJ4mmta8ZA(2UD(K#Nss}`&=t~r2zX_e89Qj`iqL!rc<Aa1`q0%}
z+(TE}|G(|4-TU?4yZ86%x4+r{_V4+!ziaouj<3JDr~c-#OJ5a(({u%QZQM2$(aTkc
zvbl)qc|#-OIyOcqL*1Z8szE4d+|Dor>+DAkc)7z?7Eo80dW}@p^U~U?uj)7bxeXe;
zwJ^B2Fzn%v!*A<40;aa_`+hoTeeAvcLaTp;P4kJbGI4(29&7r$>ksSq_wR4lRR;b4
z|9au;u>b#~e^p(*?_EE+c<ZETG37a_0tru`LnBc;0#dPrkf8-)%{-p;fjTDw3L((Y
z2x$4Eff;;c1gROH$sop}MdemJE4#h<$Kskhiw%AU-79&&bb8$WGku@xR-9k>TJp}q
z=|}D7Z?F8jo<DA1;{JQD;(l#<8&J}HgSR!etJ4>0UieR`O(nK)AgViqwlHQBXxJ0H
z0NO0Xz%&Tj-9u`frX+z{r>1PwT>#B`{>I<O|KsETZ-4dwt10)hB{7_K8UKI%+Q0X!
zz$2yQf7V~$`0M)h`1q=qZ!g7OWRm7HMOxvMm*LQl&HqHT&JE2`h5$en#|6{C3#KOF
z3`&SqkP8f8D}vqHK>gj~WCiEzH!d+OIV+&^8g0eIDbR|E<KPt&3{Q5rF!%O8y;Od=
zysV75h&d<c%ihLYJHO0DUHE)O%*@4N-=F{Gy$6r||8MWPM`UBYQpg8+R-60g{`s%>
zPo1^wUU}s0EtMt`QWnseus^Mi!dQH5KvZkn&;X@$Gy>He>`BhXtgr<U&I;nN_1@mh
z8zg3!nVSS$FlF(!K<Tk*M-;uRZr}j*MIb%4%8fDe^tg<8zViH+PS`Ndu?^NYD83@6
zht0LbwT6w5>$%MaVFnCN%Fe9Z%B;%Cu-?H21z3Z}pkW2;r8b3ALOPGpV&>S=_X`<R
z<}l3><=Ocqc2T1mo}man@P>s}X2eRud9UTM1~^g441J^t)CmM<vyA~*i<=~HZM2Pn
zm}~~Fjfj{?$=xXF-rIFZvCiD|;Mq`fnX~%o$9#o;%5VSr`tR%bWhwD%?Pu)W_T~TU
ztxNa+ORJCEkpKVIhS=Bt>u>I=%l-SyJAA!<uun|EipJ)JuxP!p&Fwp8v|19C28~b_
z7aDJdmpq$6V=0&=4`hKVaX~`-hLodeGNwlMHZsvFGVwB&Dbp6u`Bv&2+;`~B^yq6@
z@kO&%|9ky)tLyJ?f204N4u1S=_0|8g*G=0O_w|2%#hrCu<M*#y8!swQ|F`PO>l+t-
z{eQje?OI+?ZFi}3{d%dQ&znq(k(RTqI2C*zGqi{u%13YYLs#q@f~qX^(Bhb4!oaO1
z5zQodtc?xlFaosY56QX<Q3qSh1I(xIL!Y~Lnt#}g$?VkGKYV9HEw`oZ|Nrj)?(*7i
zAOF|SlAO=+Rxswr!u_8GzAxOdY<>K<xAs@Q{=fe(+J7C}wz}`JyL|r~=5;^Zu_Tgx
z_9hAVgnsE&w;aqcA#yC=1ZDIIT#AKXFf|HcP%>7A6$}eBU`2Nuc*>4DS>f=V3k*w6
z3+TK=D<4jRO73Iek{h~@!xVL`8<xS9InV#~bI!BAlN^xn2-+@LDrE8;i<gLM(i@r~
z7j?#9FEJ%DV;z-uhRw<m+u0?0TK>v3l?qUO^glN#`~Uy{ljHt;{(AqvyyPC6OKN|S
zMtt_j+hkzzDN#*SLo<~5R<KXORZudPy$7H=C_r#RBFYN<vQNlcj>0!Qx%8bu3uViZ
zH0tgPq%B9HI&Z;Sj;@%!(6ISsoSiv)257^<|5TYrm+g0Iq3o>M{a*VorZ0&bO*cec
zc#E_QDGYzPPsFY}qRV~H)|TGQi;n+4`LJs)KmUJs=Jo&o-~L;Ex7+zo^fZ$@lRd6j
zM@`tUrx~#Vby2+&mPO;H#3f<WmbEFUTxUuWE=HPJW}N^To>-BP1f62*;o+t76r0fP
zfA#z1n2z=5ZGTr){Wk2)rQFML&(>K-?J9l!?d|tx`)fYFIbC&r@5gz+)8cQf{+3#I
zLs`y|^W}f`2niWz8_S@~{v>A1TM{*HWoU`I01dR-h%J#DDHIS}>XK=;rS6KDnW<KZ
zsQJg;rr{RHe5)eAZhv)u>&Zf)!nXha=f`~A|4aS+_dnNn?%JJKyxr5{S<A;49vKEE
z1+b~4z04M?FhjtCxMrIra?^UV3250FTM{?Y8lwsDjdo(7vY9p;?d0y1)vms^=!?Ve
z&8MrbgZ7pD-yi)^;nn~DxtIU{KextxQ9_VKNW;>;YyWru`=9%Febqx&FD~AX(fP6o
zi3PBg2T{%GSO&MviR^2l6zZV9rU6?b_T{O`&=E|=Cz>y!UPVSlMa^h>GS_D37u#A<
zuP(3PonH<&UP7931{VSkP=_L-9mO>sqYv9n_}p^t%8{mTNBP%Uyiu$F`Qvw8?s;yx
zgU2SXzQMn*HhK4Pzh4j3=lLAvJ<oT0@BP1~yG>^Mu28OUa!3wlW_M<WPKBJXwZ+on
zGa_!}(h#M{2d}VV1Fb{khBxC8dBPYr-AaQsCq;(oSL#o7ZT#QQAe?l?@k#5yBdd12
z<o@=mSZT#l{ran&@pWJ7<G20a6u<vd^t=53`~SXuzkmPhcmH?q|NHj;_WiH9r$(60
ze2qMiw>mEZ+i*WogO^6eDB*(GoU%D&gFzU2+ipcd8fanS1_MSTs%}nU&1NdOC3fxq
z|I1~$?tkkoEE3<@IV$e${4eldakbu0R=(rnCi}O{=5bm7FYNEyU;lr-{%<dEwLWd_
z|Nq~=|NsB{{rjrjb$8cpf1USHecKf-+dIhx6TWVEk@(K+9jCdKtc-*t3$$2mKAkij
zvrsW4u2{7|X$PBv3Kj4&EyFMabLjpC22S{{Hb_6poSm3uz2K}wOh4-2LFVWG|NsB>
zKmYIb{a-gOy`KDq#kKGM%&QO2e3qB|lUc`?7_;l||8@87>)z&b?cSDaQF5q;6EU4w
zcF=zw7XK5OhfvzQTS2uecq5Z(7}iCsNswjU%v4S*<+px_%4Cb!naBqvK71Z<;`^4+
zy-(glXT#F&|JoLs_y6(#|Ns5@YX9$lxBJnVpSQo|?w+^(ZPmJW({hFG*|1&idm)kI
z;WIJr2x9rB_#9U(naGm3OoTe50bT$f23hNb+|)u0_(E2EgBHN^Qgg%Od4AvP0Xxop
zocLGub}8T1{TDaB+W+gY{@=fw{?}ixSNQQ<`p^IRzt?`}pWYvPerm_vO~)Su%yD^r
z_}X!WlmGSSd+7f^{NTVL=t_m(Io|A;DaDegAqPX0>KC#rf+Z<f8QYWyeBO-MDG_4l
z&9=63>t)#GB|Y8{Xm>^J$Bg;T4>evZ@=e{Twfj-L{@?3o-d6tkSFiD6#_QUmqm^mj
z(tiGrI57S6@;^0q{>vj(zc(sEA~6HPf~bK8LkpDR6`V34MF#TD2*gk?WM_mKQDp|v
z0}b$<5!-C5ukZc4eeeI+^}pt?{%`&5>wVqd_wQf*U-r^|!p9%i?tiVnj=X=f(c6v_
zi_eK{ila0<Kodj^iNVDJUXX2IET0+$j(MDWsuf~jYRJIN6v_x1F5ucVt!mn|X=2M1
zD$&*+B!Si*ctNHMA%h0^R%k$%?`jq{_AFhwq}6rn;fMU+Z~uFDe*fS9-`>A>`0>B~
z-~ay(LOgN*|Nl?@zyAOA`1oJ-FHgtSzIQHknr>;bYt}5J4PbV2eVed^15tfVBNOB`
zO`8os%b0^Mm<DYy2r@9mGT5J(02<`pO2K9jENlJ_8LD6V@4s$NN<oN0;;x5_3tqfi
zTfh7Ny}1AHU*C=Wf4~0w)&Jl3Ke=@N*Z=*SjkDkW-yggC%jy6BZ|5KN{rCTUUE0+D
z|L>Pxo_^>5|G!`L?!W&3etmVO-2eS~-zV+<TK_-)3+Mm;cGv!WFa2L1umAsk^ruF|
zOxk<F^fb)CGbJkU3{e8l7`%6sEfM?tdopa2k?M^$yHriBAODZ@*{zaWhcwnQFUe{l
zrpJtlsxb^v&wc=x3v5ZkSeAl<htr%Sj<vDj&Ky#DwfqJzi8=yA^fvSekcv}37JO8!
z?vCH5Y`p*Z^skBg_dWZ6wSNEO`Dd9H|IJ$cKfgXn?6-CGby?d^m%C=?WR^FtJ-dd7
zsRue`?!M7V0E_R5D;vyF8dBi%fS8h!omqpiG{%)-XFpJXs7Y*I?yCRwfB#?KzqFpa
zY{#yf{(M2{Klxez$9!vEkzKy}o?h<db7{gzOQNTg+C^dd+K9+LDT=QVgA<5-kn|Xw
zxV30zuH=7p_Wl3)8U5dU`~Uy`w6ycJ8tXu%U%o-;;<_)t|N7_IAJV`6clZ9kzkhGv
z|N8Ym@u;&?Cj6^!K%Du*qvN#<OGpsakTx<#8J_?xhlfrPV_(OZ1YR0W^(o@DJ?z3#
z*Ev(Rd+gou;D?i^)6LJ`pQp$Fe*FE)-}S%i>}Q@gztDfW<M@x2O}U>BZ_m&9{?0Jp
zJ|^+`n~2LdwkrC++dcEizwh6}>+f!TA9P#fa%8*7eGA<kr_Q`m(mrrP;Q+KDwOQEP
z9y6p2&4}#3qck8ObA&;lIYI-oVB|G?@Rj2^;6<P2%tj@=x{fV76(g>loa}x7a`?g}
zD@>+(+smw&0y-$B4}4I}!3o~?Ri!d=h*)}45cW{9uKep#Rp0pQ>u>+s_UP-^{|Y5%
zcmDh}%dL`wo%QeS=>Mg$$J%#(-E=cNWLnJHw;d;v5ChXQruqkA3k0Gjij7QBIv&QL
zIuvrC$X1qx&_kjSW9`d8<2kIw!Qf@VWR116Wj#mVR~`^ukly#j@mcdHr6S)w{E;fF
zYUEd)^j-I<HuGP8(bd}jTjT5Q{(t)W|NU?O|J9%R&)j(H)sOt&_mA(7{q?^*ZQkOG
za;^KLh4Ng}XZgl|dY>0k^7Yc&?Tc2s-oDo<8+)s)!`b~&d*IiNufJ}5t#|jw|JVO+
zZO!HpLt0tA%p_qgwh$z$L5{Y;47|jVEh(5A`x-|Y4hi~s8r=H-$)021jnMzQuKl}S
z`@jCS{{Q&jPwhK||NXmv<^KQa*Z$T^>i_?A`S98QYS;hA7ybY5{ki`4_Vw{`4{v<x
zSl+v`&#|!+x=csiBR~*KpqLWZI7jWJn1h!0u_YB_U+HKJtA?oFyzsesZC!YD&8Lc2
zsn@;#|IfSm|NsB(-v9sq-~YDv!IM}2k3V4$O(;4LmA~fy|NG^8|F=K$>E3xpo$FbC
zF49R<N4{k}!xj?6RZXb-lfV-q;ouIeNjTOW+!^3jswop_j+oGjB}hMom=k+?-^z&n
zuAf!)`Nb8`p#<lTip~7tb-BZ2_OJa*_wQTRUo~@PB+|ZQqc$UK`!7t1s)NvaX5btF
z-jTaC0BgG(v>_+N0MsrgyuA?OWArl#v9!y@7XN*6;AF4sQ%Sb!>*@cGbMCu$`|tKY
z_qV;Co_GA+uD5d+@5;TEIE~l6gvV^-N~E=WTfO}Zu*Ei!<2WcQFu+?+z@5@<AqJ*c
z#{6=?tHMngi5bYk?saU(F|zitdVYR(_I2(1o#Ai8*WQ|bbNVOS?|Qd2)_-^^V1K;%
zaJvPMf>T!f_p|-~-tYYX-~RRg|NmF7?fbv&_pkS7{@f_tzQ|a3dxz{ZpEn%_90@4`
zu;FqyMy~)YVFNx)li=1Qw3PwiumK;+W{4wfz_l$XY{*R(3$Pqj$?DJlZtK>qQ}>zg
zJoWvw{{89Cyx;k*`{ui;*y{YD^B*64U~R45{ImA^-}C?H&#!&``2T+{cCE;3n^Uf6
z*lT6{GN?UxFY51Cd9k<u_y4=?cX`5*Tc>C4Tw8yJrRI>zv|NuFR}UP#0BfEkW(1tU
z7F<LoC6wj~czOZ6g2})Td2tD1<O{Oe&lEg<Oud4mRa&k>qvnPA=^YP*SDXL5v|4}l
z<LPnrTfgSNT>mv8=6}}z>;Kn#@2}hYHnwW^<7=}&m|c8wz5eyLWnYWe?VmJr=F6R3
z!S4mk`!63v+TtFw-Wy8`*POT>jwy1lA2OE?D^NGUb}}I?ZG)7jMy%lSbQZNvKm(Vj
zcB#1*!5{x$f4zSF<85)fN?wX0HsDP1)IEV2_uxAp2<8++Q<O%$5on(PQzA2~Ff(lV
z17bpjcFP6)*3Gdj|66ZTuygY9JxHsAv_6{}VeuJpk%xBn8ff|yTt03N!CEz>fy>9O
z3{)*2P22w2Z{B5d!_0o)Z28^)zJGnQH+6TT%ip!%H@@D-)LFk<(dlc#y<O|S$2V6L
zUH>0jAI+||4(Vvx?(;rOSOS2k)}kTm*^EY@h7mXbjDisR(UDRw<Yd}S)D3{Gs$19U
z2JtUd-FGJb-tYf^kDXMMJk%9@d;9j<6X7#X@BaPne)etVT~f=W+B{ecj5uJ^#wp1r
zwU{0!ZYPi->I@I~Y*Mht%|fty96ZB8ZI8QtzB&7b`0^UT6W{NC|M&0ro5%nCEowRf
z>#90_JKgzWpZMti^`C72U&n3pJ+%4th67o0TUmX0xS#_wimxo*Vfx>YxN#{XLyV>Y
zWNETtF!sgUkfcxTwaL@fU!1IeG!?v8qsn062K}DH^Bxy}Ym$r)tFHTNbU*v``WwHt
z{<{7+{O|s>?Y~~HcWwRuZ9RYN|ES!n*QQ^M{9W~Do9w6C6HStP8<VvWyOx{!d?sNF
z8{&!uwDnP-=|Au~N~2JC*dR^+Wq?}-TUkIwI`!7Ix6T*(uYK+K`v1RP+nXJF`muk1
z<nPB}@t=8bzdaj#7U^u(tzmYTv3ZrKaaZ(Y0GjCoRbSx-hCzt6Lm>>E(4*Xrfsb+v
z7AAjr8`dtj$?VVtkq<qNO+4+rd2jsxUHi;7|NFn{@xqU<BlqrKxBp*N?#p_Ef4~0U
z|F`4r>&@FaWyPN53BUjK>-Epot4piDUiZ!av`=7eB>1>1M|LqbcIa6hx8r>tU<n%{
z53fMoxD8&l9%5h;Y+w{-V1%V=PXP~Jv0iFxbI8f!oK}Rga*Tb|<4fNI44xt%RxNq@
z>B~hQ{{NRxft|DaIZM?In|p~HJTX8SJTU|fo`93BVK5>pkqUFj6cn}By1Euugjx7?
z7@s^{vrsmA|G!ILUthoecK@tBdDp)#Tl#--T>ajES@r_v*Xn!OPyM;Qd)uq;ODzuS
zUN63SU81N=_L)J%fg=lGO;#~&x82yngSg5K_1JYYQ0*Rg!PF=K6oJO@Z3l=ZYX+#0
z-(bK5n#Lxt$%>`tC)eM4>CvA*fA&^?zrXKq`TyU$-v8hC|M&m5|NsC0`TyX9OaK4Z
zfBpZq|F-=0uV1JCy>~Bu+nZe_FN3agAx<LSJI8YZmS7<6d{rY8l;#^~Yw!hA$iSj$
z0M>!UEO0`m{=i~qdz({h_2gcs;?N!G%l@6-rEC1?O?~ZOeivc6xBH*v=nL%s|9Wfe
z|NZ}V{rmNL{r`{N^?(0M|EoGX=U4pyz1NRl`(HovulbAem%D4-H>)K5{O|tvbj0F+
zuPbuQu1{L+XnsvXCm|^S);oM+6NRmM1mC1UxXp_;ae>H7$h{q;>D(O9WFEEilB(sj
z{%94EeNWQwr0n07kiVt<SJzkX_3NYmZV#OnZa?qq*RS=}uOGTRLP{%J9$Ov3mR5)x
zD?vH0!_;RtA7h|^=+l~`A-hb!#~t)C>xw<%#xm6@<i(BN@Wmgs|2a5oTFGzdP2zsU
zUgEOx*n}CE=UA?v<Jf8z<+e~W>EMHa=2Kd_s~-5X3C~!hw{m{RHo>IquemShzx?G;
zCoI1CDaQ(J&jq`VG~C(NF16y)<g0c8y*BIB@^2TeXq;vdXA$Suv@_&X>Idx^H|LZU
z{nqf(>6&!4Qu_hh=eH-$tgq?*dGP%92mAUaA2#gMPn2N0Uc$BTRWiHX`dm+Jhqo9K
z+0#WSM!|DdkfvcE_CXVHZUGGpQ1ujFU;f>zR;@boebwJpp}&oO2km<vw>5ur-xZUe
z#V0uB9z9QC?s^-#f6D*x-@m`!zy8L4UjCc^Q?~y9XZ`V3cKPRTdbztxZd-5ERPyX`
zZ$YfNJt5=HizRg!5I2`;hEkG11`iF)!VFBX&*mWabwzr5b;!8h151H=>sT3IckTR5
zW^-2l`2YIr_3MSv`mwvdbRouyE7$2_IiStZfVjpVYON1G=QG^EG!Qh-u@!!#Icm;l
z(PDXJz_QA08;iFk%HAdBtA#JCHD(mNv}U!?mMD6;+l9He=jo@Cz#sf9ycsOe<&H<+
zX%u3M6ylOA+8LBVkmHv^3=EN1Bq6yMyti%}19guIVYTLmkIR_Xo?IWlZ)Rxy*KPl1
zgPLytuWx#|f1lfn{dJME|Gs{*YHMiW_G|iLak~>gS#_q~vSC6#OFjC5BOhj9AYW^P
zXTK$CcNV-5o(X&gFO~yn;b*iGJKaq5awJvJWA9)Ga$41k{L@%|LVw2J)Nj*kZ|Q&k
z|LcGK-};aT*@h3#6y5uem}j3~?d^l<aUv%VO;FA+0O!mQ&?XfFlTZV!O&w4w*kHg$
z%tmC$NH6-ZK4#85bW-&9|Hq8=T!=-OoPX>ZvG|Fo<}BJ#YKX{8hFzh8?Z90cMCL)Z
zKHZ|G**|2@UcKhKPUGhCzeWGo|NnpezdP$bG2wGM&;OoB9HCl1*AB}f7&D?8tVTvC
z>juC+4g?+I0@_fGrNaRkt~X`@wO0vsJRMG9p1iPj0r!+b)Kj$sqARAYd?}Fc___U`
z-b!(<ovOzB&V2t9D*ZoyUhUuazwYM;t-JMi#kQ>1*K8s#pPB#T*tWfI58K{T7kVvf
z{@cWCf9?MFcJJ^1{~BI@w|AFxsrC+MEtf+HTC<aqRv$+0nN4x`JBOJvh@8$dN2!Ov
zgEve`$qGjBRaT$iYtA+qK-QeO;agTi)|#{2NY?^?rE2du(dB{HPB*QO|36D^a>vvE
z|G(Pv{L$L-st&0i<NCq;5*FVQHDzasGQbQzi9^{LbPxyW`%)8*fcKp-r0jNK_J!6%
zOuPb<pmVH&ClsYHT}k9&0I0nTW6($<c*(GFAl4<rY2bN9)=eVRU0&X2b4-(|h{=pg
ze%Fi};uh~rcg+9&>EE~ixBr7S5x&0N1zIj_p>3g<zv)n8^&Q`3ciY$8ihoi3!aD4z
zFX*Hl`}}X$|JVOLKTqaYd9CNVm%9Hm<mPrA5qp?1F<WRKXS+}^50{W^1bp|7ig5t8
zvo(lX@?nH}o(OnJKDfhf9Ex>Geimq;X@dbHl?R%*#b$Vj6qX<1NZIaTn{s>Up{VN`
z3qDkJ9uaSh`s)4X{q#TeU$6hWfBb*-|L67l=daoJ=`jCpfoC@~dpE1+UGV2L=-lww
zzvlO`viEYIxAEJ55;gy!t@1%T=0kYQq4hhC&Dj69?p`_fy}SQU|6l*Fy!LDK+wD>_
z1KFobS<7%u+>=lmk<iL0;MHRBP6KIfPqr=r%dS5|qMC3<hA1s~@ab~kv}no-TSUS-
z!2rCKdqqMPcoVcKQES(UUcCRXjZ;UC?Ualem%LTblUX<RafJWew`F!rY5u4C(@Xci
z`(Ga!|NH#DdcEQw^;@t0fB&~$DYWGOt?RkJ7jNF~yIb_^;#+DD=N1GUpD^2e<I9#d
zA;e6MMYJoHnH)o+M*9pcQ33{>;J|myVBH%7JMoDIM-dhowp{`5jp1jvzj=4|4SA-A
z-SXd~ExudN+P~)eUs3&EPygNjwf_JA|7-vE^UBQByL95)e|bb8u>Ff<#Vn~Ti0Z`{
z8KAV4Kx@(%5`z^s!Q1wT%EQncQhDHAlSy9Xad7Jv1+%sP>u1e9^WXVEXG^`zC*4oF
zb#45SPh@Yduba8w?%(=<|Box|tl#(W|M%<v?^bPpQ?)Kv`nY=VHhy<*K3l^tNUIe+
zCwX~e2@hh<C^0fZu1q&?0S$IDCV2~Ey|u*~w)B<;X(Df>!EN*Z_y0`)AOEj8VE*p=
z>;HawUH50-+v)Mwul?Qie*d@E`6_L9zr7Zyv|LcceecGfuiqEP*WKN|->m-U*7*AU
z?`HoG|1EIa{VcQf(aQh-k%DLW&&0V{f`_<fDC#I8c%1-vIA9yLJ@G3NK#elc87@TZ
zt%WqK(N~XPT_$i|%FaZ7lfjP*N0L{AuCS~*zxU_q^?&zI`TxKEKB!Jxx9eZ|-Rt$+
z7p+eR9p$bxz4Y+H4i!T=K{j?V=wNunH3uvc1s23LO$|^=4)8K&rX*oytXF#o!%_*c
zjd2q8jE6{Uu0QoF@V`8li1+{h&v$Nc-~aV+T<v@B_-`xrUFiS5zwW1Zk?)K4pQr!*
z{kz-#|KGp2_wWDz@7q(Sg^!MiK0~_Nu=|=1wu2IgTu_D*9N;xYEJ?=9h(oaum%YHR
zv?F%g3(=t=GV`r{>Q0F{LHaw+?6S7oRdV~^i!;A+FX#O|8(aT2tmIp`f_-(hOvnCr
zd7&kHU+jDRKk>m+;l2Y%ozAI$+_CKaF(xi&n4_Nm1S&b0l9I9C_>fGy8z02ZPOnjU
z_#rWF{{H2GVOM8=__}{neyzoqk6-I0DyE$M+q|%`8QQ}2cCyUJEC`H=%K}CyGp68;
zrQqYPjKkowf{43qIlzZw%!p!=Tt>~qF%D_U<+$x}FJajfxrA@#rVlT;WO8hdd|LXm
zY5()nm$d5Nf4}$s@#EG1;!}9}KsP;{481?!<MrSFb=&Ro^KZVsQ}q6h(aINRWG3^r
zTNbb5cp*`=x%1<TEvzC)^XjkITzfGC$%x3x6?r?hF}MrMmLwdEbw|1|?1)XOue7`(
zR-|(7^9}WYRHdZXF}wf1{lESH_I+zT*8H${%=EWTzw8`Y*~j^-Pqc4qsNvSH|F5r`
zxwUS#gK7V#PVGzPQFbz`o|IG|_1~Os+he)@*NCXrDB2neXnVsMd&vnqZG#3OayEzW
zhrQ*Gzx5myk3ts)s0UnE|KqwN?^odO53m0}{(tSiJEOdBZ^fDa$Q#4n)w^T49mmj&
zs8Z6%2qiHXg9-@nc!qHRe0dGhJbD)Vd^mCk(lN)Rnr=0z+m!uzE1V})c+2$jeg5CO
z^Z#G}yZ>MO|4py|hyE?S9N+#Xb?<{(#Z{fVmEG?69lN%3-?cx#U;V$nfBmoMU-ei2
zzXmNhc=&Jo>-+2WZ?xiG)pxfmZq>F2ZD##!h<idAb_MLi%rk~&MD_5EP{-9l+l^r}
zbjCsO89D||_{#q@(CD23)hFm4cuB=SRWxhl`hM={Wd6dunR{JA62mjDT=%}dKkojn
z(oVJi|F6e?JN`eu{$>7O`{&F4`}f!zMgIRUwf)!s|Eoh^|NqZlyY>J7`@3GQ|6l)C
zbpOBqU#I{2|G(PlL!_X7?z#45@nv7z-~5W+WH4iLXzo>$h0@%8FC<Kmk1v`Qm?nuW
zAc>s5LT<|%gU{V(N(y#HRLjUihOl+sRBxqB5t{wQMaNfFS13pP$^Cx?|G@(gpk~_t
z{eMAsZf|%0n%a7(?^^RwwwwP26LuD~9AS53V}!QTa<g2QU<(4GrUTGMO~EY_&@M!S
zt=N{dfomxyQ6@<@GAk*R<FcWfF&}RDyId#ySmvFXzW2AK=kMMA|8MNy`y1DPpY9-8
zzx_d4$>057|6jZR)gE!qoTimuAf}fsi7H=>(3+;8ktfjfb}-5k7Nq+p5PPzDsJJIv
zRWy_Htc=+y%_3i$Y0JX)<u_%YU0?Sz{`>xa|8M_K*zo25{+IRB>-K)lwetS(^{~t@
z8?|cdM-@kYI~M(aR-tmo{=lIJuw@T3v)!?5IJ6`#0ibT70Z#>hR%;^mp3!5q=9Ot7
zTOjRp>mS*M4-0q^2NSFou+zqjYhsUrM`?q>E*uUqFvh-WEe$-lL)?Bcq6c>zeWYIt
z3x8}r({93&BQoo!r3hbq!5wh7?9U7DpY>P&F?as?AD{OB|Njcm?uPnVZhP1MkN;Z#
z8nh*Q^}T7aySBf*l>7b&<ctE}c2+YPs~aUwbNU_O+g(;N`(s(WU_xZO9HkV5UBf7h
z*prV`3Mxa7f=MK{#X<Be*ikVpuK0hy|No!=H}~+u$N&Fp&%NIFzrLvOZ@tQg<aNce
zh~b=IHCuPgBw<2idPf-_2T#{CB_$`bDq}g~3wH2LBDl=wz_vz<LF*BCjTYFSX=sNx
zI-HI9b?&F-(w&t@9dygeK<7|qWy_u7Rxyds(K^NVp;owV=fD47{}+7F{@l^xgp}&f
z^P1XXdeM-`3*=G9?Y2Qz>4kviq_LeNn?sY;D6X3$`DGsk#_PN>|9X1g-|YIgSO5P1
zT9NVPb+cpr=KcSwWTW|ylwSV-zw5u~_TN=$_qIsi^OP1s-r9C&qk}!RP#~_LH$>@g
zf;(U=pp$*D+^}jK3_XaN>YeT@VtN+I6Aqp{q#W?@p4!8Er_L{&u=qmE!;BL<!w)*&
z34Z#2`qlsXYxnQo_u#_(U;h&p6x=!bH+b5|#%BJ$`XBw$e@?~NrJh@}=*<8BlJIMn
zr<){TIg`YY$i4HZr^|weyV;V0jgeYCi0#H%IgsmydU&aQ7TT@8ANJ`wx{o6DZust&
z|6BV1|No1i3uo(I|NAd5`1SuqhIZf8U;ZOq8mFw`>W3vYm=Kj33@uQGV77uf7bdJi
zX=z-`o^ffm#jsVewK>?qj%8d1I#G9l7V`u#XJ*z|Z(DC~Z|>j;OlW6MWP#3}2!fnF
zp>SMPDx*jT<*0hB6Q=*Z>Rdi^ja}Pk`oF9Hewo+Q-ud@q>(-m=`{Q~4Z+AblE${!=
z>-85qTxK6_l1I#pM;f@;VDmds<M`+Yy@FOYf`=juu?<D6NPz4VCaxMJWl&Pu3gzVO
z$ooq7Cl#-EeS3Z1&)0kF_t&kA-u^%TrIkTne6+dipI_HQuRH($KYQEP*T2^9XDV-%
z`5JTm4AM&G=h42mu!ISbSL>nO#SID*)<hglfAG}CR7Q`jjZN#8&Re>4X{)BkJ+$4^
zGeEniCn4{iE+8T`T#(vW?;9Qda_isg@&DI4E6PoK6aV#f>ffz<LtiH!j@SQN6>7ik
zrRZ|+wanbju=CD3<D9S^u1(x9oDu3Cdq_qAH~Edj;hjeVr1mdlgQKwt!%IUGhF3-`
z-d3n<mO_hORx?a31g}|Q(43yJVC6>KSL8t3{J95PdCqYzU#GUoS2$+FKY{L&o<naU
zrY)XX<`n;|I(O##zrQZsiu(ICaQeUaU)xjn|5*yUbgkm=@?5XG*FId&TK)Lj@weyJ
zoSi*yuXfo>vxT?&EZHur2+hh{W7v^Wdk(R_!sC*k9kw(=)DWH_+E_klClgDOure$B
zI8el}Eqr+pu{8*|!9c_n&X?Ey^<QVQ)JFgDx?SpJ=H)NfmS281&3E@#wKu<Re?R@c
z^ndTZDeu3o4ttxu@A~zqt@`gHW&0(*sJ*L48jzZh>VV~>Ktm&<#%0isV+S=SAbUTy
zVPD*uLd#?6Pb<}G-1)3}dFhJy_4;e4U){g&-|^S+^)2^wcS?N;`+liC(_E%__KwOq
ze4C9BS6WDYx156|84!Cu2TDT%G^GRaKgxxLNK59xD?F*bWRBfl%|w2aXU)QIiAAAz
zu1qhxef{m#|C{n(U;nSY@7Q|&+DLQTS5H>Go>_T$dS3Rfvomi9PDH*6N#eV0EVeKp
zYN*7>5M^x66u!XOG#u+@fh_QP4QelNcHMl_EGHxE#^Fz@n#DV>e_dMtdi~n{X8FJV
z{a-D&K6>w;U(Hh=?qB!zcKy~bUswJApM1D%?f+l-|NsBE9{&1z+}dwf_wLBQm3UrP
zx=+eY#RxftC?4>|a@V^dk%vg49QwT30CaS{NjT^*CzCMv&?R!2ng<!XB&tk>tONB$
zJF#E1q|peiYq9EhOvL_URqN*5Iq|9BT&sE3p^wtv{(t}Xb$i|4ui3x%uCM?4uYTjz
z>i^~W@Bhbddvm{jWy=4r-s}Irs{XHgbNl~GOaIrGe*N#fVtsts-|zdr*oW2sovyq4
zzk2S?|EpjBU-f?dx3|BxzrOw}UK=qK^Kfr!9hOvONYwB@+I^4U(I*pjp=WN`8)cx)
zL?kuJAP0h-BwQbTP53`qd+!-3@q4nrzPi3it-Q14`u0bUm+jTLZT|MPt_q*Wvy9rD
zyl?-rfB$#th(CYhI`Tnq8+1LfUByP+>Jzj@7G|JICKz-ridi7moCUeNkInE5xuf1#
zCycG_%|Gt`Y?m@|-<IoUIf*a-XJ?<zvA3+)EWfYzx7~Z;LhGNm&Y!=2`dU0!N9?L?
zS+~|^$hGF)%8B8D-<9OYVCj!7B@ov{MIHMGm9Yl!?e&3}$BjaosHUvs--C`V7+UZ3
z#{T*DdtdDi_1fPBu6FgmKl&$$a*4jnDeBFM&kK24_doXkZmV}y|Nqa=Iint;J!P)^
zDemnZ+ux+t{@t`~U+9<r_kXQb57&KGXMWq-{r|(ZWlMP7eP>4^Z@^{x;=LM6I2jPP
z2Fw6+_yWAVz%0<f6k9lf>mpD%Q8l@&W#7FjYk&Uzd*2?;`||cMzx}_=PtPX^+Z;K6
z613c4@2lyb{%6(i|Mz>=-{YTq|IXj^?S8#_T=m<$d-s;+PS2}WH*;0#{MdoCEqVP$
zHw(;AF(;~>hIWVzcoq?oc(C_xAS1ez9NB?2@fd4O^YH&;|L}^<&;J4+I{(YJ*LWZO
z!+Q2lyUcIf{b&BKuKNqRFaC|=B>#2S{{H{>zwFQU*E>_iqo3rlT0Z%_?Tv@f^NTe{
z5RF&!&%PR%VM5$wnxQ4i0Sw@AE?7d@24A~`(P*LIctLDo!kXLJd8S=QMqcaA>=@B~
zPo}^BzqEA!zi`?A=|2yCn4kaS{r>iQ?|1F}_G=pN_C?0UJbNnV@R^w+U8JMF-WJR0
zMnq1O8Dliu41zA0ZV3PlgdqZ<3wkmycy>c;#w<ojw>CC~*tP^uwEn&qsK0Ln>F-0T
z7PPL8d4M(M1r<%)N$1k9M62A%+b&{a{c2UF{?2zhA70q{xc=(D<^%V2f4|S&{Uz-E
zrK57o#o3~t{@?#UaBbC(gXTLAPv?&;cprM=`-a(nzOVTEe}8t`+Ox4$uOEtSJUplK
ztWJ{9THzQO#M;ss6~Qa9Bp0IEcWCoK;LVRApjyZ%+`tseTJjWd1ICmIv>|}dT5{rt
z2wLy?e*M4xfB*mJDqA<rxVYSnywB@3ek|r!`k(iA*X!z%ve{;{IS_LLHFK=7G}=sw
z8VE+42LjEaLTj9014F2fk!G8dz+<F_Ow_G#SlPuTHhtK9MWyE91iK@NA5y<9tvSCp
z>%aa}_x*o%{SW{9`0xM!^`~Zu{;$9N<^J`}+kJoU$_3TESGRFr%$d_EJ27V#VoS&?
zB}XsJ1Ykm3Qw;S|2yg=*JQs>>TwEAsE)?&$IAnFwEJ@T`FPKe>Us^wZKIPdnQRb~T
zZWdPV(pa&!QsaE+;~Phm15zJoFI=~6>Qk}j_ttsup9Gp2$@*WP^5OcEqV~qaj?d(I
zcx7VN&Esl}VaQxz7mw*>Ln04jLAmZD*58otkO9w~&s_f%G!-IN>7~A8a5}&qbbO`J
zmCj2g55AjZo<2}8?OeI~{M6gA)@7Vel&fk2nO@&;ne|6z;)3M|H?H7IkXhC{wR16_
z(>8P2d-EMONSs*rXPx_`^RJ4uR%h`pG&f=G6*1*k$yz$=)-5-I+4h;-U&@N-_4_sk
zof7%K?n#E;#``RDl2!bcW@b*}wpe!G_+a~-Ce}yXwyS~@FujR<a#2WrXkKP=eoCqW
z#PdP=A(aKG`fmAoC0zQhdCB=HnR)37hUTCtp&)(djKrdVqWt7y1sfZEXLAK`mI>n0
zcQ#Z2AMz5!rSIaR0KU}_#57a@Cn6BjTmgK;Fo@}>U;=8}ftW@L;Mo_D2>}Y=BQ-$G
zAO-MPTo9L?9oQkhi6upu711C~1`4`hDi$o^<dk0#4a&8K3c7}|`fiy;#U&soDwrGV
z`y@iyhDL_^;h8BV8O6~G;H5Mm4Ipf4$OWSCU@ij%@Wrmi*wmPsDuB+wfSLgw5-?Bz
zkEMaAST6nG(xehlSb_r7*bY3Ll%JHv1qn+K%f<#0*sx&McS<Zyg>%9)^BnVvGvR!f
z%(S%BqSU<P)Z%C^b7OsHLoRbmeP?qnOLKka04_^Qedi!9Ljy~F7ejp)BQ8TjQ+*e6
zE<-~LeHTYAP$0Ot#3H+bs5K*oC>xYx{SAeh6$IW?vf4i|IA+4vo2fJDq{>f*Lk|Nu
zc#<aGcMk|&a%1+*-M8n)Ui*6e-c6UA%2i(vx%8G=J$f^J#RNW!DEA82t)ZFesjEEM
z4(*!F^WNWKm)(M!KVtn(%=>d`is*fpQ`vKxLnM|;Pu#+=$ka`s<k$O>TP)2t?axPv
zgvew$-g>6O#o)01%9TY74X+=Sz1URPSD~^ft5Yym%hv0h%z3Lnp}ck}qOp$qGFYO@
zFq6J9DD}X?9x3UA0s~jl2bF{9N#9bz&<va<xb&Ue6%5Tla|xiNYoTCh2C6uNxb&Su
z6b!)|vOsKC1w%8C)gUz>HYh=X*rp1G;LS)NHDL;d;EQ-bY(E7<Q?Q%3^c_PL48gb6
zfYiGv7=n+Z1F_u|48hacAhxptWELlgOW!?M!4Q@&-5nJS!MPn|W`qLdnqpAKb5<|}
zFGmE4TPhfWPpSZ!6RKcn1okhNzLTkfp%JJZ4N_yGU<kg`0Hh{T!O##Y?rx!A2;LI_
zve#3=5WMvnq~1}%5PW+dNZeh)5Zp-ti5n{zf;RyNap^nyDi|6-{pjwYU}yjhPiGSa
zOHiK%<V;fq@PYXtri+3lRDp|$f+aM(9fK6W2grk*6{uhd4Ph4p1@IyUkTypJ@WJXJ
zrlEob%v@sy3#egE;R+T|!(5ycETD1c9Hn3Z^`f(zf(6uE$6y5uSj2fKn1cpEL4LAO
z09P9zrn7=M%!FVCa3=)hvTy}+s0q#i3g9c!K%yZE;1)TE>7xMNe+goGDS+<_12MxC
zz|B>V(~T5hsm(b;0hZWYEEHgA&Dlu-p45C5U@6VTT)_<LUKcY3SUPjDRDdNj=O6{}
z%rGc6d=y{_&dEgqT;Neq{u&t~%3mWB6L|S+Vgw0dkgE(p^@Is10f52*T8u&@3>1uv
z6^xBQ2qa)+tYBmT5;EX2F#^>i;Hm^nfTTefqy!Z5AhrRQ0VFic3_t+{_7+%N0YsV_
zDVT#SHQ+KegM_My87P>{j6j+!OhF_#ER8_sfeDa-AdAgF1-=QGG%^Ld!wlpq5ZeUA
zFtb!JF;g%x;sTK-psK?d><tLl%s|1!1cX4YfMPUXLq);v1hWUdJU9}-1lYX_2B07^
zHV2U~0Z`~c*d|8!YDG}711p(9)h4{+BfeHNGSqkU(RcLaGBVe94AOTD<}x<WcMRn+
zw$yhr)^{?|cQWNNG0}Ij(08)bcXH%1vCwyN)^~EzcXH)2HPUx-=Q6d>ck<PD^5Zfy
z)prWvGBekA3e$HA*LRBGGB?wAHqm!B<+3o)cec=Xw&b!f)^~Q&cXrlycF}is)pvH&
zcXroz_TaKK)OYscvNYCr_JLH+`p$v+&O!Rl!TQc2`p%*H&SCn_;rh-I`p%L1&Qba<
z29P>i-^Ezp#e_@W#Z=$LOy9*^-^D`T#ZuqJQQyT$-^E$q#f8hr$VA`Wg3HLrOyAv+
z%gESB-`!o`-9z8qlM9s3+=Ef7cu;W%4N^S2*>SgKJq`qvYI?H^FxgG8@|(KQZ^|;}
z{mVV0+1fUj?6dx<bNk(`jou3K7aw;EMI2YV^yGO5i!E=TYbnEHgWNSfGNl5W_P+e^
zkEQ9TL)p`E+etNH&%Gl<vpM!I)XZ42qEaDH`|6czW=%K#ct$VSKKpY?4%d{RWk1SQ
z-HSW_sy&cVF4Xe%o*Z+)@b5fMyC)(#0`U$?!6}$kI`U)`a%&dkd0bUGxadZ0%{p2t
zK#pzz6}^@UmY^~M#0*jZ-;oAl1}j*A5-EsjssO$>3{*CoD}Zm#0x=C0%%KXL!WB%R
zHH?e10=)WmR)E*u<_hr2+fV_#0s~}%6Q~3+PyksGp#WZo1!B5FiVYAm1d_EtY7G>O
zp^kJhgETxrq819qu=>mxR0M$ya|(l$r62`Hpu!X^>Kvc|tL&Yl6u>Q5kOE5uBdF7z
z!yzqZki|}*5)Pz|>_)jIqE0Y0GC<S`pooGL5C#f}!U8UWC=Ed@DwT+4mXMknVhcDN
zK}>K9!rX|<08)9I8bhjJa7_-9N5WhNkf<^-0>vqKF^K_)1rAYD15n6X7=i>$EWmCy
zwgmNRjLktp2B50n)Bs;;2uh*QtPAQtz`J53^bsue9WCJ{7_7%&4l2PQ{RRs|<U)+g
z!c5=U6;fV7Iunrcip$Wz1X5aY85)?Q6<1t_h9<~m6_=r*C8V%IE{DL4Ca7mfDTkV&
zz3PQiSMhbU>hZXS-sWdH?kHKXNTBWCJ{5;{zVw$h<)0$A-CdhJ-NA0radFiReZEU>
z>I-tRNy&D<VmX$0D{`jAONEr`>kt2OvaD`=bFA8SVog|hXxLRTr~C{)Da|Z7&nsT0
zTetQqnAKmBlX&xP&z#vzOQ&f5b3S=7=Ftw$9Y;LocwN4vB3|ILKfQ_Hl2!YNxb?+g
zY%`*u%n0=*QaJ?nJdSb*(y&A=hg^&lV6ARY{)9CgqZGhXilCO7r2_awE=Z;X-w+RC
z1}lK)&LA1s5SD>M6u`4dAW;hicndy40oH(b4p)G+-<^XLV9j?IGX+rk1GQ*F6hPUN
zf~FvHt~WG?=X!9{7M`8JIRwrF<#SX_1$ppA&N!`rS^#dnV^sudQ-UJc)B;p+fSc6@
zAQrgj05xD0z+6cA1uo=G4He9d@nmsu<ipYnnGGID76&&~z>N_ivM-mRp#fxk0F-mN
z3=Pd7%?y+b3+nqooi->k?DgExT*WVK&lXHv^lYNb+K}Mr+Z;)s)!#NAe0T2jPR#(X
znUCzJ$edN}o892ub7ZB7u5S_J@h{bCKPCikaH?Un<qgI*+GhZ2;X}QNoMS=0$CYD2
zTF?dqTuc=V;k`OX1<0-?P?ii;fLzJ}VuJ<-plt)kAO*;d9Z;@xRDdkb1*r*CFoZQ4
zoShX6!F38q+)2R@+{6a4!xao+qi4=x3Wl)ZGtgiIeEiHr!4NutrtciA06D1@q}Noz
z5S&~=`8rI&5Ij}|a)W__A-v7tqF@LfBLRtn%mHNvklr8#$f_TZxUqsEQe(jo)>?21
zS1<$*uz}P#DHwwLP9VKe3Wng*JwR+X1<2Y6P(c=~U<fbCLKF<)MVW_!A-pUzQ!oS{
zr3W$-G}r(w*j&sN4B;i4k%FNCIL^5Aog)+s4Pa$vfP$d`)cr1o3g7~Of`ZJ*9J&31
z7*jNbj&f3`@dEC8np%Q7t{|r)FsR=OYS@AMtp=bzzKJ=cPj3L}Q-gKF)q|QRM&K5Q
z1*oTLYyoQ28H3s2_yP$Sf`%PTKqIrDezma$s1a#w0%{(bn1Zx|6Qc>fW(s(`1eSxy
zEW_Y^HPkK_T7Qen!bsoQ5z^n{vM|?ocH^?J1b4PTqo24sSXi1Y`Yt9|J6M=Qq~I}c
zsOLa^P|%pTepsZpe{iI>vu|*up#gXh+9kC(xhS)sB)<qUuz*r>AcmxoMx>45wV<g1
zD0E>xT?IqPP!!6@u_4l!Em#`rB63@W#`=lHC8<T3#o4)uB^gMiK6q3F*>I455uOA4
z)h{tO6-yAn$Kg$kO%zPbOk?%kauU;v6->GG9gCAw^GZO1T>8$51s<uH=^0Qi$ZU|D
z0hhjKNn%cBvSVI)PO5?dmws?bYHpZ<8Ay9sI(Y0}!PLNjOW!xK0-2XtT%4JQEDsv{
z4^A!7K=Gm`*yV1SIjP19hTsZ52q{Rx0#ILLR&}U@_=e8<KB;->B^e4P2FRBYCZ{AM
zCMBe#q?CW-?K3f9Fbu8pF#b0o@t5N1J9qyce(SE4ZO&h8&VTxpyo}TR%`E$uf3Eiz
zOh`yfIisID^TC|>fXFE`=LIfWFmcVwgpAD0b&C^H5)xKEm@zwQ%FH=4mOq#sF=^tg
z*%3@no@lT<S5IFyEkrBhM#_{aA`vfNPoF;hwdymm*H6Wl-p+ibF(rLkiU!M4vE^b@
zmoC%T@$~srjUTGdmT5W2EN5Rh=W{W)mv>ONNX_TqpzcpX-HmU~Jjz)hE6Kyd({qNW
zCzi*jr$@)QzU0H-7ZJN3v|p(?_P(`x=6?PEiTbyUH&+)XmY0^t#>UIK%l<xd|JQ!k
zI1}F&Z*pHwTeEic+O_j;*=_axw|mm>e9Qh<&z^mICv|d`WT~<G*Ru1`O5f)`^*fs{
zeQndu+{w$&&oc2}_iXpsa>2ctxqIhM-ldv;ZiZ!X*yWaAouB?`Tkp;_tC?=CZdm>4
z$-j4zGMiteUD;Mr7A|t~Z`#JBr`mCUF4rmE&VQNtX7*0A;?sp2JC<JkT#z^K>|y33
zdw6&lZtk6_i8)SS2p;l<Mm0G1_@<U5rX-dmB4Rnh*9R8GhQ>%M|849m3KEmEQ%e+*
zQqwc@Y}McI-mk8ZnPRIRZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+Zg0nBW1pCkpOmUw
zkyxOcmYGwMT2!o%TAXaF<Q(MVrUX(@VO5b^kegbPs8ErclUHn2VXF?-VwG2H1rpX*
zR{$$1$+lIG@C{HX$<NQp&MZ+d(zDbv)HO8LQAjIF%uOxNFUnRh)H74J<FYAANwW%a
zaf2FIl#*tvo>5X#V5P5LUS6(OZmgGIl&)`RX=$l%V5Dzkq+67drdwQ@SCUwvn^&x?
z4%L?#0oRsStOs_JUUGh}erANep`L+0%py=029<r8`FRQ;ixZRbOG|9kOG`6TtP;&F
zOiT?D4Rnptl9F`|4b#kZ4GatnbQ9Ce4J^`9l8j8vl3>;qAUPAozJioAeM3ECeRYL`
zlr*b=qWqN7<kTWtb@u=t1^0~n;u1*Nt6-^TYM`zU^**&+RgqhOJrpVu3!uSZQ;}O>
z<(r?9nO5nNSdwaIWME{dYha;kU>;&<VP$G!WoV&oU}R-rV55(wk_)WWxhOTUB$XJg
zNGg%E<`;$J=jYg^lw}qaYh-IGnCe+tS}Hi_7gQF33tA%sLraCA#FWhB#2f|J%2b8m
z{Irtt#G+J)d%%W5&9Ko2#UN7HQ9Cpf3w(X?hi7gsD8Yl&S-IpVm*%GCm3X?4lANfW
z0#cIU4lXDy$^qw{lw|$XoK%q8iuDck4E5C&Qj)FG@{4j4OKjB>3kq^FlM_oa^Yioz
zQqt7zY*Lb~N-|4wQtiMw(=n$6!pO-4<ut3D#JqG{^$OjT)U?FXoDy}r#G>Sk%;1dD
z?8H31l(I}nq~v7UK^S1|`UoSjL>X8p$i>Z$%SInuc7VzeJ1zw(0qPlqC{t7OQf$@B
zK_zBtUP^IEQEFl?sQ3mI)u3iQh_<oOhh=^ZY<XXkOCOw;GxPI6nMuRN3X~HKEDX#I
zElf?onNZ!pKwXnd-#0&nfC{id`9&JwOckS%9YaF4(&W+)0mZfkT0Cmn*`?;CfP7L>
zl$yq6pkQcW#sw-4Ay~o8)YRBiAx!})W^Mu+as<gK<Uz$uO)Wud5m3Yo%uPVErf6aY
zph0L<F#|);bSA2pi5X~o8CA^O6x4A<5i>TkuryZy2^qlMVrU5NWPt?XVn!z5jv9)X
zv6(SwvJyqi(7*yT{fHuFWNZN%Q9%(iHZuVAE>Oe_4a`7&b`&vFLle+gJ&Kr-u_>l`
zrskjyGKxAw0~1hZ5k<_%*a$RahazTdY69vMqlg(AfIH|YVn$}>CYESnWo%&%YIvZi
zGc+*=by!ivjLb|h{A+As3L26_QD<mk0-E1N5i>O~26gOF#0)G=L9^s2VkQ>G7-`7Z
z!U)vaMp0*I1fB{(5i>F~0xfqz5i>To1kHV*h#4AMVEDtx)DlC?(8LHdD1f5Z*uVrd
zt%4$EVhHXPp@<n8TVkj)Ho$bBiMc6gU<O66k)<U@{F)e8f+nI-)EOF^V}!klxdBF6
zGqf<rFwe-+9Ml^}G0()z0@U$F5i>G12aSWGh?y9efrbxJ#0)HrG4iUBkr8N?9z~s@
zu?a>xFg7&;tsOv7XJBann(06hGcvRU&2FKH8Jik_rZZ5)3@j`_gFh%@Muz5~bp$A4
z#wO+%dB()d6eArN8JZdyqvshD6VR#+6!T2Xj6mIA6fq-1W6(f0ikPv95k~oEVrBpu
zm_ku!WN3gHRwf3Zl`tskOiay9EYRF%Xlw{trGcW($P!e7gM<*}q^Yq9M%ig<Y>r{C
zfrTkXIxsRe01bSB41|}l#^&ajdDYMi({H9GnB|bU31%8MG{*3oktw*Ngk~>h9yBsC
z2hCcdsxvdgNaKb^mY@^yQPdfkSb_#0QN&CPOh7A=P{a(4%rL^r$ixgYPlF6Ziz5>Q
z@QN!m^Dyfp14|3g%nFJ+BNJnccr&mt2F*01sxvSL4V<Eg85^5}R@$J58CV!##;<`1
zMm=b1WC9x8MbT?)jG1Q)%*{bdnNZXj85o&i<RfEa(9|=EIulb9%<wZXz{qdL#s(N|
z5EE1IB2g6c3@t4{E6h;DjEyWX@}-H1C5D)xr732aV`Pd^UYVGffhNmQ>@c)6#w<6C
zj6kb>P}G^27=s4MQN#=_4KV9LLrY8a@G~(nzz9D>3lq>nG!*lU4b3s?G81ESjQZEm
z!U(i74^6KrM%iv+jM)w|G`9qeRiWuM!e|Sa7#o2GE>YAOnwx_L!coMG4Gl2LaT8F*
zg_e&D%}p@F%D@~nA%S9^iIF)*U14YrUJZ$&&dAaTBTP+<Ofbq4Lo*A|v>K{j3rh@j
zCPs#!k$n_(2Ii)q)p=-QW*GIkfw>Vzo6x|-3?uy+m>Yn`!cojKvM|G_156ApG3stZ
zGgFNE$jHJ3qii=ZG{cBrLo;Io^t#8$0z8O`;uaG_6VNO!ikP990cN>oZV6g_iK5Qf
z(h@ZBf+A*UY7UxwLJ>1EH^XRe7+acQly!!tCYbfKIi^31EsZhEGc+{<O$edcYXDkA
zjv{7kX@F7g8k$&QxY+<px;HS#Y?qiCTY_d|QS2}=H^xXCCgzqH<&cSm0Y+QY#1gYz
zXKDam;fi91DX2q(mfuVbG23gVMwsc()W`@UJ)2_5`=-Wb7<tvy1f_pjQk0mPlUl@O
zW22xSoLQ9$>YOU*2j%CND1fKZ6!bmw(()BReeobJeNPvKXd4SR3s+}nV-pu6M<YWc
yS7UQSS0@u!3kzdYCnGaAV*@+FDq^|p?6`_c5{pW}U1C!+Lla{zRaIAiH!c7Y<ng=!

literal 0
HcmV?d00001

diff --git a/doc/shukan.html b/doc/shukan.html
new file mode 100644
index 0000000..5ec8145
--- /dev/null
+++ b/doc/shukan.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+  <head><title>Even Shukan</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  </head>
+  <body bgcolor="#3FBFAF" text="#4F2F1F">
+    <h2>Pr&eacute;sentation de Shukan</h2>
+
+    <h3>--> Avertissement</h3>
+    <p> Attention, la base de donn&eacute;es (data) est actualis&eacute;e
+        automatiquement en quittant par la touche 'ESCAPE' ou la touche 'Q'.
+        Pour &eacute;viter la sauvegarde, utiliser la croix en haut &agrave;
+        droite de la fen&ecirc;tre. </p>
+    <p> Cette base de donn&eacute;es est fournie &agrave; titre d'exemple.
+        Toute ressemblance avec des situations existantes n'est pas le fruit
+        du hazard, mais elle ne saurait en aucun cas se substituer &agrave;
+        la version officielle des emplois du temps accessible sur ADE. </p>
+
+    <h3>--> La vue</h3>
+    <p> La zone d'&eacute;cran principale de Shukan comporte une grille
+        indiquant la progression des cours sur un semestre de formation. </p>
+    <p> La colonne de gauche donne le nom du semestre de formation, puis
+        pour chaque ligne, le nom abr&eacute;g&eacute; du cours. </p>
+    <p> Les colonnes suivantes correspondent &agrave; chaque semaine de
+        formation, dans le nom est donn&eacute; en haut, suivi des
+        activit&eacute;s pr&eacute;vues ordonn&eacute;es de gauche &agrave;
+        droite par ordre chronologique.
+        Par d&eacute;faut, les activit&eacute;s sont centr&eacute;es.
+        Il est possible de les d&eacute;caler vers le haut (<i>onLeft</i>)
+        ou vers le bas (<i>onRight</i>) pour rep&eacute;rer des enseignants
+        autres que le responsable du cours. </p>
+    <p> La ligne du bas indique la charge hebdomadaire (en heures) d'un
+        acteur du cours : un &eacute;tudiant (Etu) ou un enseignant (PEve).
+        Le deuxi&egrave;me chiffre est la charge maximale de la semaine. </p>
+    <p> Une case de la grille peut &ecirc;tre s&eacute;lectionn&eacute;e en
+        cliquant dessus avec le bouton gauche de la souris. Il est alors
+        possible de d&eacute;placer les activit&eacute;s pr&eacute;vues. </p>
+    <p> Une activit&eacute; peut aussi &ecirc;tre s&eacute;lectionn&eacute;e
+        en cliquant dessus avec le bouton droit de la souris, ou encore une
+        p&eacute;riode entre deux activit&eacute;s en pressant la touche
+        "SHIFT" lors du clic. Cela permet d'&eacute;changer les
+        activit&eacute;s situ&eacute;es aux extr&eacute;mit&eacute;s de
+        la p&eacute;riode. La progression du cours est alors modifi&eacute;e
+        en cons&eacute;quence. </p>
+    <p> Il est enfin possible de pr&eacute;senter une autre formation
+        (avec d'autres &eacute;tudiants), d'&eacute;diter la progression
+        hebdomadaire dans son &eacute;tat courant sous forme de fichiers
+        LaTeX plac&eacute;s dans un r&eacute;pertoire pr&eacute;fix&eacute;
+        "loads_", ou m&ecirc;me de sortir de Shukan. </p>
+
+    <h3>--> Le contr&ocirc;leur</h3>
+    <h4>Actions de la souris</h4>
+    <p> Bouton gauche : s&eacute;lectionner une case de la grille courante. </p>
+    <p> Bouton droit : s&eacute;lectionner une activit&eacute;. </p>
+    <p> Pour quitter <b><u>sans sauver</u></b>, clic sur la croix en haut
+        &agrave; droite. </p>
+    <h4>Actions du clavier</h4>
+    <p> 'q' ou ESC : enregistrer et fermer l'application. </p>
+    <p> Fl&egrave;che droite : passer &agrave; l'acteur suivant (pour
+        l'affichage de la charge hebdomadaire). </p>
+    <p> Fl&egrave;che gauche : passer &agrave; l'acteur pr&eacute;c&eacute;dent
+        (pour l'affichage de la charge hebdomadaire). </p>
+    <p> Fl&egrave;che basse : passer &agrave; la formation suivante. </p>
+    <p> Fl&egrave;che haute : passer &agrave; la formation
+        pr&eacute;c&eacute;dente. </p>
+    <p> 'l' : repousser la premi&egrave;re activit&eacute; dans la semaine
+        pr&eacute;c&eacute;dente et s&eacute;lectionner la semaine
+        pr&eacute;c&eacute;dente. </p>
+    <p> 'm' : repousser la derni&egrave;re activit&eacute; dans la semaine
+        suivante et s&eacute;lectionner la semaine suivante. </p>
+    <p> 'o' ou 'L' : repousser la premi&egrave;re activit&eacute; dans la
+        semaine pr&eacute;c&eacute;dente (la semaine courante reste
+        s&eacute;l&eacute;ctionn&eacute;e). </p>
+    <p> 'p' ou 'M' : repousser la derni&egrave;re activit&eacute; dans la
+        semaine suivante (la semaine courante reste
+        s&eacute;l&eacute;ctionn&eacute;e). </p>
+    <p> CTRL-X : &eacute;changer les activit&eacutes aux
+        extr&eacute;mit&eacute;s de la p&eacute;riode
+        s&eacute;lectionn&eacute;e. </p>
+    <p> CTRL-E : editer la progression hebdomadaire. </p>
+
+    <h3>-->Le mod&egrave;le</h3>
+    <h4>Base de donn&eacute;es</h4>
+    <p> La base de donn&eacute;es est stock&eacute;e dans le r&eacute;pertoire
+        principal <em>data</em>.
+        Chaque sous-r&eacute;pertoire correspond &agrave; un
+        semestre de formations, les premiers chiffres du nom indiquant
+        l'ann&eacute;e universitaire, et le dernier le num&eacute;ro de
+        semestre dans l'ann&eacute;e universitaire.
+        Le fichier <em>semestre.txt</em> contient les caract&eacute;ristiques
+        du semestre de formations &agrave; charger : l'ann&eacute;e
+        universitaire en premi&egrave;re ligne, le num&eacute;ro de semestre
+        en deuxi&egrave;me. </p>
+    <p> Un r&eacute;pertoire de semestre contient un sous-r&eacute;pertoire
+        de version, dont le nom est compos&eacute; du num&eacute;ro de version
+        suivi de la date (an-mois-jour) d'enregistrement.
+        Le fichier <em>version.txt</em> contient les caract&eacute;ristiques
+        de la version &agrave; charger : le num&eacute;ro de version en
+        premi&egrave;re ligne, la date d'enregistrement en deuxi&egrave;me. </p>
+    <p> Un r&eacute;pertoire de version contient un sous-r&eacute;pertoire
+        pour chaque formation du semestre, un fichier <em>cursus</em>
+        contenant le nom des formations &agrave; charger, et un fichier
+        <em>weeks.txt</em> fournissant les caract&eacute;ristiques du
+        semestre. </p>
+    <p> Un r&eacute;pertoire de formation contient un fichier de
+        caract&eacute;ristiques pour chaque cours de la formation,
+        et un fichier <em>module.txt</em> contenant le nom des cours
+        &agrave; charger. </p>
+
+    <h4>Mod&eacute;lisation du semestre calendaire</h4>
+    <p> Cr&eacute;er un r&eacute;pertoire <tt>V001_YYMMDD.txt</tt> avec
+        un fichier <tt>weeks.txt</tt>. </p>
+    <dl>
+    <dd> <tt>AnneeScolaire</tt> :
+         ann&eacute;e universitaire du semestre sous la forme 2324 pour
+         l'ann&eacute;e 2023/2024. </dd>
+    <dd> <tt>AnneeDeDepart</tt> :
+         ann&eacute;e de la premi&egrave;re semaine du semestre. </dd>
+    <dd> <tt>PremiereSemaine</tt> :
+         num&eacute;ro de la premi&egrave;re semaine du semestre. </dd>
+    <dd> <tt>LongueurDuSemestre</tt> :
+         nombre de semaines du semestre. </dd>
+    <dd> <tt>ChargeMaxHebdomadaire</tt> :
+         dur&eacute;e maximale de travail par semaine. </dd>
+    <dd> <tt>LongueurDeLaSemaine</tt> :
+         dur&eacute;e maximale de travail pour une semaine fix&ecute;e. </dd>
+    </dl>
+    <h4>Mod&eacute;lisation d'une formation</h4>
+    <p>Dans le r&eacute;pertoire de version, cr&eacute;er un
+       r&eacute;pertoire du nom de la formation, et ajouter ce nom
+       dans le fichier <em>cursus.txt</em>. </p>
+    <h4>Mod&eacute;lisation d'un module de cours</h4>
+    <p> Dans le r&eacute;pertoire de la formation, ajouter le nom du module
+        dans le fichier <em>modules.txt</em> et cr&eacute;er un fichier
+        du nom du module suffix&eacute; par "<em>.txt</em>". </p>
+    <p> Commencer par d&eacute;crire la progression du module, un type
+        d'activit&eacute; par ligne dans l'ordre chronologique pr&eacute;vu;
+        les types d'activit&eacute; reconnus sont :
+    <dl>
+    <dd> <tt>CM</tt> : Cours magistral de deux heures,
+    <dd> <tt>EV2</tt> : Evaluation de deux heures, </dd>
+    <dd> <tt>EV1</tt> : Evaluation d'une heure, </dd>
+    <dd> <tt>TD</tt> : TD de deux heures en salle de cours, </dd>
+    <dd> <tt>TM</tt> : TD de deux heures en salle machine, </dd>
+    <dd> <tt>TV</tt> : TD de deux heures en parall&egrave;le (m&ecirc;me
+         plage horaire pour tous les groupes), </dd>
+    <dd> <tt>SD</tt> : TD SA&eacute; de deux heures en salle de cours, </dd>
+    <dd> <tt>SM</tt> : TD SA&eacute; de deux heures en salle machine, </dd>
+    <dd> <tt>TP</tt> : TP de quatre heures en salle machine, </dd>
+    <dd> <tt>TP4</tt> : TP de quatre heures en salle machine, </dd>
+    <dd> <tt>TP2</tt> : TP de deux heures en salle machine, </dd>
+    <dd> <tt>TQ2</tt> : TP de deux heures en salle de cours, </dd>
+    <dd> <tt>SP</tt> : TP SA&eacute; de deux heures en salle machine, </dd>
+    <dd> <tt>SQ</tt> : TP SA&eacute; de deux heures en salle de cours. </dd>
+    </dl>
+    <p> Puis ajouter une ligne comportant le mot <tt>Params</tt>, et
+        indiquer les caract&eacute;ristiques du module, une par ligne :
+    <dl>
+    <dd> <tt>DebutModule</tt> :
+         semaine minimale de d&eacute;but du cours, </dd>
+    <dd> <tt>FinModule</tt> :
+         semaine maximale de fin du cours, </dd>
+    <dd> <tt>SemaineLibre</tt> :
+         num&eacute;ro d'une semaine sans activit&eacute; pour ce cours, </dd>
+    <dd> <tt>SousTitre</tt> :
+         initiales des enseignants ordonn&eacute;s en coh&eacute;rence avec
+         les d&eacute;calages dans les colonnes (lignes sur la vue), </dd>
+    <dd> <tt>AffectationCM</tt> :
+         acronyme de l'enseignant en charge des cours magistraux, </dd>
+    <dd> <tt>AffectationTD</tt> :
+         nombre de groupes de TD suivi de l'acronyme de l'enseignant en charge
+         de chaque groupe, </dd>
+    <dd> <tt>AffectationTP</tt> :
+         nombre de groupes de TP suivi de l'acronyme de l'enseignant en charge
+         de chaque groupe, </dd>
+    <dd> <tt>Affectation</tt> :
+         index de l'activit&eacute; (compt&eacute; &agrave; partir de 0),
+         suivi du nombre de groupes concern&eacute;s, puis de l'acronyme de
+         l'enseignant en charge de chaque groupe, </dd>
+    <dd> <tt>AGauche</tt> :
+         index de l'activit&eacute; devant appara&icirc;tre
+         d&eacute;cal&eacute;e vers la gauche (vers le haut sur la vue), </dd>
+    <dd> <tt>ADroite</tt> :
+         index de l'activit&eacute; devant appara&icirc;tre
+         d&eacute;cal&eacute;e vers la droite (vers le bas sur la vue). </dd>
+    </dl>
+  </body>
+</html>
diff --git a/out/production/sae2.01-developpement-application/.gitignore b/out/production/sae2.01-developpement-application/.gitignore
new file mode 100644
index 0000000..e4b0afe
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/.gitignore
@@ -0,0 +1,3 @@
+.idea
+*.class
+.out
diff --git a/out/production/sae2.01-developpement-application/README.md b/out/production/sae2.01-developpement-application/README.md
new file mode 100644
index 0000000..2d879d4
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/README.md
@@ -0,0 +1,7 @@
+# saeshukan
+
+SAe project about Shukan planner for BUT INFO students
+
+A documentation of Shukan and Shukan scripts (shukan.html) is available in doc directory.
+
+A documentation of Shukan architecture (archiShukan.pdf) is also available in doc directory.
diff --git a/out/production/sae2.01-developpement-application/bin/shukan.jar b/out/production/sae2.01-developpement-application/bin/shukan.jar
new file mode 100644
index 0000000000000000000000000000000000000000..41fba1facd35275e225f8c7c57be6fbdca5c8cf9
GIT binary patch
literal 35188
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%0DKp
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
Y-wN<%Wdm8p%fQP}!_2_&s1?Km0OmDJz5oCK

literal 0
HcmV?d00001

diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/ANG1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/ANG1.txt
new file mode 100644
index 0000000..0094fd8
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/ANG1.txt
@@ -0,0 +1,20 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+SP
+TD
+Params
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 37 38 39 40 41 42 45 46 47 48 49 50 1 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/ARC1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/ARC1.txt
new file mode 100644
index 0000000..7a84f72
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/ARC1.txt
@@ -0,0 +1,16 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+TP4
+SD
+SD
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 35 36 36 36 36 36 37 38 38 45
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/BDD1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/BDD1.txt
new file mode 100644
index 0000000..bcdfe51
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/BDD1.txt
@@ -0,0 +1,25 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+TP4
+TP4
+TP4
+SD
+SP
+EV2
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 DFin SDie
+AffectTP 4 DFin SDie SDie DFin
+Sched 39 39 40 40 41 41 42 42 44 44 45 46 47 48 49 50 1 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/DEV1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/DEV1.txt
new file mode 100644
index 0000000..7be53b8
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/DEV1.txt
@@ -0,0 +1,94 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+TP4
+TD
+TD
+TP4
+TP4
+TD
+TD
+TP4
+EV1
+TP4
+TP4
+TP4
+TP4
+EV1
+TP2
+CM
+CM
+TD
+TD
+TP2
+TP2
+CM
+TD
+TD
+TP2
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+TP2
+EV2
+Params
+Subtitle K-B-MD
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 ABou ABou ABou ABou
+AffectSpec 5 2 EKer EKer
+AffectSpec 6 2 EKer EKer
+AffectSpec 7 4 EMic EMic EMic EMic
+AffectSpec 8 4 DJam DJam DJam DJam
+AffectSpec 11 4 DJam DJam DJam DJam
+AffectSpec 12 4 SDie SDie SDie SDie
+AffectSpec 13 2 EKer EKer
+AffectSpec 14 2 EKer EKer
+AffectSpec 15 4 SDie SDie SDie SDie
+AffectSpec 17 4 DJam DJam DJam DJam
+AffectSpec 22 4 EKer EKer EKer EKer
+AffectSpec 23 1 EKer
+AffectSpec 24 1 EKer
+AffectSpec 25 2 EKer EKer
+AffectSpec 26 2 EKer EKer
+AffectSpec 27 4 EKer EKer EKer EKer
+AffectSpec 28 4 EKer EKer EKer EKer
+AffectSpec 29 1 EKer
+AffectSpec 30 2 EKer EKer
+AffectSpec 31 2 EKer EKer
+AffectSpec 35 4 EKer EKer EKer EKer
+AffectSpec 36 4 EKer EKer EKer EKer
+AffectSpec 41 1 EKer
+OnLeft 5
+OnLeft 6
+OnLeft 8
+OnLeft 11
+OnLeft 13
+OnLeft 14
+OnLeft 17
+OnLeft 22
+OnLeft 23
+OnLeft 24
+OnLeft 25
+OnLeft 26
+OnLeft 27
+OnLeft 28
+OnLeft 29
+OnLeft 30
+OnLeft 31
+OnLeft 35
+OnLeft 36
+OnLeft 41
+OnRight 7
+OnRight 12
+OnRight 15
+Sched 37 37 38 38 38 39 39 39 40 41 41 41 42 44 44 44 44 44 45 46 47 47 48 49 49 49 49 49 49 50 50 50 50 1 1 1 1 1 1 2 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EC1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EC1.txt
new file mode 100644
index 0000000..711bb9a
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EC1.txt
@@ -0,0 +1,20 @@
+TD
+TQ2
+TD
+TQ2
+TD
+TQ2
+TD
+TD
+SP
+SP
+Params
+Subtitle AR
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+AffectSpec 8 4 CMag CMag CMag CMag
+AffectSpec 9 4 CMag CMag CMag CMag
+OnRight 8
+OnRight 9
+Sched 37 38 39 40 41 45 46 47 50 1
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EGO1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EGO1.txt
new file mode 100644
index 0000000..e78cf71
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EGO1.txt
@@ -0,0 +1,25 @@
+CM
+TD
+TD
+TD
+TQ2
+TD
+TQ2
+TD
+TD
+TQ2
+SD
+TD
+TD
+TQ2
+TQ2
+TD
+SD
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 37 37 39 40 41 42 45 46 46 47 47 48 48 49 50 1 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EGO2.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EGO2.txt
new file mode 100644
index 0000000..5f5db53
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/EGO2.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+TD
+TD
+TD
+SD
+TD
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 35 36 36 37 38 39 40 41 45 46 47 48
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/M1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/M1.txt
new file mode 100644
index 0000000..915e53f
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/M1.txt
@@ -0,0 +1,27 @@
+CM
+CM
+TD
+CM
+TD
+TD
+TP2
+TD
+TD
+TP2
+TD
+TD
+TD
+TP2
+TD
+TD
+TD
+TQ2
+TP2
+EV2
+Params
+EndsOn 49
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 35 36 36 36 36 37 37 37 38 38 39 39 40 40 41 42 42 45 46 47
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/M2.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/M2.txt
new file mode 100644
index 0000000..8ec938c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/M2.txt
@@ -0,0 +1,19 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TP2
+TQ2
+TQ2
+TQ2
+TP2
+EV2
+Params
+StartsOn 45
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 45 45 46 47 48 48 49 50 1 1 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/PPP1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/PPP1.txt
new file mode 100644
index 0000000..1744113
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/PPP1.txt
@@ -0,0 +1,8 @@
+TD
+TP2
+SP
+SP
+Params
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+Sched 40 44 3 3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/SYS1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/SYS1.txt
new file mode 100644
index 0000000..bda658c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/SYS1.txt
@@ -0,0 +1,20 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+Params
+Hollyweek 48
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 SDie ABou ABou DJam
+Sched 38 38 39 39 40 40 41 41 42 42 44 44 45
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/WEB1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/WEB1.txt
new file mode 100644
index 0000000..b18b5bf
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/WEB1.txt
@@ -0,0 +1,29 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+SP
+EV1
+TP2
+TP2
+TP2
+SP
+EV1
+Params
+Subtitle PV
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 PVil PVil PVil PVil
+AffectSpec 8 4 BDev BDev BDev BDev
+AffectSpec 9 4 BDev BDev BDev BDev
+AffectSpec 10 4 BDev BDev BDev BDev
+AffectSpec 11 4 BDev BDev BDev BDev
+AffectSpec 12 1 BDev
+OnRight 8
+OnRight 9
+OnRight 10
+OnRight 11
+OnRight 12
+Sched 36 36 37 38 39 40 41 42 46 47 48 49 50
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/modules.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/modules.txt
new file mode 100644
index 0000000..a02ef39
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S1/modules.txt
@@ -0,0 +1,12 @@
+DEV1
+WEB1
+ARC1
+SYS1
+BDD1
+M1
+M2
+EGO1
+EGO2
+EC1
+ANG1
+PPP1
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ACD4.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ACD4.txt
new file mode 100644
index 0000000..31b1045
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ACD4.txt
@@ -0,0 +1,30 @@
+CM
+TD
+CM
+TP4
+CM
+TD
+CM
+TD
+TP4
+CM
+TD
+TP4
+CM
+TM
+TM
+TP4
+TM
+EV2
+Params
+Subtitle x-DB-PG
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 3 DBol DBol DBol
+AffectSpec 13 2 PGue PGue
+AffectSpec 14 2 PGue PGue
+AffectSpec 16 2 PGue PGue
+OnRight 13
+OnRight 14
+OnRight 16
+Sched 35 36 37 37 38 38 39 39 40 41 41 42 42 44 45 45 46 47
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ACD5.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ACD5.txt
new file mode 100644
index 0000000..2ae5232
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ACD5.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TQ2
+TD
+TP2
+CM
+TP2
+TD
+TP2
+EV2
+Params
+StartsOn 37
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 3 BDav BDav BDav
+Sched 37 37 38 38 39 40 40 41 42 42 45
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ANG3.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ANG3.txt
new file mode 100644
index 0000000..423ed3e
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ANG3.txt
@@ -0,0 +1,28 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+Params
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 3 ACas ACas ACas
+Sched 35 36 36 37 37 38 38 39 39 40 40 41 41 44 45 46 47 48 49 50 1 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/APL3.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/APL3.txt
new file mode 100644
index 0000000..ec2e545
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/APL3.txt
@@ -0,0 +1,22 @@
+CM
+TD
+TP2
+TD
+TP2
+CM
+TD
+TM
+TP2
+TP2
+CM
+TM
+TP2
+TP2
+EV2
+Params
+EndsOn 49
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 3 DBol DBol DBol
+Sched 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ASR4.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ASR4.txt
new file mode 100644
index 0000000..4a46129
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ASR4.txt
@@ -0,0 +1,25 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TP4
+EV1
+TM
+TM
+TP4
+TM
+TM
+TP4
+TM
+TP4
+EV1
+Params
+Hollyweek 48
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou SDie
+AffectTP 3 ABou DFin SDie
+Sched 44 44 45 45 45 46 46 47 49 50 50 1 1 1 2 2 3 3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ASR5.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ASR5.txt
new file mode 100644
index 0000000..3190bea
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/ASR5.txt
@@ -0,0 +1,8 @@
+TP4
+TP4
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 3 SDie SDie SDie
+Sched 48 49
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/BD3.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/BD3.txt
new file mode 100644
index 0000000..0ee1715
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/BD3.txt
@@ -0,0 +1,21 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+EV2
+Params
+StartsOn 44
+Subtitle PG
+AffectCM PGue
+AffectTD 2 DFin DFin
+AffectTP 3 DFin DFin DFin
+Sched 44 45 46 47 47 48 48 49 49 50 50 1 1 2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EC3.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EC3.txt
new file mode 100644
index 0000000..c4772ee
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EC3.txt
@@ -0,0 +1,12 @@
+TD
+TQ2
+TD
+TP2
+TD
+TP2
+Params
+Subtitle AR
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 3 ARic ARic ARic
+Sched 36 37 38 39 40 41
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EGO5.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EGO5.txt
new file mode 100644
index 0000000..0e5bd85
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EGO5.txt
@@ -0,0 +1,27 @@
+CM
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+TD
+TQ2
+EV2
+Params
+Hollyweek 37
+Hollyweek 38
+Hollyweek 39
+Subtitle PV-MP-x
+AffectCM MPri
+AffectTD 2 MPri MPri
+AffectTP 3 MPri MPri MPri
+AffectSpec 0 1 PVil
+OnLeft 0
+Sched 36 36 36 40 41 41 42 44 44 45 46 46 47 48 49 50
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EGO6.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EGO6.txt
new file mode 100644
index 0000000..4c2b944
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/EGO6.txt
@@ -0,0 +1,24 @@
+CM
+TD
+TQ2
+CM
+TD
+TD
+TP2
+TP2
+CM
+TD
+TP2
+CM
+TD
+TQ2
+CM
+TD
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 3 BDav BDav BDav
+Sched 35 36 36 37 37 38 39 40 41 42 42 46 46 47 48 48 49
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/M5.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/M5.txt
new file mode 100644
index 0000000..d4a3881
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/M5.txt
@@ -0,0 +1,29 @@
+CM
+CM
+TD
+CM
+CM
+TD
+TP2
+CM
+TD
+TD
+TD
+TP2
+CM
+TD
+TD
+TD
+TP2
+TQ2
+TQ2
+TQ2
+TP2
+EV2
+Params
+EndsOn 50
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 3 PAde PAde PAde
+Sched 35 36 36 36 37 37 38 38 38 39 39 39 40 40 41 41 42 42 44 44 45 46
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/M6.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/M6.txt
new file mode 100644
index 0000000..e7b1c02
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/M6.txt
@@ -0,0 +1,21 @@
+TD
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TP2
+TD
+TD
+TD
+TD
+Params
+StartsOn 45
+Subtitle PA
+AffectTD 2 PAde PAde
+AffectTP 3 PAde PAde PAde
+Sched 46 46 47 47 48 48 49 49 50 50 1 2 2 3 3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/PPP3.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/PPP3.txt
new file mode 100644
index 0000000..3d416d1
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/PPP3.txt
@@ -0,0 +1,9 @@
+TD
+TD
+TQ2
+TQ2
+Params
+Subtitle N
+AffectTD 2 DJam DJam
+AffectTP 3 DJam DJam DJam
+Sched 47 48 49 50
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/WIM2.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/WIM2.txt
new file mode 100644
index 0000000..ae3cba5
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/WIM2.txt
@@ -0,0 +1,21 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+Params
+Subtitle EM
+AffectCM EMic
+AffectTD 2 DJam DJam
+AffectTP 3 DJam DJam DJam
+Sched 39 39 40 42 42 45 45 46 46 47 48 49 50 1 2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/modules.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/modules.txt
new file mode 100644
index 0000000..3586c52
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/S3/modules.txt
@@ -0,0 +1,14 @@
+ASR4
+ASR5
+APL3
+WIM2
+ACD4
+BD3
+M5
+M6
+EGO5
+EGO6
+EC3
+ANG3
+ACD5
+PPP3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/cursus.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/cursus.txt
new file mode 100644
index 0000000..d0291d6
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/cursus.txt
@@ -0,0 +1,2 @@
+S1
+S3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/weeks.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/weeks.txt
new file mode 100644
index 0000000..7bd93b8
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V001_210626/weeks.txt
@@ -0,0 +1,12 @@
+ScolarYear 2021
+YearOfFirstWeek 2021
+FirstWeek 35
+SemesterLength 21
+DefaultWeekLength 40
+WeekLength S35 24
+WeekLength S36 36
+WeekLength S43 0
+WeekLength S44 32
+WeekLength S45 36
+WeekLength S51 0
+WeekLength S52 0
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/ADO.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/ADO.txt
new file mode 100644
index 0000000..c2017c6
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/ADO.txt
@@ -0,0 +1,16 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+TP4
+SD
+SD
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 35 36 36 36 36 36 37 38 38 46
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/AT.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/AT.txt
new file mode 100644
index 0000000..df4d1e3
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/AT.txt
@@ -0,0 +1,20 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+SP
+TD
+Params
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 37 38 39 40 41 42 44 45 46 47 49 50 1 2 2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/BD1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/BD1.txt
new file mode 100644
index 0000000..18b2c5e
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/BD1.txt
@@ -0,0 +1,25 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+TM
+TM
+TP4
+TP4
+TP4
+TP4
+TP4
+TP4
+SD
+SP
+EV2
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 KAbi SDie
+AffectTP 4 KAbi SDie SDie KAbi
+Sched 39 39 40 40 41 41 42 42 42 44 45 46 47 48 49 50 50 1 2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/C1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/C1.txt
new file mode 100644
index 0000000..d08e7db
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/C1.txt
@@ -0,0 +1,20 @@
+TD
+TQ2
+TD
+TQ2
+TD
+SP
+SP
+SP
+Params
+Subtitle x-AR-CM
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+AffectSpec 5 4 CMag CMag CMag CMag
+AffectSpec 6 4 CMag CMag CMag CMag
+AffectSpec 7 4 CMag CMag CMag CMag
+OnRight 5
+OnRight 6
+OnRight 7
+Sched 36 37 41 42 45 47 48 49
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/DEV.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/DEV.txt
new file mode 100644
index 0000000..0ca370d
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/DEV.txt
@@ -0,0 +1,97 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+CM
+TD
+TP4
+TD
+TD
+TP4
+TP4
+TD
+TD
+TP4
+EV1
+TP4
+SD
+TP4
+SP
+TP4
+CM
+TD
+TD
+TP4
+EV1
+CM
+TP2
+TP2
+TD
+TD
+TP4
+SD
+TD
+TD
+TP4
+SP
+TD
+TP4
+EV2
+Params
+Subtitle K-B-MD
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 ABou ABou ABou ABou
+AffectSpec 3 2 EKer EKer
+AffectSpec 4 2 EKer EKer
+AffectSpec 7 4 EMic EMic EMic EMic
+AffectSpec 8 1 EKer
+AffectSpec 9 2 EKer EKer
+AffectSpec 10 4 SAbi SAbi SAbi SAbi
+AffectSpec 13 4 SAbi SAbi SAbi SAbi
+AffectSpec 14 4 SAbi SAbi SAbi SAbi
+AffectSpec 15 2 EKer EKer
+AffectSpec 16 2 EKer EKer
+AffectSpec 17 4 SDie SDie SDie SDie
+AffectSpec 19 4 SDie SDie SDie SDie
+AffectSpec 23 4 EKer EKer EKer EKer
+AffectSpec 24 1 EKer
+AffectSpec 25 2 EKer EKer
+AffectSpec 26 2 EKer EKer
+AffectSpec 29 1 EKer
+AffectSpec 30 4 EKer EKer SDie SDie
+AffectSpec 31 4 EKer EKer SDie SDie
+AffectSpec 35 2 EKer EKer
+AffectSpec 39 4 EKer EKer EKer EKer
+AffectSpec 40 2 EKer EKer
+AffectSpec 41 4 EKer EKer EKer EKer
+AffectSpec 42 1 EKer
+OnLeft 3
+OnLeft 4
+OnLeft 8
+OnLeft 9
+OnLeft 15
+OnLeft 16
+OnLeft 23
+OnLeft 24
+OnLeft 25
+OnLeft 26
+OnLeft 29
+OnLeft 30
+OnLeft 35
+OnLeft 39
+OnLeft 40
+OnLeft 41
+OnLeft 42
+OnRight 7
+OnRight 10
+OnRight 13
+OnRight 14
+OnRight 17
+OnRight 19
+OnRight 31
+Sched 37 37 38 38 38 39 39 39 40 40 40 41 41 41 42 44 44 44 44 45 45 46 46 47 47 48 48 48 48 49 49 49 50 50 50 50 1 1 1 1 2 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/ECO.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/ECO.txt
new file mode 100644
index 0000000..11b7535
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/ECO.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+TD
+TD
+TD
+SD
+TD
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 35 36 36 37 38 39 40 41 45 46 47 49
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/GP1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/GP1.txt
new file mode 100644
index 0000000..66f2418
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/GP1.txt
@@ -0,0 +1,25 @@
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+SD
+TD
+SM
+TD
+TD
+TQ2
+TD
+TQ2
+TD
+TD
+TQ2
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 37 37 39 40 41 42 45 46 46 47 47 48 48 49 49 50 1 2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/MD.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/MD.txt
new file mode 100644
index 0000000..edb353e
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/MD.txt
@@ -0,0 +1,27 @@
+CM
+CM
+TD
+CM
+TD
+TD
+TP2
+TD
+TD
+TP2
+TD
+TD
+TD
+TP2
+TD
+TD
+TD
+TQ2
+TP2
+EV2
+Params
+EndsOn 49
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 35 36 36 36 36 37 37 37 37 38 38 39 40 41 41 42 42 45 46 47
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/MF.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/MF.txt
new file mode 100644
index 0000000..1317d91
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/MF.txt
@@ -0,0 +1,19 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TP2
+TQ2
+TQ2
+TQ2
+TP2
+EV2
+Params
+StartsOn 45
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 45 45 46 47 48 48 49 50 50 1 1 2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/PIX.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/PIX.txt
new file mode 100644
index 0000000..6effba3
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/PIX.txt
@@ -0,0 +1,17 @@
+EV1
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+SP
+EV1
+Params
+StartsOn 38
+Subtitle BD
+AffectCM BDev
+AffectTD 2 BDev BDev
+AffectTP 4 BDev BDev BDev BDev
+Sched 38 39 40 41 44 45 46 47 48 49
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/PPP1.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/PPP1.txt
new file mode 100644
index 0000000..27d321e
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/PPP1.txt
@@ -0,0 +1,8 @@
+TD
+TP2
+SP
+SP
+Params
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+Sched 40 44 1 2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/SE.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/SE.txt
new file mode 100644
index 0000000..cb5cae9
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/SE.txt
@@ -0,0 +1,20 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+Params
+Hollyweek 49
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 SDie ABou ABou SAbi
+Sched 38 38 39 39 40 40 41 41 42 42 44 44 46
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/WEB.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/WEB.txt
new file mode 100644
index 0000000..f59067b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/WEB.txt
@@ -0,0 +1,16 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+SP
+Params
+Hollyweek 44
+Hollyweek 45
+Hollyweek 46
+Subtitle PV
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 PVil PVil PVil PVil
+Sched 36 36 37 38 39 40 48
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/modules.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/modules.txt
new file mode 100644
index 0000000..6fff8be
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S1/modules.txt
@@ -0,0 +1,13 @@
+DEV
+WEB
+PIX
+ADO
+SE
+BD1
+MD
+MF
+GP1
+ECO
+AT
+C1
+PPP1
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ACD4.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ACD4.txt
new file mode 100644
index 0000000..31b1045
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ACD4.txt
@@ -0,0 +1,30 @@
+CM
+TD
+CM
+TP4
+CM
+TD
+CM
+TD
+TP4
+CM
+TD
+TP4
+CM
+TM
+TM
+TP4
+TM
+EV2
+Params
+Subtitle x-DB-PG
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 3 DBol DBol DBol
+AffectSpec 13 2 PGue PGue
+AffectSpec 14 2 PGue PGue
+AffectSpec 16 2 PGue PGue
+OnRight 13
+OnRight 14
+OnRight 16
+Sched 35 36 37 37 38 38 39 39 40 41 41 42 42 44 45 45 46 47
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ACD5.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ACD5.txt
new file mode 100644
index 0000000..2ae5232
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ACD5.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TQ2
+TD
+TP2
+CM
+TP2
+TD
+TP2
+EV2
+Params
+StartsOn 37
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 3 BDav BDav BDav
+Sched 37 37 38 38 39 40 40 41 42 42 45
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ANG3.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ANG3.txt
new file mode 100644
index 0000000..d7220aa
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ANG3.txt
@@ -0,0 +1,28 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+Params
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 3 ACas ACas ACas
+Sched 35 36 36 37 37 38 38 39 39 40 40 41 41 42 44 46 46 47 48 49 49 50 1
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/APL3.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/APL3.txt
new file mode 100644
index 0000000..ec2e545
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/APL3.txt
@@ -0,0 +1,22 @@
+CM
+TD
+TP2
+TD
+TP2
+CM
+TD
+TM
+TP2
+TP2
+CM
+TM
+TP2
+TP2
+EV2
+Params
+EndsOn 49
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 3 DBol DBol DBol
+Sched 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ASR4.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ASR4.txt
new file mode 100644
index 0000000..2307e33
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ASR4.txt
@@ -0,0 +1,25 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TP4
+EV1
+TM
+TM
+TP4
+TM
+TM
+TP4
+TM
+TP4
+EV1
+Params
+Hollyweek 49
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou SDie
+AffectTP 3 ABou KAbi SDie
+Sched 44 44 45 45 46 47 47 48 48 50 50 1 1 1 2 2 3 3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ASR5.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ASR5.txt
new file mode 100644
index 0000000..973954a
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/ASR5.txt
@@ -0,0 +1,17 @@
+TD
+TD
+TD
+TP4
+TP4
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 3 SDie SDie SDie
+AffectSpec 0 2 KAbi KAbi
+AffectSpec 1 2 KAbi KAbi
+AffectSpec 2 2 KAbi KAbi
+OnLeft 0
+OnLeft 1
+OnLeft 2
+Sched 44 45 46 47 48
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/BD3.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/BD3.txt
new file mode 100644
index 0000000..cb06d01
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/BD3.txt
@@ -0,0 +1,21 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+EV2
+Params
+StartsOn 44
+Subtitle PG
+AffectCM PGue
+AffectTD 2 KAbi KAbi
+AffectTP 3 KAbi KAbi KAbi
+Sched 44 45 46 47 47 48 48 49 49 50 50 1 1 2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EC3.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EC3.txt
new file mode 100644
index 0000000..c4772ee
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EC3.txt
@@ -0,0 +1,12 @@
+TD
+TQ2
+TD
+TP2
+TD
+TP2
+Params
+Subtitle AR
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 3 ARic ARic ARic
+Sched 36 37 38 39 40 41
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EGO5.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EGO5.txt
new file mode 100644
index 0000000..0e5bd85
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EGO5.txt
@@ -0,0 +1,27 @@
+CM
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+CM
+TD
+TQ2
+TD
+TQ2
+EV2
+Params
+Hollyweek 37
+Hollyweek 38
+Hollyweek 39
+Subtitle PV-MP-x
+AffectCM MPri
+AffectTD 2 MPri MPri
+AffectTP 3 MPri MPri MPri
+AffectSpec 0 1 PVil
+OnLeft 0
+Sched 36 36 36 40 41 41 42 44 44 45 46 46 47 48 49 50
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EGO6.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EGO6.txt
new file mode 100644
index 0000000..beaa6ef
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/EGO6.txt
@@ -0,0 +1,24 @@
+CM
+TD
+TQ2
+CM
+TD
+TD
+TP2
+TP2
+CM
+TD
+TP2
+CM
+TD
+TQ2
+CM
+TD
+EV2
+Params
+Hollyweek 44
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 3 BDav BDav BDav
+Sched 35 36 36 37 37 38 39 40 41 42 45 45 46 47 48 49 50
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/M5.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/M5.txt
new file mode 100644
index 0000000..d4a3881
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/M5.txt
@@ -0,0 +1,29 @@
+CM
+CM
+TD
+CM
+CM
+TD
+TP2
+CM
+TD
+TD
+TD
+TP2
+CM
+TD
+TD
+TD
+TP2
+TQ2
+TQ2
+TQ2
+TP2
+EV2
+Params
+EndsOn 50
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 3 PAde PAde PAde
+Sched 35 36 36 36 37 37 38 38 38 39 39 39 40 40 41 41 42 42 44 44 45 46
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/M6.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/M6.txt
new file mode 100644
index 0000000..968be4e
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/M6.txt
@@ -0,0 +1,21 @@
+TD
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TP2
+TD
+TD
+TD
+TD
+Params
+StartsOn 45
+Subtitle PA
+AffectTD 2 PAde PAde
+AffectTP 3 PAde PAde PAde
+Sched 45 46 47 47 47 48 48 48 49 49 50 1 1 2 2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/PPP3.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/PPP3.txt
new file mode 100644
index 0000000..d77d18d
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/PPP3.txt
@@ -0,0 +1,9 @@
+TD
+TD
+TQ2
+TQ2
+Params
+Subtitle N
+AffectTD 2 SAbi SAbi
+AffectTP 3 SAbi SAbi SAbi
+Sched 44 46 49 50
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/WIM2.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/WIM2.txt
new file mode 100644
index 0000000..4110ab9
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/WIM2.txt
@@ -0,0 +1,21 @@
+CM
+CM
+CM
+TM
+TM
+TM
+TM
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+Params
+Subtitle EM
+AffectCM EMic
+AffectTD 2 SAbi SAbi
+AffectTP 3 SAbi SAbi SAbi
+Sched 39 39 40 41 42 45 45 46 46 47 48 49 50 1 2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/modules.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/modules.txt
new file mode 100644
index 0000000..3586c52
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/S3/modules.txt
@@ -0,0 +1,14 @@
+ASR4
+ASR5
+APL3
+WIM2
+ACD4
+BD3
+M5
+M6
+EGO5
+EGO6
+EC3
+ANG3
+ACD5
+PPP3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/cursus.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/cursus.txt
new file mode 100644
index 0000000..d0291d6
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/cursus.txt
@@ -0,0 +1,2 @@
+S1
+S3
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/weeks.txt b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/weeks.txt
new file mode 100644
index 0000000..7bd93b8
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/V007_210716/weeks.txt
@@ -0,0 +1,12 @@
+ScolarYear 2021
+YearOfFirstWeek 2021
+FirstWeek 35
+SemesterLength 21
+DefaultWeekLength 40
+WeekLength S35 24
+WeekLength S36 36
+WeekLength S43 0
+WeekLength S44 32
+WeekLength S45 36
+WeekLength S51 0
+WeekLength S52 0
diff --git a/out/production/sae2.01-developpement-application/data/2122_S1/version.txt b/out/production/sae2.01-developpement-application/data/2122_S1/version.txt
new file mode 100644
index 0000000..f1875cf
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S1/version.txt
@@ -0,0 +1,2 @@
+7
+210716
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/ANG4.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/ANG4.txt
new file mode 100644
index 0000000..f78c2fb
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/ANG4.txt
@@ -0,0 +1,21 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+Params
+EndsOn 13
+AffectCM ACas
+AffectTD 1 ACas
+AffectTP 2 ACas ACas
+Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/CE.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/CE.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/CE.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/CI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/CI.txt
new file mode 100644
index 0000000..6357984
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/CI.txt
@@ -0,0 +1,21 @@
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+Params
+EndsOn 13
+AffectCM ATer
+AffectTD 1 ATer
+AffectTP 1 ATer
+Sched 4 4 4 4 6 6 6 6 8 8 8 8 10 10 10
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/EC4.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/EC4.txt
new file mode 100644
index 0000000..ed29118
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/EC4.txt
@@ -0,0 +1,11 @@
+TD
+TP2
+TD
+TP2
+Params
+EndsOn 13
+Subtitle AR
+AffectCM ARic
+AffectTD 1 ARic
+AffectTP 2 ARic ARic
+Sched 9 10 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/IA.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/IA.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/IA.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/IG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/IG.txt
new file mode 100644
index 0000000..6a128a2
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/IG.txt
@@ -0,0 +1,19 @@
+CM
+TM
+TM
+CM
+TM
+TP4
+CM
+TM
+TP4
+CM
+TM
+TP4
+Params
+EndsOn 13
+Hollyweek 6
+AffectCM PVil
+AffectTD 1 PVil
+AffectTP 1 PVil
+Sched 4 4 4 5 5 5 8 8 8 10 10 10
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MD.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MD.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MD.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MG.txt
new file mode 100644
index 0000000..068d8cf
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MG.txt
@@ -0,0 +1,18 @@
+CM
+TD
+TQ2
+TP4
+TD
+CM
+TD
+TP4
+CM
+TP4
+TD
+TP2
+Params
+EndsOn 13
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 5 6 6 9 9 10 10 11 11 13 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MI.txt
new file mode 100644
index 0000000..1fc661b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/MI.txt
@@ -0,0 +1,20 @@
+TD
+TQ2
+CM
+TD
+TD
+TP2
+CM
+TP4
+CM
+TD
+TP2
+TQ2
+TP2
+EV2
+Params
+EndsOn 10
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 4 4 4 5 5 5 6 6 8 8 9 9 10
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PG.txt
new file mode 100644
index 0000000..34c10fc
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PG.txt
@@ -0,0 +1,18 @@
+CM
+TP2
+TD
+TM
+CM
+TD
+TP4
+TD
+TP4
+CM
+TP2
+TP4
+Params
+EndsOn 12
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 4 5 5 5 8 8 9 9 11 11 11
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PM.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PM.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PM.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PR.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PR.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/PR.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/SI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/SI.txt
new file mode 100644
index 0000000..18ed46b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/SI.txt
@@ -0,0 +1,19 @@
+TD
+TP4
+TD
+TP2
+TD
+TP2
+CM
+TP4
+CM
+TP4
+CM
+TD
+Params
+StartsOn 5
+EndsOn 13
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 5 5 8 8 8 8 9 9 10 10 12 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/SR.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/SR.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/SR.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/TI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/TI.txt
new file mode 100644
index 0000000..7d956cb
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/TI.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TP2
+TP2
+CM
+TP2
+TD
+TP2
+TD
+EV2
+Params
+EndsOn 13
+AffectCM DBol
+AffectTD 1 DBol
+AffectTP 1 DBol
+Sched 6 6 6 6 9 9 9 9 11 11 11 11 12 12 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/modules.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/modules.txt
new file mode 100644
index 0000000..24381f2
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/IN/modules.txt
@@ -0,0 +1,15 @@
+SR
+PR
+PM
+IA
+MD
+CE
+EC4
+ANG4
+TI
+PG
+IG
+MG
+SI
+CI
+MI
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/AE.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/AE.txt
new file mode 100644
index 0000000..af7ec25
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/AE.txt
@@ -0,0 +1,23 @@
+TD
+TP2
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+SQ
+SQ
+Params
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 6 8 9 10 11 12 13 14 14 18 18 19 19 20 20 21 21 23 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/BD2.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/BD2.txt
new file mode 100644
index 0000000..70ee9f7
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/BD2.txt
@@ -0,0 +1,19 @@
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+SP
+Params
+StartsOn 9
+Subtitle KA-PAG
+AffectCM KAbi
+AffectTD 2 KAbi KAbi
+AffectTP 4 KAbi KAbi KAbi KAbi
+OnRight 0
+Sched 9 10 11 13 14 17 18 19 20 22 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/C2.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/C2.txt
new file mode 100644
index 0000000..74216c2
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/C2.txt
@@ -0,0 +1,13 @@
+TD
+TQ2
+TD
+TP2
+TD
+SD
+SQ
+Params
+StartsOn 13
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+Sched 13 14 18 19 20 21 22
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/COO.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/COO.txt
new file mode 100644
index 0000000..a15755c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/COO.txt
@@ -0,0 +1,13 @@
+CM
+TD
+TP4
+TM
+TP4
+EV2
+Params
+EndsOn 20
+Subtitle OC
+AffectCM OCas
+AffectTD 2 OCas OCas
+AffectTP 4 SAbi OCas OCas SAbi
+Sched 5 5 6 8 9 11
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/DCN.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/DCN.txt
new file mode 100644
index 0000000..da72d31
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/DCN.txt
@@ -0,0 +1,16 @@
+TD
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+EV2
+Params
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 17 18 19 19 20 21 22 23 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/ERG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/ERG.txt
new file mode 100644
index 0000000..bb8dea8
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/ERG.txt
@@ -0,0 +1,17 @@
+CM
+CM
+TP2
+TP2
+TP2
+TP2
+Params
+StartsOn 13
+Subtitle PE-JM
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 JMou JMou JMou JMou
+OnRight 2
+OnRight 3
+OnRight 4
+OnRight 5
+Sched 13 14 17 18 19 20
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/GP2a.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/GP2a.txt
new file mode 100644
index 0000000..20ba1cc
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/GP2a.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TD
+SP
+TD
+SM
+TD
+TD
+SP
+TD
+SP
+SP
+SP
+EV2
+Params
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 4 4 4 5 5 8 8 9 9 10 10 11 12 14
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/GP2b.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/GP2b.txt
new file mode 100644
index 0000000..d05c819
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/GP2b.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TM
+TP2
+CM
+TD
+TP2
+TP2
+Params
+StartsOn 9
+Hollyweek 12
+Hollyweek 17
+Hollyweek 21
+Subtitle AC
+AffectCM ACar
+AffectTD 2 ACar ACar
+AffectTP 4 ACar ACar ACar ACar
+Sched 13 13 14 14 18 19 19 20 22
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/IHM.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/IHM.txt
new file mode 100644
index 0000000..99d2d5b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/IHM.txt
@@ -0,0 +1,33 @@
+CM
+TD
+CM
+TP2
+CM
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP4
+SP
+SP
+SD
+Params
+StartsOn 10
+Subtitle SF-PV-EM
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 EMic EMic EMic EMic
+AffectSpec 3 4 PVil EMic EMic PVil
+AffectSpec 5 4 PVil EMic EMic PVil
+AffectSpec 7 4 PVil EMic EMic PVil
+AffectSpec 10 4 PVil EMic EMic PVil
+AffectSpec 11 4 SAbi SAbi SAbi SAbi
+AffectSpec 12 4 SAbi SAbi SAbi SAbi
+AffectSpec 13 4 SAbi SAbi SAbi SAbi
+OnLeft 11
+OnLeft 12
+OnLeft 13
+OnRight 8
+Sched 10 10 11 11 12 12 13 13 14 17 17 17 18 20 22
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MG.txt
new file mode 100644
index 0000000..85165c3
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MG.txt
@@ -0,0 +1,26 @@
+CM
+CM
+TD
+CM
+TD
+CM
+TD
+TP2
+TD
+TP2
+SD
+TD
+TP2
+SP
+TQ2
+TQ2
+TP2
+EV1
+Params
+EndsOn 14
+Hollyweek 9
+Hollyweek 10
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 4 4 4 4 4 5 5 5 5 6 6 6 8 11 12 12 13 14
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MN.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MN.txt
new file mode 100644
index 0000000..90bf6b5
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MN.txt
@@ -0,0 +1,13 @@
+TD
+TD
+TP2
+TQ2
+TP2
+TP2
+EV1
+Params
+EndsOn 22
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 4 5 8 11 12 13 14
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MS.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MS.txt
new file mode 100644
index 0000000..adef7da
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/MS.txt
@@ -0,0 +1,15 @@
+TD
+TQ2
+TQ2
+TP2
+EV1
+SD
+SP
+SP
+Params
+StartsOn 17
+Hollyweek 23
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 17 17 18 19 20 21 22 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/POO.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/POO.txt
new file mode 100644
index 0000000..c954302
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/POO.txt
@@ -0,0 +1,47 @@
+CM
+CM
+TD
+TP2
+CM
+TD
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+CM
+TD
+TP2
+TP2
+TD
+TP2
+SD
+TP2
+TP2
+TP2
+EV2
+TP2
+SP
+TP2
+SP
+SP
+SD
+Params
+Subtitle DOO
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 PEve SAbi SAbi SAbi
+AffectSpec 24 4 SAbi SAbi SAbi SAbi
+AffectSpec 25 4 PEve PEve PEve PEve
+AffectSpec 26 4 PEve SAbi SAbi PEve
+AffectSpec 27 4 PEve PEve PEve PEve
+AffectSpec 28 4 PEve PEve PEve PEve
+OnLeft 0
+OnLeft 3
+OnLeft 10
+OnLeft 22
+OnLeft 24
+OnLeft 26
+Sched 4 4 4 4 5 5 5 6 6 6 6 8 8 8 8 9 9 9 10 10 10 11 11 12 12 12 13 14 17 22
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/PPP2.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/PPP2.txt
new file mode 100644
index 0000000..66d8a4f
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/PPP2.txt
@@ -0,0 +1,11 @@
+TD
+TD
+TD
+TD
+TQ2
+Params
+StartsOn 5
+Subtitle NEmo
+AffectTD 2 NEmo NEmo
+AffectTP 4 NEmo NEmo NEmo NEmo
+Sched 17 18 19 21 23
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/QD.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/QD.txt
new file mode 100644
index 0000000..a359aa9
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/QD.txt
@@ -0,0 +1,9 @@
+TP2
+TP2
+TP2
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 17 18 19
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/RES.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/RES.txt
new file mode 100644
index 0000000..1e879de
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/RES.txt
@@ -0,0 +1,47 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+SD
+TD
+TD
+TD
+TD
+TD
+TP4
+TP2
+SD
+SP
+Params
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnLeft 3
+OnLeft 4
+OnLeft 5
+OnLeft 6
+OnLeft 7
+OnLeft 8
+OnLeft 9
+OnLeft 10
+OnLeft 11
+OnRight 12
+OnRight 13
+OnRight 14
+OnRight 15
+OnRight 16
+OnRight 17
+OnRight 18
+OnRight 19
+OnRight 20
+Sched 6 6 8 8 9 9 10 10 11 12 13 14 17 17 18 18 19 20 21 21 22
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/modules.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/modules.txt
new file mode 100644
index 0000000..fef5ced
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/S2/modules.txt
@@ -0,0 +1,16 @@
+POO
+COO
+IHM
+ERG
+QD
+RES
+BD2
+MG
+MS
+MN
+GP2a
+GP2b
+DCN
+AE
+C2
+PPP2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/ANG4.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/ANG4.txt
new file mode 100644
index 0000000..f78c2fb
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/ANG4.txt
@@ -0,0 +1,21 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+Params
+EndsOn 13
+AffectCM ACas
+AffectTD 1 ACas
+AffectTP 2 ACas ACas
+Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/CE.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/CE.txt
new file mode 100644
index 0000000..b88d61b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/CE.txt
@@ -0,0 +1,21 @@
+CM
+CM
+TM
+TP2
+TM
+TP2
+TM
+CM
+TP2
+TM
+TP2
+TP2
+EV2
+Params
+EndsOn 13
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 1 BDav
+AffectTP 2 BDav BDav
+Sched 4 4 4 4 5 8 8 9 9 10 10 11 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/CI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/CI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/CI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/EC4.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/EC4.txt
new file mode 100644
index 0000000..36ed71b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/EC4.txt
@@ -0,0 +1,11 @@
+TD
+TP2
+TD
+TP2
+Params
+EndsOn 13
+Subtitle AR
+AffectCM ARic
+AffectTD 1 ARic
+AffectTP 2 ARic ARic
+Sched 5 8 10 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/IA.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/IA.txt
new file mode 100644
index 0000000..6eb2136
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/IA.txt
@@ -0,0 +1,39 @@
+CM
+TD
+CM
+TD
+TD
+TP4
+CM
+TD
+CM
+TD
+TD
+TD
+TP4
+Params
+EndsOn 13
+Subtitle PV-FP
+AffectCM PVil
+AffectTD 1 PVil
+AffectTP 2 PVil PVil
+AffectSpec 0 1 FPie
+AffectSpec 1 1 FPie
+AffectSpec 2 1 FPie
+AffectSpec 3 1 FPie
+AffectSpec 4 2 FPie FPie
+AffectSpec 5 1 FPie
+OnLeft 6
+OnLeft 7
+OnLeft 8
+OnLeft 9
+OnLeft 10
+OnLeft 11
+OnLeft 12
+OnRight 0
+OnRight 1
+OnRight 2
+OnRight 3
+OnRight 4
+OnRight 5
+Sched 4 4 5 5 6 6 9 9 9 9 11 11 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/IG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/IG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/IG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MD.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MD.txt
new file mode 100644
index 0000000..0389da9
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MD.txt
@@ -0,0 +1,23 @@
+CM
+CM
+TD
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+TP2
+TP2
+TP2
+TP2
+TP2
+EV2
+Params
+EndsOn 13
+Hollyweek 9
+Hollyweek 10
+AffectCM PAde
+AffectTD 1 PAde
+AffectTP 2 PAde PAde
+Sched 4 4 4 5 5 5 6 6 6 8 8 11 11 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/MI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PM.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PM.txt
new file mode 100644
index 0000000..cee6a3f
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PM.txt
@@ -0,0 +1,17 @@
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+TP4
+TD
+TD
+TD
+Params
+EndsOn 13
+AffectCM EMic
+AffectTD 1 EMic
+AffectTP 2 EMic EMic
+Sched 5 5 5 5 6 8 9 10 11 11 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PR.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PR.txt
new file mode 100644
index 0000000..ab79e6c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/PR.txt
@@ -0,0 +1,31 @@
+TD
+TP4
+TP4
+TP4
+EV2
+CM
+TD
+TD
+TP4
+EV2
+Params
+EndsOn 13
+Subtitle AB-PV
+AffectCM PVil
+AffectTD 1 ABou
+AffectTP 2 ABou ABou
+AffectSpec 4 1 ABou
+AffectSpec 6 1 PVil
+AffectSpec 7 1 PVil
+AffectSpec 8 2 PVil PVil
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnLeft 3
+OnLeft 4
+OnRight 5
+OnRight 6
+OnRight 7
+OnRight 8
+OnRight 9
+Sched 4 4 5 6 8 10 11 11 12 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/SI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/SI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/SI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/SR.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/SR.txt
new file mode 100644
index 0000000..65a6f5d
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/SR.txt
@@ -0,0 +1,13 @@
+TM
+TM
+TP4
+TP4
+TP4
+TP4
+EV2
+Params
+EndsOn 13
+AffectCM ABou
+AffectTD 1 ABou
+AffectTP 2 ABou ABou
+Sched 8 8 9 10 11 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/TI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/TI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/TI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/modules.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/modules.txt
new file mode 100644
index 0000000..24381f2
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/WM/modules.txt
@@ -0,0 +1,15 @@
+SR
+PR
+PM
+IA
+MD
+CE
+EC4
+ANG4
+TI
+PG
+IG
+MG
+SI
+CI
+MI
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/cursus.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/cursus.txt
new file mode 100644
index 0000000..851178c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/cursus.txt
@@ -0,0 +1,3 @@
+S2
+WM
+IN
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/weeks.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/weeks.txt
new file mode 100644
index 0000000..256d265
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V001_211016/weeks.txt
@@ -0,0 +1,13 @@
+ScolarYear 2021
+YearOfFirstWeek 2022
+FirstWeek 4
+SemesterLength 21
+DefaultWeekLength 40
+WeekLength S6 36
+WeekLength S7 0
+WeekLength S14 36
+WeekLength S15 0
+WeekLength S16 0
+WeekLength S21 24
+WeekLength S23 32
+WeekLength S24 16
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/ANG4.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/ANG4.txt
new file mode 100644
index 0000000..f78c2fb
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/ANG4.txt
@@ -0,0 +1,21 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+Params
+EndsOn 13
+AffectCM ACas
+AffectTD 1 ACas
+AffectTP 2 ACas ACas
+Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/CE.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/CE.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/CE.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/CI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/CI.txt
new file mode 100644
index 0000000..6357984
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/CI.txt
@@ -0,0 +1,21 @@
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+TP2
+TD
+TD
+TP2
+Params
+EndsOn 13
+AffectCM ATer
+AffectTD 1 ATer
+AffectTP 1 ATer
+Sched 4 4 4 4 6 6 6 6 8 8 8 8 10 10 10
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/EC4.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/EC4.txt
new file mode 100644
index 0000000..ed29118
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/EC4.txt
@@ -0,0 +1,11 @@
+TD
+TP2
+TD
+TP2
+Params
+EndsOn 13
+Subtitle AR
+AffectCM ARic
+AffectTD 1 ARic
+AffectTP 2 ARic ARic
+Sched 9 10 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/IA.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/IA.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/IA.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/IG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/IG.txt
new file mode 100644
index 0000000..6a128a2
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/IG.txt
@@ -0,0 +1,19 @@
+CM
+TM
+TM
+CM
+TM
+TP4
+CM
+TM
+TP4
+CM
+TM
+TP4
+Params
+EndsOn 13
+Hollyweek 6
+AffectCM PVil
+AffectTD 1 PVil
+AffectTP 1 PVil
+Sched 4 4 4 5 5 5 8 8 8 10 10 10
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MD.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MD.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MD.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MG.txt
new file mode 100644
index 0000000..068d8cf
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MG.txt
@@ -0,0 +1,18 @@
+CM
+TD
+TQ2
+TP4
+TD
+CM
+TD
+TP4
+CM
+TP4
+TD
+TP2
+Params
+EndsOn 13
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 5 6 6 9 9 10 10 11 11 13 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MI.txt
new file mode 100644
index 0000000..1fc661b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/MI.txt
@@ -0,0 +1,20 @@
+TD
+TQ2
+CM
+TD
+TD
+TP2
+CM
+TP4
+CM
+TD
+TP2
+TQ2
+TP2
+EV2
+Params
+EndsOn 10
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 4 4 4 5 5 5 6 6 8 8 9 9 10
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PG.txt
new file mode 100644
index 0000000..34c10fc
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PG.txt
@@ -0,0 +1,18 @@
+CM
+TP2
+TD
+TM
+CM
+TD
+TP4
+TD
+TP4
+CM
+TP2
+TP4
+Params
+EndsOn 12
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 4 4 5 5 5 8 8 9 9 11 11 11
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PM.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PM.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PM.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PR.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PR.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/PR.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/SI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/SI.txt
new file mode 100644
index 0000000..18ed46b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/SI.txt
@@ -0,0 +1,19 @@
+TD
+TP4
+TD
+TP2
+TD
+TP2
+CM
+TP4
+CM
+TP4
+CM
+TD
+Params
+StartsOn 5
+EndsOn 13
+AffectCM PEve
+AffectTD 1 PEve
+AffectTP 1 PEve
+Sched 5 5 8 8 8 8 9 9 10 10 12 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/SR.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/SR.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/SR.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/TI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/TI.txt
new file mode 100644
index 0000000..7d956cb
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/TI.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+TP2
+TP2
+CM
+TP2
+TD
+TP2
+TD
+EV2
+Params
+EndsOn 13
+AffectCM DBol
+AffectTD 1 DBol
+AffectTP 1 DBol
+Sched 6 6 6 6 9 9 9 9 11 11 11 11 12 12 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/modules.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/modules.txt
new file mode 100644
index 0000000..24381f2
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/IN/modules.txt
@@ -0,0 +1,15 @@
+SR
+PR
+PM
+IA
+MD
+CE
+EC4
+ANG4
+TI
+PG
+IG
+MG
+SI
+CI
+MI
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/AE.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/AE.txt
new file mode 100644
index 0000000..af7ec25
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/AE.txt
@@ -0,0 +1,23 @@
+TD
+TP2
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+SQ
+SQ
+Params
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 6 8 9 10 11 12 13 14 14 18 18 19 19 20 20 21 21 23 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/BD2.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/BD2.txt
new file mode 100644
index 0000000..70ee9f7
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/BD2.txt
@@ -0,0 +1,19 @@
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+SP
+Params
+StartsOn 9
+Subtitle KA-PAG
+AffectCM KAbi
+AffectTD 2 KAbi KAbi
+AffectTP 4 KAbi KAbi KAbi KAbi
+OnRight 0
+Sched 9 10 11 13 14 17 18 19 20 22 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/C2.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/C2.txt
new file mode 100644
index 0000000..74216c2
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/C2.txt
@@ -0,0 +1,13 @@
+TD
+TQ2
+TD
+TP2
+TD
+SD
+SQ
+Params
+StartsOn 13
+AffectCM ARic
+AffectTD 2 ARic ARic
+AffectTP 4 ARic ARic ARic ARic
+Sched 13 14 18 19 20 21 22
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/COO.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/COO.txt
new file mode 100644
index 0000000..c228a10
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/COO.txt
@@ -0,0 +1,13 @@
+CM
+TD
+TP4
+TM
+TP4
+EV2
+Params
+EndsOn 20
+Subtitle OC
+AffectCM OCas
+AffectTD 2 OCas OCas
+AffectTP 4 SAbi OCas OCas SAbi
+Sched 5 5 6 8 9 10
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/DCN.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/DCN.txt
new file mode 100644
index 0000000..da72d31
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/DCN.txt
@@ -0,0 +1,16 @@
+TD
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+EV2
+Params
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 17 18 19 19 20 21 22 23 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/ERG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/ERG.txt
new file mode 100644
index 0000000..5efe9cf
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/ERG.txt
@@ -0,0 +1,17 @@
+CM
+CM
+TP2
+TP2
+TP2
+TP2
+Params
+StartsOn 13
+Subtitle PE-JM
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 JMou JMou JMou JMou
+OnRight 2
+OnRight 3
+OnRight 4
+OnRight 5
+Sched 13 14 17 18 18 19
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/GP2a.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/GP2a.txt
new file mode 100644
index 0000000..20ba1cc
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/GP2a.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TD
+SP
+TD
+SM
+TD
+TD
+SP
+TD
+SP
+SP
+SP
+EV2
+Params
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 4 4 4 5 5 8 8 9 9 10 10 11 12 14
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/GP2b.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/GP2b.txt
new file mode 100644
index 0000000..d05c819
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/GP2b.txt
@@ -0,0 +1,19 @@
+CM
+TD
+TD
+TM
+TP2
+CM
+TD
+TP2
+TP2
+Params
+StartsOn 9
+Hollyweek 12
+Hollyweek 17
+Hollyweek 21
+Subtitle AC
+AffectCM ACar
+AffectTD 2 ACar ACar
+AffectTP 4 ACar ACar ACar ACar
+Sched 13 13 14 14 18 19 19 20 22
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/IHM.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/IHM.txt
new file mode 100644
index 0000000..99d2d5b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/IHM.txt
@@ -0,0 +1,33 @@
+CM
+TD
+CM
+TP2
+CM
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP4
+SP
+SP
+SD
+Params
+StartsOn 10
+Subtitle SF-PV-EM
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 EMic EMic EMic EMic
+AffectSpec 3 4 PVil EMic EMic PVil
+AffectSpec 5 4 PVil EMic EMic PVil
+AffectSpec 7 4 PVil EMic EMic PVil
+AffectSpec 10 4 PVil EMic EMic PVil
+AffectSpec 11 4 SAbi SAbi SAbi SAbi
+AffectSpec 12 4 SAbi SAbi SAbi SAbi
+AffectSpec 13 4 SAbi SAbi SAbi SAbi
+OnLeft 11
+OnLeft 12
+OnLeft 13
+OnRight 8
+Sched 10 10 11 11 12 12 13 13 14 17 17 17 18 20 22
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MG.txt
new file mode 100644
index 0000000..135c706
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MG.txt
@@ -0,0 +1,26 @@
+CM
+CM
+TD
+CM
+TD
+CM
+TD
+TP2
+TD
+TP2
+TD
+TP2
+SP
+TQ2
+TQ2
+TP2
+SP
+EV1
+Params
+EndsOn 14
+Hollyweek 9
+Hollyweek 10
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 4 4 4 4 4 5 5 5 5 6 6 6 8 8 11 12 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MN.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MN.txt
new file mode 100644
index 0000000..48d107b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MN.txt
@@ -0,0 +1,14 @@
+TD
+TD
+TP2
+TQ2
+TP2
+TP2
+SP
+EV1
+Params
+EndsOn 22
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 4 5 8 11 12 13 14 17
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MS.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MS.txt
new file mode 100644
index 0000000..48eaec9
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/MS.txt
@@ -0,0 +1,15 @@
+TD
+SD
+TQ2
+TQ2
+TP2
+SP
+EV1
+SP
+Params
+StartsOn 17
+Hollyweek 23
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 17 17 18 19 20 21 22 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/POO.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/POO.txt
new file mode 100644
index 0000000..9e36063
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/POO.txt
@@ -0,0 +1,51 @@
+CM
+CM
+TD
+TP2
+CM
+TD
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+CM
+TD
+TP2
+TP2
+TD
+TP2
+SD
+TP2
+TP2
+TP2
+TP2
+EV2
+SP
+TP2
+SP
+SP
+SD
+Params
+Hollyweek 18
+Hollyweek 19
+Hollyweek 20
+Hollyweek 21
+Subtitle DOO
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 PEve SAbi SAbi SAbi
+AffectSpec 23 4 SAbi SAbi SAbi SAbi
+AffectSpec 25 4 PEve PEve PEve PEve
+AffectSpec 26 4 PEve SAbi SAbi PEve
+AffectSpec 27 4 PEve PEve PEve PEve
+AffectSpec 28 4 PEve PEve PEve PEve
+OnLeft 0
+OnLeft 3
+OnLeft 10
+OnLeft 22
+OnLeft 23
+OnLeft 26
+Sched 4 4 4 4 5 5 5 6 6 6 6 8 8 8 8 9 9 9 10 10 10 11 11 11 12 12 13 14 17 22
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/PPP2.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/PPP2.txt
new file mode 100644
index 0000000..dd48f85
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/PPP2.txt
@@ -0,0 +1,11 @@
+TD
+TD
+TD
+TD
+TQ2
+Params
+StartsOn 5
+Subtitle NEmo
+AffectTD 2 NEmo NEmo
+AffectTP 4 NEmo NEmo NEmo NEmo
+Sched 18 19 20 21 23
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/QD.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/QD.txt
new file mode 100644
index 0000000..a359aa9
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/QD.txt
@@ -0,0 +1,9 @@
+TP2
+TP2
+TP2
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 17 18 19
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/RES.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/RES.txt
new file mode 100644
index 0000000..1e879de
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/RES.txt
@@ -0,0 +1,47 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+SD
+TD
+TD
+TD
+TD
+TD
+TP4
+TP2
+SD
+SP
+Params
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnLeft 3
+OnLeft 4
+OnLeft 5
+OnLeft 6
+OnLeft 7
+OnLeft 8
+OnLeft 9
+OnLeft 10
+OnLeft 11
+OnRight 12
+OnRight 13
+OnRight 14
+OnRight 15
+OnRight 16
+OnRight 17
+OnRight 18
+OnRight 19
+OnRight 20
+Sched 6 6 8 8 9 9 10 10 11 12 13 14 17 17 18 18 19 20 21 21 22
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/modules.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/modules.txt
new file mode 100644
index 0000000..fef5ced
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/S2/modules.txt
@@ -0,0 +1,16 @@
+POO
+COO
+IHM
+ERG
+QD
+RES
+BD2
+MG
+MS
+MN
+GP2a
+GP2b
+DCN
+AE
+C2
+PPP2
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/ANG4.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/ANG4.txt
new file mode 100644
index 0000000..f78c2fb
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/ANG4.txt
@@ -0,0 +1,21 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+Params
+EndsOn 13
+AffectCM ACas
+AffectTD 1 ACas
+AffectTP 2 ACas ACas
+Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/CE.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/CE.txt
new file mode 100644
index 0000000..b88d61b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/CE.txt
@@ -0,0 +1,21 @@
+CM
+CM
+TM
+TP2
+TM
+TP2
+TM
+CM
+TP2
+TM
+TP2
+TP2
+EV2
+Params
+EndsOn 13
+Hollyweek 6
+Subtitle BD
+AffectCM BDav
+AffectTD 1 BDav
+AffectTP 2 BDav BDav
+Sched 4 4 4 4 5 8 8 9 9 10 10 11 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/CI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/CI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/CI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/EC4.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/EC4.txt
new file mode 100644
index 0000000..36ed71b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/EC4.txt
@@ -0,0 +1,11 @@
+TD
+TP2
+TD
+TP2
+Params
+EndsOn 13
+Subtitle AR
+AffectCM ARic
+AffectTD 1 ARic
+AffectTP 2 ARic ARic
+Sched 5 8 10 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/IA.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/IA.txt
new file mode 100644
index 0000000..6eb2136
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/IA.txt
@@ -0,0 +1,39 @@
+CM
+TD
+CM
+TD
+TD
+TP4
+CM
+TD
+CM
+TD
+TD
+TD
+TP4
+Params
+EndsOn 13
+Subtitle PV-FP
+AffectCM PVil
+AffectTD 1 PVil
+AffectTP 2 PVil PVil
+AffectSpec 0 1 FPie
+AffectSpec 1 1 FPie
+AffectSpec 2 1 FPie
+AffectSpec 3 1 FPie
+AffectSpec 4 2 FPie FPie
+AffectSpec 5 1 FPie
+OnLeft 6
+OnLeft 7
+OnLeft 8
+OnLeft 9
+OnLeft 10
+OnLeft 11
+OnLeft 12
+OnRight 0
+OnRight 1
+OnRight 2
+OnRight 3
+OnRight 4
+OnRight 5
+Sched 4 4 5 5 6 6 9 9 9 9 11 11 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/IG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/IG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/IG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MD.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MD.txt
new file mode 100644
index 0000000..0389da9
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MD.txt
@@ -0,0 +1,23 @@
+CM
+CM
+TD
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+TP2
+TP2
+TP2
+TP2
+TP2
+EV2
+Params
+EndsOn 13
+Hollyweek 9
+Hollyweek 10
+AffectCM PAde
+AffectTD 1 PAde
+AffectTP 2 PAde PAde
+Sched 4 4 4 5 5 5 6 6 6 8 8 11 11 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/MI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PG.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PG.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PG.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PM.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PM.txt
new file mode 100644
index 0000000..cee6a3f
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PM.txt
@@ -0,0 +1,17 @@
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+TP4
+TD
+TD
+TD
+Params
+EndsOn 13
+AffectCM EMic
+AffectTD 1 EMic
+AffectTP 2 EMic EMic
+Sched 5 5 5 5 6 8 9 10 11 11 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PR.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PR.txt
new file mode 100644
index 0000000..ab79e6c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/PR.txt
@@ -0,0 +1,31 @@
+TD
+TP4
+TP4
+TP4
+EV2
+CM
+TD
+TD
+TP4
+EV2
+Params
+EndsOn 13
+Subtitle AB-PV
+AffectCM PVil
+AffectTD 1 ABou
+AffectTP 2 ABou ABou
+AffectSpec 4 1 ABou
+AffectSpec 6 1 PVil
+AffectSpec 7 1 PVil
+AffectSpec 8 2 PVil PVil
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnLeft 3
+OnLeft 4
+OnRight 5
+OnRight 6
+OnRight 7
+OnRight 8
+OnRight 9
+Sched 4 4 5 6 8 10 11 11 12 12
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/SI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/SI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/SI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/SR.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/SR.txt
new file mode 100644
index 0000000..65a6f5d
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/SR.txt
@@ -0,0 +1,13 @@
+TM
+TM
+TP4
+TP4
+TP4
+TP4
+EV2
+Params
+EndsOn 13
+AffectCM ABou
+AffectTD 1 ABou
+AffectTP 2 ABou ABou
+Sched 8 8 9 10 11 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/TI.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/TI.txt
new file mode 100644
index 0000000..d66d96c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/TI.txt
@@ -0,0 +1,5 @@
+EV1
+Params
+StartsOn 24
+AffectCM AFac
+Sched 24
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/modules.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/modules.txt
new file mode 100644
index 0000000..24381f2
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/WM/modules.txt
@@ -0,0 +1,15 @@
+SR
+PR
+PM
+IA
+MD
+CE
+EC4
+ANG4
+TI
+PG
+IG
+MG
+SI
+CI
+MI
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/cursus.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/cursus.txt
new file mode 100644
index 0000000..851178c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/cursus.txt
@@ -0,0 +1,3 @@
+S2
+WM
+IN
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/weeks.txt b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/weeks.txt
new file mode 100644
index 0000000..256d265
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/V004_211022/weeks.txt
@@ -0,0 +1,13 @@
+ScolarYear 2021
+YearOfFirstWeek 2022
+FirstWeek 4
+SemesterLength 21
+DefaultWeekLength 40
+WeekLength S6 36
+WeekLength S7 0
+WeekLength S14 36
+WeekLength S15 0
+WeekLength S16 0
+WeekLength S21 24
+WeekLength S23 32
+WeekLength S24 16
diff --git a/out/production/sae2.01-developpement-application/data/2122_S2/version.txt b/out/production/sae2.01-developpement-application/data/2122_S2/version.txt
new file mode 100644
index 0000000..cfed6f8
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2122_S2/version.txt
@@ -0,0 +1,2 @@
+4
+211022
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/A1.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/A1.txt
new file mode 100644
index 0000000..82e9b00
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/A1.txt
@@ -0,0 +1,19 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+SP
+Params
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 36 36 37 37 38 39 40 41 42 43 46 47 47 48
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ASR1.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ASR1.txt
new file mode 100644
index 0000000..394008d
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ASR1.txt
@@ -0,0 +1,16 @@
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+TP4
+SD
+SD
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 35 36 36 36 36 37 37 38 46 48
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ASR2.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ASR2.txt
new file mode 100644
index 0000000..e80cc79
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ASR2.txt
@@ -0,0 +1,33 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+Params
+StartsOn 38
+Hollyweek 49
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 ABou ABou ABou ABou
+AffectSpec 6 4 SDie SDie SDie SDie
+AffectSpec 7 4 SDie SDie SDie SDie
+AffectSpec 8 4 HSli HSli HSli HSli
+AffectSpec 9 4 HSli HSli HSli HSli
+AffectSpec 10 4 HSli HSli HSli HSli
+AffectSpec 11 4 HSli HSli HSli HSli
+OnLeft 6
+OnLeft 7
+OnRight 8
+OnRight 9
+OnRight 10
+OnRight 11
+Sched 38 38 39 39 40 40 41 41 42 43 45 46 47
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/BD1.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/BD1.txt
new file mode 100644
index 0000000..69e14ed
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/BD1.txt
@@ -0,0 +1,30 @@
+CM
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+TP4
+TP4
+SD
+TP4
+SP
+Params
+Subtitle FA-SD
+AffectCM FAbd
+AffectTD 2 FAbd SDie
+AffectTP 4 FAbd SDie SDie FAbd
+AffectSpec 3 1 SDie
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnRight 3
+Sched 41 41 42 42 42 43 43 45 45 46 46 46 48 49 50 1 2 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/C1.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/C1.txt
new file mode 100644
index 0000000..513beac
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/C1.txt
@@ -0,0 +1,23 @@
+TD
+TD
+TQ2
+TD
+TD
+TQ2
+TD
+TQ2
+TD
+TQ2
+TD
+TQ2
+TD
+SD
+SP
+SP
+SP
+Params
+Subtitle SN
+AffectCM SNdo
+AffectTD 2 SNdo SNdo
+AffectTP 4 SNdo SNdo SNdo SNdo
+Sched 37 37 38 39 39 40 41 42 43 43 45 45 46 47 49 50 1
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/DEV1.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/DEV1.txt
new file mode 100644
index 0000000..58fb8ed
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/DEV1.txt
@@ -0,0 +1,95 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TP4
+CM
+TD
+TP4
+TD
+TD
+TP4
+TP4
+EV1
+TD
+TD
+TP4
+TP4
+SD
+TP4
+SP
+CM
+TP4
+EV1
+TD
+TD
+TP4
+CM
+TP4
+TD
+TD
+TP4
+SD
+TD
+TD
+TP4
+SP
+TD
+TP4
+EV2
+Params
+StartsOn 37
+Subtitle K-B-XD
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 4 ABou ABou ABou ABou
+AffectSpec 3 2 EKer EKer
+AffectSpec 4 2 EKer EKer
+AffectSpec 7 4 AHez AHez AHez AHez
+AffectSpec 8 1 EKer
+AffectSpec 9 2 EKer EKer
+AffectSpec 10 4 AHez AHez AHez AHez
+AffectSpec 13 4 AHez AHez AHez AHez
+AffectSpec 16 2 EKer EKer
+AffectSpec 17 2 EKer EKer
+AffectSpec 18 4 SDie SDie SDie SDie
+AffectSpec 21 4 EKer EKer EKer EKer
+AffectSpec 23 1 EKer
+AffectSpec 24 4 SDie SDie SDie SDie
+AffectSpec 26 2 EKer EKer
+AffectSpec 27 2 EKer EKer
+AffectSpec 28 4 EKer EKer EKer EKer
+AffectSpec 29 1 EKer
+AffectSpec 30 4 EKer AHez AHez EKer
+AffectSpec 34 2 EKer EKer
+AffectSpec 38 4 EKer EKer EKer EKer
+AffectSpec 39 2 EKer EKer
+AffectSpec 40 4 EKer EKer EKer EKer
+AffectSpec 41 1 EKer
+OnLeft 3
+OnLeft 4
+OnLeft 8
+OnLeft 9
+OnLeft 16
+OnLeft 17
+OnLeft 21
+OnLeft 23
+OnLeft 26
+OnLeft 27
+OnLeft 28
+OnLeft 29
+OnLeft 30
+OnLeft 34
+OnLeft 38
+OnLeft 39
+OnLeft 40
+OnLeft 41
+OnRight 7
+OnRight 10
+OnRight 13
+OnRight 18
+OnRight 24
+Sched 37 37 38 38 38 39 39 39 40 40 40 41 41 41 42 43 43 43 43 45 45 46 46 47 47 48 48 48 48 49 49 50 50 50 50 1 1 1 1 2 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ECO1.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ECO1.txt
new file mode 100644
index 0000000..834bcc1
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/ECO1.txt
@@ -0,0 +1,17 @@
+CM
+TD
+TQ2
+TD
+TD
+TD
+TQ2
+TD
+TD
+TD
+EV2
+Params
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 45 45 46 47 47 48 49 49 50 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/GP1.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/GP1.txt
new file mode 100644
index 0000000..c800dda
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/GP1.txt
@@ -0,0 +1,25 @@
+CM
+TD
+TD
+TD
+TQ2
+TQ2
+TD
+SD
+TD
+SM
+TD
+TQ2
+TD
+TQ2
+TD
+TD
+TQ2
+EV2
+Params
+Hollyweek 43
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 35 36 36 36 37 38 39 40 40 41 42 42 45 46 47 48 49 49
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/M1.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/M1.txt
new file mode 100644
index 0000000..1b8f795
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/M1.txt
@@ -0,0 +1,27 @@
+TD
+TD
+TD
+TD
+TD
+TD
+TP2
+TD
+TD
+TP2
+TD
+TD
+TD
+TP2
+TD
+TD
+TD
+TQ2
+TP2
+EV2
+Params
+EndsOn 50
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 36 36 36 36 37 37 37 38 38 38 39 39 40 40 41 42 42 43 43 45
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/M2.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/M2.txt
new file mode 100644
index 0000000..f5e9667
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/M2.txt
@@ -0,0 +1,19 @@
+TD
+TD
+TD
+TD
+TD
+TD
+TP2
+TQ2
+TQ2
+TQ2
+TP2
+EV2
+Params
+StartsOn 45
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 45 46 47 47 48 48 49 49 50 1 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/PPP1.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/PPP1.txt
new file mode 100644
index 0000000..101e53c
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/PPP1.txt
@@ -0,0 +1,14 @@
+TD
+TD
+TD
+TD
+TP2
+TD
+TD
+TD
+TD
+Params
+Subtitle SN
+AffectTD 2 SNdo SNdo
+AffectTP 4 SNdo SNdo SNdo SNdo
+Sched 39 40 41 48 49 50 2 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/WEB1.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/WEB1.txt
new file mode 100644
index 0000000..9662bb2
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/WEB1.txt
@@ -0,0 +1,28 @@
+TM
+TM
+TP2
+TP2
+TP2
+TP2
+CM
+TP2
+TP2
+TP2
+SP
+SP
+Params
+Subtitle PV-AB
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 PVil PVil PVil PVil
+AffectSpec 6 1 ABic
+AffectSpec 7 4 ABic ABic ABic ABic
+AffectSpec 8 4 ABic ABic ABic ABic
+AffectSpec 9 4 ABic ABic ABic ABic
+AffectSpec 11 4 ABic ABic ABic ABic
+OnRight 6
+OnRight 7
+OnRight 8
+OnRight 9
+OnRight 11
+Sched 36 37 38 39 40 41 47 47 48 49 50 50
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/modules.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/modules.txt
new file mode 100644
index 0000000..dd15941
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S1/modules.txt
@@ -0,0 +1,12 @@
+DEV1
+WEB1
+ASR1
+ASR2
+BD1
+M1
+M2
+GP1
+ECO1
+A1
+C1
+PPP1
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/A3.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/A3.txt
new file mode 100644
index 0000000..307b5a7
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/A3.txt
@@ -0,0 +1,25 @@
+TD
+TD
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+SD
+SD
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 2 ACas ACas
+Sched 36 37 38 41 42 42 46 48 1 1 2 2 3 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/ASR5.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/ASR5.txt
new file mode 100644
index 0000000..9f0fbc7
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/ASR5.txt
@@ -0,0 +1,28 @@
+TD
+TD
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+SD
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou SDie
+AffectTP 2 ABou SDie
+AffectSpec 10 2 ABou ABou
+AffectSpec 11 2 ABou ABou
+AffectSpec 12 2 ABou ABou
+Sched 36 36 37 37 38 38 41 42 46 47 47 48 2
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/ASR6.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/ASR6.txt
new file mode 100644
index 0000000..10dfe62
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/ASR6.txt
@@ -0,0 +1,18 @@
+TD
+TM
+TP4
+TP4
+SP
+SD
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 2 SDie SDie
+Sched 46 47 47 48 1 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/BD3.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/BD3.txt
new file mode 100644
index 0000000..2250959
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/BD3.txt
@@ -0,0 +1,18 @@
+TD
+TD
+TD
+TM
+TM
+TM
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle HS
+AffectCM HSli
+AffectTD 2 HSli HSli
+AffectTP 2 HSli HSli
+Sched 46 46 48 1 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/C3.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/C3.txt
new file mode 100644
index 0000000..55fe521
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/C3.txt
@@ -0,0 +1,25 @@
+TD
+TD
+TQ2
+TD
+TD
+TP2
+TD
+TD
+TP2
+TD
+SD
+SD
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle AS
+AffectCM ASau
+AffectTD 2 ASau ASau
+AffectTP 2 ASau ASau
+Sched 37 38 41 42 46 46 47 47 48 48 1 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DEV4.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DEV4.txt
new file mode 100644
index 0000000..31d15d4
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DEV4.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TP2
+TP2
+CM
+SD
+TP2
+SP
+EV2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 2 DBol DBol
+Sched 36 36 36 36 37 37 37 38 41
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DEV5.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DEV5.txt
new file mode 100644
index 0000000..c4f2fc7
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DEV5.txt
@@ -0,0 +1,21 @@
+CM
+TD
+TP2
+CM
+SD
+TP2
+CM
+TP2
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 2 DBol DBol
+Sched 36 37 38 38 38 41 42 42 2
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DI.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DI.txt
new file mode 100644
index 0000000..848991d
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DI.txt
@@ -0,0 +1,27 @@
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle HS
+AffectCM HSli
+AffectTD 2 HSli HSli
+AffectTP 2 HSli HSli
+Sched 36 36 37 37 38 41 42 42 46 47 48 1 2 3 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DR2.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DR2.txt
new file mode 100644
index 0000000..b7639bb
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/DR2.txt
@@ -0,0 +1,57 @@
+CM
+TD
+TD
+TD
+CM
+TD
+CM
+TD
+CM
+TD
+TD
+SD
+SD
+SD
+SD
+EV2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 46
+Hollyweek 47
+Hollyweek 48
+Hollyweek 49
+Hollyweek 50
+Subtitle V-D-P
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 2 BDav BDav
+AffectSpec 0 1 PVil
+AffectSpec 4 1 MPri
+AffectSpec 5 2 MPri MPri
+AffectSpec 6 1 MPri
+AffectSpec 7 2 MPri MPri
+AffectSpec 8 1 MPri
+AffectSpec 9 2 MPri MPri
+AffectSpec 10 2 MPri MPri
+AffectSpec 11 2 MPri MPri
+AffectSpec 12 2 MPri MPri
+AffectSpec 13 2 MPri MPri
+AffectSpec 14 2 MPri MPri
+AffectSpec 15 1 MPri
+OnLeft 0
+OnRight 4
+OnRight 5
+OnRight 6
+OnRight 7
+OnRight 8
+OnRight 9
+OnRight 10
+OnRight 11
+OnRight 12
+OnRight 13
+OnRight 14
+OnRight 15
+Sched 36 36 37 37 38 38 41 41 42 42 1 1 2 2 3 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/GP3.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/GP3.txt
new file mode 100644
index 0000000..0a2b914
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/GP3.txt
@@ -0,0 +1,29 @@
+CM
+TQ2
+TD
+SD
+SD
+TD
+TD
+SD
+TD
+TD
+SP
+TD
+TD
+TQ2
+TQ2
+TD
+EV2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 2 BDav BDav
+Sched 35 35 37 38 38 41 42 42 46 46 47 48 48 1 2 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/M6.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/M6.txt
new file mode 100644
index 0000000..349c781
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/M6.txt
@@ -0,0 +1,27 @@
+TD
+TD
+TD
+TP2
+TD
+TD
+TD
+SD
+TD
+TP2
+TD
+SD
+TP2
+EV2
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 2 PAde PAde
+Sched 35 36 36 37 37 38 41 41 42 42 46 46 47 47 48
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/M7.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/M7.txt
new file mode 100644
index 0000000..6b8f8d8
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/M7.txt
@@ -0,0 +1,27 @@
+TD
+TD
+TD
+TP2
+SD
+TP2
+SP
+TP2
+TD
+SP
+TP4
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle PA-PV
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 2 PAde PAde
+AffectSpec 0 2 PVil PVil
+AffectSpec 10 2 PVil PVil
+OnRight 0
+OnRight 10
+Sched 46 46 47 47 48 48 1 1 2 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/PPP3.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/PPP3.txt
new file mode 100644
index 0000000..6960c6b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/PPP3.txt
@@ -0,0 +1,23 @@
+SM
+TD
+TD
+TD
+TP2
+TD
+TP2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 2 BDav BDav
+AffectSpec 1 2 Dron DRon
+AffectSpec 2 2 Dron DRon
+OnRight 1
+OnRight 2
+Sched 38 41 41 48 1 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/QD2.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/QD2.txt
new file mode 100644
index 0000000..9137372
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/QD2.txt
@@ -0,0 +1,27 @@
+CM
+TP4
+CM
+TD
+TM
+CM
+TD
+TP4
+CM
+SD
+TP4
+CM
+TP4
+SP
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 2 DBol DBol
+Sched 41 41 42 42 42 46 46 46 47 47 47 48 1 2 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/TI.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/TI.txt
new file mode 100644
index 0000000..707acc6
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/TI.txt
@@ -0,0 +1,19 @@
+CM
+TM
+TP4
+CM
+TP4
+TP4
+EV2
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle DB
+AffectCM DBol
+AffectTD 2 DBol DBol
+AffectTP 2 DBol DBol
+Sched 47 48 48 1 2 3 3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/WEB2.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/WEB2.txt
new file mode 100644
index 0000000..7dac117
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/WEB2.txt
@@ -0,0 +1,25 @@
+CM
+CM
+TP4
+CM
+TP2
+TP4
+TP4
+TP4
+TP2
+SD
+SP
+SP
+SP
+Params
+Hollyweek 39
+Hollyweek 40
+Hollyweek 43
+Hollyweek 45
+Hollyweek 49
+Hollyweek 50
+Subtitle EM
+AffectCM EMic
+AffectTD 2 EMic HSli
+AffectTP 2 EMic HSli
+Sched 36 36 36 37 37 37 38 38 41 41 41 42 42
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/modules.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/modules.txt
new file mode 100644
index 0000000..c2d00eb
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/S3/modules.txt
@@ -0,0 +1,16 @@
+WEB2
+DEV4
+DEV5
+QD2
+ASR5
+ASR6
+BD3
+M6
+M7
+GP3
+DR2
+A3
+C3
+PPP3
+TI
+DI
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/cursus.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/cursus.txt
new file mode 100644
index 0000000..d0291d6
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/cursus.txt
@@ -0,0 +1,2 @@
+S1
+S3
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/weeks.txt b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/weeks.txt
new file mode 100644
index 0000000..c3abc3b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/V001_220708/weeks.txt
@@ -0,0 +1,12 @@
+ScolarYear 2022
+YearOfFirstWeek 2022
+FirstWeek 35
+SemesterLength 21
+DefaultWeekLength 40
+WeekLength S35 8
+WeekLength S44 0
+WeekLength S45 32
+WeekLength S50 36
+WeekLength S51 0
+WeekLength S52 0
+WeekLength S1 32
diff --git a/out/production/sae2.01-developpement-application/data/2223_S1/version.txt b/out/production/sae2.01-developpement-application/data/2223_S1/version.txt
new file mode 100644
index 0000000..a53f5f1
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S1/version.txt
@@ -0,0 +1,2 @@
+1
+220708
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/A2.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/A2.txt
new file mode 100644
index 0000000..378861b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/A2.txt
@@ -0,0 +1,20 @@
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TD
+SQ
+SQ
+Params
+Subtitle ACas
+AffectTD 2 ACas ACas
+AffectTP 4 ACas ACas ACas ACas
+Sched 4 5 6 7 10 11 12 14 15 18 19 21 22 23 24
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/BD2.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/BD2.txt
new file mode 100644
index 0000000..c46c4f8
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/BD2.txt
@@ -0,0 +1,25 @@
+TD
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+Params
+StartsOn 9
+Subtitle FA
+AffectCM FAbd
+AffectTD 2 FAbd FAbd
+AffectTP 4 FAbd FAbd FAbd FAbd
+Sched 9 9 10 10 11 11 12 13 14 15 18 19 20 21 22 23 24 25
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/C2a.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/C2a.txt
new file mode 100644
index 0000000..a23b8c4
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/C2a.txt
@@ -0,0 +1,14 @@
+TD
+TD
+TQ2
+TD
+TQ2
+TD
+SD
+SQ
+Params
+Subtitle SNdo
+AffectCM SNdo
+AffectTD 2 SNdo SNdo
+AffectTP 4 SNdo SNdo SNdo SNdo
+Sched 4 5 6 7 9 10 12 13
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/C2b.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/C2b.txt
new file mode 100644
index 0000000..81d43e9
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/C2b.txt
@@ -0,0 +1,14 @@
+TD
+TD
+TP2
+TD
+TD
+TP2
+TP2
+Params
+StartsOn 13
+Subtitle MAT
+AffectCM MAug
+AffectTD 2 MAug MAug
+AffectTP 4 MAug MAug MAug MAug
+Sched 18 18 19 20 20 21 22
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/COO.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/COO.txt
new file mode 100644
index 0000000..c21d850
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/COO.txt
@@ -0,0 +1,14 @@
+CM
+TD
+TD
+TP4
+TM
+TP4
+EV2
+Params
+EndsOn 20
+Subtitle OC
+AffectCM OCas
+AffectTD 2 OCas OCas
+AffectTP 4 AHez OCas OCas AHez
+Sched 5 6 7 9 10 11 12
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/DR1.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/DR1.txt
new file mode 100644
index 0000000..916e073
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/DR1.txt
@@ -0,0 +1,16 @@
+TD
+CM
+TD
+TD
+TD
+TD
+TD
+TD
+EV2
+Params
+Hollyweek 7
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 18 19 19 20 21 22 23 24 25
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/ERG.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/ERG.txt
new file mode 100644
index 0000000..12a79df
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/ERG.txt
@@ -0,0 +1,12 @@
+CM
+CM
+TP2
+TP2
+TP2
+Params
+StartsOn 13
+Subtitle PE
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 PEve PEve PEve PEve
+Sched 13 13 13 14 15
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/GP2.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/GP2.txt
new file mode 100644
index 0000000..d690d78
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/GP2.txt
@@ -0,0 +1,29 @@
+CM
+TD
+TD
+SM
+TD
+SP
+TD
+TD
+SP
+SP
+SP
+SP
+CM
+TD
+TD
+TM
+TP2
+CM
+TD
+TP2
+TP2
+EV2
+Params
+Hollyweek 7
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 4 BDav BDav BDav BDav
+Sched 4 4 4 5 5 6 6 6 9 10 11 12 13 14 15 15 18 19 19 20 21 22
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/IHM.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/IHM.txt
new file mode 100644
index 0000000..2d8cd07
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/IHM.txt
@@ -0,0 +1,33 @@
+CM
+TD
+CM
+TP2
+CM
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP4
+SP
+SP
+SD
+Params
+StartsOn 9
+Subtitle S-V-M
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 EMic EMic EMic EMic
+AffectSpec 3 4 PVil EMic EMic PVil
+AffectSpec 5 4 PVil EMic EMic PVil
+AffectSpec 7 4 PVil EMic EMic PVil
+AffectSpec 10 4 PVil EMic EMic PVil
+AffectSpec 11 4 HSli HSli HSli HSli
+AffectSpec 12 4 HSli HSli HSli HSli
+AffectSpec 13 4 HSli HSli HSli HSli
+OnLeft 11
+OnLeft 12
+OnLeft 13
+OnRight 8
+Sched 9 9 10 10 11 11 12 12 13 14 14 15 18 20 23
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M3.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M3.txt
new file mode 100644
index 0000000..04c147f
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M3.txt
@@ -0,0 +1,27 @@
+TD
+TD
+TD
+TD
+TD
+TD
+TD
+TP2
+TD
+TP2
+TD
+TP2
+SP
+TQ2
+TQ2
+TP2
+SP
+EV1
+Params
+EndsOn 14
+Hollyweek 9
+Hollyweek 10
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 4 4 4 5 5 5 6 6 6 7 7 7 11 12 12 13 13 14
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M4.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M4.txt
new file mode 100644
index 0000000..b83c26d
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M4.txt
@@ -0,0 +1,16 @@
+TD
+SD
+TQ2
+TQ2
+TP2
+SP
+EV1
+SP
+Params
+StartsOn 18
+Hollyweek 23
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 18 19 20 21 22 24 24 25
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M5.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M5.txt
new file mode 100644
index 0000000..b6f7fc1
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/M5.txt
@@ -0,0 +1,15 @@
+TD
+TD
+TP2
+TQ2
+TP2
+TP2
+SP
+EV1
+Params
+EndsOn 22
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 4 PAde PAde PAde PAde
+Sched 9 9 10 11 12 13 14 15
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/POO.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/POO.txt
new file mode 100644
index 0000000..f9d7edf
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/POO.txt
@@ -0,0 +1,42 @@
+CM
+CM
+TD
+TP2
+CM
+TD
+TP2
+TD
+TP2
+TP2
+TD
+TP2
+TP2
+CM
+TD
+TP2
+TP2
+TD
+TP2
+SD
+TP2
+TP2
+TP2
+TP2
+EV2
+SP
+TP2
+SP
+SP
+SD
+Params
+Subtitle PE
+AffectCM PEve
+AffectTD 2 PEve PEve
+AffectTP 4 PEve PEve PEve PEve
+AffectSpec 20 4 HSli HSli HSli HSli
+AffectSpec 21 4 HSli HSli HSli HSli
+AffectSpec 26 4 PEve HSli HSli PEve
+OnLeft 20
+OnLeft 21
+OnLeft 26
+Sched 4 4 4 4 5 5 5 6 6 6 7 7 7 9 9 9 10 10 10 11 11 11 12 12 13 13 14 14 18 23
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/PPP2.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/PPP2.txt
new file mode 100644
index 0000000..d923fc9
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/PPP2.txt
@@ -0,0 +1,16 @@
+TD
+TD
+TD
+TD
+Params
+StartsOn 5
+EndsOn 13
+Hollyweek 6
+Hollyweek 7
+Hollyweek 10
+Hollyweek 12
+Subtitle DR
+AffectCM DRon
+AffectTD 2 DRon DRon
+AffectTP 4 DRon DRon DRon DRon
+Sched 5 9 11 13
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/QD1.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/QD1.txt
new file mode 100644
index 0000000..f7e0e27
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/QD1.txt
@@ -0,0 +1,10 @@
+TP2
+TP2
+TP2
+Params
+StartsOn 18
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+Sched 19 20 21
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/RES.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/RES.txt
new file mode 100644
index 0000000..30b7b9b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/RES.txt
@@ -0,0 +1,48 @@
+CM
+CM
+CM
+TD
+TD
+TD
+TD
+TD
+TP4
+TP4
+TP4
+SD
+TD
+TD
+TD
+TD
+TD
+TP4
+TP2
+SD
+SP
+Params
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 4 SDie SDie SDie SDie
+OnLeft 0
+OnLeft 1
+OnLeft 2
+OnLeft 3
+OnLeft 4
+OnLeft 5
+OnLeft 6
+OnLeft 7
+OnLeft 8
+OnLeft 9
+OnLeft 10
+OnLeft 11
+OnRight 12
+OnRight 13
+OnRight 14
+OnRight 15
+OnRight 16
+OnRight 17
+OnRight 18
+OnRight 19
+OnRight 20
+Sched 4 4 5 5 6 6 7 7 10 12 14 15 18 18 19 20 21 22 23 24 25
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/modules.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/modules.txt
new file mode 100644
index 0000000..72d37f1
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S2/modules.txt
@@ -0,0 +1,16 @@
+POO
+COO
+IHM
+ERG
+QD1
+RES
+BD2
+M3
+M4
+M5
+GP2
+DR1
+A2
+C2a
+C2b
+PPP2
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/A4.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/A4.txt
new file mode 100644
index 0000000..ba4e9b2
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/A4.txt
@@ -0,0 +1,23 @@
+TD
+TD
+TP2
+TD
+TP2
+TD
+TD
+SD
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle AC
+AffectTD 2 ACas ACas
+AffectTP 2 ACas ACas
+Sched 5 6 7 18 19 20 23 24 25
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/ASR8.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/ASR8.txt
new file mode 100644
index 0000000..5214d08
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/ASR8.txt
@@ -0,0 +1,26 @@
+TD
+TD
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+SD
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle AB
+AffectCM ABou
+AffectTD 2 ABou ABou
+AffectTP 2 ABou ABou
+Sched 4 4 5 5 6 6 7 7 18 19 20
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/BD4.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/BD4.txt
new file mode 100644
index 0000000..cabca30
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/BD4.txt
@@ -0,0 +1,22 @@
+TD
+TD
+TD
+TP2
+TP2
+TP2
+SD
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle SD
+AffectCM SDie
+AffectTD 2 SDie SDie
+AffectTP 2 SDie SDie
+Sched 18 18 19 19 20 23 24
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/C4.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/C4.txt
new file mode 100644
index 0000000..ecfeb5b
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/C4.txt
@@ -0,0 +1,22 @@
+TD
+TD
+TD
+TD
+TD
+TP2
+SD
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 18
+Hollyweek 21
+Hollyweek 22
+Subtitle AR
+AffectTD 2 ARic ARic
+AffectTP 2 ARic ARic
+Sched 19 19 20 20 23 23 24
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/DEV6.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/DEV6.txt
new file mode 100644
index 0000000..6824f0f
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/DEV6.txt
@@ -0,0 +1,31 @@
+CM
+CM
+TP4
+CM
+CM
+TP4
+CM
+TD
+TD
+TM
+TP4
+TP4
+SD
+SD
+SP
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle EM
+AffectCM EMic
+AffectTD 2 EMic HSli
+AffectTP 2 EMic HSli
+Sched 4 4 4 5 5 5 6 6 6 6 7 7 23 23 24 25
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/DEV7.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/DEV7.txt
new file mode 100644
index 0000000..117b80a
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/DEV7.txt
@@ -0,0 +1,30 @@
+TD
+TD
+TD
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+TP2
+SD
+SP
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle EM
+AffectCM EMed
+AffectTD 2 EMed EMed
+AffectTP 2 EMed EMed
+Sched 18 18 18 19 19 19 20 20 23 23 23 24 24 24 25
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/GP4.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/GP4.txt
new file mode 100644
index 0000000..849d54a
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/GP4.txt
@@ -0,0 +1,33 @@
+CM
+TD
+TP2
+TP2
+TP2
+TD
+TD
+SD
+TD
+TD
+TP2
+Params
+Hollyweek 7
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 2 BDav BDav
+AffectSpec 8 2 MMin MMin
+AffectSpec 9 2 MMin MMin
+AffectSpec 10 2 MMin MMin
+OnRight 8
+OnRight 9
+OnRight 10
+Sched 4 4 4 5 5 5 6 6 18 18 18
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/IG.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/IG.txt
new file mode 100644
index 0000000..9cb7862
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/IG.txt
@@ -0,0 +1,30 @@
+CM
+TD
+TP2
+CM
+TD
+TP2
+CM
+TD
+TP2
+TD
+TP2
+TD
+TP2
+TP2
+EV2
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle PV
+AffectCM PVil
+AffectTD 2 PVil PVil
+AffectTP 4 PVil PVil PVil PVil
+Sched 4 4 4 5 5 5 6 6 6 7 7 23 23 24 25
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/M10.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/M10.txt
new file mode 100644
index 0000000..b3effeb
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/M10.txt
@@ -0,0 +1,21 @@
+TP2
+TP2
+TP2
+TQ2
+TQ2
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 2 PAde PAde
+Sched 4 4 5 6 7 7
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/M11.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/M11.txt
new file mode 100644
index 0000000..dd028cc
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/M11.txt
@@ -0,0 +1,21 @@
+TP2
+TP2
+TP2
+TQ2
+TQ2
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle PA
+AffectCM PAde
+AffectTD 2 PAde PAde
+AffectTP 2 PAde PAde
+Sched 18 19 20 23 24 25
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/PPP4.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/PPP4.txt
new file mode 100644
index 0000000..5363643
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/PPP4.txt
@@ -0,0 +1,20 @@
+TD
+TD
+TD
+TD
+Params
+Hollyweek 7
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle BD
+AffectCM BDav
+AffectTD 2 BDav BDav
+AffectTP 2 BDav BDav
+Sched 18 18 19 19
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/WEB3.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/WEB3.txt
new file mode 100644
index 0000000..f163528
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/WEB3.txt
@@ -0,0 +1,35 @@
+TD
+TP2
+TP2
+TP2
+TP2
+CM
+TP2
+TP2
+TP2
+SP
+Params
+Hollyweek 9
+Hollyweek 10
+Hollyweek 11
+Hollyweek 12
+Hollyweek 13
+Hollyweek 14
+Hollyweek 15
+Hollyweek 21
+Hollyweek 22
+Subtitle AB
+AffectCM ABic
+AffectTD 2 ABic ABic
+AffectTP 2 ABic ABic
+AffectSpec 5 1 EMic
+AffectSpec 6 2 EMic HSli
+AffectSpec 7 2 EMic HSli
+AffectSpec 8 2 EMic HSli
+AffectSpec 9 2 EMic HSli
+OnRight 5
+OnRight 6
+OnRight 7
+OnRight 8
+OnRight 9
+Sched 4 5 6 6 7 23 23 24 24 25
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/modules.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/modules.txt
new file mode 100644
index 0000000..251ccb1
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/S4/modules.txt
@@ -0,0 +1,12 @@
+DEV6
+WEB3
+DEV7
+ASR8
+BD4
+M10
+M11
+GP4
+A4
+C4
+PPP4
+IG
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/cursus.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/cursus.txt
new file mode 100644
index 0000000..68c617a
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/cursus.txt
@@ -0,0 +1,2 @@
+S2
+S4
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/weeks.txt b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/weeks.txt
new file mode 100644
index 0000000..99c6ed6
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/V001_220708/weeks.txt
@@ -0,0 +1,13 @@
+ScolarYear 2022
+YearOfFirstWeek 2023
+FirstWeek 4
+SemesterLength 22
+DefaultWeekLength 40
+WeekLength S8 0
+WeekLength S15 28
+WeekLength S16 0
+WeekLength S17 0
+WeekLength S18 32
+WeekLength S19 32
+WeekLength S20 24
+WeekLength S22 32
diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/version.txt b/out/production/sae2.01-developpement-application/data/2223_S2/version.txt
new file mode 100644
index 0000000..a53f5f1
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/2223_S2/version.txt
@@ -0,0 +1,2 @@
+1
+220708
diff --git a/out/production/sae2.01-developpement-application/data/semestre.txt b/out/production/sae2.01-developpement-application/data/semestre.txt
new file mode 100644
index 0000000..efa73bf
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/data/semestre.txt
@@ -0,0 +1,2 @@
+2223
+S2
diff --git a/out/production/sae2.01-developpement-application/doc/archiShukan.pdf b/out/production/sae2.01-developpement-application/doc/archiShukan.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..8da18ba82ff9a5f4ad17fcd91e512ab686c0fd37
GIT binary patch
literal 60019
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

literal 0
HcmV?d00001

diff --git a/out/production/sae2.01-developpement-application/doc/shukan.html b/out/production/sae2.01-developpement-application/doc/shukan.html
new file mode 100644
index 0000000..5ec8145
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/doc/shukan.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+  <head><title>Even Shukan</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  </head>
+  <body bgcolor="#3FBFAF" text="#4F2F1F">
+    <h2>Pr&eacute;sentation de Shukan</h2>
+
+    <h3>--> Avertissement</h3>
+    <p> Attention, la base de donn&eacute;es (data) est actualis&eacute;e
+        automatiquement en quittant par la touche 'ESCAPE' ou la touche 'Q'.
+        Pour &eacute;viter la sauvegarde, utiliser la croix en haut &agrave;
+        droite de la fen&ecirc;tre. </p>
+    <p> Cette base de donn&eacute;es est fournie &agrave; titre d'exemple.
+        Toute ressemblance avec des situations existantes n'est pas le fruit
+        du hazard, mais elle ne saurait en aucun cas se substituer &agrave;
+        la version officielle des emplois du temps accessible sur ADE. </p>
+
+    <h3>--> La vue</h3>
+    <p> La zone d'&eacute;cran principale de Shukan comporte une grille
+        indiquant la progression des cours sur un semestre de formation. </p>
+    <p> La colonne de gauche donne le nom du semestre de formation, puis
+        pour chaque ligne, le nom abr&eacute;g&eacute; du cours. </p>
+    <p> Les colonnes suivantes correspondent &agrave; chaque semaine de
+        formation, dans le nom est donn&eacute; en haut, suivi des
+        activit&eacute;s pr&eacute;vues ordonn&eacute;es de gauche &agrave;
+        droite par ordre chronologique.
+        Par d&eacute;faut, les activit&eacute;s sont centr&eacute;es.
+        Il est possible de les d&eacute;caler vers le haut (<i>onLeft</i>)
+        ou vers le bas (<i>onRight</i>) pour rep&eacute;rer des enseignants
+        autres que le responsable du cours. </p>
+    <p> La ligne du bas indique la charge hebdomadaire (en heures) d'un
+        acteur du cours : un &eacute;tudiant (Etu) ou un enseignant (PEve).
+        Le deuxi&egrave;me chiffre est la charge maximale de la semaine. </p>
+    <p> Une case de la grille peut &ecirc;tre s&eacute;lectionn&eacute;e en
+        cliquant dessus avec le bouton gauche de la souris. Il est alors
+        possible de d&eacute;placer les activit&eacute;s pr&eacute;vues. </p>
+    <p> Une activit&eacute; peut aussi &ecirc;tre s&eacute;lectionn&eacute;e
+        en cliquant dessus avec le bouton droit de la souris, ou encore une
+        p&eacute;riode entre deux activit&eacute;s en pressant la touche
+        "SHIFT" lors du clic. Cela permet d'&eacute;changer les
+        activit&eacute;s situ&eacute;es aux extr&eacute;mit&eacute;s de
+        la p&eacute;riode. La progression du cours est alors modifi&eacute;e
+        en cons&eacute;quence. </p>
+    <p> Il est enfin possible de pr&eacute;senter une autre formation
+        (avec d'autres &eacute;tudiants), d'&eacute;diter la progression
+        hebdomadaire dans son &eacute;tat courant sous forme de fichiers
+        LaTeX plac&eacute;s dans un r&eacute;pertoire pr&eacute;fix&eacute;
+        "loads_", ou m&ecirc;me de sortir de Shukan. </p>
+
+    <h3>--> Le contr&ocirc;leur</h3>
+    <h4>Actions de la souris</h4>
+    <p> Bouton gauche : s&eacute;lectionner une case de la grille courante. </p>
+    <p> Bouton droit : s&eacute;lectionner une activit&eacute;. </p>
+    <p> Pour quitter <b><u>sans sauver</u></b>, clic sur la croix en haut
+        &agrave; droite. </p>
+    <h4>Actions du clavier</h4>
+    <p> 'q' ou ESC : enregistrer et fermer l'application. </p>
+    <p> Fl&egrave;che droite : passer &agrave; l'acteur suivant (pour
+        l'affichage de la charge hebdomadaire). </p>
+    <p> Fl&egrave;che gauche : passer &agrave; l'acteur pr&eacute;c&eacute;dent
+        (pour l'affichage de la charge hebdomadaire). </p>
+    <p> Fl&egrave;che basse : passer &agrave; la formation suivante. </p>
+    <p> Fl&egrave;che haute : passer &agrave; la formation
+        pr&eacute;c&eacute;dente. </p>
+    <p> 'l' : repousser la premi&egrave;re activit&eacute; dans la semaine
+        pr&eacute;c&eacute;dente et s&eacute;lectionner la semaine
+        pr&eacute;c&eacute;dente. </p>
+    <p> 'm' : repousser la derni&egrave;re activit&eacute; dans la semaine
+        suivante et s&eacute;lectionner la semaine suivante. </p>
+    <p> 'o' ou 'L' : repousser la premi&egrave;re activit&eacute; dans la
+        semaine pr&eacute;c&eacute;dente (la semaine courante reste
+        s&eacute;l&eacute;ctionn&eacute;e). </p>
+    <p> 'p' ou 'M' : repousser la derni&egrave;re activit&eacute; dans la
+        semaine suivante (la semaine courante reste
+        s&eacute;l&eacute;ctionn&eacute;e). </p>
+    <p> CTRL-X : &eacute;changer les activit&eacutes aux
+        extr&eacute;mit&eacute;s de la p&eacute;riode
+        s&eacute;lectionn&eacute;e. </p>
+    <p> CTRL-E : editer la progression hebdomadaire. </p>
+
+    <h3>-->Le mod&egrave;le</h3>
+    <h4>Base de donn&eacute;es</h4>
+    <p> La base de donn&eacute;es est stock&eacute;e dans le r&eacute;pertoire
+        principal <em>data</em>.
+        Chaque sous-r&eacute;pertoire correspond &agrave; un
+        semestre de formations, les premiers chiffres du nom indiquant
+        l'ann&eacute;e universitaire, et le dernier le num&eacute;ro de
+        semestre dans l'ann&eacute;e universitaire.
+        Le fichier <em>semestre.txt</em> contient les caract&eacute;ristiques
+        du semestre de formations &agrave; charger : l'ann&eacute;e
+        universitaire en premi&egrave;re ligne, le num&eacute;ro de semestre
+        en deuxi&egrave;me. </p>
+    <p> Un r&eacute;pertoire de semestre contient un sous-r&eacute;pertoire
+        de version, dont le nom est compos&eacute; du num&eacute;ro de version
+        suivi de la date (an-mois-jour) d'enregistrement.
+        Le fichier <em>version.txt</em> contient les caract&eacute;ristiques
+        de la version &agrave; charger : le num&eacute;ro de version en
+        premi&egrave;re ligne, la date d'enregistrement en deuxi&egrave;me. </p>
+    <p> Un r&eacute;pertoire de version contient un sous-r&eacute;pertoire
+        pour chaque formation du semestre, un fichier <em>cursus</em>
+        contenant le nom des formations &agrave; charger, et un fichier
+        <em>weeks.txt</em> fournissant les caract&eacute;ristiques du
+        semestre. </p>
+    <p> Un r&eacute;pertoire de formation contient un fichier de
+        caract&eacute;ristiques pour chaque cours de la formation,
+        et un fichier <em>module.txt</em> contenant le nom des cours
+        &agrave; charger. </p>
+
+    <h4>Mod&eacute;lisation du semestre calendaire</h4>
+    <p> Cr&eacute;er un r&eacute;pertoire <tt>V001_YYMMDD.txt</tt> avec
+        un fichier <tt>weeks.txt</tt>. </p>
+    <dl>
+    <dd> <tt>AnneeScolaire</tt> :
+         ann&eacute;e universitaire du semestre sous la forme 2324 pour
+         l'ann&eacute;e 2023/2024. </dd>
+    <dd> <tt>AnneeDeDepart</tt> :
+         ann&eacute;e de la premi&egrave;re semaine du semestre. </dd>
+    <dd> <tt>PremiereSemaine</tt> :
+         num&eacute;ro de la premi&egrave;re semaine du semestre. </dd>
+    <dd> <tt>LongueurDuSemestre</tt> :
+         nombre de semaines du semestre. </dd>
+    <dd> <tt>ChargeMaxHebdomadaire</tt> :
+         dur&eacute;e maximale de travail par semaine. </dd>
+    <dd> <tt>LongueurDeLaSemaine</tt> :
+         dur&eacute;e maximale de travail pour une semaine fix&ecute;e. </dd>
+    </dl>
+    <h4>Mod&eacute;lisation d'une formation</h4>
+    <p>Dans le r&eacute;pertoire de version, cr&eacute;er un
+       r&eacute;pertoire du nom de la formation, et ajouter ce nom
+       dans le fichier <em>cursus.txt</em>. </p>
+    <h4>Mod&eacute;lisation d'un module de cours</h4>
+    <p> Dans le r&eacute;pertoire de la formation, ajouter le nom du module
+        dans le fichier <em>modules.txt</em> et cr&eacute;er un fichier
+        du nom du module suffix&eacute; par "<em>.txt</em>". </p>
+    <p> Commencer par d&eacute;crire la progression du module, un type
+        d'activit&eacute; par ligne dans l'ordre chronologique pr&eacute;vu;
+        les types d'activit&eacute; reconnus sont :
+    <dl>
+    <dd> <tt>CM</tt> : Cours magistral de deux heures,
+    <dd> <tt>EV2</tt> : Evaluation de deux heures, </dd>
+    <dd> <tt>EV1</tt> : Evaluation d'une heure, </dd>
+    <dd> <tt>TD</tt> : TD de deux heures en salle de cours, </dd>
+    <dd> <tt>TM</tt> : TD de deux heures en salle machine, </dd>
+    <dd> <tt>TV</tt> : TD de deux heures en parall&egrave;le (m&ecirc;me
+         plage horaire pour tous les groupes), </dd>
+    <dd> <tt>SD</tt> : TD SA&eacute; de deux heures en salle de cours, </dd>
+    <dd> <tt>SM</tt> : TD SA&eacute; de deux heures en salle machine, </dd>
+    <dd> <tt>TP</tt> : TP de quatre heures en salle machine, </dd>
+    <dd> <tt>TP4</tt> : TP de quatre heures en salle machine, </dd>
+    <dd> <tt>TP2</tt> : TP de deux heures en salle machine, </dd>
+    <dd> <tt>TQ2</tt> : TP de deux heures en salle de cours, </dd>
+    <dd> <tt>SP</tt> : TP SA&eacute; de deux heures en salle machine, </dd>
+    <dd> <tt>SQ</tt> : TP SA&eacute; de deux heures en salle de cours. </dd>
+    </dl>
+    <p> Puis ajouter une ligne comportant le mot <tt>Params</tt>, et
+        indiquer les caract&eacute;ristiques du module, une par ligne :
+    <dl>
+    <dd> <tt>DebutModule</tt> :
+         semaine minimale de d&eacute;but du cours, </dd>
+    <dd> <tt>FinModule</tt> :
+         semaine maximale de fin du cours, </dd>
+    <dd> <tt>SemaineLibre</tt> :
+         num&eacute;ro d'une semaine sans activit&eacute; pour ce cours, </dd>
+    <dd> <tt>SousTitre</tt> :
+         initiales des enseignants ordonn&eacute;s en coh&eacute;rence avec
+         les d&eacute;calages dans les colonnes (lignes sur la vue), </dd>
+    <dd> <tt>AffectationCM</tt> :
+         acronyme de l'enseignant en charge des cours magistraux, </dd>
+    <dd> <tt>AffectationTD</tt> :
+         nombre de groupes de TD suivi de l'acronyme de l'enseignant en charge
+         de chaque groupe, </dd>
+    <dd> <tt>AffectationTP</tt> :
+         nombre de groupes de TP suivi de l'acronyme de l'enseignant en charge
+         de chaque groupe, </dd>
+    <dd> <tt>Affectation</tt> :
+         index de l'activit&eacute; (compt&eacute; &agrave; partir de 0),
+         suivi du nombre de groupes concern&eacute;s, puis de l'acronyme de
+         l'enseignant en charge de chaque groupe, </dd>
+    <dd> <tt>AGauche</tt> :
+         index de l'activit&eacute; devant appara&icirc;tre
+         d&eacute;cal&eacute;e vers la gauche (vers le haut sur la vue), </dd>
+    <dd> <tt>ADroite</tt> :
+         index de l'activit&eacute; devant appara&icirc;tre
+         d&eacute;cal&eacute;e vers la droite (vers le bas sur la vue). </dd>
+    </dl>
+  </body>
+</html>
diff --git a/out/production/sae2.01-developpement-application/shukan/info.txt b/out/production/sae2.01-developpement-application/shukan/info.txt
new file mode 100644
index 0000000..ad85e40
--- /dev/null
+++ b/out/production/sae2.01-developpement-application/shukan/info.txt
@@ -0,0 +1,5 @@
+Specification-Title: Shukan pre-planner
+Specification-Version: 1.6
+Implementation-Title: shukan
+Implementation-Version: build12
+Main-Class: shukan.Shukan
diff --git a/shukan/Shukan.java b/shukan/Shukan.java
new file mode 100644
index 0000000..c174e9e
--- /dev/null
+++ b/shukan/Shukan.java
@@ -0,0 +1,81 @@
+package shukan;
+import javax.swing.JFrame;
+import java.awt.Insets;
+import java.awt.Color;
+import java.awt.Rectangle;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.GraphicsDevice;
+import java.awt.GraphicsEnvironment;
+import java.awt.GraphicsConfiguration;
+
+
+/**
+ * Shukan planner application.
+ */
+public class Shukan
+{
+    /** Shukan window top margin */
+    private final static int TOP_MARGIN = 30;
+    /** Shukan window left margin */
+    private final static int LEFT_MARGIN = 50;
+
+    /**
+     * Creates AWT Frame with Shukan tools
+     */
+    public static void main (String[] args)
+    {
+        // Jikan data base creation and set up
+        ShukanData data = new ShukanData ();
+        ShukanIO io = new ShukanIO (data);
+
+        // Handling edition mode
+        if (args.length > 0)
+            if (args[0].equals ("edit"))
+            {
+                new ShukanTex (data);
+                System.exit (0);
+            }
+
+        // Creating Shukan viewer
+        JFrame frame = new JFrame ("SHUKAN 1.6");
+        ShukanView canvas = new ShukanView (data, io);
+
+        // Getting the display size
+        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment ();
+        GraphicsDevice gd = ge.getScreenDevices()[0];
+        GraphicsConfiguration[] gc = gd.getConfigurations ();
+        Rectangle gcBounds = gc[0].getBounds ();
+        canvas.restrictSize ((int) (gcBounds.getWidth ()) - LEFT_MARGIN,
+                (int) (gcBounds.getHeight ()) - TOP_MARGIN);
+
+        // Adding a openGL input handler (controller)
+        ShukanController myController = new ShukanController (canvas, data);
+        canvas.addKeyListener (myController);
+        canvas.addMouseListener (myController);
+        // canvas.addMouseMotionListener (myController);
+
+        // Preparing the window closing button
+        frame.addWindowListener (
+                new WindowAdapter ()
+                {
+                    public void windowClosing (WindowEvent e)
+                    {
+//          Shukan.io.save ();
+                        System.exit (0);
+                    }
+                });
+
+        // Setting the window geometry
+        frame.add (canvas);
+        Insets ins = frame.getInsets ();
+        frame.setSize (canvas.displayWidth () + ins.left + ins.right,
+                canvas.displayHeight () + ins.top + ins.bottom);
+        frame.setLocation (LEFT_MARGIN, 0);
+        frame.setBackground (Color.white);
+        frame.setVisible (true);
+
+        // Triggering input handler loop
+        canvas.requestFocus ();
+    }
+}
diff --git a/shukan/ShukanController.java b/shukan/ShukanController.java
new file mode 100644
index 0000000..76dd45b
--- /dev/null
+++ b/shukan/ShukanController.java
@@ -0,0 +1,204 @@
+package shukan;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+
+
+/** Shukan controller
+  */
+public class ShukanController
+           implements KeyListener, MouseListener//, MouseMotionListener
+{
+  /** Controlled display area. */
+  private ShukanView canvas;
+  /** Controlled application data. */
+  private ShukanData data;
+
+  /** Constructs a event handler.
+    * @param canvas display area.
+    * @param myView OpenGL context.
+    */
+  public ShukanController (ShukanView canvas, ShukanData data)
+  {
+    this.canvas = canvas;
+    this.data = data;
+  }
+
+  /** Invoked when a key has been pressed.
+    * Implementation from KeyListener.
+    * @param e detected key event.
+    */
+  public void keyPressed (KeyEvent e)
+  {
+    processKeyEvent (e, true);
+  }
+
+  /** Invoked when a key has been released.
+    * Implementation from KeyListener.
+    * @param e detected key event.
+    */
+  public void keyReleased (KeyEvent e)
+  {
+    processKeyEvent (e, false);
+  }
+
+  /** Invoked when a key has been pressed or released.
+    * Local implementation from KeyListener.
+    * @param e detected key event.
+    * @param pressed pressed or released key status.
+    */
+  private void processKeyEvent (KeyEvent e, boolean pressed)
+  {
+    switch (e.getKeyCode ())
+    {
+      case KeyEvent.VK_Q :
+      case KeyEvent.VK_ESCAPE :
+        if (! pressed)
+        {
+          canvas.saveData ();
+          //data.check ();
+          System.exit (0);
+        }
+        break;
+      case KeyEvent.VK_E :   // edit
+        if (! pressed) new ShukanTex (data);
+        break;
+      case KeyEvent.VK_LEFT :
+      case KeyEvent.VK_KP_LEFT :
+        if (pressed)
+        {
+          data.toggleLoad (-1);
+          canvas.repaint ();
+        }
+        break;
+      case KeyEvent.VK_RIGHT :
+      case KeyEvent.VK_KP_RIGHT :
+        if (pressed)
+        {
+          data.toggleLoad (1);
+          canvas.repaint ();
+        }
+        break;
+      case KeyEvent.VK_UP :
+      case KeyEvent.VK_KP_UP :
+        if (pressed)
+        {
+          data.toggleCursus (false);
+          canvas.repaint ();
+        }
+        break;
+      case KeyEvent.VK_DOWN :
+      case KeyEvent.VK_KP_DOWN :
+        if (pressed)
+        {
+          data.toggleCursus (true);
+          canvas.repaint ();
+        }
+        break;
+      case KeyEvent.VK_X :
+        if (pressed && e.isControlDown ())
+        {
+          data.exchangeExtremes ();
+          canvas.repaint ();
+        }
+        break;
+    }
+  }
+
+  /** Invoked when a key has been typed.
+    * Implementation from KeyListener.
+    * @param e detected key event.
+    */
+  public void keyTyped (KeyEvent e)
+  {
+    switch (e.getKeyChar ())
+    {
+      case 'l' :
+        if (data.followLeft ()) canvas.repaint ();
+        break;
+      case 'm' :
+        if (data.followRight ()) canvas.repaint ();
+        break;
+      case 'L' :
+        if (data.left ()) canvas.repaint ();
+        break;
+      case 'M' :
+        if (data.right ()) canvas.repaint ();
+        break;
+      case 'o' :
+        if (data.left ()) canvas.repaint ();
+        break;
+      case 'p' :
+        if (data.right ()) canvas.repaint ();
+        break;
+    }
+  }
+
+  /** Invoked when the mouse button has been clicked (pressed and released)
+    * on a component.
+    * Implementation from MouseListener.
+    * @param e detected mouse event.
+    */
+  public void mouseClicked (MouseEvent e)
+  {
+    if (e.getButton () == MouseEvent.BUTTON1)
+    {
+      if (e.isShiftDown ())
+      {
+        if (canvas.select (e.getX (), e.getY (), true))
+          canvas.repaint ();
+      }
+      else
+      {
+        if (canvas.select (e.getX (), e.getY (), false))
+        canvas.repaint ();
+      }
+    }
+    if (e.getButton () == MouseEvent.BUTTON3)
+    {
+      if (e.isShiftDown ())
+      {
+        if (canvas.selectActivity (e.getX (), e.getY (), true))
+          canvas.repaint ();
+      }
+      else
+      {
+        if (canvas.selectActivity (e.getX (), e.getY (), false))
+        canvas.repaint ();
+      }
+    }
+  }
+
+  /** Invoked when the mouse enters a component.
+    * Implementation from MouseListener.
+    * @param e detected mouse event.
+    */
+  public void mouseEntered (MouseEvent e)
+  {
+  }
+
+  /** Invoked when the mouse exits a component.
+    * Implementation from MouseListener.
+    * @param e detected mouse event.
+    */
+  public void mouseExited (MouseEvent e)
+  {
+  }
+
+  /** Invoked when a mouse button has been pressed on a component.
+    * Implementation from MouseListener.
+    * @param e detected mouse event.
+    */
+  public void mousePressed (MouseEvent e)
+  {
+  }
+
+  /** Invoked when a mouse button has been released on a component.
+    * Implementation from MouseListener.
+    * @param e detected mouse event.
+    */
+  public void mouseReleased (MouseEvent e)
+  {
+  }
+}
diff --git a/shukan/ShukanData.java b/shukan/ShukanData.java
new file mode 100644
index 0000000..70a0230
--- /dev/null
+++ b/shukan/ShukanData.java
@@ -0,0 +1,679 @@
+package shukan;
+
+
+public class ShukanData
+{
+  /** Displayed calendar */
+  private ShukanSemester sem = null;
+  /** Cursus */
+  private String[] curs = null;
+  /** Modules */
+  private ShukanModule[][] mod = null;
+  /** Teachers */
+  private String[] teachers = new String[0];
+  /** Sort for teachers */
+  private int[] tSort = new int[0];
+  /** Students */
+  private String[] students = {"Etu"};
+  /** Sort for students */
+  private int[] sSort = {0};
+  /** Scolar year (for displays) */
+  private int scolarYear = 0;
+
+  /** Selected cursus */
+  private int selCur = 0; // First by default
+  /** Selected module */
+  private int selMod = -1; // None by default
+  /** Selected load */
+  private int selLoad = 0; // Student by default
+  /** Selection first week */
+  private int selWeek = -1; // None by default
+  /** Selected first week and activity */
+  private int selAct = -1;
+  /** Selection length */
+  private int selLength = 0;
+
+
+  /** Creates a empty data base */
+  public void setSemester (int scolYear, ShukanSemester sem)
+  {
+    this.scolarYear = scolYear;
+    this.sem = sem;
+  }
+
+  /** Returns the number of weeks in the semester */
+  public int semesterSize ()
+  {
+    return (sem.size ());
+  }
+
+  /** Returns the week numbers */
+  public int[] weekNumbers ()
+  {
+    return (sem.weekNumbers ());
+  }
+
+  /** Returns the start week number */
+  public int startWeekNumber ()
+  {
+    return (sem.startWeekNumber ());
+  }
+
+  /** Returns the last week of year number */
+  public int lastWeekOfYearNumber ()
+  {
+    return (sem.lastWeekOfYearNumber ());
+  }
+
+  /** Returns the standard week duration */
+  public int standardWeekDuration ()
+  {
+    return (sem.standardWeekDuration ());
+  }
+
+  /** Returns the week durations */
+  public int[] weekDurations ()
+  {
+    return (sem.weekDurations ());
+  }
+
+  /** Creates the modules array */
+  public void declareCursus (String[] names)
+  {
+    curs = names;
+    mod = new ShukanModule[names.length][];
+  }
+
+  /** Creates the modules array */
+  public void setModules (int num, String[] names)
+  {
+    mod[num] = new ShukanModule[names.length];
+    for (int i = 0; i < names.length; i++)
+    {
+      mod[num][i] = new ShukanModule (names[i]);
+      mod[num][i].setActiveWeeks (sem.copyWeekDurations ());
+    }
+  }
+
+  /** Adds an activity to a module */
+  public boolean addActivity (int cursNum, int modNum, int actNum, String type)
+  {
+    return (mod[cursNum][modNum].addActivity (actNum, type));
+  }
+
+  /** Closes the activities of a module */
+  public void closeActivities (int cursNum, int modNum, int size)
+  {
+    mod[cursNum][modNum].closeActivities (size);
+  }
+
+  /** Automatically plans a free module */
+  public void autoPlan (int cursNum, int modNum)
+  {
+    if (! mod[cursNum][modNum].isScheduled ())
+      mod[cursNum][modNum].autoPlan ();
+  }
+
+  /** Schedules the activities of a module */
+  public void setSchedule (int cursNum, int modNum, int[] weeks)
+  {
+    mod[cursNum][modNum].schedule (weeks);
+  }
+
+  /** Unschedules the activities of a module */
+  public void unscheduleActivities (int cursNum, int modNum)
+  {
+    mod[cursNum][modNum].unschedule ();
+  }
+
+  /** Schedules an activity of a module */
+  public void scheduleActivity (int cursNum, int modNum, int activity, int week)
+  {
+    mod[cursNum][modNum].schedule (activity, week);
+  }
+
+  /** Returns the number of modules */
+  public int numberOfModules ()
+  {
+    return (mod[selCur].length);
+  }
+
+  /** Returns the name of the active cursus */
+  public String cursusName ()
+  {
+    return (curs[selCur]);
+  }
+
+  /** Returns the name of a cursus */
+  public String cursusName (int num)
+  {
+    return (curs[num]);
+  }
+
+  /** Returns the names of the modules */
+  public String[] moduleNames ()
+  {
+    String[] names = new String[mod[selCur].length];
+    for (int i = 0; i < mod[selCur].length; i++)
+      names[i] = mod[selCur][i].name ();
+    return (names);
+  }
+
+  /** Returns the names of the modules */
+  public String[] moduleNames (int cur)
+  {
+    String[] names = new String[mod[cur].length];
+    for (int i = 0; i < mod[cur].length; i++)
+      names[i] = mod[cur][i].name ();
+    return (names);
+  }
+
+  /** Sets a module start week */
+  public void setModuleStart (int cursNum, int modNum, int week)
+  {
+    mod[cursNum][modNum].setStartWeek (sem.weekIndex (week));
+  }
+
+  /** Sets a module end week */
+  public void setModuleEnd (int cursNum, int modNum, int week)
+  {
+    mod[cursNum][modNum].setEndWeek (sem.weekIndex (week));
+  }
+
+  /** Sets a module free week */
+  public void setModuleHolly (int cursNum, int modNum, int week)
+  {
+    mod[cursNum][modNum].setHollyWeek (sem.weekIndex (week));
+  }
+
+  /** Returns the active weeks of a module */
+  public int[] activeWeeks (int modNum)
+  {
+    return (mod[selCur][modNum].activeWeeks ());
+  }
+
+  /** Returns the activities of a module */
+  public int[] activities (int modNum)
+  {
+    return (mod[selCur][modNum].activities ());
+  }
+
+  /** Returns the activity schedule of a module */
+  public int[] scheduleInWeek (int modNum, int week)
+  {
+    return (mod[selCur][modNum].schedule (week));
+  }
+
+  /** Returns the whole schedule of a module */
+  public int[] schedule (int modNum)
+  {
+    return (mod[selCur][modNum].schedule ());
+  }
+
+  /** Returns the whole schedule of a module */
+  public int[] schedule (int cur, int modNum)
+  {
+    return (mod[cur][modNum].schedule ());
+  }
+
+  /** Returns the selected module */
+  public int selectedModule ()
+  {
+    return (selMod);
+  }
+
+  /** Returns the first selected week */
+  public int selectedWeek ()
+  {
+    return (selWeek);
+  }
+
+  /** Returns the selection length */
+  public int selectedLength ()
+  {
+    return (selLength);
+  }
+
+  /** Deactivates the module and week */
+  public void deactivate ()
+  {
+    selMod = -1;
+    selWeek = -1;
+    selLength = 0;
+  }
+
+  /** Activates a whole module */
+  public boolean activate (int modNum)
+  {
+    selMod = modNum;
+    selWeek = 0;
+    selLength = semesterSize ();
+    return (true);
+  }
+
+  /** Activates a module at given week */
+  public boolean activate (int modNum, int week, boolean zone)
+  {
+    if (zone)
+    {
+      if (selMod != modNum) return (false);
+      if (selWeek == -1) return (false);
+      if (selLength <= 2 && week >= selWeek && week <= selWeek + selLength - 1)
+        return (false);
+      if (week < selWeek)
+      {
+        selLength += selWeek - week;
+        selWeek = week;
+        return (true);
+      }
+      if (week >= selWeek + selLength)
+      {
+        selLength = week - selWeek + 1;
+        return (true);
+      }
+      int dist = week - selWeek;
+      if (2 * dist <= selLength - 1)
+      {
+        selLength -= week - selWeek;
+        selWeek = week;
+      }
+      else selLength = week - selWeek + 1;
+      return (true);
+    }
+    else
+    {
+      selMod = modNum;
+      selWeek = week;
+      selLength = 1;
+    }
+    return (true);
+  }
+
+  /** Activates a whole module */
+  public boolean activateAct (int modNum)
+  {
+    System.out.println ("Activation  du module " + modNum);
+    return (false);
+/*
+    selMod = modNum;
+    selWeek = 0;
+    selLength = semesterSize ();
+    return (true);
+*/
+  }
+
+  /** Shifts the selection leftwards */
+  public boolean left ()
+  {
+    if (selMod == - 1 || selLength == 0 || selWeek == -1) return (false);
+    mod[selCur][selMod].left (selWeek, selLength);
+    return (true);
+  }
+
+  /** Shifts the selection rightwards */
+  public boolean right ()
+  {
+    if (selMod == - 1 || selLength == 0 || selWeek == -1) return (false);
+    mod[selCur][selMod].right (selWeek, selLength);
+    return (true);
+  }
+
+  /** Shifts the selection leftwards and follows it */
+  public boolean followLeft ()
+  {
+    if (selMod == - 1 || selLength == 0 || selWeek == -1) return (false);
+    selWeek = mod[selCur][selMod].left (selWeek, selLength);
+    return (true);
+  }
+
+  /** Shifts the selection rightwards and follows it */
+  public boolean followRight ()
+  {
+    if (selMod == - 1 || selLength == 0 || selWeek == -1) return (false);
+    selWeek = mod[selCur][selMod].right (selWeek, selLength);
+    return (true);
+  }
+
+  /** Returns the load affected to selected agent for given week */
+  public int computeLoad (int week)
+  {
+    int load = 0;
+    if (selLoad < 0)
+      for (int j = 0; j < curs.length; j++)
+        for (int i = 0; i < mod[j].length; i++)
+          load += mod[j][i].teacherLoad (tSort[selLoad + teachers.length],
+                                         week);
+    else for (int i = 0; i < mod[selCur].length; i++)
+      load += mod[selCur][i].studentLoad (week);
+    return (load);
+  }
+
+  /** Returns the load affected to standard student for given week */
+  public int studentLoad (int week)
+  {
+    int load = 0;
+    for (int i = 0; i < mod[selCur].length; i++)
+      load += mod[selCur][i].studentLoad (week);
+    return (load);
+  }
+
+  /** Affects activities to teachers */
+  public void affectTo (int curs, int mod, int typAct, String[] names)
+  {
+    int[] numAff = new int[names.length];
+    if (teachers.length == 0)
+    {
+      teachers = new String[] {names[0]};
+      tSort = new int[] {0};
+    }
+    for (int i = 0; i < names.length; i++)
+      numAff[i] = findTeacher (names[i], 0, tSort.length);
+    this.mod[curs][mod].setTeachers (typAct, numAff);
+  }
+
+  /** Affects specific activity to teachers */
+  public void affectSpec (int curs, int mod, int numAct, String[] names)
+  {
+    int[] numAff = new int[names.length];
+    if (teachers.length == 0)
+    {
+      teachers = new String[] {names[0]};
+      tSort = new int[] {0};
+    }
+    for (int i = 0; i < names.length; i++)
+      numAff[i] = findTeacher (names[i], 0, tSort.length);
+    this.mod[curs][mod].affectSpec (numAct, numAff);
+  }
+
+  /** Finds the rank of a teacher */
+  private int findTeacher (String name, int from, int to)
+  {
+    int test = (from + to) / 2;
+    if (test < tSort.length
+        && name.equals (teachers[tSort[test]])) return tSort[test];
+    if (to - from < 1)
+    {
+      String[] tmp = new String[teachers.length + 1];
+      for (int i = 0; i < teachers.length; i ++) tmp[i] = teachers[i];
+      tmp[teachers.length] = name;
+      int[] ts = new int[tmp.length];
+      for (int i = 0; i < to; i ++) ts[i] = tSort[i];
+      ts[to] = teachers.length;
+      for (int i = to; i < teachers.length; i ++) ts[i+1] = tSort[i];
+      teachers = tmp;
+      tSort = ts;
+      return (tSort[to]);
+    }
+    if (name.compareTo (teachers[tSort[test]]) > 0)
+      return (findTeacher (name, test + 1, to));
+    return (findTeacher (name, 0, test));
+  }
+
+  /** Selects the next load */
+  public void toggleLoad (int direction)
+  {
+    selLoad += direction;
+    if (selLoad >= students.length) selLoad = - teachers.length;
+    else if (selLoad < - teachers.length) selLoad = students.length - 1;
+  }
+
+  /** Returns the selected load name */
+  public String loadName ()
+  {
+    if (selLoad < 0) return (teachers[tSort[selLoad + teachers.length]]);
+    return (students[sSort[selLoad]]);
+  }
+
+  /** Sets an activity to be displayed on left */
+  public void setOnLeft (int curs, int mod, int act)
+  {
+    this.mod[curs][mod].setOnLeft (act);
+  }
+
+  /** Sets an activity to be displayed on right */
+  public void setOnRight (int curs, int mod, int act)
+  {
+    this.mod[curs][mod].setOnRight (act);
+  }
+
+  /** Returns activities to be displayed on left */
+  public boolean[] onLeft (int mod)
+  {
+    return (this.mod[selCur][mod].activitiesOnLeft ());
+  }
+
+  /** Returns activities to be displayed on right */
+  public boolean[] onRight (int mod)
+  {
+    return (this.mod[selCur][mod].activitiesOnRight ());
+  }
+
+  /** Returns the number of cursus */
+  public int countOfCursus ()
+  {
+    return (mod.length);
+  }
+
+  /** Toggles the selected cursus */
+  public void toggleCursus (boolean on)
+  {
+    if (on)
+    {
+      if (++selCur == mod.length) selCur = 0;
+    }
+    else if (--selCur == -1) selCur = mod.length - 1;
+    selMod = -1;
+  }
+
+  /** Sets a subtitle to given module */
+  public void setSubtitle (int curs, int mod, String text)
+  {
+    this.mod[curs][mod].setSubtitle (text);
+  }
+
+  /** Returns the subtitle of selected module */
+  public String subtitle (int module)
+  {
+    return (mod[selCur][module].subtitle ());
+  }
+
+  /** Returns the subtitle of selected module */
+  public String subtitle (int curs, int module)
+  {
+    return (mod[curs][module].subtitle ());
+  }
+
+  /** Returns the first scolar year */
+  public int scolarYear ()
+  {
+    return (scolarYear);
+  }
+
+  /** returns the teachers array */
+  public String[] teachers ()
+  {
+    return (teachers);
+  }
+
+  /** Returns a teacher name */
+  public String teacherName (int num)
+  {
+    return (teachers[tSort[num]]);
+  }
+
+  /** Returns a teacher load on given week */
+  public int teacherLoad (int num, int week)
+  {
+    int load = 0;
+    for (int j = 0; j < curs.length; j++)
+      for (int i = 0; i < mod[j].length; i++)
+        load += mod[j][i].teacherLoad (tSort[num], week);
+    return (load);
+  }
+
+  /** Returns the progression of given module */
+  public String[] progression (int curs, int mod)
+  {
+    return (this.mod[curs][mod].progression ());
+  }
+
+  /** Returns the count of actvities in given module */
+  public int activityCount (int curs, int mod)
+  {
+    return (this.mod[curs][mod].activityCount ());
+  }
+
+  /** Returns the start week of given module */
+  public int moduleStart (int curs, int mod)
+  {
+    int[] wk = this.mod[curs][mod].activeWeeks ();
+    if (wk[0] != 0) return (0);
+    int sw = 1;
+    while (wk[sw] == 0)
+      if (++sw == wk.length) return (0);
+    sw += sem.startWeekNumber ();
+    if (sw > sem.lastWeekOfYearNumber ()) sw -= sem.lastWeekOfYearNumber ();
+    return (sw);
+  }
+
+  /** Returns the end week of given module */
+  public int moduleEnd (int curs, int mod)
+  {
+    int[] wk = this.mod[curs][mod].activeWeeks ();
+    if (wk[wk.length - 1] != 0) return (0);
+    int ew = wk.length - 2;
+    while (wk[ew] == 0)
+      if (--ew == -1) return (0);
+    ew += sem.startWeekNumber ();
+    if (ew > sem.lastWeekOfYearNumber ()) ew -= sem.lastWeekOfYearNumber ();
+    return (ew);
+  }
+
+  /** Returns the end week of given module */
+  public int[] moduleHollyWeeks (int curs, int mod)
+  {
+    int[] wk = this.mod[curs][mod].activeWeeks ();
+    int lw = wk.length - 1;
+    while (wk[lw] == 0)
+      if (--lw == -1) return (new int[0]);
+
+    int[] sk = sem.weekDurations ();
+    int[] hk = new int[sk.length];
+    int nb = 0;
+    boolean ok = false;
+    for (int i = 0; i < lw; i++)
+    {
+      if (wk[i] != 0) ok = true;
+      else if (ok && sk[i] != 0) hk[nb++] = i;
+    }
+
+    int[] res = new int[nb];
+    int sw = sem.startWeekNumber ();
+    int lyw = sem.lastWeekOfYearNumber ();
+    for (int i = 0; i < nb; i++)
+    {
+      res[i] = hk[i] + sw;
+      if (res[i] > lyw) res[i] -= lyw;
+    }
+    return (res);
+  }
+
+  /** Returns the teachers of given module */
+  public String[] moduleTeachers (int curs, int mod, int typact)
+  {
+    int[] ids = this.mod[curs][mod].teachers (typact);
+    if (ids == null) return (new String[0]);
+    String[] tch = new String[ids.length];
+    for (int i = 0; i < tch.length; i++) tch[i] = teachers[ids[i]];
+    return (tch);
+  }
+
+  /** Returns the specific teachers of given module */
+  public String[][] moduleSpecTeachers (int curs, int mod)
+  {
+    int[][] ids = this.mod[curs][mod].specTeachers ();
+    String[][] tch = new String[ids.length][];
+    for (int i = 0; i < ids.length; i++)
+    {
+      tch[i] = new String[ids[i].length];
+      for (int j = 0; j < ids[i].length; j++) tch[i][j] = teachers[ids[i][j]];
+    }
+    return (tch);
+  }
+
+  /** Returns the set-on-left activities of given module */
+  public boolean[] moduleOnLeft (int curs, int mod)
+  {
+    return (this.mod[curs][mod].onLeftActivities ());
+  }
+
+  /** Returns the set-on-right activities of given module */
+  public boolean[] moduleOnRight (int curs, int mod)
+  {
+    return (this.mod[curs][mod].onRightActivities ());
+  }
+
+  /** Returns the formatted date */
+  public String date ()
+  {
+    return (sem.date ());
+  }
+
+  /** Returns the semester */
+  public ShukanSemester semester ()
+  {
+    return (sem);
+  }
+
+  /** Selects an activity */
+  public boolean select (int mod, int pos, boolean zone)
+  {
+    int selection = this.mod[selCur][mod].select (pos);
+    if (selection != -1)
+    {
+      if (selWeek != -1) deactivate ();
+
+      if (zone && selMod == mod && selection != selAct)
+      {
+        if (selection < selAct)
+        {
+          selLength += selAct - selection;
+          selAct = selection;
+        }
+        else if (selection < selAct + selLength)
+        {
+          if (selection - selAct < selLength / 2)
+          {
+            selLength -= (selection - selAct);
+            selAct = selection;
+          }
+          else
+            selLength = selection - selAct + 1;
+        }
+        else
+          selLength = selection - selAct + 1;
+      }
+      else
+      {
+        selMod = mod;
+        selLength = 1;
+        selAct = selection;
+      }
+      return true;
+    }
+    return false;
+  }
+
+  /** Returns the first selected activity */
+  public int selectedActivity ()
+  {
+    return (selAct);
+  }
+
+  /** Exchanges extreme activities of the selected area */
+  public void exchangeExtremes ()
+  {
+    if (selMod != -1 && selAct != -1 && selLength > 1)
+      this.mod[selCur][selMod].exchange (selAct, selAct + selLength - 1);
+  }
+}
diff --git a/shukan/ShukanIO.java b/shukan/ShukanIO.java
new file mode 100644
index 0000000..bd5d57f
--- /dev/null
+++ b/shukan/ShukanIO.java
@@ -0,0 +1,746 @@
+package shukan;
+import java.io.File;
+import java.io.IOException;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.StreamTokenizer;
+import java.io.PrintWriter;
+import java.text.DecimalFormat;
+
+/** Shukan application file manager */
+public class ShukanIO
+{
+  /** Dictionary language */
+  private int dico = -1; // undetermined
+
+  /** Data base */
+  private ShukanData data = null;
+  /** Release number */
+  private int release = 0;
+  /** Release file */
+  private File releaseFile = null;
+  /** Semester directory */
+  private File semDir = null;
+  /** Cursus directories */
+  private File[] cursusDir = null;
+
+  /** Suffix for files */
+  private final static String FILE_SUFFIX = ".txt";
+  /** Default data directory */
+  private final static String DATA_DIR_NAME = "data";
+  /** Semester file name */
+  private final static String SEMESTER_FILE_NAME = "semestre";
+  /** Release file name */
+  private final static String RELEASE_FILE_NAME = "version";
+  /** Weeks file name */
+  private final static String WEEKS_FILE_NAME = "weeks";
+  /** Cursus file or directory name */
+  private final static String CURSUS_FILE_NAME = "cursus";
+  /** Modules file or directory name */
+  private final static String MODULES_FILE_NAME = "modules";
+  /** Default number of modules */
+  private final static int DEFAULT_MODULES_NB = 30;
+
+
+  // Semester upload dictionnary
+  private final static String[] SEM_SCOLAR_YEAR = {
+    "ScolarYear", "AnneeScolaire"};
+  private final static String[] SEM_FIRST_WEEK_YEAR = {
+    "YearOfFirstWeek", "AnneeDeDebut"};
+  private final static String[] SEM_FIRST_WEEK = {
+    "FirstWeek", "PremiereSemaine"};
+  private final static String[] SEM_LENGTH = {
+    "SemesterLength", "LongueurDuSemestre"};
+  private final static String[] SEM_WEEK_MAX_LENGTH = {
+    "DefaultWeekLength", "ChargeMaxHebdomadaire"};
+  private final static String[] SEM_WEEK_DURATION = {
+    "WeekLength", "ChargeMax"};
+
+
+  // Modules features dictionnary
+  private final static String[] MODULE_PARAMETERS = {
+    "Params", "Parametres"};
+  private final static String[] MODULE_START = {
+    "StartsOn", "DebutModule"};
+  private final static String[] MODULE_END = {
+    "EndsOn", "FinModule"};
+  private final static String[] MODULE_HOLYWEEK = {
+    "Hollyweek", "SemaineLibre"};
+  private final static String[] MODULE_SUBTITLE = {
+    "Subtitle", "SousTitre"};
+  private final static String[] MODULE_AFFECT_CM = {
+    "AffectCM", "AffectationCM"};
+  private final static String[] MODULE_AFFECT_TD = {
+    "AffectTD", "AffectationTD"};
+  private final static String[] MODULE_AFFECT_TP = {
+    "AffectTP", "AffectationTP"};
+  private final static String[] MODULE_AFFECT_SPEC = {
+    "AffectSpec", "Affectation"};
+  private final static String[] MODULE_ON_LEFT = {
+    "OnLeft", "AGauche"};
+  private final static String[] MODULE_ON_RIGHT = {
+    "OnRight", "ADroite"};
+  private final static String[] MODULE_SCHEDULE = {
+    "Sched", "Progression"};
+
+
+  /** Creates the archive manager */
+  public ShukanIO (ShukanData data)
+  {
+    this.data = data;
+
+    // Checks existence of a data directory
+    File dataDir = new File (DATA_DIR_NAME);
+    if (! dataDir.exists ())
+    {
+      System.out.println (
+        "Sorry, no " + dataDir.getName () + " directory found");
+      System.exit (0);
+    }
+
+    // Gets the present semester
+    StreamTokenizer st = null;
+    try
+    {
+      st = new StreamTokenizer (
+        new FileReader (new File (dataDir, SEMESTER_FILE_NAME + FILE_SUFFIX)));
+      st.nextToken ();
+      int an = (int) st.nval;
+      st.nextToken ();
+      semDir = new File (DATA_DIR_NAME, an + "_" + st.sval);
+    }
+    catch (FileNotFoundException e)
+    {
+      System.out.println ("No semester file found");
+      System.exit (0);
+    }
+    catch (Exception e)
+    {
+      System.out.println ("Semester file damaged");
+      System.exit (0);
+    }
+    if (! semDir.exists ())
+    {
+      System.out.println (
+        "No " + semDir.getName () + " directory found");
+      System.exit (0);
+    }
+
+    // Gets the last release
+    File relDir = null;
+    DecimalFormat format = new DecimalFormat ("000");
+    DecimalFormat format2 = new DecimalFormat ("000000");
+    try
+    {
+      releaseFile = new File (semDir, RELEASE_FILE_NAME + FILE_SUFFIX);
+      st = new StreamTokenizer (new FileReader (releaseFile));
+      st.nextToken ();
+      release = (int) st.nval;
+      st.nextToken ();
+      relDir = new File (semDir, "V" + format.format (release)
+                                     + "_" + format2.format ((int) st.nval));
+    }
+    catch (FileNotFoundException e)
+    {
+      System.out.println ("No release file found");
+      System.exit (0);
+    }
+    catch (Exception e)
+    {
+      System.out.println ("Release file damaged");
+      System.exit (0);
+    }
+    if (! relDir.exists ())
+    {
+      System.out.println (
+        "No " + relDir.getName () + " directory found");
+      System.exit (0);
+    }
+
+    // Gets the calendar
+    loadCalendar (relDir);
+
+    // Gets the cursus
+    File cursusFile = new File (relDir, CURSUS_FILE_NAME + FILE_SUFFIX);
+    if (! (cursusFile.exists ()))
+    {
+      System.out.println ("No cursus file found");
+      System.exit (0);
+    }
+    String[] cNames = getNames (cursusFile);
+    if (cNames.length == 0)
+    {
+      System.out.println ("No cursus found in cursus file");
+      System.exit (0);
+    }
+    cursusDir = new File[cNames.length];
+    for (int i = 0; i < cNames.length; i++)
+    {
+      cursusDir[i] = new File (relDir, cNames[i]);
+      if (! semDir.exists ())
+      {
+        System.out.println ("No " + cNames[i] + " directory found");
+        System.exit (0);
+      }
+    }
+    data.declareCursus (cNames);
+    for (int i = 0; i < cursusDir.length; i++) loadModules (i);
+  }
+
+  /** Loads the calendar */
+  private void loadCalendar (File semDir)
+  {
+    // Checks weeks file
+    File weekFile = new File (semDir, WEEKS_FILE_NAME + FILE_SUFFIX);
+    if (! weekFile.exists ())
+    {
+      System.out.println ("Sorry, no " + WEEKS_FILE_NAME + " file found");
+      System.exit (0);
+    }
+    try
+    {
+      StreamTokenizer st = new StreamTokenizer (new FileReader (weekFile));
+
+      // Reads scolar year
+      st.nextToken ();
+      if (st.ttype != StreamTokenizer.TT_WORD)
+        abort (WEEKS_FILE_NAME, "?", st.lineno ());
+      for (int i = 0; dico == -1 && i < SEM_SCOLAR_YEAR.length; i++)
+        if (st.sval.equals (SEM_SCOLAR_YEAR[i])) dico = i;
+      if (dico != -1)
+      {
+        st.nextToken ();
+        if (st.ttype != StreamTokenizer.TT_NUMBER) dico = -1;
+      }
+      if (dico == -1)
+      {
+        String msg = new String ("should be " + SEM_SCOLAR_YEAR[0]);
+        for (int i = 1; i < SEM_SCOLAR_YEAR.length; i++)
+          msg += " or " + SEM_SCOLAR_YEAR[i];
+        abort (WEEKS_FILE_NAME, msg, st.lineno ());
+      }
+      int scolYear = (int) st.nval;
+ 
+      // Reads year of first week
+      st.nextToken ();
+      if (st.ttype != StreamTokenizer.TT_WORD)
+        abort (WEEKS_FILE_NAME, "?", st.lineno ());
+      if (! st.sval.equals (SEM_FIRST_WEEK_YEAR[dico]))
+        abort (WEEKS_FILE_NAME, "should be "
+               + SEM_FIRST_WEEK_YEAR[dico], st.lineno ());
+      st.nextToken ();
+      if (st.ttype != StreamTokenizer.TT_NUMBER)
+        abort (WEEKS_FILE_NAME, SEM_FIRST_WEEK_YEAR[dico], st.lineno ());
+      int year = (int) st.nval;
+ 
+      // Reads first week number
+      st.nextToken ();
+      if (st.ttype != StreamTokenizer.TT_WORD)
+        abort (WEEKS_FILE_NAME, "?", st.lineno ());
+      if (! st.sval.equals (SEM_FIRST_WEEK[dico]))
+        abort (WEEKS_FILE_NAME, "should be " + SEM_FIRST_WEEK[dico],
+               st.lineno ());
+      st.nextToken ();
+      if (st.ttype != StreamTokenizer.TT_NUMBER)
+        abort (WEEKS_FILE_NAME, SEM_FIRST_WEEK[dico], st.lineno ());
+      int firstWeek = (int) st.nval;
+ 
+      // Reads semester length
+      st.nextToken ();
+      if (st.ttype != StreamTokenizer.TT_WORD)
+        abort (WEEKS_FILE_NAME, "?", st.lineno ());
+      if (! st.sval.equals (SEM_LENGTH[dico]))
+        abort (WEEKS_FILE_NAME, SEM_LENGTH[dico], st.lineno ());
+      st.nextToken ();
+      if (st.ttype != StreamTokenizer.TT_NUMBER)
+        abort (WEEKS_FILE_NAME, SEM_LENGTH[dico], st.lineno ());
+      int semLength = (int) st.nval;
+ 
+      // Reads default week length
+      st.nextToken ();
+      if (st.ttype != StreamTokenizer.TT_WORD)
+        abort (WEEKS_FILE_NAME, "?", st.lineno ());
+      if (! st.sval.equals (SEM_WEEK_MAX_LENGTH[dico]))
+        abort (WEEKS_FILE_NAME, SEM_WEEK_MAX_LENGTH[dico], st.lineno ());
+      st.nextToken ();
+      if (st.ttype != StreamTokenizer.TT_NUMBER)
+        abort (WEEKS_FILE_NAME, SEM_WEEK_MAX_LENGTH[dico], st.lineno ());
+      int duration = (int) st.nval;
+ 
+      // Creates the semester
+      ShukanSemester sem = new ShukanSemester (year, firstWeek,
+                                               semLength, duration);
+      data.setSemester (scolYear, sem);
+
+      // Reads the week durations
+      st.nextToken ();
+      while (st.ttype != StreamTokenizer.TT_EOF)
+      {
+        if (st.ttype != StreamTokenizer.TT_WORD)
+          abort (WEEKS_FILE_NAME, "?", st.lineno ());
+        if (st.sval.equals (SEM_WEEK_DURATION[dico]))
+        {
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_WORD)
+            abort (WEEKS_FILE_NAME, SEM_WEEK_DURATION[dico], st.lineno ());
+          if (st.sval.charAt (0) != 'S')
+            abort (WEEKS_FILE_NAME, SEM_WEEK_DURATION[dico], st.lineno ());
+          int noWeek = Integer.parseInt (st.sval.substring (1));
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_NUMBER)
+            abort (WEEKS_FILE_NAME, SEM_WEEK_DURATION[dico], st.lineno ());
+          if (! sem.setDuration (noWeek, (int) (st.nval)))
+            abort (WEEKS_FILE_NAME, SEM_WEEK_DURATION[dico], st.lineno ());
+        }
+        st.nextToken ();
+      }
+    }
+    catch (IOException e)
+    {
+      System.out.println ("Problem in " + WEEKS_FILE_NAME + " file");
+      System.exit (0);
+    }
+  }
+
+  /** Loads the modules */
+  private void loadModules (int n)
+  {
+    File modulesFile = new File (cursusDir[n], MODULES_FILE_NAME + FILE_SUFFIX);
+    if (! (modulesFile.exists ()))
+    {
+      System.out.println (
+        "No modules file found in " + cursusDir[n].getName ());
+      System.exit (0);
+    }
+    String[] names = getNames (modulesFile);
+    if (names.length == 0)
+    {
+      System.out.println ("Empty modules file in " + cursusDir[n].getName ());
+      System.exit (0);
+    }
+    data.setModules (n, names);
+
+    // Reads each module
+    for (int i = 0; i < names.length; i++)
+      loadModule (n, i, cursusDir[n], names[i]);
+  }
+
+  /** Loads one module */
+  private void loadModule (int cursNum, int modNum, File modDir, String name)
+  {
+    int sw = data.startWeekNumber ();
+    int lw = data.lastWeekOfYearNumber ();
+    int ss = data.semesterSize ();
+    int[] wd = data.weekDurations ();
+
+    // Checks module file
+    File modFile = new File (modDir, name + FILE_SUFFIX);
+    if (! modFile.exists ())
+    {
+      System.out.println ("Sorry, no " + name + " file found");
+      System.exit (0);
+    }
+    try
+    {
+      // Reads modules
+      int actNum = 0;
+      StreamTokenizer st = new StreamTokenizer (new FileReader (modFile));
+      st.nextToken ();
+      while (st.ttype != StreamTokenizer.TT_EOF)
+      {
+        if (st.ttype != StreamTokenizer.TT_WORD)
+          abort (name, "SYNTAX", st.lineno ());
+        if (st.sval.equals (MODULE_PARAMETERS[dico]))
+        {
+          data.closeActivities (cursNum, modNum, actNum);
+        }
+        else if (st.sval.equals (MODULE_START[dico]))
+        {
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_NUMBER)
+            abort (name, MODULE_START[dico], st.lineno ());
+          data.setModuleStart (cursNum, modNum, (int) st.nval);
+        }
+        else if (st.sval.equals (MODULE_END[dico]))
+        {
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_NUMBER)
+            abort (name, MODULE_END[dico], st.lineno ());
+          data.setModuleEnd (cursNum, modNum, (int) st.nval);
+        }
+        else if (st.sval.equals (MODULE_HOLYWEEK[dico]))
+        {
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_NUMBER)
+            abort (name, MODULE_HOLYWEEK[dico], st.lineno ());
+          data.setModuleHolly (cursNum, modNum, (int) st.nval);
+        }
+        else if (st.sval.equals (MODULE_SUBTITLE[dico]))
+        {
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_WORD)
+            abort (name, MODULE_SUBTITLE[dico], st.lineno ());
+          data.setSubtitle (cursNum, modNum, new String (st.sval));
+        }
+        else if (st.sval.equals (MODULE_AFFECT_CM[dico]))
+        {
+             st.nextToken ();
+             if (st.ttype != StreamTokenizer.TT_WORD)
+               abort (name, MODULE_AFFECT_CM[dico], st.lineno ());
+             data.affectTo (cursNum, modNum, ShukanModule.ACT_CM,
+                            new String[] {st.sval});
+        }
+        else if (st.sval.equals (MODULE_AFFECT_TD[dico]))
+        {
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_NUMBER)
+            abort (name, MODULE_AFFECT_TD[dico], st.lineno ());
+          String[] aff = new String[(int) st.nval];
+          for (int j = 0; j < aff.length; j++)
+          {
+            st.nextToken ();
+            if (st.ttype != StreamTokenizer.TT_WORD)
+              abort (name, MODULE_AFFECT_TD[dico], st.lineno ());
+            aff[j] = st.sval;
+          }
+          data.affectTo (cursNum, modNum, ShukanModule.ACT_TD, aff);
+        }
+        else if (st.sval.equals (MODULE_AFFECT_TP[dico]))
+        {
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_NUMBER)
+            abort (name, MODULE_AFFECT_TP[dico], st.lineno ());
+          String[] aff = new String[(int) st.nval];
+          for (int j = 0; j < aff.length; j++)
+          {
+            st.nextToken ();
+            if (st.ttype != StreamTokenizer.TT_WORD)
+              abort (name, MODULE_AFFECT_TP[dico], st.lineno ());
+            aff[j] = st.sval;
+          }
+          data.affectTo (cursNum, modNum, ShukanModule.ACT_TP, aff);
+        }
+        else if (st.sval.equals (MODULE_AFFECT_SPEC[dico]))
+        {
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_NUMBER)
+            abort (name, MODULE_AFFECT_SPEC[dico], st.lineno ());
+          int num = (int) st.nval;
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_NUMBER)
+            abort (name, MODULE_AFFECT_SPEC[dico], st.lineno ());
+          String[] aff = new String[(int) st.nval];
+          for (int j = 0; j < aff.length; j++)
+          {
+            st.nextToken ();
+            if (st.ttype != StreamTokenizer.TT_WORD)
+              abort (name, MODULE_AFFECT_SPEC[dico], st.lineno ());
+            aff[j] = st.sval;
+          }
+          data.affectSpec (cursNum, modNum, num, aff);
+        }
+        else if (st.sval.equals (MODULE_ON_LEFT[dico]))
+        {
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_NUMBER)
+            abort (name, MODULE_ON_LEFT[dico], st.lineno ());
+          data.setOnLeft (cursNum, modNum, (int) st.nval);
+        }
+        else if (st.sval.equals (MODULE_ON_RIGHT[dico]))
+        {
+          st.nextToken ();
+          if (st.ttype != StreamTokenizer.TT_NUMBER)
+            abort (name, MODULE_ON_RIGHT[dico], st.lineno ());
+          data.setOnRight (cursNum, modNum, (int) st.nval);
+        }
+        else if (st.sval.equals (MODULE_SCHEDULE[dico]))
+        {
+          int nb = data.activityCount (cursNum, modNum);
+          boolean ok = (nb != 0);
+          if (ok)
+          {
+            int[] sch = new int[nb];
+            for (int i = 0; ok && i < nb; i++)
+            {
+              st.nextToken ();
+              if (st.ttype != StreamTokenizer.TT_NUMBER) ok = false;
+              sch[i] = (int) st.nval;
+              if (sch[i] < sw) sch[i] = lw - sw + sch[i];
+              else sch[i] -= sw;
+              if (sch[i] < 0 || sch[i] >= ss || wd[sch[i]] == 0)
+                abort (name, MODULE_SCHEDULE[dico], st.lineno ());
+            }
+            if (ok) data.setSchedule (cursNum, modNum, sch);
+          }
+          if (! ok) abort (name, MODULE_SCHEDULE[dico], st.lineno ());
+        }
+
+        else if (! data.addActivity (cursNum, modNum, actNum++, st.sval))
+          abort (name, st.sval, st.lineno ());
+        st.nextToken ();
+      }
+      data.autoPlan (cursNum, modNum);
+    }
+    catch (IOException e)
+    {
+      System.out.println ("Problem in " + name + " file");
+      System.exit (0);
+    }
+  }
+
+  /** Programms interruption in case of format problem */
+  private static void abort (String name, String beacon, int lineno)
+  {
+    System.out.println (name + ", ligne " + lineno
+                        + ": mauvais format pour " + beacon);
+    System.exit (0);
+  }
+
+  /** Saves all the schedules */
+  public void save ()
+  {
+    // Updates the release file
+    releaseFile.delete ();
+    String now = data.date ();
+    PrintWriter pw = null;
+    try
+    {
+      releaseFile.createNewFile ();
+      pw = new PrintWriter (releaseFile);
+      pw.println (++release);
+      pw.println (now);
+    }
+    catch (IOException exc)
+    {
+      System.out.println ("Unable to create the new release");
+      System.exit (0);
+    }
+    finally
+    {
+      pw.close ();
+    }
+    
+    // Creates the new release directory
+    DecimalFormat format = new DecimalFormat ("000");
+    File relDir = new File (semDir, "V" + format.format (release) + "_" + now);
+    relDir.mkdir ();
+
+    // Saves the calendar
+    saveCalendar (relDir);
+
+    // Creates the cursus file
+    File curFile = new File (relDir, CURSUS_FILE_NAME + FILE_SUFFIX);
+    try
+    {
+      curFile.createNewFile ();
+      pw = new PrintWriter (curFile);
+      for (int i = 0; i < cursusDir.length; i++)
+        pw.println (data.cursusName (i));
+    }
+    catch (IOException exc)
+    {
+      System.out.println ("Unable to create cursus file");
+      System.exit (0);
+    }
+    finally
+    {
+      pw.close ();
+    }
+
+    // Creates and updates cursus directories
+    for (int i = 0; i < cursusDir.length; i++)
+    {
+      cursusDir[i] = new File (relDir, data.cursusName (i));
+      cursusDir[i].mkdir ();
+      save (i);
+    }
+  }
+
+  /** Saves calendar of the semester */
+  private void saveCalendar (File dir)
+  {
+    File weekFile = new File (dir, WEEKS_FILE_NAME + FILE_SUFFIX);
+    PrintWriter pw = null;
+    try
+    {
+      weekFile.createNewFile ();
+      pw = new PrintWriter (weekFile);
+ 
+      // Writes scolar year
+      pw.println (SEM_SCOLAR_YEAR[dico] + " " + data.scolarYear ());
+      ShukanSemester sem = data.semester ();
+      pw.println (SEM_FIRST_WEEK_YEAR[dico] + " " + sem.yearOfFirstWeek ());
+      pw.println (SEM_FIRST_WEEK[dico] + " " + sem.startWeekNumber ());
+      pw.println (SEM_LENGTH[dico] + " " + sem.length ());
+
+      // Writes week durations
+      int sd = sem.standardWeekDuration ();
+      pw.println (SEM_WEEK_MAX_LENGTH[dico] + " " + sd);
+      int[] wd = sem.weekDurations ();
+      for (int i = 0; i < wd.length; i++)
+        if (wd[i] != sd) pw.println (SEM_WEEK_DURATION[dico] + " S"
+                                     + sem.weekNumber (i) + " " + wd[i]);
+    }
+    catch (IOException e)
+    {
+      System.out.println ("Can(t write " + WEEKS_FILE_NAME + " file");
+      System.exit (0);
+    }
+    finally
+    {
+      pw.close ();
+    }
+  }
+
+  /** Saves the schedules for given cursus */
+  private void save (int curs)
+  {
+    // Create module names file
+    String[] modNames = data.moduleNames (curs);
+    File moduleFile = new File (cursusDir[curs],
+                                MODULES_FILE_NAME + FILE_SUFFIX);
+    PrintWriter pw = null;
+    try
+    {
+      moduleFile.createNewFile ();
+      pw = new PrintWriter (moduleFile);
+      for (int i = 0; i < modNames.length; i++) pw.println (modNames[i]);
+    }
+    catch (IOException exc)
+    {
+      System.out.println ("Unable to create modules file for "
+                          + data.cursusName (curs));
+      System.exit (0);
+    }
+    finally
+    {
+      pw.close ();
+    }
+
+    for (int i = 0; i < modNames.length; i++)
+    {
+      // Creates the module schedule file
+      moduleFile = new File (cursusDir[curs], modNames[i] + FILE_SUFFIX);
+      try
+      {
+        moduleFile.createNewFile ();
+        pw = new PrintWriter (moduleFile);
+        save (pw, curs, i);
+      }
+      catch (IOException exc)
+      {
+        System.out.println ("Unable to create schedule for " + modNames[i]);
+        System.exit (0);
+      }
+      finally
+      {
+        pw.close ();
+      }
+    }
+  }
+
+  /** Saves the schedule for given module */
+  private void save (PrintWriter pw, int curs, int mod)
+  {
+    // Writes the progression
+    String[] prog = data.progression (curs, mod);
+    for (int j = 0; j < prog.length; j++) pw.println (prog[j]);
+    pw.println (MODULE_PARAMETERS[dico]);
+
+    // Writes the availabilities
+    int wk = data.moduleStart (curs, mod);
+    if (wk != 0) pw.println (MODULE_START[dico] + " " + wk);
+    wk = data.moduleEnd (curs, mod);
+    if (wk != 0) pw.println (MODULE_END[dico] + " " + wk);
+    int[] hk = data.moduleHollyWeeks (curs, mod);
+    for (int j = 0; j < hk.length; j++)
+      pw.println (MODULE_HOLYWEEK[dico] + " " + hk[j]);
+
+    // Writes the affectations
+    String st = data.subtitle (curs, mod);
+    if (st != null) pw.println (MODULE_SUBTITLE[dico] + " " + st);
+    String[] t = data.moduleTeachers (curs, mod, ShukanModule.ACT_CM);
+    if (t.length != 0)
+    {
+      pw.print (MODULE_AFFECT_CM[dico]);
+      for (int j = 0; j < t.length; j++) pw.print (" " + t[j]);
+      pw.println ();
+    }
+    t = data.moduleTeachers (curs, mod, ShukanModule.ACT_TD);
+    if (t.length != 0)
+    {
+      pw.print (MODULE_AFFECT_TD[dico] + " " + t.length);
+      for (int j = 0; j < t.length; j++) pw.print (" " + t[j]);
+      pw.println ();
+    }
+    t = data.moduleTeachers (curs, mod, ShukanModule.ACT_TP);
+    if (t.length != 0)
+    {
+      pw.print (MODULE_AFFECT_TP[dico] + " " + t.length);
+      for (int j = 0; j < t.length; j++) pw.print (" " + t[j]);
+      pw.println ();
+    }
+    String[][] spt = data.moduleSpecTeachers (curs, mod);
+    for (int j = 0; j < spt.length; j++)
+      if (spt[j].length != 0)
+      {
+        pw.print (MODULE_AFFECT_SPEC[dico] + " " + j + " " + spt[j].length);
+        for (int k = 0; k < spt[j].length; k++)
+          pw.print (" " + spt[j][k]);
+        pw.println ();
+      }
+    boolean[] dec = data.moduleOnLeft (curs, mod);
+    for (int j = 0; j < dec.length; j++)
+      if (dec[j]) pw.println (MODULE_ON_LEFT[dico] + " " + j);
+    dec = data.moduleOnRight (curs, mod);
+    for (int j = 0; j < dec.length; j++)
+      if (dec[j]) pw.println (MODULE_ON_RIGHT[dico] + " " + j);
+
+    // Writes the schedule
+    int[] wn = data.weekNumbers ();
+    int[] sched = data.schedule (curs, mod);
+    pw.print (MODULE_SCHEDULE[dico]);
+    for (int j = 0; j < sched.length; j++) pw.print (" " + wn[sched[j]]);
+    pw.println ();
+  }
+
+  /** Returns module names */
+  private static String[] getNames (File f)
+  {
+    String[] names = new String[DEFAULT_MODULES_NB];
+    int num = 0;
+
+    // Checks modules file
+    try
+    {
+      // Reads names
+      StreamTokenizer st = new StreamTokenizer (new FileReader (f));
+      st.nextToken ();
+      while (st.ttype != StreamTokenizer.TT_EOF)
+      {
+        if (st.ttype != StreamTokenizer.TT_WORD)
+          abort (f.getName (), "?", st.lineno ());
+        if (num == names.length)
+        {
+          String[] tmp = new String[names.length + DEFAULT_MODULES_NB];
+          for (int i = 0; i < names.length; i++) tmp[i] = names[i];
+          names = tmp;
+        }
+        names[num++] = new String (st.sval);
+        st.nextToken ();
+      }
+      if (num != names.length)
+      {
+        String[] tmp = new String[num];
+        for (int i = 0; i < num; i++) tmp[i] = names[i];
+        names = tmp;
+      }
+    }
+    catch (IOException e)
+    {
+      System.out.println ("Problem in " + f.getName () + " file");
+      System.exit (0);
+    }
+    return (names);
+  }
+}
diff --git a/shukan/ShukanList.java b/shukan/ShukanList.java
new file mode 100644
index 0000000..1cabcec
--- /dev/null
+++ b/shukan/ShukanList.java
@@ -0,0 +1,91 @@
+package shukan;
+
+
+/** Array list of Shukan elements */
+public class ShukanList
+{
+  /** Default size of a created list */
+  private final static int DEFAULT_SIZE = 10;
+
+  /** Container of elements */
+  private Object[] elts = null;
+  /** Effective number of elements */
+  private int count = 0;
+
+  /** Creates a list with default size */
+  public ShukanList ()
+  {
+    elts = new Object[DEFAULT_SIZE];
+  }
+
+  /** Creates a list with given size */
+  public ShukanList (int size)
+  {
+    elts = new Object[size];
+  }
+
+  /** Empties the list */
+  public void empty ()
+  {
+    count = 0;
+  }
+
+  /** Adds an object to the list */
+  public void add (Object elt)
+  {
+    if (count == elts.length) doubleCapacity ();
+    elts[count++] = elt;
+  }
+
+  /** Sets the list capacity to double size */
+  private void doubleCapacity ()
+  {
+    Object[] tab = new Object[elts.length * 2];
+    for (int i = 0; i < count; i++) tab[i] = elts[i];
+    elts = tab;
+  }
+
+  /** Returns the number of objects in the list */
+  public int size ()
+  {
+    return (count);
+  }
+
+  /** Removes an objects from the list */
+  public void remove (Object elt)
+  {
+    for (int i = 0; i < count; i ++)
+      if (elt == elts[i])
+      {
+        elts[i] = elts[--count];
+	i = count + 1;
+      }
+  }
+
+  /** Gets a copy of objects in the list */
+  public void fill (Object[] objects)
+  {
+    for (int i = 0; i < count; i++)
+      objects[i] = elts[i];
+  }
+
+  /** Returns an object of the list */
+  public Object get (int index)
+  {
+    return (elts[index]);
+  }
+
+  /** Returns the last object of the list */
+  public Object last ()
+  {
+    return (elts[count - 1]);
+  }
+
+  /** Returns the objects of the list */
+  public Object[] toArray ()
+  {
+    Object[] obj = new Object[count];
+    for (int i = 0; i < count; i++) obj[i] = elts[count];
+    return (obj);
+  }
+}
diff --git a/shukan/ShukanModule.java b/shukan/ShukanModule.java
new file mode 100644
index 0000000..e7cff5d
--- /dev/null
+++ b/shukan/ShukanModule.java
@@ -0,0 +1,454 @@
+package shukan;
+
+
+/** Module */
+public class ShukanModule
+{
+  /** Module name */
+  private String name;
+  /** Module teachers */
+  private String subtitle = null;
+  /** Queue of module activities */
+  private int[] activ = null;
+  /** Queues of planed activities */
+  private ShukanSchedule sched = null;
+  /** Module scheduling status */
+  private boolean scheduled = false;
+  /** Teacher affectation for main courses */
+  private int[] affectCM = null;
+  /** Teacher affectation for supervised trainings */
+  private int[] affectTD = null;
+  /** Teacher affectation for practical works */
+  private int[] affectTP = null;
+  /** Teacher affectation for each activity */
+  private int[][] affect = null;
+  /** Left shift status for activities */
+  private boolean[] onLeft = null;
+  /** Right shift status for activities */
+  private boolean[] onRight = null;
+  /** Working weeks for the module */
+  private int[] activeWeeks = null;
+
+  /** Specific activity : main course */
+  public final static int ACT_CM = 0;   // Cours magistral
+  /** Specific activity : 1 hour long control */
+  public final static int ACT_EV2 = 1;  // Evaluation d'1h
+  /** Specific activity : 2 hours long control */
+  public final static int ACT_EV1 = 2;  // Evaluation de 2h
+  /** Specific activity : supervised training in standard room */
+  public final static int ACT_TD = 3;   // TD en salle de cours
+  /** Specific activity : supervised training in computer room */
+  public final static int ACT_TM = 4;   // TD en salle ordi
+  /** Specific activity : supervised training in parallel */
+  public final static int ACT_TV = 5;   // TD en parallele (eval)
+  /** Specific activity : SAe supervised training in standard room */
+  public final static int ACT_SD = 6;   // TD de SAE en salle de cours
+  /** Specific activity : SAe supervised training in computer room */
+  public final static int ACT_SM = 7;   // TD de SAE en salle ordi
+  /** Specific activity : Practical work in computer room */
+  public final static int ACT_TP = 8;   // TP en salle ordi
+  /** Specific activity : 4 hours long practical work in computer room */
+  public final static int ACT_TP4 = 8;   // TP de 4h en salle ordi
+  /** Specific activity : 2 hours long practical work in computer room */
+  public final static int ACT_TP2 = 9;   // TP de 2h en salle ordi
+  /** Specific activity : 2 hours long practical work in standard room */
+  public final static int ACT_TQ2 = 10;  // TP en salle de cours
+  /** Specific activity : SAe practical work in computer room */
+  public final static int ACT_SP = 11;  // TP de SAE en salle ordi
+  /** Specific activity : SAe practical work in standard room */
+  public final static int ACT_SQ = 12;  // TQ de SAE en salle de cours
+  /** Activity types */
+  private final static String[] TYPES = {"CM", "EV2", "EV1",
+                                         "TD", "TM", "TV", "SD", "SM",
+                                         "TP4", "TP2", "TQ2", "SP", "SQ"};
+  /** Activity symbol */
+  public final static String[] DISPLAY = {"C", "E", "e",
+                                          "d", "m", "v", "s", "z",
+                                          "P", "p", "q", "S", "Z"};
+  /** Activity duration (in hours) */
+  public final static int[] SLOAD = {2, 2, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2};
+
+  /** Default maximal number of activities in a module */
+  private final static int DEFAULT_ACTIVITY_NUMBER = 30;
+  /** Maximal number of activities per week */
+  public final static int MAX_ACTIV_PER_WEEK = 6;
+
+
+  /** Creation of a module */
+  public ShukanModule (String name)
+  {
+    this.name = new String (name);
+    activ = new int[DEFAULT_ACTIVITY_NUMBER];
+    affect = new int[DEFAULT_ACTIVITY_NUMBER][];
+  }
+
+  /** Adds an activity */
+  public boolean addActivity (int num, String type)
+  {
+    int numT = -1;
+    for (int i = 0; i < TYPES.length && numT == -1; i++)
+      if (type.equals (TYPES[i])) numT = i;
+    if (numT == -1) return (false);
+    if (num == activ.length)
+    {
+      int[] tmp = new int[activ.length + DEFAULT_ACTIVITY_NUMBER];
+      int[][] tmpaff = new int[activ.length + DEFAULT_ACTIVITY_NUMBER][];
+      for (int i = 0; i < activ.length; i++)
+      {
+        tmp[i] = activ[i];
+        tmpaff[i] = affect[i];
+      }
+      activ = tmp;
+      affect = tmpaff;
+    }
+    activ[num] = numT;
+    affect[num] = new int[0];
+    return (true);
+  }
+
+  /** Adjusts the activity array.
+   * @param size Number of activities to be planned.
+   */
+  public void closeActivities (int size)
+  {
+    if (size != activ.length)
+    {
+      int[] tmp = new int[size];
+      int[][] tmpaff = new int[size][];
+      for (int i = 0; i < size; i++)
+      {
+        tmp[i] = activ[i];
+        tmpaff[i] = affect[i];
+      }
+      activ = tmp;
+      affect = tmpaff;
+    }
+
+    onLeft = new boolean[activ.length];
+    onRight = new boolean[activ.length];
+    for (int i = 0; i < onLeft.length; i++)
+    {
+      onLeft[i] = false;
+      onRight[i] = false;
+    }
+  }
+
+  /** Automatically plans a free module
+   */
+  public void autoPlan ()
+  {
+    if (sched == null)
+    {
+      sched = new ShukanSchedule (activeWeeks.length, MAX_ACTIV_PER_WEEK);
+      for (int i = 0; i < activeWeeks.length; i++)
+        if (activeWeeks[i] == 0) sched.kill (i);
+    }
+    int durall = 0;
+    for (int i = 0; i < activeWeeks.length; i++) durall += activeWeeks[i];
+    double period = durall / (float) (activ.length);
+    int remainder = 0;
+    int placed = 0;
+    int lastWeek = 0;
+    for (int i = 0; i < activeWeeks.length && placed < activ.length; i++)
+    {
+      remainder += activeWeeks[i];
+      while (remainder > period / 2 && placed < activ.length)
+      {
+        sched.add (i, placed++);
+        lastWeek = i;
+        remainder -= period;
+      }
+    }
+    while (placed < activ.length) sched.add (lastWeek, placed++);
+    scheduled = true;
+  }
+
+  /** Schedules all activities */
+  public void schedule (int[] weeks)
+  {
+    if (sched == null)
+    {
+      sched = new ShukanSchedule (activeWeeks.length, MAX_ACTIV_PER_WEEK);
+      for (int i = 0; i < activeWeeks.length; i++)
+        if (activeWeeks[i] == 0) sched.kill (i);
+    }
+    for (int i = 0; i < weeks.length; i++) sched.add (weeks[i], i);
+    scheduled = true;
+  }
+
+  /** Unschedules all the module */
+  public void unschedule ()
+  {
+    sched.clear ();
+    scheduled = false;
+  }
+
+  /** Schedules an activity */
+  public void schedule (int num, int week)
+  {
+    if (sched == null)
+    {
+      sched = new ShukanSchedule (activeWeeks.length, MAX_ACTIV_PER_WEEK);
+      for (int i = 0; i < activeWeeks.length; i++)
+        if (activeWeeks[i] == 0) sched.kill (i);
+    }
+    sched.add (week, num);
+    scheduled = true;
+  }
+
+  /** Returns the schedule status */
+  public boolean isScheduled ()
+  {
+    return (scheduled);
+  }
+
+  /** Returns the name of the module */
+  public String name ()
+  {
+    return (name);
+  }
+
+  /** Sets the module start week */
+  public void setStartWeek (int num)
+  {
+    for (int i = 0; i < num; i++) disableWeek (i);
+  }
+
+  /** Sets the module end week */
+  public void setEndWeek (int num)
+  {
+    for (int i = num + 1; i < activeWeeks.length; i++) disableWeek (i);
+  }
+
+  /** Sets a module holly week */
+  public void setHollyWeek (int num)
+  {
+    disableWeek (num);
+  }
+
+  /** Returns the activities */
+  public int[] activities ()
+  {
+    return (activ);
+  }
+
+  /** Returns the activity schedule */
+  public int[] schedule (int week)
+  {
+    return (sched.contents (week));
+  }
+
+  /** Returns the complete activity schedule */
+  public int[] schedule ()
+  {
+    return (sched.contents ());
+  }
+
+  /** Shift the selection leftwards */
+  public int left (int week, int ln)
+  {
+    return ((ln == 1) ? sched.left (week) : sched.left (week, week + ln - 1));
+  }
+
+  /** Shifts the selection rightwards */
+  public int right (int week, int ln)
+  {
+    return ((ln == 1) ? sched.right (week) : sched.right (week, week + ln - 1));
+  }
+
+  /** Returns the student load for the given week */
+  public int studentLoad (int week)
+  {
+    int[] sch = sched.contents (week);
+    int load = 0;
+    for (int i = 0; i < sch.length; i++) load += SLOAD[activ[sch[i]]];
+    return (load);
+  }
+
+  /** Returns a teacher load for the given week */
+  public int teacherLoad (int teacher, int week)
+  {
+    int[] sch = sched.contents (week);
+    int load = 0;
+    for (int i = 0; i < sch.length; i++)
+      for (int j = 0; j < affect[sch[i]].length; j++)
+        if (teacher == affect[sch[i]][j]) load += SLOAD[activ[sch[i]]];
+    return (load);
+  }
+
+  /** Affects activities to teachers */
+  public void setTeachers (int act, int[] teacher)
+  {
+    if (act == ACT_TP)
+    {
+      affectTP = teacher;
+      for (int i = 0; i < activ.length; i++)
+        if (activ[i] >= act) affect[i] = teacher;
+    }
+    else if (act == ACT_TD)
+    {
+      affectTD = teacher;
+      for (int i = 0; i < activ.length; i++)
+        if (activ[i] >= act && activ[i] < ACT_TP) affect[i] = teacher;
+    }
+    else
+    {
+      affectCM = teacher;
+      for (int i = 0; i < activ.length; i++)
+        if (activ[i] < ACT_TD) affect[i] = teacher;
+    }
+  }
+
+  /** Affects specific activity to teachers */
+  public void affectSpec (int act, int[] teacher)
+  {
+    affect[act] = teacher;
+  }
+
+  /** Sets an activity to be displayed on left */
+  public void setOnLeft (int act)
+  {
+    onRight[act] = false;
+    onLeft[act] = true;
+  }
+
+  /** Sets an activity to be displayed on right */
+  public void setOnRight (int act)
+  {
+    onLeft[act] = false;
+    onRight[act] = true;
+  }
+
+  /** Returns the activities to be displayed on left */
+  public boolean[] activitiesOnLeft ()
+  {
+    return (onLeft);
+  }
+
+  /** Returns the activities to be displayed on right */
+  public boolean[] activitiesOnRight ()
+  {
+    return (onRight);
+  }
+
+  /** Sets a subtitle to the module */
+  public void setSubtitle (String text)
+  {
+    subtitle = text;
+  }
+
+  /** Returns the subtitle (null by default) */
+  public String subtitle ()
+  {
+    return (subtitle);
+  }
+
+  /** Defines the module active weeks. */
+  public void setActiveWeeks (int[] aw)
+  {
+    activeWeeks = aw;
+  }
+
+  /** Disables a week activation */
+  public void disableWeek (int num)
+  {
+    activeWeeks[num] = 0;
+  }
+
+  /** Returns the module active weeks. */
+  public int[] activeWeeks ()
+  {
+    return (activeWeeks);
+  }
+
+  /** Returns the module progression. */
+  public String[] progression ()
+  {
+    String[] prog = new String[activ.length];
+    for (int i = 0; i < prog.length; i++) prog[i] = TYPES[activ[i]];
+    return (prog);
+  }
+
+  /** Returns the teachers for each kind of activities. */
+  public int[] teachers (int act)
+  {
+    if (act == ACT_TP) return (affectTP);
+    else if (act == ACT_TD) return (affectTD);
+    else return (affectCM);
+  }
+
+  /** Returns the specific teachers for all activities. */
+  public int[][] specTeachers ()
+  {
+    int[][] st = new int[activ.length][];
+    for (int i = 0; i < activ.length; i++)
+    {
+      int[] aff = affectCM;
+      if (activ[i] >= ACT_TP) aff = affectTP;
+      else if (activ[i] >= ACT_TD) aff = affectTD;
+
+      boolean ok = true;
+      if (affect[i].length != aff.length) ok = false;
+      else
+      {
+        for (int j = 0; ok && j < affect[i].length; j++)
+          if (affect[i][j] != aff[j]) ok = false;
+      }
+      st[i] = (ok ? new int[0] : affect[i]);
+    }
+    return (st);
+  }
+
+  /** Returns the set-on-left activities. */
+  public boolean[] onLeftActivities ()
+  {
+    return (onLeft);
+  }
+
+  /** Returns the set-on-right activities. */
+  public boolean[] onRightActivities ()
+  {
+    return (onRight);
+  }
+
+  /** Returns the count of activities. */
+  public int activityCount ()
+  {
+    return (activ == null ? 0 : activ.length);
+  }
+
+  /** Returns the week and activity at given position. */
+  public int select (int position)
+  {
+    return (sched.select (position));
+  }
+
+  /** Converts the module in a string */
+  public String toString ()
+  {
+    String s = name + " " + activ.length;
+    for (int i = 0; i < activ.length; i++)
+      s += " " + TYPES[activ[i]];
+    return s;
+  }
+
+  /** Exchanges the activities at given slots */
+  public void exchange (int a1, int a2)
+  {
+    int n1 = sched.identify (a1);
+    int n2 = sched.identify (a2);
+    System.out.println (n1 + " <--> " + n2);
+    int val = activ[n1];
+    activ[n1] = activ[n2];
+    activ[n2] = val;
+    int[] aff = affect[n1];
+    affect[n1] = affect[n2];
+    affect[n2] = aff;
+    boolean on = onLeft[n1];
+    onLeft[n1] = onLeft[n2];
+    onLeft[n2] = on;
+    on = onRight[n1];
+    onRight[n1] = onRight[n2];
+    onRight[n2] = on;
+  }
+}
diff --git a/shukan/ShukanQueue.java b/shukan/ShukanQueue.java
new file mode 100644
index 0000000..7fb44d5
--- /dev/null
+++ b/shukan/ShukanQueue.java
@@ -0,0 +1,107 @@
+package shukan;
+
+
+/** Bidirectional queues of activities */
+public class ShukanQueue
+{
+  /** Queue of activities */
+  private int[] queue;
+  /** Head position in the queue */
+  private int head = 0;
+  /** Number of actvities in the queue */
+  private int length = 0;
+
+
+  /** Creates a queue of given capacity */
+  public ShukanQueue (int capa)
+  {
+    queue = new int[capa];
+  }
+
+  /** Neutralizes the queue */
+  public void kill ()
+  {
+    queue = null;
+    head = 0;
+    length = 0;
+  }
+
+  /** Pushes a token at the right of the queue */
+  public void pushRight (int token)
+  {
+    if (queue != null && length < queue.length)
+      queue[(head + length++) % queue.length] = token;
+  }
+
+  /** Pushes a token at the left of the queue */
+  public void pushLeft (int token)
+  {
+    if (queue != null && length < queue.length)
+    {
+      if (--head < 0) head = queue.length - 1;
+      queue[head] = token;
+      length++;
+    }
+  }
+
+  /** Returns the contents of the queue */
+  public int[] contents ()
+  {
+    int[] contents = new int[length];
+    for (int i = 0; i < length; i++)
+      contents[i] = queue[(head + i) % queue.length];
+    return (contents);
+  }
+
+  /** Returns the length of the queue */
+  public int length ()
+  {
+    return (length);
+  }
+
+  /** Clears the queue */
+  public void clear ()
+  {
+    length = 0;
+  }
+
+  /** Returns whether the queue is neutralized */
+  public boolean killed ()
+  {
+    return (queue == null);
+  }
+
+  /** Returns whether the file is empty */
+  public boolean empty ()
+  {
+    return (queue == null || length == 0);
+  }
+
+  /** Returns whether the file is full */
+  public boolean full ()
+  {
+    return (queue == null || length == queue.length);
+  }
+
+  /** Withdraws and returns the head of the file */
+  public int popLeft ()
+  {
+    int token = -1;
+    if (length > 0 && length <= queue.length)
+    {
+      token = queue[head++];
+      if (head == queue.length) head = 0;
+      length --;
+    }
+    return (token);
+  }
+
+  /** Withdraws and returns the queue of the file */
+  public int popRight ()
+  {
+    int token = -1;
+     if (length > 0 && length <= queue.length)
+      token = queue[(head + --length) % queue.length];
+    return (token);
+  }
+}
diff --git a/shukan/ShukanSchedule.java b/shukan/ShukanSchedule.java
new file mode 100644
index 0000000..6c94de6
--- /dev/null
+++ b/shukan/ShukanSchedule.java
@@ -0,0 +1,178 @@
+package shukan;
+
+
+/** List of week queues of activities.
+  It features a queue for each week. */
+public class ShukanSchedule
+{
+  /** Bin capacity */
+  private int capacity = 0;
+  /** Sequences of bins */
+  private ShukanQueue[] binSet = null;
+
+
+  /** Create a list of queues */
+  public ShukanSchedule (int n, int capa)
+  {
+    capacity = capa;
+    binSet = new ShukanQueue[n];
+    for (int i = 0; i < n; i++) binSet[i] = new ShukanQueue (capa);
+  }
+
+  /** Kill the nth queue */
+  public void kill (int n)
+  {
+    binSet[n].kill ();
+  }
+
+  /** Return the contents of the nth queue */
+  public int[] contents (int n)
+  {
+    return (binSet[n].contents ());
+  }
+
+  /** Return the contents of the sluice */
+  public int[] contents ()
+  {
+    int[] sched = new int[100];
+    int act = 0;
+    for (int i = 0; i < binSet.length; i++)
+    {
+      int tl = binSet[i].length ();
+      for (int j = 0; j < tl; j++)
+      {
+        if (act == sched.length)
+        {
+          int[] tmp = new int[sched.length + 100];
+          for (int k = 0; k < sched.length; k++) tmp[k] = sched[k];
+          sched = tmp;
+        }
+        sched[act++] = i;
+      }
+    }
+    int[] tmp = new int[act];
+    for (int i = 0; i < act; i++) tmp[i] = sched[i];
+    return (tmp);
+  }
+
+  /** Clear the queues */
+  public void clear ()
+  {
+    for (int i = 0; i < binSet.length; i++) binSet[i].clear ();
+  }
+
+  /** Add a token to the nth queue */
+  public void add (int n, int token)
+  {
+    binSet[n].pushRight (token);
+  }
+
+  /** Push a token leftwards the nth queue */
+  public int left (int n)
+  {
+    if (binSet[n].empty ()) return (n);
+    int left = n - 1;
+    while (left >= 0 && binSet[left].killed ()) left--;
+    if (left >= 0 && ! binSet[left].full ())
+    {
+      binSet[left].pushRight (binSet[n].popLeft ());
+      return (left);
+    }
+    return (n);
+  }
+
+  /** Push a token rightwards the nth queue */
+  public int right (int n)
+  {
+    if (binSet[n].empty ()) return (n);
+    int right = n + 1;
+    while (right < binSet.length && binSet[right].killed ()) right++;
+    if (right < binSet.length && ! binSet[right].full ())
+    {
+      binSet[right].pushLeft (binSet[n].popRight ());
+      return (right);
+    }
+    return (n);
+  }
+
+  /** Push tokens leftwards inside the queue */
+  public int left (int n1, int n2)
+  {
+    while (binSet[n1].killed () && n1 < n2) n1 ++;
+    while (binSet[n2].killed () && n2 > n1) n2 --;
+    for (int i = n1; i < n2; i ++) left (i + 1);
+    return (n1);
+  }
+
+  /** Push tokens rightwards inside the queue */
+  public int right (int n1, int n2)
+  {
+    while (binSet[n1].killed () && n1 < n2) n1 ++;
+    while (binSet[n2].killed () && n2 > n1) n2 --;
+    for (int i = n2; i > n1; i --) right (i - 1);
+    return (n1);
+  }
+
+  /** Returns the week and activity at given position. */
+  public int select (int pos)
+  {
+    int selBin = pos / capacity;
+    int selAct = pos % capacity;
+    if (binSet[selBin].length () <= selAct)
+    {
+      boolean looking = true;
+      // Looking frontwards
+      int sbin = selBin;
+      while (looking && sbin >= 0)
+      {
+        if (binSet[sbin].length () > 0)
+        {
+          looking = false;
+          selBin = sbin;
+          selAct = binSet[sbin].length () - 1;
+        }
+        sbin --;
+      }
+      if (looking)
+      {
+        // Looking backwards
+        sbin = selBin + 1;
+        while (looking && sbin < binSet.length)
+        {
+          if (binSet[sbin].length () > 0)
+          {
+            looking = false;
+            selBin = sbin;
+            selAct = 0;
+          }
+          sbin ++;
+        }
+      }
+      if (looking)
+      {
+        selBin = sbin;
+        selAct = 0;
+        return (-1);
+      }
+    }
+    return (selBin * capacity + selAct);
+  }
+
+  /** Returns the activity number of the given slot (week + activity) */
+  public int identify (int slot)
+  {
+    int activ = 0;
+    for (int i = 0; i < binSet.length; i++)
+      if (slot < capacity)
+      {
+        activ += slot;
+        i = binSet.length;
+      }
+      else
+      {
+        activ += binSet[i].length ();
+        slot -= capacity;
+      }
+    return (activ);
+  }
+}
diff --git a/shukan/ShukanSemester.java b/shukan/ShukanSemester.java
new file mode 100644
index 0000000..0493da8
--- /dev/null
+++ b/shukan/ShukanSemester.java
@@ -0,0 +1,163 @@
+package shukan;
+import java.util.Calendar;
+import java.text.DecimalFormat;
+
+
+/** Semester arrangement */
+public class ShukanSemester
+{
+  /** Month names */
+  private static final String[] MONTH_FULL_NAMES = {
+    "janvier", "fevrier", "mars", "avril", "mai", "juin",
+    "juillet", "aout", "septembre", "octobre", "novembre", "decembre"};
+  /** Month short names */
+  private static final String[] MONTH_ACRONYMS = {
+    "janv.", "fev.", "mars", "avr.", "mai", "juin",
+    "juil.", "aout", "sept.", "oct.", "nov.", "dec."};
+
+  /** Year of cursus start */
+  private int startYear;
+  /** Names of each week */
+  private String[] weekNames;
+  /** Maximal duration of longest week (in hours) */
+  private int standardWeekDuration;
+  /** Maximal duration of each week (in hours) */
+  private int[] weekDurations;
+  /** Number of first cursus week */
+  private int firstWeek;
+  /** Number of the last week in the cursus year (could be inferred) */
+  private int lastWeekOfYear;
+
+
+  /** Creates a semester from a directory name */
+  public ShukanSemester (int year, int first, int length, int duration)
+  {
+    startYear = year;
+    Calendar cal = Calendar.getInstance ();
+    cal.set (Calendar.YEAR, year);
+    lastWeekOfYear = cal.getActualMaximum (Calendar.WEEK_OF_YEAR);
+    firstWeek = first;
+
+    weekNames = new String[length];
+    standardWeekDuration = duration;
+    weekDurations = new int[length];
+    int weekNo = first;
+    DecimalFormat df = new DecimalFormat ("00");
+    for (int i = 0; i < length; i++)
+    {
+      cal.set (Calendar.WEEK_OF_YEAR, weekNo);
+      cal.set (Calendar.DAY_OF_WEEK, 0);
+      weekNames[i] = df.format (cal.get (Calendar.DAY_OF_MONTH))
+                     + " " + MONTH_ACRONYMS[cal.get (Calendar.MONTH)];
+      weekDurations[i] = duration;
+      if (++weekNo > lastWeekOfYear) weekNo = 1;
+    }
+  }
+
+  /** Sets a week duration */
+  public boolean setDuration (int week, int duration)
+  {
+    if (week > lastWeekOfYear) return false;
+    week -= firstWeek;
+    if (week < 0) week += lastWeekOfYear;
+    if (week >= weekDurations.length) return false;
+    weekDurations[week] = duration;
+    return true;
+  }
+
+  /** Returns the number of weeks */
+  public int size ()
+  {
+    return (weekDurations.length);
+  }
+
+  /** Returns the standard week duration */
+  public int standardWeekDuration ()
+  {
+    return (standardWeekDuration);
+  }
+
+  /** Returns the week durations */
+  public int[] weekDurations ()
+  {
+    return (weekDurations);
+  }
+
+  /** Returns a copy of the week durations */
+  public int[] copyWeekDurations ()
+  {
+    int[] wd = new int[weekDurations.length];
+    for (int i = 0; i < weekDurations.length; i++) wd[i] = weekDurations[i];
+    return (wd);
+  }
+
+  /** Returns the semesterLength */
+  public int length ()
+  {
+    return (weekDurations.length);
+  }
+
+  /** Returns the week numbers */
+  public int[] weekNumbers ()
+  {
+    int[] nb = new int[weekDurations.length];
+    int num = firstWeek;
+    for (int i = 0; i < nb.length; i++)
+    {
+      nb[i] = num++;
+      if (num > lastWeekOfYear) num = 1;
+    }
+    return (nb);
+  }
+
+  /** Returns a week number */
+  public int weekNumber (int weekIndex)
+  {
+    int wk = firstWeek + weekIndex;
+    if (wk > lastWeekOfYear) wk -= lastWeekOfYear;
+    return (wk);
+  }
+
+  /** Returns the start week number */
+  public int startWeekNumber ()
+  {
+    return (firstWeek);
+  }
+
+  /** Returns the last week of year number */
+  public int lastWeekOfYearNumber ()
+  {
+    return (lastWeekOfYear);
+  }
+
+  /** Returns the index of a year week */
+  public int weekIndex (int week)
+  {
+    if (week < firstWeek) return (week + lastWeekOfYear - firstWeek);
+    else return (week - firstWeek);
+  }
+
+  /** Converts semester to string */
+  public String toString ()
+  {
+    String s = new String ();
+    for (int i = 0; i < weekNames.length; i++) s += weekNames[i] + "\n";
+    return s;
+  }
+
+  /** Returns the present date in text format */
+  public String date ()
+  {
+    Calendar kal = Calendar.getInstance ();
+    DecimalFormat format = new DecimalFormat ("00");
+    return ((kal.get (Calendar.YEAR) % 100)
+            + format.format (kal.get (Calendar.MONTH) + 1)
+            + format.format (kal.get (Calendar.DAY_OF_MONTH)));
+  }
+
+  /** Returns the year of cursus start */
+  public int yearOfFirstWeek ()
+  {
+    return (startYear);
+  }
+}
diff --git a/shukan/ShukanTex.java b/shukan/ShukanTex.java
new file mode 100644
index 0000000..f3b20d5
--- /dev/null
+++ b/shukan/ShukanTex.java
@@ -0,0 +1,373 @@
+package shukan;
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.util.Calendar;
+
+
+
+/** LaTeX file editor for Shukan */
+public class ShukanTex
+{
+  /** Shukan data base */
+  private ShukanData data;
+  /** Year suffix name */
+  private String dateSuffix;
+  /** Year prefix name */
+  private String dateName;
+
+  /** File suffix */
+  private final static String SUFFIX = ".tex";
+  /** Load directory prefix */
+  private final static String LATEX_DIR_PREFIX = "loads";
+  /** Teacher load file prefix */
+  private final static String LOAD_FILE_NAME = "charges";
+  /** Page width */
+  private final static int PICT_WIDTH = 180;
+  /** Page height */
+  private final static int PICT_HEIGHT = 270;
+  /** Page top margin */
+  private final static int TOP_MARGIN = -30;
+  /** Page left margin */
+  private final static int LEFT_MARGIN = -20;
+
+  /** Month numbers */
+  private static final String[] MONTH_SHORT = {
+    "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"};
+  /** Month french names */
+  private static final String[] MONTH_NAME = {
+    "janvier", "f\\'evrier", "mars", "avril", "mai", "juin",
+    "juillet", "ao\\^ut", "septembre", "octobre", "novembre", "d\\'ecembre"};
+
+
+  /** Creates a LaTeX file editor for semester data */
+  public ShukanTex (ShukanData data)
+  {
+    this.data = data;
+
+    // Prepares the date suffix and full name
+    Calendar kal = Calendar.getInstance ();
+    int jour = kal.get (Calendar.DAY_OF_MONTH);
+    dateSuffix = (kal.get (Calendar.YEAR) - 2000)
+                 + MONTH_SHORT[kal.get (Calendar.MONTH)]
+                 + (jour < 10 ? "0" + jour : "" + jour);
+    dateName = kal.get (Calendar.DAY_OF_MONTH)
+               + " " + MONTH_NAME[kal.get (Calendar.MONTH)] + " "
+               + kal.get (Calendar.YEAR);
+
+    // Starts the edition process
+    try
+    {
+      int n = data.countOfCursus ();
+      for (int i = 0; i < n; i++)
+      {
+        data.toggleCursus (true);
+        write ();
+      }
+      writeTeacherLoad ();
+    }
+    catch (Exception ex)
+    {
+      System.out.println ("Texing soucy");
+    }
+  }
+
+  /** Edits the semester */
+  public void write () throws IOException
+  {
+    int[] weekNo = data.weekNumbers ();
+    int nbWeek = weekNo.length;
+    double weekHeight = PICT_HEIGHT / (nbWeek + 2.);
+    int nbMod = data.numberOfModules ();
+    double modWidth = PICT_WIDTH / (nbMod + 1.);
+
+    DecimalFormat df = new DecimalFormat ("0.0");
+    DecimalFormatSymbols dfs = new DecimalFormatSymbols ();
+    dfs.setDecimalSeparator ('.');
+    df.setDecimalFormatSymbols (dfs);
+
+    // Opens the LaTeX file
+    File texDir = new File (LATEX_DIR_PREFIX + "_" + dateSuffix);
+    if (! texDir.exists ()) texDir.mkdir ();
+    File texFile = new File (texDir,
+                             data.cursusName () + "_" + dateSuffix + SUFFIX);
+    if (texFile.exists ()) texFile.delete ();
+    else texFile.createNewFile ();
+    PrintWriter tex = new PrintWriter (texFile);
+
+    // Edits the preamble */
+    tex.println ("\\documentclass[francais,a4,11pt]{article}");
+    tex.println ("\\usepackage[francais]{babel}");
+    tex.println ("\\usepackage{graphics}");
+    tex.println ("\\usepackage{color}");
+    tex.println ("\\setlength{\\unitlength}{1.0mm}");
+    tex.println ("\\textheight " + df.format (PICT_HEIGHT / 10.) + "cm");
+    tex.println ("\\textwidth " + df.format (PICT_WIDTH / 10.) + "cm");
+    tex.println ("\\topmargin " + df.format (TOP_MARGIN / 10.) + "cm");
+    tex.println ("\\headheight 0.0cm");
+    tex.println ("\\headsep 0.0cm");
+    tex.println ("\\oddsidemargin " + df.format (LEFT_MARGIN / 10.) + "cm");
+    tex.println ("\\evensidemargin " + df.format (LEFT_MARGIN / 10.) + "cm");
+    tex.println ("\\pagestyle{empty}");
+    tex.println ("\\begin{document}\n");
+    tex.println ("\\begin{picture}("
+                 + PICT_WIDTH + "," + PICT_HEIGHT + ")(0,0)");
+    tex.println ("\\put(0," + df.format (weekHeight * (nbWeek + 1))
+                 + "){\\makebox(" + PICT_WIDTH + "," + df.format (weekHeight)
+                 + ")[l]{\\LARGE \\bf Progressions " + data.scolarYear () + "/"
+                 + (data.scolarYear () + 1) + " -- "
+                 + data.cursusName () + "}}");
+    tex.println ("\\put(0," + df.format (weekHeight * (nbWeek + 1))
+                 + "){\\makebox(" + PICT_WIDTH + "," + df.format (weekHeight)
+                 + ")[r]{\\LARGE \\bf " + dateName + "}}");
+    tex.println ("\\multiput(0,0)(0," + df.format (weekHeight)
+                 + "){" + (nbWeek + 1) + "}{\\line(1,0){"
+                 + df.format(modWidth * (nbMod + 1)) + "}}");
+    tex.println ("\\multiput(" + df.format (modWidth / 2) + ",0)("
+                 + df.format (modWidth) + ",0){" + (nbMod + 1)
+                 + "}{\\line(0,1){" + df.format (weekHeight * (nbWeek + 1))
+                 + "}}");
+ 
+    // Edits the week numbers */
+    for (int i = 0; i < nbWeek; i++)
+    {
+      tex.println ("\\put(0," + df.format (weekHeight * i) + "){\\makebox("
+                   + df.format (modWidth / 2) + "," + df.format (weekHeight)
+                   + "){S" + weekNo[nbWeek - 1 - i] + "}}");
+    }
+
+    // Edits the module names */
+    String[] modNames = data.moduleNames ();
+    for (int i = 0; i < nbMod; i++)
+    {
+      tex.println ("\\put(" + df.format (modWidth * (i + 0.5)) + ","
+                   + df.format (weekHeight * (nbWeek + 0.5)) + "){\\makebox("
+                   + df.format (modWidth) + "," + df.format (weekHeight / 2)
+                   + "){\\scriptsize \\bf " + modNames[i] + "}}");
+
+      String st = data.subtitle (i);
+      if (st != null)
+        tex.println ("\\put(" + df.format (modWidth * (i + 0.5)) + ","
+                     + df.format (weekHeight * (nbWeek)) + "){\\makebox("
+                     + df.format (modWidth) + "," + df.format (weekHeight / 2)
+                     + "){\\tiny \\bf " + st + "}}");
+    }
+
+    // Edits the activities */
+    for (int i = 0; i < nbMod; i++)
+    {
+      int[] act = data.activities (i);
+      boolean[] onLeft = data.onLeft (i);
+      boolean[] onRight = data.onRight (i);
+      double lx = modWidth * (i + 1);
+      int numact = 0;
+      for (int j = 0; j < nbWeek; j++)
+      {
+        int[] sched = data.scheduleInWeek (i, j);
+        for (int k = 0; k < sched.length; k++)
+        {
+          double x = lx;
+          if (onLeft[numact]) x -= modWidth / 4.;
+          else if (onRight[numact]) x += modWidth / 4.;
+          numact++;
+          double y = weekHeight * (nbWeek - j - (1.5 + 2 * k) / 10.);
+          switch (act[sched[k]])
+          {
+            case ShukanModule.ACT_CM :
+              tex.println ("\\put(" + df.format (x) + "," + df.format (y)
+                           + "){\\circle*{1}}");
+              break;
+            case ShukanModule.ACT_EV2 :
+              tex.println ("\\put(" + df.format (x-1) + "," + df.format (y-1)
+                           + "){\\makebox(2,2){$\\ast\\ast$}}");
+              break;
+            case ShukanModule.ACT_EV1 :
+              tex.println ("\\put(" + df.format (x-1) + "," + df.format (y-1)
+                           + "){\\makebox(2,2){$\\ast$}}");
+              break;
+            case ShukanModule.ACT_TD :
+              tex.println ("\\put(" + df.format (x) + "," + df.format (y)
+                           + "){\\circle{1}}");
+              break;
+            case ShukanModule.ACT_TM :
+              tex.println ("\\put(" + df.format (x) + "," + df.format (y)
+                           + "){\\circle{1}}");
+              tex.println ("\\put(" + df.format (x-1) + "," + df.format (y)
+                           + "){\\line(1,0){2}}");
+              break;
+            case ShukanModule.ACT_TV :
+              tex.println ("\\put(" + df.format (x) + "," + df.format (y)
+                           + "){\\circle{1}}");
+              tex.println ("\\put(" + df.format (x-1) + "," + df.format (y-1)
+                           + "){\\makebox(2,2){X}}");
+              break;
+            case ShukanModule.ACT_SD :
+              tex.println ("\\put(" + df.format (x) + "," + df.format (y)
+                           + "){\\circle{1}}");
+              tex.println ("\\put(" + df.format (x+1) + "," + df.format (y-1)
+                           + "){s}");
+              break;
+            case ShukanModule.ACT_SM :
+              tex.println ("\\put(" + df.format (x) + "," + df.format (y)
+                           + "){\\circle{1}}");
+              tex.println ("\\put(" + df.format (x-1) + "," + df.format (y)
+                           + "){\\line(1,0){2}}");
+              tex.println ("\\put(" + df.format (x+1) + "," + df.format (y-1)
+                           + "){s}");
+              break;
+            case ShukanModule.ACT_TP4 :
+              tex.println ("\\put(" + df.format (x-1) + ","
+                           + df.format (y-0.5) + "){\\framebox(1,1)}");
+              tex.println ("\\put(" + df.format (x+1) + ","
+                           + df.format (y-0.5) + "){\\framebox(1,1)}");
+              break;
+            case ShukanModule.ACT_TP2 :
+              tex.println ("\\put(" + df.format (x-0.5) + ","
+                           + df.format (y-0.5) + "){\\framebox(1,1)}");
+              break;
+            case ShukanModule.ACT_TQ2 :
+              tex.println ("\\put(" + df.format (x-0.5) + ","
+                           + df.format (y-0.5) + "){\\framebox(1,1){+}}");
+              break;
+            case ShukanModule.ACT_SP :
+              tex.println ("\\put(" + df.format (x-0.5) + ","
+                           + df.format (y-0.5) + "){\\framebox(1,1)}");
+              tex.println ("\\put(" + df.format (x+1) + "," + df.format (y-1)
+                           + "){s}");
+              break;
+            case ShukanModule.ACT_SQ :
+              tex.println ("\\put(" + df.format (x-0.5) + ","
+                           + df.format (y-0.5) + "){\\framebox(1,1){+}}");
+              tex.println ("\\put(" + df.format (x+1) + "," + df.format (y-1)
+                           + "){s}");
+              break;
+          }
+        }
+      }
+    }
+
+    // Edits the week loads */
+    int[] durations = data.weekDurations ();
+    for (int i = 0; i < nbWeek; i++)
+    {
+      if (durations[nbWeek - 1 - i] != 0)
+        tex.println ("\\put(" + df.format (modWidth * (nbMod + 0.5)) + ","
+                     + df.format (weekHeight * i) + "){\\makebox("
+                     + df.format (modWidth / 2) + "," + df.format (weekHeight)
+                     + "){" + data.studentLoad (nbWeek - 1 - i) + "}}");
+    }
+
+    // Terminates the file edition
+    tex.println ("\\end{picture}");
+    tex.println ("\\end{document}");
+    tex.close ();
+  }
+
+  /** Edits teacher load files */
+  public void writeTeacherLoad () throws IOException
+  {
+    int[] weekNo = data.weekNumbers ();
+    int nbWeek = weekNo.length;
+    String[] teach = data.teachers ();
+
+    // Opens the teachers directory and file
+    File teachDir = new File (LATEX_DIR_PREFIX + "_" + dateSuffix);
+    if (! teachDir.exists ()) teachDir.mkdir ();
+    File teacherFile = new File (teachDir,
+                                 LOAD_FILE_NAME + dateSuffix + SUFFIX);
+    if (teacherFile.exists ()) teacherFile.delete ();
+    else teacherFile.createNewFile ();
+    PrintWriter tex = new PrintWriter (teacherFile);
+
+    // Edits the preamble */
+    tex.println ("\\documentclass[francais,a4paper,landscape,11pt]{article}");
+    tex.println ("\\usepackage[francais]{babel}");
+    tex.println ("\\usepackage{graphics}");
+    tex.println ("\\usepackage{color}");
+    tex.println ("\\setlength{\\unitlength}{1.0mm}");
+    tex.println ("\\textheight 15.0cm");
+    tex.println ("\\textwidth 24.0cm");
+    tex.println ("\\topmargin 0.0cm");
+    tex.println ("\\headheight 0.0cm");
+    tex.println ("\\headsep 0.0cm");
+    tex.println ("\\oddsidemargin -1.0cm");
+    tex.println ("\\evensidemargin -1.0cm");
+    tex.println ("\\pagestyle{empty}");
+    tex.println ("\\begin{document}\n");
+    tex.println ("\\begin{center}");
+
+    tex.println ("{\\LARGE \\bf Charges hebdomadaires "
+                 + data.scolarYear () + "/" + (data.scolarYear () + 1)
+                 + "}");
+    tex.println ("\\begin{picture}(20,1) \\end{picture}");
+    tex.println ("{\\large \\bf (" + dateName + ")}\\\\");
+    tex.println ("\\begin{picture}(4,6)(0,0) \\end{picture} \\\\");
+
+    // Write the week bar
+    tex.print ("\\begin{tabular}{|l||");
+    for (int j = 0; j < nbWeek; j++) tex.print ("r|");
+    tex.print ("}\n\\hline\n");
+    for (int j = 0; j < nbWeek; j++) tex.print (" & S" + weekNo[j]);
+    tex.println (" \\\\\n\\hline \\hline");
+
+    for (int i = 0; i < teach.length; i++)
+    {
+      tex.print (data.teacherName (i));
+      for (int j = 0; j < nbWeek; j++)
+        tex.print (" & " + data.teacherLoad (i, j));
+      tex.println ("\\\\ \\hline");
+    }
+    tex.println ("\\end{tabular} \\\\");
+    tex.println ("\\end{center}");
+
+    tex.println ("{\\bf L\\'egende des grilles de progressions :} \\\\");
+    tex.println ("\\begin{tabular}{llcllcll}");
+
+    tex.print ("\\begin{picture}(4,4)(0,0) ");
+    tex.print ("\\put(2,1){\\circle*{1}} ");
+    tex.println ("\\end{picture}");
+    tex.println ("& CM & \\begin{picture}(10,1) \\end{picture} ");
+
+    tex.print ("& \\begin{picture}(4,4)(0,0) ");
+    tex.print ("\\put(2,1){\\circle{1}} ");
+    tex.println ("\\end{picture}");
+    tex.println ("& TD en salle de cours ");
+    tex.println ("& \\begin{picture}(10,1) \\end{picture} ");
+
+    tex.print ("& \\begin{picture}(4,4)(0,0) ");
+    tex.print ("\\put(1.5,1){\\framebox(1,1)} ");
+    tex.println ("\\end{picture}");
+    tex.println ("& TP en salle machine\\\\");
+
+    tex.print ("\\begin{picture}(4,4)(0,0) ");
+    tex.print ("\\put(1,0){\\makebox(2,2){$\\ast$}} ");
+    tex.println ("\\end{picture}");
+    tex.println ("& Evaluation d'une heure ");
+
+    tex.print ("& & \\begin{picture}(4,4)(0,0) ");
+    tex.print ("\\put(2,1){\\circle{1}} ");
+    tex.print ("\\put(1,1){\\line(1,0){2}} ");
+    tex.println ("\\end{picture}");
+    tex.println ("& TD en salle machine (TM) ");
+
+    tex.print ("& & \\begin{picture}(4,4)(0,0) ");
+    tex.print ("\\put(1.5,1){\\framebox(1,1){+}} ");
+    tex.println ("\\end{picture}");
+    tex.println ("& TP en salle de cours\\\\");
+
+    tex.print ("\\begin{picture}(4,4)(0,0) ");
+    tex.print ("\\put(1,0){\\makebox(2,2){$\\ast\\ast$}} ");
+    tex.println ("\\end{picture}");
+    tex.println ("& Evaluation de deux heures ");
+
+    tex.print ("& & .s & SAe ");
+
+    tex.print ("& & .s & SAe");
+
+    tex.println ("\\end{tabular}");
+    tex.println ("\\end{document}");
+    tex.close ();
+  }
+}
diff --git a/shukan/ShukanView.java b/shukan/ShukanView.java
new file mode 100644
index 0000000..66e87c6
--- /dev/null
+++ b/shukan/ShukanView.java
@@ -0,0 +1,379 @@
+package shukan;
+import javax.swing.JPanel;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+
+
+/** Graphical view for Shukan planner.
+  */
+public class ShukanView extends JPanel
+{
+  /** Version number */
+  public static final long serialVersionUID = 2L;
+
+  /** Font type */
+  //private final int FONT = GLUT.BITMAP_HELVETICA_12;
+
+  /** Max window width */
+  private final int MAX_WIDTH = 1610;
+  /** Max window height */
+  private final int MAX_HEIGHT = 960;
+  /** Security margin at the window border for other applications */
+  private final int SECURITY_MARGIN = 70;
+
+  /** Maximal height of a text line */
+  private final int TEXT_MAX_HEIGHT = 15;
+  /** Minimal height of a text line */
+  private final int TEXT_MIN_HEIGHT = 10;
+  /** Standard height of a text line */
+  private final int STD_TEXT_HEIGHT = 13;
+
+  /** Standard week column width */
+  private final static int STD_WEEK_WIDTH = 30;
+  /** Standard activity symbol width */
+  private final static int STD_ACTIV_WIDTH = 6;
+  /** Standard number of modules */
+  private final static int STD_MODULES_NUMBER = 14;
+  /** Standard number of weeks */
+  private final static int STD_WEEKS_NUMBER = 20;
+
+  /** Standard application width */
+  private final static int STD_APPLI_WIDTH =
+                           STD_WEEK_WIDTH * (STD_WEEKS_NUMBER + 2);
+  /** Standard application height */
+  private final int STD_APPLI_HEIGHT =
+                    STD_TEXT_HEIGHT * 3 * (STD_MODULES_NUMBER + 1);
+
+  /** Week column actual width */
+  private int weekWidth = STD_WEEK_WIDTH;
+  /** Standard activity symbol actual width */
+  private int activWidth = STD_ACTIV_WIDTH;
+  /** Number of weeks to display */
+  private int nbWeeks = STD_WEEKS_NUMBER;
+  /** Number of modules to display */
+  private int nbModules = STD_MODULES_NUMBER;
+  /** Height of a text line */
+  private int textHeight = STD_TEXT_HEIGHT;
+  /** Application actual width */
+  private int appliWidth = STD_APPLI_WIDTH;
+  /** Application actual height */
+  private int appliHeight = STD_APPLI_HEIGHT;
+
+  /** Height of the font characters */
+  private int fontHeight = 10;
+  /** Font metrics features */
+  private FontMetrics fontMetrics;
+
+
+  /** Background color */
+  private final Color BACK_COLOR = Color.WHITE;
+  /** Grid color */
+  private final Color GRID_COLOR = Color.BLACK;
+  /** Free module weeks color */
+  private final Color HOLLY_COLOR = new Color (0.3f, 0.7f, 0.7f);
+  /** Inactive parts of weeks color */
+  private final Color INACTIVE_COLOR = new Color (0.5f, 0.5f, 0.5f);
+  /** Frame borders color */
+  private final Color ACTIVE_COLOR = new Color (0.6f, 0.6f, 0.9f);
+  /** Selected activity color */
+  private final Color REACTIVE_COLOR = new Color (0.7f, 0.9f, 0.5f);
+  /** Frame borders color */
+  private final Color FRAME_COLOR = Color.BLACK;
+  /** Text color */
+  private final Color TEXT_COLOR = Color.BLACK;
+  /** Selected text color */
+  private final Color SELECTED_TEXT_COLOR = Color.WHITE;
+  /** Unselectable text color */
+  private final Color UNSEL_TEXT_COLOR = new Color (0.6f, 0.6f, 0.6f);
+  /** Selected slot central color */
+  private final Color SELECTION_COLOR = new Color (0.6f, 0.6f, 0.6f);
+
+  /** File manager */
+  private ShukanIO myIO = null;
+  /** Displayed data */
+  private ShukanData data = null;
+
+
+
+  /** Creates the shukan viewer.
+   */
+  public ShukanView (ShukanData data, ShukanIO myIO)
+  {
+    this.data = data;
+    this.myIO = myIO;
+  }
+
+  /** Saves Shukan data in a file.
+   */
+  public void saveData ()
+  {
+    myIO.save ();
+  }
+
+  /** Sets the initial application size.
+   */
+  public void restrictSize (int width, int height)
+  {
+    adaptSize (width, height);
+  }
+
+  /** Returns the display area width.
+   */
+  public int displayWidth ()
+  {
+    return (appliWidth);
+  }
+
+  /** Returns the display area height.
+   */
+  public int displayHeight ()
+  {
+    return (appliHeight);
+  }
+
+  /** Draws Shukan view. 
+    */
+  public void paintComponent (Graphics g)
+  {
+    int w = getWidth ();
+    int h = getHeight ();
+    adaptSize (w, h);
+
+    Graphics2D g2 = (Graphics2D) g.create ();
+    g2.setFont (new Font ("Helvetica", 0, 12));
+    fontMetrics = g2.getFontMetrics ();
+    fontHeight = fontMetrics.getAscent ();
+
+    g2.setColor (BACK_COLOR);
+    drawBox (g2, appliWidth - w, appliHeight - h, w, h);
+    displayCalendar (g2);
+  }
+
+ 
+  /** Detects a zone from window coords.
+   */
+  public boolean select (int x, int y, boolean zone)
+  {
+    // Out of the active part of the window
+    if (y < textHeight || y > appliHeight - 2 * textHeight) return (false);
+
+    // Module detection
+    y -= textHeight;
+    int selMod = y / (3 * textHeight);
+
+    // Module selection
+    if (x < 2 * weekWidth) return (data.activate (selMod));
+    // Activity selection
+    x -= 2 * weekWidth;
+    return (data.activate (selMod, (x / weekWidth), zone));
+  }
+
+
+  /** Detects an activity from window coords.
+   */
+  public boolean selectActivity (int x, int y, boolean zone)
+  {
+    // Out of the active part of the window
+    if (y < textHeight || y > appliHeight - 2 * textHeight) return (false);
+
+    // Module detection
+    y -= textHeight;
+    int selMod = y / (3 * textHeight);
+
+    // Module selection
+    if (x < 2 * weekWidth) return (data.activateAct (selMod));
+    // Activity selection
+    x -= 2 * weekWidth;
+    int selw = x / weekWidth;
+    int seln = (x - (selw * weekWidth)) / activWidth;
+    return (data.select (selMod,
+                         selw * ShukanModule.MAX_ACTIV_PER_WEEK + seln,
+                         zone));
+  }
+
+
+  /** Updates the application size.
+   */
+  private void adaptSize (int width, int height)
+  {
+    if (data != null)
+    {
+      nbWeeks = data.semesterSize ();
+      nbModules = data.numberOfModules ();
+
+      // Height
+      textHeight = (int) (height / (3.0f * (nbModules + 1)));
+      appliHeight = textHeight * 3 * (nbModules + 1);
+
+      // Width
+      activWidth = width / (ShukanModule.MAX_ACTIV_PER_WEEK * (nbWeeks + 2));
+      weekWidth = activWidth * ShukanModule.MAX_ACTIV_PER_WEEK;
+      appliWidth = weekWidth * (nbWeeks + 2);
+    }
+    else
+    {
+      appliWidth = STD_APPLI_WIDTH;
+      appliHeight = STD_APPLI_HEIGHT;
+    }
+  }
+ 
+  /** Displays the calendar grid background.
+   */
+  private void displayCalendar (Graphics2D g2)
+  {
+    // Selection
+    int selMod = data.selectedModule ();
+    if (selMod != -1)
+    {
+      int selWeek = data.selectedWeek ();
+      if (selWeek != -1)
+      {
+        int selLength = data.selectedLength ();
+        g2.setColor (ACTIVE_COLOR);
+        int x = (selWeek + 2) * weekWidth;
+        int y = appliHeight - textHeight - (selMod + 1) * textHeight * 3;
+        drawBox (g2, x, y, weekWidth * selLength, textHeight * 3);
+      }
+      else
+      {
+        int sa = data.selectedActivity ();
+        if (sa != -1)
+        {
+          g2.setColor (REACTIVE_COLOR);
+          drawBox (g2, sa * activWidth + 2 * weekWidth,
+                   appliHeight - textHeight - (selMod + 1) * textHeight * 3,
+                   activWidth * data.selectedLength (), textHeight * 3);
+        }
+      }
+    }
+
+    // Modules holly periods
+    int[] durations = data.weekDurations ();
+    g2.setColor (HOLLY_COLOR);
+    for (int j = 0; j < nbModules; j++)
+    {
+      int[] aw = data.activeWeeks (j);
+      for (int i = 0; i < nbWeeks; i++)
+        if (aw[i] == 0 && durations[i] != 0)
+        {
+          drawBox (g2, (2 + i) * weekWidth,
+                       appliHeight + (2 - 3 * (j + 2)) * textHeight,
+                       weekWidth, 3 * textHeight);
+        }
+    }
+
+    // Holydays
+    int wd = data.standardWeekDuration ();
+    g2.setColor (INACTIVE_COLOR);
+    for (int i = 0; i < nbWeeks; i++)
+      if (durations[i] != wd)
+      {
+        int start = (int) ((durations[i] * weekWidth) / (float) wd);
+        drawBox (g2, (2 + i) * weekWidth + start, 2 * textHeight,
+                     weekWidth - start, appliHeight - 3 * textHeight);
+      }
+
+    g2.setColor (GRID_COLOR);
+    // Columns
+    for (int i = 2; i <= nbWeeks + 1; i++)
+      drawVLine (g2, i * weekWidth, 0, appliHeight);
+    // Lines
+    for (int i = 0; i <= nbModules ; i++)
+      drawHLine (g2, 0, (2 + 3 * i) * textHeight, appliWidth);
+
+    // Texts : semester and load name
+    drawText (g2, 0, appliHeight - textHeight,
+                  2 * weekWidth, textHeight, data.cursusName ());
+    drawText (g2, 0, textHeight,
+                  2 * weekWidth, textHeight, data.loadName ());
+    // Texts : weeks
+    int[] weekNumbers = data.weekNumbers ();
+    for (int i = 0; i < nbWeeks; i++)
+    {
+      drawText (g2, (i + 2) * weekWidth, appliHeight - textHeight,
+                    weekWidth, textHeight, "S" + weekNumbers[i]);
+      drawText (g2, (i + 2) * weekWidth, textHeight,
+                    weekWidth, textHeight, "" + data.computeLoad (i));
+      drawText (g2, (2 + i) * weekWidth, 0,
+                    weekWidth, textHeight, "/" + durations[i]);
+    }
+    // Texts : modules
+    String[] modNames = data.moduleNames ();
+    for (int i = 0; i < nbModules; i++)
+      drawText (g2, 0, appliHeight - ((i + 1) * 3 + 1) * textHeight,
+                    2 * weekWidth, 3 * textHeight, modNames[i]);
+    // Texts : activities
+    for (int i = 0; i < nbModules; i++)
+    {
+      int[] act = data.activities (i);
+      boolean[] up = data.onLeft (i);
+      boolean[] down = data.onRight (i);
+      int numact = 0;
+      int y = appliHeight - ((i + 1) * 3 + 1) * textHeight;
+      for (int j = 0; j < nbWeeks; j++)
+      {
+        int[] sched = data.scheduleInWeek (i, j);
+        for (int k = 0; k < sched.length; k++)
+        {
+          int ly = y;
+          if (up[numact]) ly += textHeight * 2;
+          else if (! down[numact]) ly += textHeight;
+          numact++;
+          drawText (g2, (j + 2) * weekWidth + k * activWidth, ly,
+                        activWidth, textHeight,
+                        ShukanModule.DISPLAY[act[sched[k]]]);
+        }
+      }
+    }
+  }
+
+
+  /** Draws a horizontal line.
+   */
+  private void drawHLine (Graphics2D g2, int x, int y, int l)
+  {
+    g2.drawLine (x, appliHeight - y, x + l, appliHeight - y);
+  }
+
+  /** Draws a vertical line.
+   */
+  private void drawVLine (Graphics2D g2, int x, int y, int l)
+  {
+    g2.drawLine (x, appliHeight - y, x, appliHeight - y - l);
+  }
+
+  /** Draws a rectangular box.
+   */
+  private void drawBox (Graphics2D g2, int posx, int posy,
+                                       int width, int height)
+  {
+    g2.fillRect (posx, appliHeight - posy - height, width, height);
+  }
+
+  /** Draws a centered text in the given area.
+   */
+  private void drawText (Graphics2D g2, float posx, float posy,
+                         float width, float height, String text)
+  {
+    g2.drawString (text,
+                   (int) (posx + (width - fontMetrics.stringWidth (text)) / 2),
+                   appliHeight - (int) (posy + (height - fontHeight) / 2));
+  }
+
+  /** Draws a centered paragraph in the given area.
+   */
+  private void drawText (Graphics2D g2, float posx, float posy,
+                         float width, float height, String[] text)
+  {
+    if (text == null) return;
+    posy += (height + (text.length - 1) * fontHeight) / 2;
+    for (int i = 0; i < text.length; i ++)
+    {
+      drawText (g2, posx, posy, width, fontHeight, text[i]);
+      posy -= fontHeight;
+    }
+  }
+}
diff --git a/shukan/info.txt b/shukan/info.txt
new file mode 100644
index 0000000..ad85e40
--- /dev/null
+++ b/shukan/info.txt
@@ -0,0 +1,5 @@
+Specification-Title: Shukan pre-planner
+Specification-Version: 1.6
+Implementation-Title: shukan
+Implementation-Version: build12
+Main-Class: shukan.Shukan
-- 
GitLab