diff --git a/lib/qu-tp01.jar b/lib/qu-tp01.jar
new file mode 100644
index 0000000000000000000000000000000000000000..f410533d96cf77f4701143887c832810e30800f7
Binary files /dev/null and b/lib/qu-tp01.jar differ
diff --git a/lib/res02-tpQU.jar b/lib/res02-tpQU.jar
new file mode 100644
index 0000000000000000000000000000000000000000..3b18a48ebc9aeff4f8db5af89661078dfc1541ab
Binary files /dev/null and b/lib/res02-tpQU.jar differ
diff --git a/src/tpQU/tp01/Main.java b/src/tpQU/tp01/Main.java
new file mode 100644
index 0000000000000000000000000000000000000000..6718de354aa815ae06c241deebf7de61d669b7fb
--- /dev/null
+++ b/src/tpQU/tp01/Main.java
@@ -0,0 +1,11 @@
+import controlepkg2.sspkg.C;
+import controlepkg1.A;
+import controlepkg2.B;
+import controlpkg.D;
+
+class Main{
+    A triste = new A("triste");
+    B chapeau = new B();
+    C pointu = new C("pointu", 42);
+    D grand = new A("grand");
+}
diff --git a/src/tpQU/tp01/controlepkg1/A.java b/src/tpQU/tp01/controlepkg1/A.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f166a3435f64b2c489fc79b339d2e0e7b070bce
--- /dev/null
+++ b/src/tpQU/tp01/controlepkg1/A.java
@@ -0,0 +1,13 @@
+package controlepkg1;
+
+public class A {
+    private String aLabel;
+
+    public A(String aLabel) {
+        this.aLabel = aLabel;
+    }
+    @Override
+    public String toString() {
+        return "A [aLabel=" + aLabel + "]";
+    }
+}
diff --git a/src/tpQU/tp01/controlepkg2/B.java b/src/tpQU/tp01/controlepkg2/B.java
new file mode 100644
index 0000000000000000000000000000000000000000..47d16fb1b203c8e34094b6d8fd9c5f6b935594a2
--- /dev/null
+++ b/src/tpQU/tp01/controlepkg2/B.java
@@ -0,0 +1,9 @@
+package controlepkg2;
+
+public class B {
+    private int aNumber = 42;
+    @Override
+    public String toString() {
+        return "B [aNumber=" + aNumber + "]";
+    }
+}
diff --git a/src/tpQU/tp01/controlepkg2/sspkg/C.java b/src/tpQU/tp01/controlepkg2/sspkg/C.java
new file mode 100644
index 0000000000000000000000000000000000000000..41db448aa1d758b720894eb648b0448f934d4fa6
--- /dev/null
+++ b/src/tpQU/tp01/controlepkg2/sspkg/C.java
@@ -0,0 +1,19 @@
+package controlepkg2.sspkg;
+
+public class C {
+    private String aLabel;
+    private int aNumber;
+    
+    public C(String aLabel, int aNumber) {
+        this.aLabel = aLabel;
+        this.aNumber = aNumber;
+    }
+    public String getALabel() {return aLabel;}
+    public void setALabel(String aLabel) {this.aLabel = aLabel;}
+    public int getANumber() {return aNumber;}
+    public void setANumber(int aNumber) {this.aNumber = aNumber;}
+    @Override
+    public String toString() {
+        return "C [aLabel=" + aLabel + ", aNumber=" + aNumber + "]";
+    }
+}
diff --git a/src/tpQU/tp01/controlpkg1/qu-tp01.jar b/src/tpQU/tp01/controlpkg1/qu-tp01.jar
new file mode 100644
index 0000000000000000000000000000000000000000..f410533d96cf77f4701143887c832810e30800f7
Binary files /dev/null and b/src/tpQU/tp01/controlpkg1/qu-tp01.jar differ
diff --git a/src/tpQU/tp01/fifth/B.java b/src/tpQU/tp01/fifth/B.java
new file mode 100644
index 0000000000000000000000000000000000000000..52ee171eb0beb6b1722b6078e30c5abadb4b1bee
--- /dev/null
+++ b/src/tpQU/tp01/fifth/B.java
@@ -0,0 +1,12 @@
+package fifth;
+
+import fourth.A;
+
+class B {
+
+    public static void main(String[] args) {
+        System.out.println("class B -- main()");
+        A a = new A();
+        System.out.println(a + " again");
+    }
+}
\ No newline at end of file
diff --git a/src/tpQU/tp01/first/A.java b/src/tpQU/tp01/first/A.java
new file mode 100644
index 0000000000000000000000000000000000000000..6f6a9c5768c24832172cf120ddb372a2341b624a
--- /dev/null
+++ b/src/tpQU/tp01/first/A.java
@@ -0,0 +1,22 @@
+class A{
+    String label = "42";
+
+    A(){
+        ;
+    }
+
+    A(String label){
+        this.label = label;
+    }
+
+    public String toString(){
+        return this.label;
+    }
+
+    public static void main(String[] args){
+        A a1 = new A();
+        A a2 = new A("a choisir");
+        System.out.println(a1);
+        System.out.println(a2);
+    }
+}
\ No newline at end of file
diff --git a/src/tpQU/tp01/fourth/A.java b/src/tpQU/tp01/fourth/A.java
new file mode 100644
index 0000000000000000000000000000000000000000..4531de6e2f6ce884c1a20f96e1eaf48376dc9106
--- /dev/null
+++ b/src/tpQU/tp01/fourth/A.java
@@ -0,0 +1,19 @@
+package fourth;
+public class A{
+    String label = "42";
+
+    public A(){
+        ;
+    }
+
+    public A(String label){
+        this.label = label;
+    }
+
+    public String toString(){
+        return this.label;
+    }
+
+    // javac second/B.java -d ../bin -cp ../cp
+
+}
\ No newline at end of file
diff --git a/src/tpQU/tp01/second/A.java b/src/tpQU/tp01/second/A.java
new file mode 100644
index 0000000000000000000000000000000000000000..2547c136c83d40d5010dc4d9c33c031e39fbf2c8
--- /dev/null
+++ b/src/tpQU/tp01/second/A.java
@@ -0,0 +1,18 @@
+class A{
+    String label = "42";
+
+    A(){
+        ;
+    }
+
+    A(String label){
+        this.label = label;
+    }
+
+    public String toString(){
+        return this.label;
+    }
+
+    // javac second/B.java -d ../bin -cp ../cp
+
+}
\ No newline at end of file
diff --git a/src/tpQU/tp01/second/B.java b/src/tpQU/tp01/second/B.java
new file mode 100644
index 0000000000000000000000000000000000000000..fb5b7a30f0655c0092352e67f8f85ad0c49eeb4c
--- /dev/null
+++ b/src/tpQU/tp01/second/B.java
@@ -0,0 +1,8 @@
+class B {
+
+    public static void main(String[] args) {
+        System.out.println("class B -- main()");
+        A a = new A();
+        System.out.println(a + " again");
+    }
+}
\ No newline at end of file
diff --git a/src/tpQU/tp01/third/A.java b/src/tpQU/tp01/third/A.java
new file mode 100644
index 0000000000000000000000000000000000000000..9c711ef9d7c916e59c2833e3bbb1205219bdfa71
--- /dev/null
+++ b/src/tpQU/tp01/third/A.java
@@ -0,0 +1,7 @@
+package third;
+
+public class A {
+    public static void main(String[] args) {
+        System.out.println("Pkg third - Class A - main program");  // java -cp bin third/A.java
+    }
+}
\ No newline at end of file
diff --git a/src/tpQU/tp02/ToDoList.html b/src/tpQU/tp02/ToDoList.html
new file mode 100644
index 0000000000000000000000000000000000000000..908b12580016fc2291733e522e625bbce1d60802
--- /dev/null
+++ b/src/tpQU/tp02/ToDoList.html
@@ -0,0 +1,360 @@
+<!DOCTYPE HTML>
+<html lang="fr">
+<head>
+<!-- Generated by javadoc (21) on Mon Mar 10 10:46:53 CET 2025 -->
+<title>ToDoList</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="dc.created" content="2025-03-10">
+<meta name="description" content="declaration: package: tpOO.tp03, class: ToDoList">
+<meta name="generator" content="javadoc/ClassWriterImpl">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../script-dir/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">var pathtoroot = "../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<div class="flex-box">
+<header role="banner" class="flex-header">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button>
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="package-summary.html">Package</a></li>
+<li class="nav-bar-cell1-rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html#class">Help</a></li>
+</ul>
+<ul class="sub-nav-list-small">
+<li>
+<p>Summary:</p>
+<ul>
+<li>Nested</li>
+<li>Field</li>
+<li><a href="#constructor-summary">Constr</a></li>
+<li><a href="#method-summary">Method</a></li>
+</ul>
+</li>
+<li>
+<p>Detail:</p>
+<ul>
+<li>Field</li>
+<li><a href="#constructor-detail">Constr</a></li>
+<li><a href="#method-detail">Method</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="sub-nav">
+<div id="navbar-sub-list">
+<ul class="sub-nav-list">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method-summary">Method</a></li>
+</ul>
+<ul class="sub-nav-list">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method-detail">Method</a></li>
+</ul>
+</div>
+<div class="nav-list-search"><a href="../../search.html">SEARCH</a>
+<input type="text" id="search-input" disabled placeholder="Search">
+<input type="reset" id="reset-button" disabled value="reset">
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="flex-content">
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">tpOO.tp03</a></div>
+<h1 title="Class ToDoList" class="title">Class ToDoList</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
+<div class="inheritance">tpOO.tp03.ToDoList</div>
+</div>
+<section class="class-description" id="class-description">
+<hr>
+<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">ToDoList</span>
+<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
+<div class="block">Représente une liste de tâches à effectuer.</div>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<li>
+<section class="constructor-summary" id="constructor-summary">
+<h2>Constructor Summary</h2>
+<div class="caption"><span>Constructors</span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Constructor</div>
+<div class="table-header col-last">Description</div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">ToDoList</a>()</code></div>
+<div class="col-last even-row-color">
+<div class="block">Constructeur initialisant la liste avec une capacité de 5 tâches.</div>
+</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div id="method-summary-table">
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
+<div id="method-summary-table.tabpanel" role="tabpanel" aria-labelledby="method-summary-table-tab0">
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Method</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addTask(tpOO.tp03.Task)" class="member-name-link">addTask</a><wbr>(<a href="Task.html" title="class in tpOO.tp03">Task</a>&nbsp;aTask)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Ajoute une tâche à la liste.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#dueTasks()" class="member-name-link">dueTasks</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Retourne les tâches dont la date d'échéance est aujourd'hui.</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#durationSort()" class="member-name-link">durationSort</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Trie les tâches par durée (de la plus longue à la plus courte).</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#emergencySort()" class="member-name-link">emergencySort</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Trie les tâches par ordre d'urgence (échéance la plus proche en premier).</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#enlarge()" class="member-name-link">enlarge</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Augmente la capacité de la liste de tâches de 5 unités.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getChores()" class="member-name-link">getChores</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Retourne le tableau des tâches.</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNbTasks()" class="member-name-link">getNbTasks</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Retourne le nombre de tâches dans la liste.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isOverwhelmed()" class="member-name-link">isOverwhelmed</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Vérifie si la liste de tâches est surchargée.</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#onSickLeave(int)" class="member-name-link">onSickLeave</a><wbr>(int&nbsp;nbDays)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Reporte toutes les tâches de la liste d'un certain nombre de jours.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeTask(int)" class="member-name-link">removeTask</a><wbr>(int&nbsp;i)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Supprime une tâche à un index donné.</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeTask(tpOO.tp03.Task)" class="member-name-link">removeTask</a><wbr>(<a href="Task.html" title="class in tpOO.tp03">Task</a>&nbsp;aTask)</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Supprime une tâche spécifique de la liste.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#senioritySort()" class="member-name-link">senioritySort</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Trie les tâches par ancienneté (de la plus ancienne à la plus récente).</div>
+</div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Retourne une représentation sous forme de chaîne de caractères de la liste de tâches.</div>
+</div>
+</div>
+</div>
+</div>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<li>
+<section class="constructor-details" id="constructor-detail">
+<h2>Constructor Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="&lt;init&gt;()">
+<h3>ToDoList</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ToDoList</span>()</div>
+<div class="block">Constructeur initialisant la liste avec une capacité de 5 tâches.</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+<!-- ============ METHOD DETAIL ========== -->
+<li>
+<section class="method-details" id="method-detail">
+<h2>Method Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="enlarge()">
+<h3>enlarge</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">enlarge</span>()</div>
+<div class="block">Augmente la capacité de la liste de tâches de 5 unités.</div>
+</section>
+</li>
+<li>
+<section class="detail" id="addTask(tpOO.tp03.Task)">
+<h3>addTask</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addTask</span><wbr><span class="parameters">(<a href="Task.html" title="class in tpOO.tp03">Task</a>&nbsp;aTask)</span></div>
+<div class="block">Ajoute une tâche à la liste.</div>
+<dl class="notes">
+<dt>Parameters:</dt>
+<dd><code>aTask</code> - La tâche à ajouter.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="removeTask(tpOO.tp03.Task)">
+<h3>removeTask</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">removeTask</span><wbr><span class="parameters">(<a href="Task.html" title="class in tpOO.tp03">Task</a>&nbsp;aTask)</span></div>
+<div class="block">Supprime une tâche spécifique de la liste.</div>
+<dl class="notes">
+<dt>Parameters:</dt>
+<dd><code>aTask</code> - La tâche à supprimer.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="removeTask(int)">
+<h3>removeTask</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">removeTask</span><wbr><span class="parameters">(int&nbsp;i)</span></div>
+<div class="block">Supprime une tâche à un index donné.</div>
+<dl class="notes">
+<dt>Parameters:</dt>
+<dd><code>i</code> - L'index de la tâche à supprimer.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="isOverwhelmed()">
+<h3>isOverwhelmed</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isOverwhelmed</span>()</div>
+<div class="block">Vérifie si la liste de tâches est surchargée.</div>
+<dl class="notes">
+<dt>Returns:</dt>
+<dd>true si la liste est surchargée, false sinon.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="getNbTasks()">
+<h3>getNbTasks</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getNbTasks</span>()</div>
+<div class="block">Retourne le nombre de tâches dans la liste.</div>
+<dl class="notes">
+<dt>Returns:</dt>
+<dd>Le nombre total de tâches non nulles.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="onSickLeave(int)">
+<h3>onSickLeave</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">onSickLeave</span><wbr><span class="parameters">(int&nbsp;nbDays)</span></div>
+<div class="block">Reporte toutes les tâches de la liste d'un certain nombre de jours.</div>
+<dl class="notes">
+<dt>Parameters:</dt>
+<dd><code>nbDays</code> - Nombre de jours de report.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="dueTasks()">
+<h3>dueTasks</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</span>&nbsp;<span class="element-name">dueTasks</span>()</div>
+<div class="block">Retourne les tâches dont la date d'échéance est aujourd'hui.</div>
+<dl class="notes">
+<dt>Returns:</dt>
+<dd>Un tableau des tâches dues aujourd'hui.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="emergencySort()">
+<h3>emergencySort</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">emergencySort</span>()</div>
+<div class="block">Trie les tâches par ordre d'urgence (échéance la plus proche en premier).</div>
+</section>
+</li>
+<li>
+<section class="detail" id="durationSort()">
+<h3>durationSort</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">durationSort</span>()</div>
+<div class="block">Trie les tâches par durée (de la plus longue à la plus courte).</div>
+</section>
+</li>
+<li>
+<section class="detail" id="senioritySort()">
+<h3>senioritySort</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">senioritySort</span>()</div>
+<div class="block">Trie les tâches par ancienneté (de la plus ancienne à la plus récente).</div>
+</section>
+</li>
+<li>
+<section class="detail" id="toString()">
+<h3>toString</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
+<div class="block">Retourne une représentation sous forme de chaîne de caractères de la liste de tâches.</div>
+<dl class="notes">
+<dt>Overrides:</dt>
+<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
+<dt>Returns:</dt>
+<dd>Une chaîne représentant la liste des tâches.</dd>
+</dl>
+</section>
+</li>
+<li>
+<section class="detail" id="getChores()">
+<h3>getChores</h3>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</span>&nbsp;<span class="element-name">getChores</span>()</div>
+<div class="block">Retourne le tableau des tâches.</div>
+<dl class="notes">
+<dt>Returns:</dt>
+<dd>Un tableau de tâches.</dd>
+</dl>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+</main>
+</div>
+</div>
+</body>
+</html>
diff --git a/src/tpQU/tp02/WarriorCard.java b/src/tpQU/tp02/WarriorCard.java
new file mode 100644
index 0000000000000000000000000000000000000000..94704497a32b43937023c3d733a2593dec838e44
--- /dev/null
+++ b/src/tpQU/tp02/WarriorCard.java
@@ -0,0 +1,65 @@
+package tp02;
+
+/**
+ * @author Alexandre
+ * @version 0.01
+ * @since java21
+ */
+public class WarriorCard {
+    private String name;
+    private int strength = 0;
+    private int agility = 0;
+
+    /**
+     * @param name
+     * @param strength
+     * @param agility
+     */
+    WarriorCard(String name, int strength, int agility){
+        this.name = name;
+        this.strength = strength;
+        this.agility = agility;
+    }
+
+    /**
+     * @param obj Objet qui est vérifié
+     * @return true si égale
+     * Vérifie si l'objet est égale
+     */
+    public boolean equals(Object obj) {
+        if(this == obj){
+            return true;
+        }
+        if(obj == null){
+            return false;
+        }
+        if(this.getClass() != obj.getClass()){
+            return false;
+        }
+        WarriorCard other = (WarriorCard) obj;
+        if (this.name == null) {
+            if (other.name != null){
+                return false;
+            }
+        } else if (!this.name.equals(other.name)){
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * @param other une autre carte
+     * @return différence de strength
+     */
+    public int compareStrength(WarriorCard other){
+        return this.strength - other.strength;
+    }
+
+    public int compareAgility(WarriorCard other){
+        return this.agility - other.agility;
+    }
+
+    public String toString(){
+        return this.name + "[S=" + this.strength + ",A=" + this.agility + "]";
+    }
+}
diff --git a/test/tpQU/tp02/AgendaTest.java b/test/tpQU/tp02/AgendaTest.java
new file mode 100755
index 0000000000000000000000000000000000000000..e23d4ccc57b175bab70b40d94c42251e61b9133d
--- /dev/null
+++ b/test/tpQU/tp02/AgendaTest.java
@@ -0,0 +1,56 @@
+package tpQU.tp02;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+
+public class AgendaTest {
+	public Event evt1;
+	public Event evt2;
+	public Event evt3;
+	public Event evt4;
+	public Agenda ag = new Agenda();
+	public Agenda ag2 = new Agenda();
+	
+	@BeforeEach
+	public void avantTest() {
+		ag.clear();
+		LocalDate d1 = LocalDate.of(2018, 1, 5);
+		LocalDate d2 = LocalDate.of(2018, 2, 10);
+		LocalDate d3 = LocalDate.of(2018, 3, 15);
+		LocalDate d4 = LocalDate.of(2018, 4, 20);
+		evt1 = new Event("evt1", null, d1, d2);
+		evt2 = new Event("evt2", null, d2, d3);
+		evt3 = new Event("evt3", null, d3, d4); 
+		evt4 = new Event("evt4", null, d2, d4);
+	}
+	
+	@Test
+	public void testConflicting() {
+		assertTrue(ag.conflicting(evt1));
+		ag.addEvent(evt1);
+		assertTrue(ag.conflicting(evt3));
+		ag.addEvent(evt3);
+		assertFalse(ag.conflicting(evt4));
+	}
+	@Test
+	public void testRemoveOverlapping() {
+		ag.addEvent(evt1);
+		ArrayList<Event> tmp = new ArrayList<Event>();
+		ag.removeOverlapping(evt1);
+		assertEquals(ag.events, tmp);
+		ag.addEvent(evt1);ag.addEvent(evt2);tmp.add(evt1); tmp.add(evt2);
+		ag.removeOverlapping(evt1);
+		ag.addEvent(evt3); tmp.clear();
+		ag.removeOverlapping(evt4);
+		assertEquals(ag.events,tmp);
+		ag.addEvent(evt1);ag.addEvent(evt2);ag.addEvent(evt3); tmp.clear(); tmp.add(evt1);
+		ag.removeOverlapping(evt4);
+		assertEquals(ag.events,tmp);
+	}
+}
diff --git a/test/tpQU/tp02/EventTest.java b/test/tpQU/tp02/EventTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4b7221e7e998ee24242a3d107f9e565d07d10fc
--- /dev/null
+++ b/test/tpQU/tp02/EventTest.java
@@ -0,0 +1,96 @@
+package tpQU.tp02;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.time.LocalDate;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import tpOO.tp03.Task;
+
+public class EventTest {
+    public Event evt1;
+    public Event evt2;
+    public Event evt3;
+    public Event evt4;
+    public Event evt5;
+    public Event evt6;
+    public Task t1;
+    public Task t2;
+
+    @BeforeEach
+    public void avantTest() {
+        LocalDate d1 = LocalDate.of(2022, 1, 5);
+        LocalDate d2 = LocalDate.of(2022, 2, 10);
+        LocalDate d3 = LocalDate.of(2022, 3, 15);
+        LocalDate d4 = LocalDate.of(2022, 4, 20);
+        String place1 = "nowhere";
+        String place2 = "everywhere";
+        evt1 = new Event("evt1", place1, d1, d2);
+        evt2 = new Event("evt2", place1, d2, d3);
+        evt3 = new Event("evt3", place1, d3, d4);
+        evt4 = new Event("evt4", place1, d2, d4);
+        evt5 = new Event("evt5", place2, d1, d2);
+        evt6 = new Event("evt1", place1, d1, d2);
+        t1 = new Task("task1", 2);
+        t2 = new Task("task2", 1);
+    }
+
+    @Test
+    void testToString() {
+        assertEquals("evt1 - nowhere: \t 2022-01-05 -> 2022-02-10", evt1.toString());
+        assertEquals("evt2 - nowhere: \t 2022-02-10 -> 2022-03-15", evt2.toString());
+        assertEquals("evt3 - nowhere: \t 2022-03-15 -> 2022-04-20", evt3.toString());
+        assertEquals("evt4 - nowhere: \t 2022-02-10 -> 2022-04-20", evt4.toString());
+        assertEquals("evt5 - everywhere: \t 2022-01-05 -> 2022-02-10", evt5.toString());
+    }
+
+    @Test
+    void testAddTask() {
+        assertEquals(0, evt1.getNbTasks());
+        assertNull(evt1.getChores()[0]);
+        evt1.addTask(t1);
+        assertEquals(1, evt1.getNbTasks());
+        assertEquals(t1, evt1.getChores()[0]);
+        evt1.addTask(t2);
+        assertEquals(2, evt1.getNbTasks());
+        assertEquals(t2, evt1.getChores()[1]);
+        evt1.addTask(t1);
+        assertEquals(3, evt1.getNbTasks());
+        assertEquals(t1, evt1.getChores()[0]);
+        assertEquals(t1, evt1.getChores()[2]);
+    }
+
+    @Test
+    void testEquals() {
+        assertTrue(evt1.equals(evt1));
+        assertFalse(evt1.equals(evt2));
+        assertFalse(evt1.equals(evt3));
+        assertFalse(evt1.equals(evt4));
+        assertFalse(evt1.equals(evt5));
+        assertTrue(evt1.equals(evt6));
+        //
+        assertTrue(evt2.equals(evt2));
+        assertFalse(evt2.equals(evt3));
+        assertFalse(evt2.equals(evt4));
+        assertFalse(evt2.equals(evt5));
+        assertFalse(evt2.equals(evt6));
+    }
+
+    @Test
+    void testOverlap() {
+        assertTrue(evt1.overlap(evt1));
+        assertFalse(evt1.overlap(evt2));
+        assertFalse(evt1.overlap(evt3));
+        assertFalse(evt1.overlap(evt4));
+        assertTrue(evt1.overlap(evt5));
+        assertTrue(evt1.overlap(evt6));
+        assertFalse(evt2.overlap(evt3));
+        assertTrue(evt2.overlap(evt4));
+        assertTrue(evt3.overlap(evt4));
+    }
+}
diff --git a/test/tpQU/tp02/WarriorCardTest.java b/test/tpQU/tp02/WarriorCardTest.java
new file mode 100755
index 0000000000000000000000000000000000000000..4a090856ef0a964c84c8bd8c82cf26160c524376
--- /dev/null
+++ b/test/tpQU/tp02/WarriorCardTest.java
@@ -0,0 +1,47 @@
+package tp02;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+public class WarriorCardTest {
+	WarriorCard c1;
+	WarriorCard c2;
+	WarriorCard c3;
+	WarriorCard c4;
+
+	@BeforeAll
+	public static void beforeAllTests() {System.out.println("Start test series");}
+	@AfterAll
+	public static void afterAllTests() {System.out.println("End test series");}
+	@BeforeEach
+	public void beforeATest() {
+		c1 = new WarriorCard("w1", 10, 10);
+		c2 = new WarriorCard("w1", 5, 5);
+		c3 = new WarriorCard("w2", 20, 20);
+		c4 = c1;
+	}
+	@AfterEach
+	public void afterATest() {System.out.println("--------- end of a test---------");}
+	@Test
+	public void testEquals() {
+		System.out.println("testEquals");
+		assertTrue(c1.equals(c1));
+		assertTrue(c1.equals(c2));
+		assertFalse(c1.equals(c3));
+		assertTrue(c1.equals(c4));
+	}
+	@Test
+	public void testToString() {
+		System.out.println("testToString");
+		assertEquals("w1[S=10,A=10]", c1.toString());
+		assertEquals("w2[S=20,A=20]", c3.toString());
+	}
+
+}
\ No newline at end of file